장기적인 지식을 갖춘 가이아 노드
LLM 앱은 장기기억과 단기기억을 모두 필요로 합니다. 장기 기억에는 사실적 지식, 역사적 사실, 배경 이야기 등이 포함됩니다. 지식의 내적 일관성을 유지하기 위해 작은 텍스트 덩어리가 아닌 완전한 챕터로 문맥에 추가하는 것이 가장 좋습니다.
RAG 는 LLM 애플리케이션에 문맥 지식을 주입하는 중요한 기술입니다. 이는 정확도를 향상시키고 LLM의 환각을 줄여줍니다. 효과적인 RAG 애플리케이션은 실시간 및 사용자별 단기 메모리(청크)와 프롬프트 컨텍스트의 안정적인 장기 메모리(챕터)를 결합합니다.
애플리케이션의 장기 메모리는 안정적(심지어 불변)이기 때문에 LLM과 긴밀하게 결합된 벡터 데이터베이스에 패키징합니다. 클라이언트 앱은 프롬프트에서 단기 메모리를 조립하고 LLM 서버의 장기 메모리로 보완합니다. 우리는 이 접근 방식을 "서버 측 RAG"라고 부릅니다.
최신 LLM에서 지원하는 긴 문맥 길이는 텍스트 챕터로 가장 잘 표현되는 장기적인 지식에 특히 적합합니다.
Gaia 노드는 서버 측의 장기적인 지식에 기반한 OpenAI 호환 LLM 서비스입니다. 클라이언트 애플리케이션은 LLM이 이미 도메인이나 배경을 알고 있기 때문에 간단히 채팅하거나 실시간/단기 메모리를 제공할 수 있습니다.
예를 들어 ChatGPT에게 레이어 2란 무엇인가라는 질문을 하면 레이어 2는 컴퓨터 네트워크의 개념이라고 대답합니다. 하지만 블록체인 담당자에게 레이어 2가 무엇인지 물어보면 레이어 2는 원래 이더리움 네트워크를 확장하는 방법이라고 대답할 것입니다. 이것이 일반적인 LLM과 지식 보완 LLM의 차이점입니다.
외부 지식 준비와 지식이 보완된 LLM이 대화를 완성하는 방법을 다룰 것입니다. RAG 애플리케이션의 작동 방식을 학습했다면 Gaia로 RAG 애플리케이션 구축으로 이동하여 애플리케이션 구축을 시작하세요.
- 자신의 지식을 장기기억으로 저장할 수 있는 임베딩을 만드세요.
- 지식 보충형 LLM에 대한 사용자 쿼리의 수명 주기.
이 솔루션에서는 다음을 사용합니다.
- 사용자에게 응답을 생성하기 위한 Llama-3-8B와 같은 채팅 모델입니다.
- 임베딩을 생성하고 검색하기 위한 nomic-embed-text와 같은 텍스트 임베딩 모델입니다.
- 임베딩을 저장하기 위해 Qdrant와 같은 벡터 DB를 사용합니다.
지식 임베딩을 만들기 위한 워크플로
첫 번째 단계는 지식창고에 임베딩을 생성하고 벡터 DB에 임베딩을 저장하는 것입니다.
우선 긴 텍스트를 섹션(즉, 청크)으로 분할합니다. 모든 LLM에는 최대 컨텍스트 길이가 있습니다. 텍스트가 너무 길면 모델이 컨텍스트를 읽을 수 없습니다. Gaia 노드에서 가장 많이 사용되는 규칙은 콘텐츠를 한 장에 넣는 것입니다. 두 청크 사이에 빈 줄을 삽입하는 것을 잊지 마세요. 다른 알고리즘을 사용하여 텍스트를 청크로 묶을 수도 있습니다.
문서를 청크 처리한 후 임베딩 모델을 활용하여 이러한 청크를 임베딩으로 변환할 수 있습니다. 임베딩 모델은 텍스트를 기반으로 임베딩을 생성하고 유사한 임베딩을 검색하도록 학습됩니다. 우리는 사용자 쿼리 과정에서 후자의 기능을 사용할 것입니다.
또한 임베딩을 저장할 벡터 DB가 있어야 언제든지 임베딩을 빠르게 검색할 수 있습니다.
Gaia 노드에서 마지막으로 사용할 임베딩이 포함된 데이터베이스 스냅샷을 얻게 됩니다. Gaia 웹 도구, 일반 텍스트 파일 및 마크다운 파일을 사용하여 임베딩을 만드는 방법을 확인하세요.
지식 보충형 LLM에서 사용자 쿼리의 수명 주기
다음으로, 지식이 보완된 LLM에서 사용자 쿼리의 수명 주기에 대해 알아보겠습니다. Gaia 지식이 있는 Gaia 노드를 예로 들어보겠습니다.
질문하기
노드에 인간 언어로 질문을 보내면 임베딩 모델이 먼저 질문을 임베딩으로 변환합니다.
유사한 임베딩 검색
그런 다음 임베딩 모델은 Qdrant 벡터 DB에 저장된 모든 임베딩을 검색하여 질문 임베딩과 유사한 임베딩을 검색합니다.
사용자 쿼리에 대한 응답
임베딩 노드는 검색된 임베딩을 채팅 모델에 반환합니다. 채팅 모델은 검색된 임베딩과 사용자의 입력 질문을 컨텍스트로 사용하여 최종적으로 쿼리에 답변합니다.