“숨겨진”이라고 한 것은 대부분의 사용자에게 보이지 않는 카테고리를 의미합니다. 반드시 숨겨져 있을 필요는 없지만, RAG로 사용될 지식에 대한 PDF만 포함된 카테고리를 두면 다른 사용자들로 인해 어지러워질 수 있습니다.
많은 매뉴얼이 이미 PDF로 존재할 가능성이 높기 때문에 PDF를 예시로 들었고, 이해하기 쉽도록 해당 PDF를 카테고리에 숨겨두는 방식을 언급했습니다. 숨겨진 카테고리가 필요 없는 다른 가능성에 대해서는 Langchain Retrieval을 좋은 출발점으로 삼을 수 있습니다.
그 방식에 반대하는 이유는 없습니다. 수행해야 할 작업의 개념을 올바른 방향으로 나아가게 해주니까요.
다만 “어시스턴트”라는 용어는 특정 맥락에서 새로운 강자 GPTs에게 자리를 내어주고 있는 것 같습니다. GPTs는 ChatGPT 플러그인도 대체하는 것으로 보이지만, 저는 몇 달째 ChatGPT 플러그인을 사용하지 않아 직접 체감은 하지 못하고 있습니다. 포럼에서 관련 논의만 보고 있을 뿐이죠.
디스코르스(Discourse) 스태프 중 한 명이 그 자리에 있었다는 것을 알고 있습니다.
솔직히 말씀드리자면, 저는 충분히 알지 못해 답변하지 못하고 이 영상을 시청했습니다.
Assistant에 관해서는 GPT가 다음 기능을 제공하는 것으로 보입니다.
웹 브라우징
DALL*E 이미지 생성
코드 인터프리터
여러분이 지적하신 대부분의 내용에 동의합니다.
또한 영상을 보며 GPT에 대해 훨씬 더 많이 알게 된 후, GPT는 인상적이라는 점을 말씀드리고 싶습니다. 여전히 대부분의 사람들의 요구를 충족하지는 못하지만 진전을 보이고 있습니다. 또한 ChatGPT 플러그인과 동일하거나 유사한 일부 JSON을 볼 수 있었던 것도 흥미로웠습니다.
이 주제에 관해 말씀드리자면, OpenAI 포럼의 많은 사람들이 RAG(검색 증강 생성)로 사용하기 위해 파일을 업로드하려 했다가 파일 수가 10개로 제한되어 있음을 빠르게 발견합니다. 또한 GPT 링크를 공유할 수는 있지만, 다른 사용자도 ChatGPT Plus 구독자가 되어야 하므로 상업적 목적을 가진 많은 사람들에게는 아마도 실패로 끝날 가능성이 높은 옵션입니다.
Open AI Assistant API는 아직 초기 단계라 도입하기에 이르며, 사실상 프리뷰 상태입니다:
과도하게 비싸다는 보고가 있습니다(반드시 필요하지 않아도 매 반복마다 사용 가능한 컨텍스트를 채우며, 필요하든 아니든 그 비용을 지불하게 됩니다)
간혹 무한정 반복되는 “무한 루프” 문제가 발생하는 것으로 보입니다. 해당 회사의 명백한 전문성을 고려할 때, 이 문제는 매우 놀라운 것입니다. 왜냐하면 이에 대한 완화책을 설계하는 것은 매우 간단하기 때문입니다.
더 많은 숙성이 필요하며, 초기 도입자들의 피드백을 반영해야 한다고 생각합니다.
Chatbot과 같은 AI 서비스의 다운스트림 소비자들을 위한 잠재적인 미래의 단순화 방안으로, 이를 환영합니다.
어쨌든 Discourse와의 인터페이스가 필요합니다.
Chatbot은 이미 Assistant API와 동일한 기능을 제공하면서도 Assistant API의 문제점 없이, 추가로 Discourse와의 인터페이스까지 제공합니다. 궁극적으로 API 반복에 무관하며, 이용 가능한 서비스와 함께 진화할 것입니다. 미래에 Assistant API 옵션을 제공할 가능성도 매우 높지만, 현재로서는 그렇게 하는 데 아무런 이점이 없습니다. 오히려 문제(위에서 언급한 문제들을 포함)를 야기할 뿐이기 때문입니다.
Discourse 사이트의 Discourse AI 봇에서 RAG(검색 증강 생성)로 사용할 수 있도록 매뉴얼을 활용하는 것을 계획하고 계신가요?
a. 현재 해당 매뉴얼의 형식은 무엇인가요? 인쇄물, PDF, 웹사이트, 기타?
b. 지식 베이스가 새 매뉴얼이나 버전으로 업데이트되는 주기는 어떻게 되나요?
c. 매뉴얼이 사이트에 공개될 예정인가요?
Discourse 포럼 외에 지원 사이트에서 AI가 응답할 때 가치가 있을 수 있는 다른 정보는 무엇인가요?
Discourse AI 봇을 만들 때 봇에 대한 다른 필요 사항이 예상되나요? 이렇게 질문하는 이유는 Discourse AI 봇 생성의 역사를 살펴보면 수많은 변화를 거쳤기 때문입니다. 처음 만든 봇은 완벽하지 않았으며, 현재도 여전히 많은 변화가 일어나고 있습니다.
봇이나 에이전트가 어떻게 사용될 것이라고 생각하는지에 대한 예시를 몇 가지 만들어 주실 수 있나요? 예를 들어, 사용자가 봇과 채팅하는 몇 가지 다른 상황을 보여 주시면 됩니다.
참고로 여기서 '에이전트’라는 단어는 Langchain 에이전트와 유사한 의미로 사용했으며, OpenAI 어시스턴트와 혼동하지 말아 주십시오.
YouTube 데모에서 OpenAI GPT가 만들어지는 과정을 보고 아이디어가 떠올랐습니다.
ChatGPT Plus 구독과 대기 목록에 등록한 후 접근 권한을 얻어야 하는 OpenAI GPT를 생성할 수 있습니다. 이는 여러분이 이러한 기술의 장단점에 대해 배우고자 하는 것과 유사합니다. 또한 이 기술은 Discourse AI 봇을 만드는 데 활용될 수 있습니다. 봇을 직접 만들라고 제안하는 것은 아니지만, AI가 무엇을 할 수 있고 어디서 완전히 실패하는지 더 잘 이해하는 데 도움이 될 것입니다.
PDF 또는 HTML(온라인 호스팅)이지만, 텍스트/마크다운으로 변환하여 Discourse 게시물로 관리하는 데에도 문제가 없습니다. 더 쉽게 관리할 수 있도록 스크립트를 작성할 수 있습니다.
제품 매뉴얼은 자주 업데이트되지 않지만, 지식 베이스의 다른 콘텐츠는 업데이트됩니다. FAQ, 빈번하거나 트렌드인 이슈 등은 더 자주 업데이트될 것입니다. 가능한 한 많은 정보를 공개적으로 게시하지만, 일부는 비공개로 유지하는 것이 더 적절할 수 있습니다. 이는 민감한 정보 때문이 아니라, 공개 게시물로 보일 때 이상하거나 혼란스러워 보일 수 있기 때문입니다.
지금은 아마도 없을 것입니다. 인터넷을 검색하도록 허용하면 우리에게 적용되지 않는 결과를 가져올 위험이 너무 큽니다.
미래에는 고객의 자체 보안 시스템에 대한 추가적인 맥락을 봇에게 제공하는 것이 가치가 있을 수 있다고 보지만, 사생활 문제 때문에 이것이 가능하지 않을 수도 있습니다.
모든 것이 RAG에 기반하므로, 봇이 포럼을 검색하고 AI를 프롬프트하는 방식을 세밀하게 제어할 수 있는 것이 가장 중요하다고 생각합니다. 제가 읽은 바에 따르면 merefield의 Discourse Chatbot이 현재 그 부분을 더 잘 수행하는 것 같습니다. 이번 주에 그 가설을 테스트해 보고 싶습니다.
우리의 경우, 사용자의 질문에 답하거나 문제를 해결함으로써 사용자에게/고객에게 지원을 제공하는 것입니다. 예를 들어:
고객의 특정 집을 보호하기 위해 무엇을 구매해야 하는지 파악하는 데 도움을 줍니다. 때로는 이미 보유하고 있는 가정 보안 장비를 고려하기도 합니다.
시스템을 설치하고 사용하는 데 도움을 줍니다.
문제가 발생했을 때 문제를 해결하는 데 도움을 줍니다.
시스템이 어떻게 작동하는지, 미래에 어떤 것이 제공될 수 있는지 등에 대한 호기심에서 오는 질문에 답합니다.
최고의 예시는 매일 게시되는 실제 사례들이며, 우리의 지원 팀(또는 때로는 커뮤니티 멤버)이 이에 답합니다.
제가 공유한 것이 단순한 링크일 뿐이지만, 지원 사이트에 AI 봇을 도입해 응답하게 하고 다른 사람들이 공개 포럼에서 아이디어 교환 과정을 볼 수 있게 하려는 많은 사람들에게 이는 최첨단 기술입니다. 기업들이 비공개로 이런 일을 하고 있다는 것은 알고 있지만, 여러분은 이를 공개적으로 수행하고 있습니다.
또한 다이어그램을 볼 수 있어서 기뻤습니다. 제가 생각했던 것이 맞다는 것을 다시 한번 확인할 수 있었거든요.
저라면 그렇게 하지 않을 것입니다.
봇은 게시글에서 텍스트를 검색하는 것과 유사한 방식으로 포럼을 실제로 검색하지 않습니다. 이를 위해 배워야 할 키워드와 관련 기술은 벡터 데이터베이스와 최근접 이웃 검색입니다.
일부 사용자는 참고 정보(매뉴얼 이름, 출판 날짜, 섹션 및 단락)가 RAG와 함께 사용되는 정보의 일부라고 생각할 수 있으므로, 이에 대해 추가 정보를 제공하고자 합니다. 저는 그렇게 구상한 적이 없으며, 필요한 세부 사항 중 일부를 누락했습니다. 저는 메타데이터를 사용할 것을 구상했습니다. 저에게 데이터와 메타데이터는 의미와 용도가 매우 다릅니다.
ChatGPT에게 이에 대해 질문했을 때, 제가 구상한 방향과 유사한 답변을 주었지만, Elasticsearch와 같은 몇 가지 구체적인 사항이 더 포함되어 있었습니다.
프롬프트
제품의 PDF 매뉴얼을 RAG(Retrieval Augmented Generation)와 함께 사용하여, 해당 매뉴얼에서 제목, 출판 날짜, 페이지 번호 및 단락 번호를 참고 정보로 함께 얻으려면 어떻게 해야 합니까?
완성(Completion)
PDF 매뉴얼을 사용하여 제목, 출판 날짜, 페이지, 단락 번호와 같은 특정 정보를 추출하기 위해 RAG(Retrieval Augmented Generation)를 사용하는 것은 여러 단계를 포함합니다. Facebook AI에서 개발한 RAG는 검색(관련 문서나 데이터를 가져오는 것)의 힘과 언어 생성을 결합하여, 모델이 외부 지식을 참조하고 통합할 수 있도록 합니다. PDF 매뉴얼과 함께 RAG를 사용하는 일반적인 접근 방식은 다음과 같습니다:
PDF 매뉴얼을 텍스트 형식으로 변환:
먼저 처리할 수 있는 텍스트 형식으로 PDF 매뉴얼을 변환해야 합니다. 이를 위해 Adobe Acrobat, pdftotext(Xpdf 프로젝트의 일부), 또는 PyPDF2나 PDFMiner와 같은 Python 라이브러리를 사용할 수 있습니다.
텍스트 전처리:
텍스트를 얻은 후에는 전처리가 필요할 수 있습니다. 여기에는 불필요한 서식 제거, 특수 문자 처리, 그리고 식별 가능한 마커를 사용하여 텍스트를 섹션, 페이지, 단락으로 분할하는 작업이 포함될 수 있습니다.
매뉴얼 인덱싱:
RAG가 효과적으로 작동하려면 매뉴얼의 내용이 인덱싱되어야 합니다. 이는 각 정보 조각(단락이나 섹션 등)이 해당 메타데이터(페이지 번호, 단락 번호 등)와 함께 저장되는 데이터베이스나 구조화된 형식을 만드는 것을 의미합니다. 이를 위해 Elasticsearch 또는 유사한 검색 엔진을 사용할 수 있습니다.
RAG 통합:
매뉴얼이 인덱싱되면 이제 RAG를 통합할 수 있습니다. RAG는 일반적으로 검색을 위해 트랜스포머 기반 언어 모델(BERT 또는 RoBERTa 등)과 생성을 위해 시퀀스-투-시퀀스 모델(BART 또는 T5 등)을 결합합니다. 인덱싱된 매뉴얼을 조회하도록 RAG를 설정해야 합니다. 이는 검색 엔진과 함께 작동하도록 검색 구성 요소를 사용자화하는 작업을 포함할 수 있습니다.
시스템 조회:
RAG 시스템에 쿼리를 보내면, 검색 구성 요소가 먼저 쿼리에 기반하여 매뉴얼의 가장 관련성 높은 섹션을 찾습니다. 이 정보는 생성 구성 요소로 전달되어 응답을 구성합니다.
참고 정보 추출:
제목, 출판 날짜, 페이지 및 단락 번호를 얻으려면, 이러한 세부 사항이 검색된 세그먼트에 포함되어 있거나, 시스템이 인덱싱된 데이터로 돌아가 이 메타데이터를 가져올 수 있도록 보장해야 합니다. 이를 위해 시스템에 추가 로직이 필요할 수 있습니다.
참조를 위한 후처리:
응답이 생성된 후에는 제목, 출판 날짜, 페이지 및 단락 번호가 정확히 포함되도록 참조를 올바르게 서식화하기 위한 후처리 단계가 필요할 수 있습니다.
파인튜닝 및 평가:
특정 요구 사항과 매뉴얼의 복잡성에 따라, 유사한 유형의 문서나 쿼리에 대해 RAG 모델을 파인튜닝해야 할 수 있습니다. 시스템의 성능을 평가하고 필요에 따라 접근 방식을 조정하세요.
사용자 인터페이스와의 통합:
마지막으로, 이 시스템이 최종 사용자를 대상으로 한 것이라면, 사용자가 쿼리를 입력하고 참조된 정보와 함께 응답을 받을 수 있는 사용자 친화적인 인터페이스와 통합해야 합니다.
이 접근법의 효과성은 인덱싱된 데이터의 품질, 검색 모델의 능력, 그리고 생성 모델이 특정 사용 사례를 위해 얼마나 잘 훈련되거나 파인튜닝되었는지에 크게 의존한다는 점을 기억하세요.
참고: 저는 ChatGPT를 사용하여 정보를 생성하지만, 정보가 잘못되었다고 생각하면 ChatGPT의 정보를 게시하지 않습니다. 다시 말해, ChatGPT는 유용할 수 있지만, 제공된 정보가 정확한지 아닌지를 알아야 합니다. ChatGPT가 여기서 언급한 것을 정확히 구현하지는 않았지만, 이 분야에 대한 충분한 경험을 가지고 있어 이를 사용하거나 그 변형된 형태를 사용할 것입니다.
Discourse Chatbot 플러그인에는 OpenAI의 임베딩 API를 사용하여 임베딩을 생성하는 단계가 있습니다. 반면, Discourse AI 플러그인은 이 과정을 수행하지 않는 것으로 보입니다(OpenAI 대시보드에서 임베딩 활동이 표시되지 않음) 하지만 여전히 우리 포럼의 게시물을 검색합니다. 의미론적 검색을 위해 임베딩을 생성하지 않는다면, Discourse AI 플러그인은 포럼을 어떻게 검색하나요? 일반 텍스트 검색을 사용하나요? 아니면 자체적으로 임베딩을 계산하나요?