주요 콘텐츠로 건너뛰기
버전: 1.0.0

가이아넷 노드 사용자 지정

GaiaNet 프로젝트의 핵심 목표는 각 개인이 자체적으로 에이전트 서비스 노드를 만들고 운영할 수 있도록 하는 것입니다. 에이전트 서비스 노드를 만들고 운영할 수 있도록 하는 것입니다. 모든 가능성은 기본 Llama 3.2 3B LLM 및 파리 가이드북 지식창고로 노드를 실행하지는 않을 것입니다. 이 장에서는 노드를 사용자 정의하는 방법에 대해 설명합니다.

사전 설정 구성

LLM 설정, 지식창고용 벡터 수집, 프롬프트 등 모든 노드 구성 옵션이 여기에 있습니다, 는 모두 가이아넷/config.json 파일로 이동합니다. 이 파일을 직접 편집하여 모델 및 벡터 컬렉션을 사용할 수 있습니다. 또는 다른 config.json 노드를 초기화할 때 노드를 초기화할 때 config.json 파일 파일에 가이아넷 초기화 명령을 실행합니다. 몇 가지 사전 설정된 config.json 파일에서 선택할 수 있습니다. 이 저장소의. 예를 들어, 다음 명령은 Llama 3 8B 모델로 GaiaNet 노드를 초기화합니다.

가이아넷 초기화 --config https://raw.githubusercontent.com/GaiaNet-AI/node-configs/main/llama-3-8b-instruct/config.json

URL은 config.json 는 실제 텍스트 파일을 가리켜야 합니다. (즉 raw.githubusercontent.com 해당 파일에 대한 GitHub HTML 페이지 대신 GitHub 링크의 경우 URL).

구성 하위 명령

노드를 초기화한 후에도 노드의 구성을 변경할 수 있습니다. config.json 파일 파일에 직접 액세스할 수 있습니다. 하지만 더 쉽고 안전한 방법은 가이아넷 CLI를 사용하여 변경할 수 있습니다.

반드시 실행해야 합니다. 가이아넷 초기화 노드 구성을 변경한 후 다시 입력합니다.

다음 명령은 config.json 필드를 변경할 수 있습니다.

가이아넷 구성 목록

이제 몇 가지 예를 살펴보겠습니다.

LLM 선택

허깅페이스에는 10,000개 이상의 세밀하게 조정된 오픈 소스 LLM이 있습니다. 각 모델마다 크기(더 큰 모델은 더 많은 기능을 제공하지만 실행 비용이 더 많이 듭니다), 고유한 기능(예: 무수정, 수학이나 추론에 탁월함, 긴 문맥 지원 등), 도메인 전문성(예: 의학, 코딩), 스타일(예: 교사나 해적처럼 말하기, 코드로 응답하기, 대화 따라하기) 등이 다릅니다.

GaiaNet 노드의 기본 LLM을 대안으로 대체하려면 미세 조정된 모델로 교체하려면 모델 파일, 프롬프트 템플릿 및 모델 컨텍스트 길이 매개변수를 변경해야 합니다. 이러한 매개변수는 모델에 따라 다르지만 GaiaNet Huggingface 조직의 모델 카드에서 찾을 수 있습니다. 예를 들어 다음 명령은 LLM을 Llama 3 8B 모델로 변경합니다.

가이아넷 구성 \
--chat-url https://huggingface.co/gaianet/Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q5_K_M.gguf \
--chat-ctx-size 4096 \.
--프롬프트 템플릿 라마-3-챗

라마 3 8B 모델에는 최소 16GB의 RAM이 필요합니다.

게시된 미세 조정된 모델이 사용 사례에 적합하지 않은 경우, 다음 가이드에 따라 자체 LLM을 미세 조정할 수도 있습니다. GaiaNet 노드에서 자체적으로 미세 조정한 모델을 실행할 수 있습니다.

그리고 --chat-url 인수는 아래의 로컬 파일을 가리킬 수 있습니다. 홈/가이아넷 를 공개 URL 대신 사용할 수 있습니다. 이를 통해 비공개로 학습되거나 미세 조정된 LLM 모델 파일을 사용할 수 있습니다.

지식창고 선택하기

GaiaNet의 핵심 기능은 사용자가 노드에서 독점 지식 베이스를 생성하고 배포하여 LLM을 보완할 수 있다는 것입니다. 보완할 수 있다는 것입니다. 각 지식창고는 벡터 컬렉션의 스냅샷 파일입니다. 자체 지식 베이스를 만들 것을 권장합니다. 하지만 기성 지식창고를 사용할 수도 있습니다. 다음을 수행해야 합니다.

  • 벡터 컬렉션의 URL을 지정합니다(즉, 벡터 컬렉션의 스냅샷 또는 스냅샷.tar.gz 파일)의 스냅샷 옵션을 선택합니다.
  • 이 벡터 컬렉션을 생성한 것과 동일한 임베딩 모델을 사용합니다.
  • 수정 시스템_프롬프트 를 사용하여 모델에 배경 지식을 제공합니다.
  • 수정 래그 프롬프트 를 사용하여 벡터 컬렉션에서 컨텍스트가 검색될 때 모델에 질문에 답하도록 지시할 수 있습니다.

다음 예에서는 노드의 지식창고를 '파리 가이드북'에서 '런던 가이드북'으로 변경합니다.

가이아넷 구성 \
--스냅샷 https://huggingface.co/datasets/gaianet/london/resolve/main/london_768_nomic-embed-text-v1.5-f16.snapshot.tar.gz \
--embedding-url https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf \
임베딩-ctx-size 8192 \ --embedding-ctx-size 8192 \
--시스템 프롬프트 "귀하는 영국 런던의 여행 가이드입니다. 런던 방문객의 질문에 정확하게 답변해 주세요." \
--rag-prompt "다음 텍스트는 사용자 질문에 대한 컨텍스트입니다.\n----------------\n"

그리고 --스냅샷 아래의 로컬 파일을 가리킬 수 있습니다. 홈/가이아넷 를 공개 URL 대신 사용하세요. 이를 통해 비공개 벡터 컬렉션 스냅샷을 사용할 수 있습니다.

벡터의 품질 및 크기에 따라 벡터의 qdrant- 옵션을 사용하여 검색 동작을 사용자 지정할 수 있습니다.

  • qdrant-limit 는 프롬프트에 추가할 관련 문맥의 최대 개수를 설정합니다. 지식창고가 큰 텍스트 섹션으로 구성되어 있는 경우(즉, 각 책 장이 벡터인 경우) 이 값을 1 또는 2로 설정하여 프롬프트 길이를 적당한 크기로 제한하는 것이 좋습니다.
  • qdrant-score-threshold 는 지식 콘텐츠가 '관련성'이 있는 것으로 간주되기 위해 충족해야 하는 최소 일치 '점수'입니다. 이는 지식 텍스트의 품질과 임베딩 모델에 따라 달라집니다. 일반적으로 이 점수는 0.5 이상이어야 프롬프트에서 관련 없는 문맥을 줄일 수 있습니다.

임베딩 모델은 텍스트를 인코딩하고 벡터로 변환하여 저장, 검색 및 검색할 수 있도록 합니다. 다양한 최적의 성능을 달성하기 위해 다른 임베딩 모델이 필요할 수 있습니다. MTEB 리더보드는 임베딩의 성능에 대한 벤치마크를 확인할 수 있는 좋은 곳입니다. Huggingface의 가이아넷 조직에서 많은 것을 찾을 수 있습니다.

프롬프트 사용자 지정

In config.json를 클릭하면 프롬프트를 사용자 지정할 수도 있습니다. 프롬프트는 종종 세밀하게 조정된 LLM 또는 지식 기반으로 노드에서 최적의 응답을 생성할 수 있습니다.

그리고 --시스템 프롬프트 옵션은 시스템 프롬프트를 설정합니다. 노드의 배경과 "성격"을 제공합니다. 각 API 요청은 자체 시스템 프롬프트를 설정할 수 있습니다.

그리고 --rag-prompt 는 시스템 프롬프트(또는 사용자 쿼리) 뒤에 추가되는 프롬프트입니다. 이 프롬프트는 벡터 데이터베이스에서 검색된 RAG 컨텍스트를 소개합니다.

그리고 --rag-policy 옵션은 래그 프롬프트 와 컨텍스트가 일치해야 합니다. 기본적으로 이 값은 시스템 메시지 를 입력하면 시스템 프롬프트에 컨텍스트가 표시됩니다. 하지만 다음과 같이 설정할 수도 있습니다. 마지막 사용자 메시지를 를 래그 프롬프트 를 클릭하고 사용자의 최신 메시지 앞에 문맥을 표시합니다.

다음 단계

구성을 변경한 후에는 노드를 다시 초기화하고 다시 시작해야 한다는 점을 잊지 마세요.

# 노드가 실행 중인 경우
# 가이아넷 중지

가이아넷 초기화
가이아넷 시작

다음으로 다음을 수행할 수 있습니다.

즐거운 시간 보내세요!