노드 사용자 지정
사용자가 직접 상담원 서비스 노드를 만들고 실행할 수 있도록 하려고 합니다. 기본 Phi-3 LLM 및 파리 가이드북 지식창고를 사용하지 않을 수도 있습니다. 따라서 노드를 사용자 지정하는 방법을 보여드리겠습니다!
사전 설정 구성
그리고 가이아넷/config.json
파일에는 LLM 설정, 지식창고용 벡터 컬렉션 및 프롬프트와 같은 모든 노드 구성 옵션이 들어 있습니다. 이 파일을 직접 편집하여 모델과 벡터 컬렉션을 사용하거나 다른 파일을 선택할 수 있습니다. config.json
노드를 초기화할 때
URL을 전달하기만 하면 됩니다. config.json
파일에 가이아넷 초기화
명령에 대한 URL, 즉 config.json
는 실제 텍스트 파일을 가리켜야 합니다.
몇 가지 사전 설정된 config.json
파일에서 선택할 수 있습니다. 이 저장소의. 예를 들어, 다음 명령은 Llama 3 8B 모델로 GaiaNet 노드를 초기화합니다:
구성 하위 명령
노드를 초기화한 후에도 노드의 구성을 변경할 수 있습니다. config.json
파일을 사용할 수 있습니다. 그러나 가장 좋은 방법은 가이아넷
CLI를 사용하면 더 안전하고 쉽게 변경할 수 있습니다.
노드 구성을 변경한 후에는 노드 구성이 변경된 후가이아넷 초기화
명령을 실행해야 합니다.
가이아넷 구성 목록
명령은 config.json
필드를 변경할 수 있습니다.
LLM 선택
Huggingface에는 10,000개 이상의 미세 조정된 오픈 소스 LLM이 있습니다. 각 모델마다 크기(큰 모델일수록 더 많은 기능을 제공하지만 실행 비용이 더 많이 듭니다), 고유한 기능(예를 들어, 일부는 긴 문맥 길이를 지원하거나 검열되지 않거나 수학에 뛰어납니다), 도메인 전문성(코딩 또는 의학 등), 스타일(일부는 코딩으로 응답하거나 해적처럼 말할 수 있습니다) 등이 다릅니다.
모델 파일, 프롬프트 템플릿 및 모델 컨텍스트 길이 매개변수를 변경하면 노드의 기본 LLM을 미세 조정된 다른 모델로 대체할 수 있습니다. 매개변수는 모델에 따라 다르지만 가이아넷 허깅페이스 조직의 모델 카드에서 찾을 수 있습니다.
예를 들어 다음 명령은 LLM을 Llama 3 8B 모델로 변경합니다:
라마 3 8B 모델에는 최소 16GB의 RAM이 필요합니다.
게시된 미세 조정 모델이 사용 사례에 적합하지 않은 경우, 다음 가이드에 따라 자체 LLM을 미세 조정할 수도 있습니다. GaiaNet 노드에서 자체적으로 미세 조정한 모델을 실행할 수 있습니다.
그리고
--chat-url
인수는 아래의 로컬 파일을 가리킬 수 있습니다.홈/가이아넷
를 사용할 수 있습니다. 이를 통해 비공개로 학습되거나 미세 조정된 LLM 모델 파일을 사용할 수 있습니다.
지식창고 선택하기
GaiaNet의 핵심 기능은 사용자가 노드에서 독점적인 지식 베이스를 생성하고 배포하여 LLM을 보완할 수 있다는 것입니다. 각 지식창고는 벡터 컬렉션의 스냅샷 파일입니다. 기성 지식 베이스를 사용할 수도 있지만, 자체 지식 베이스를 만드는 것이 좋습니다. 다음을 수행해야 합니다:
벡터 컬렉션의 URL을 지정합니다(즉, 벡터 컬렉션의
스냅샷
또는스냅샷.tar.gz
파일)의스냅샷
옵션을 선택합니다.이 벡터 컬렉션을 생성한 것과 동일한 임베딩 모델을 사용합니다.
수정
시스템_프롬프트
를 사용하여 모델에 배경 지식을 제공합니다.수정
래그 프롬프트
를 사용하여 벡터 컬렉션에서 컨텍스트가 검색될 때 모델에 질문에 답하도록 지시할 수 있습니다.
다음 예에서는 노드의 지식창고를 '파리 가이드북'에서 '런던 가이드북'으로 변경합니다:
그리고
--스냅샷
아래의 로컬 파일을 가리킬 수 있습니다.홈/가이아넷
를 공개 URL 대신 사용하세요. 이를 통해 비공개 벡터 컬렉션 스냅샷을 사용할 수 있습니다.
벡터의 품질 및 크기에 따라 벡터의 qdrant-
옵션을 사용하여 검색 동작을 사용자 지정할 수 있습니다.
qdrant-limit
는 프롬프트에 추가할 관련 문맥의 최대 개수를 설정합니다. 지식창고가 큰 텍스트 섹션으로 구성되어 있는 경우(즉, 각 책 장이 벡터인 경우) 이 값을 1 또는 2로 설정하여 프롬프트 길이를 적당한 크기로 제한하는 것이 좋습니다.qdrant-score-threshold
는 지식 콘텐츠가 '관련성'이 있는 것으로 간주되기 위해 충족해야 하는 최소 일치 '점수'입니다. 이는 지식 텍스트의 품질과 임베딩 모델에 따라 달라집니다. 일반적으로 이 점수는 0.5 이상이어야 프롬프트에서 관련 없는 문맥을 줄일 수 있습니다.
임베딩 모델은 텍스트를 인코딩하고 벡터로 변환하여 저장, 검색 및 검색할 수 있도록 합니다. 컨텍스트가 다른 자료의 경우 최적의 성능을 얻기 위해 다른 임베딩 모델이 필요할 수 있습니다. MTEB 리더보드는 임베딩 모델의 성능 벤치마크를 확인할 수 있는 좋은 곳입니다. Huggingface의 가이아넷 조직에서 많은 것을 찾을 수 있습니다.
프롬프트 사용자 지정
In config.json
를 사용하여 프롬프트를 사용자 지정할 수도 있습니다. 프롬프트는 노드에서 최적의 응답을 생성하도록 미세 조정된 LLM 또는 지식창고에 맞게 조정되는 경우가 많습니다.
그리고 --시스템 프롬프트
옵션은 시스템 프롬프트를 설정합니다. 노드의 배경과 "성격"을 제공합니다. 각 API 요청은 자체 시스템 프롬프트를 설정할 수 있습니다.
그리고 --rag-prompt
는 시스템 프롬프트(또는 사용자 쿼리) 뒤에 추가되는 프롬프트입니다. 이 프롬프트는 벡터 데이터베이스에서 검색된 RAG 컨텍스트를 소개합니다.
그리고 --rag-policy
옵션은 래그 프롬프트
와 컨텍스트가 일치해야 합니다. 기본적으로 이 값은 시스템 메시지
를 입력하면 시스템 프롬프트에 컨텍스트가 표시됩니다. 하지만 다음과 같이 설정할 수도 있습니다. 마지막 사용자 메시지
를 사용하여 래그 프롬프트
를 클릭하고 사용자가 보낸 최신 메시지 앞에 컨텍스트를 표시합니다.
다음 단계
구성을 변경한 후에는 노드를 다시 초기화하고 다시 시작해야 한다는 점을 잊지 마세요.
마지막 업데이트