내 물건에 대한 ChatGPT

Jan 22 2023
ChatGPT는 멋지지만 전체 인터넷의 답변을 원하지 않습니다. 나는 그것이 내 물건에 대한 답변을 제공하기를 정말로 원합니다.

ChatGPT는 멋지지만 전체 인터넷의 답변을 원하지 않습니다. 나는 그것이 내 물건에 대한 답변을 제공하기를 정말로 원합니다. 나는 그것이 사실처럼 보이지만 실제로는 존재하지 않는 것을 구성하는 것을 좋아하지 않습니다. 그런 것이 있습니까?

LangChain의 사람들은 Zahid Khawaja와 협력하여 최근에 정확히 이를 수행하는 데모를 발표했습니다. 그들은 ChatGPT의 사용자 경험을 모방하는 GPT-3에 대한 특수 프롬프트와 시맨틱 검색을 교묘하게 결합했지만 답변은 LangChain의 자체 기술 문서에 대한 질문에만 답변하도록 고정되어 있습니다.

여기에서 블로그 게시물을 확인할 수 있습니다 .

시맨틱 검색

프로세스는 문서를 청크로 분할한 다음 임베딩 벡터로 해당 문서 청크를 나타내는 시맨틱 검색으로 시작합니다. 이러한 벡터는 문서에 대해 미리 계산하여 벡터 저장소에 저장할 수 있습니다. 그런 다음 사용자가 질문을 하면 해당 질문은 동일한 임베딩 모델을 사용하여 벡터로 변환됩니다. 의미론적 유사성 검색은 쿼리와 가장 유사한 문서 청크를 반환합니다.

사람들은 지금은 BERT와 같은 모델을 사용하여 문서를 임베딩 벡터로 변환하는 동안 시맨틱 검색을 수행해 왔습니다. 시맨틱 검색은 사용자가 찾고 있는 답을 포함할 가능성이 가장 높은 문장이나 단락으로 응답할 수 있지만 질문에 완전히 답하지는 않습니다. 사람들이 ChatGPT에 대해 그토록 흥분하는 이유 중 하나는 질문에 대해 보다 자연스러운 답변을 제공한다는 점입니다.

대형 언어 모델(LLM)

대규모 언어 모델은 시맨틱 검색과 다른 작업을 수행합니다. 프롬프트를 받고 해당 프롬프트에 따라 응답을 생성합니다. 프롬프트는 질문일 수 있지만 질문보다 더 많은 지침을 포함할 수도 있습니다. 따라서 대규모 언어 모델에 일련의 지침을 보내면 해당 지침에 따라 매우 다른 동작을 얻을 수 있습니다. 동일한 모델을 사용하여 기술 문서를 요약하거나 질문에 답하거나 영어에서 독일어로 번역할 수 있습니다.

LangChain이 GPT-3를 마음대로 구부리는 것은 영리한 프롬프트입니다. 데모에서 LangChain이 사용하는 프롬프트는 다음과 같습니다.

You are an AI assistant for the open source library LangChain. The documentation is located at https://langchain.readthedocs.io.
You are given the following extracted parts of a long document and a question. Provide a conversational answer with a hyperlink to the documentation.
You should only use hyperlinks that are explicitly listed as a source in the context. Do NOT make up a hyperlink that is not listed.
If the question includes a request for code, provide a code block directly from the documentation.
If you don't know the answer, just say "Hmm, I'm not sure." Don't try to make up an answer.
If the question is not about LangChain, politely inform them that you are tuned to only answer questions about LangChain.
Question: {question}
=========
{context}
=========
Answer in Markdown:

답을 모르면 "음, 잘 모르겠습니다."라고 말하십시오. 답을 지어내려고 하지 마세요.

이것은 사람들이 ChatGPT에서 싫어하는 거짓 양성 결과의 가능성을 더욱 줄입니다.

이 프롬프트에서 { 질문 }이 표시되는 곳에 사용자 질문이 배치됩니다 . 시맨틱 검색 결과는 { context } 에 포함됩니다 . 이 프롬프트의 구성은 GPT-3에게 컨텍스트에서 나온 답변만 제공하도록 지시합니다. 이러한 답변에는 항상 컨텍스트에서 선택된 링크가 있습니다. 마지막으로 응답은 Markdown 형식으로 지정되어 개발자가 애플리케이션에서 응답을 멋지게 표시할 수 있습니다.

시맨틱 검색은 당면한 질문과 관련된 기술 문서 섹션만 제공함으로써 작업의 일부를 수행했습니다. 그런 다음 GPT-3는 제공된 컨텍스트로 명시적으로 제한되는 대화식 응답으로 작업을 완료합니다. 이것이 LangChain이 ChatGPT 경험을 제공할 수 있는 방법이지만 문서에 대해서만 이야기하는 범위를 제한합니다.

후속 질문

ChatGPT 경험의 중요하고 차별화된 특징은 후속 질문을 할 수 있는 능력입니다. 채팅 기록의 메모리는 다음 답변을 생성할 때 고려됩니다. 후속 질문 경험은 또 다른 영리한 프롬프트와 함께 이 앱에서 제공됩니다. 개발자는 채팅 기록과 새 질문을 모두 GPT-3에 보내고 LLM이 새 단일 질문을 생성하도록 합니다. 이 새로운 단일 질문은 이전에 설명한 프로세스를 통해 실행됩니다. 이 요청에 대한 프롬프트는 다음과 같습니다.

Given the following conversation and a follow up question, rephrase 
the follow up question to be a standalone question. You should assume 
that the question is related to LangChain.

추가 고려 사항

전반적으로 이것은 사람들이 특정 문서 집합으로 범위를 제한하면서 사람들이 ChatGPT에 대해 좋아하는 기능을 제공하는 스위트 스팟을 달성할 수 있는 방법을 보여주는 훌륭한 데모입니다. 이 접근 방식은 기업 환경의 많은 사용 사례에 적용될 수 있습니다. 회사 맥락에서 생각할 때 앱 디자인과 관련하여 한 가지 우려 사항이 있습니다. 내 제품에 대한 해당 정보와 함께 고객이 내 제품에 대해 묻는 모든 질문은 제3자(이 경우 OpenAI)로 전송됩니다.

근본적인 수준에서 이것은 다른 사람이 내 제품에 대한 모든 고객의 질문에 대한 이 데이터 세트를 가지고 있는 좋은 생각처럼 들리지 않습니다. 악의적인 행위자가 내 약점을 악용하기 위해 잠재적으로 이 데이터를 마이닝할 수 있습니다. 잠재적 솔루션은 자체 사설 클라우드에서 완전한 오픈 소스 LLM(예: Flan-T5 또는 GPT-2)을 호스팅하는 것입니다. 그런 다음 LLM을 호출하는 다이어그램의 각 단계에서 해당 LLM의 자체 개인 인스턴스를 호출합니다. 이 접근 방식은 클라우드 인프라에서 대규모 모델을 호스팅할 수 있는 충분한 엔지니어링 능력이 있어야 함을 의미하지만 회사 데이터를 에테르로 보내지 않는다는 점에서 안심할 수 있습니다.

결론

시맨틱 검색과 LLM의 조합은 많은 비즈니스 애플리케이션에 많은 가능성을 보여줍니다. LangChain이 개발한 프레임워크를 사용하면 이러한 애플리케이션을 더 쉽게 구축할 수 있습니다. 따라서 해당 라이브러리를 레이더에 유지하십시오.