Queremos permitir-lhe criar e executar o seu próprio nó de serviço de agente. Provavelmente não utilizará a base de conhecimento padrão do Phi-3 LLM e do guia de Paris. Por isso, vamos mostrar-lhe como personalizar o seu nó!
O gaianet/config.json contém todas as opções de configuração do nó, como as definições do LLM, a coleção de vectores para a base de conhecimentos e os avisos. Pode editar este ficheiro diretamente para utilizar os seus modelos e colecções de vectores, ou pode selecionar uma config.json quando se inicializa o nó.
Basta passar um URL para o config.json no seu ficheiro gaianet init o URL para o comando config.json deve apontar para o ficheiro de texto real.
Dispomos de várias opções pré-definidas config.json ficheiros à escolha . Por exemplo, o seguinte comando inicializa um nó GaiaNet com um modelo Llama 3 8B:
Mesmo depois de inicializar o nó, é possível fazer alterações na sua configuração editando o config.json ficheiro. No entanto, é uma boa prática utilizar o ficheiro gaianet CLI para efetuar as alterações, uma vez que é mais seguro e mais fácil.
Depois de terem sido efectuadas quaisquer alterações à configuração do nó, ogaianet init tem de ser executado.
lista de configuração da gaianet mostra o comando config.json campos que podem ser alterados.
Seleção de um LLM
A Huggingface tem mais de 10.000 LLMs de código aberto e afinados para escolher. Cada um deles tem tamanhos diferentes (os modelos maiores são mais capazes, mas mais caros de executar), capacidades únicas (por exemplo, alguns podem suportar grandes comprimentos de contexto, não têm censura, ou são excelentes em matemática), experiência de domínio (como codificação ou medicina), e/ou estilos (alguns respondem em código, podem falar como um pirata, etc).
Alterar os parâmetros do ficheiro de modelo, do modelo de prompt e do comprimento do contexto do modelo permitir-lhe-á substituir o LLM predefinido do seu nó por um modelo alternativo ajustado. Os parâmetros variam consoante o modelo, mas podem ser encontrados na secção modelos de cartões.
Por exemplo, o seguinte comando altera o LLM para um modelo Llama 3 8B:
O modelo llama 3 8B requer pelo menos 16 GB de RAM.
O --chat-url pode apontar para um ficheiro local em $HOME/gaianet em vez de um URL público. Isto permite-lhe utilizar um ficheiro de modelo LLM treinado ou afinado de forma privada.
especificam o URL para a coleção de vectores (ou seja, o instantâneo ou snapshot.tar.gz ) no ficheiro instantâneo opção.
utilizar o mesmo modelo de incorporação que gerou esta coleção de vectores.
modificar o sistema_prompt para dar ao modelo conhecimentos de base.
modificar o rag_prompt para instruir o modelo a responder à pergunta quando o contexto é recuperado da coleção de vectores.
O exemplo seguinte altera a base de conhecimentos no nó de "Paris guidebook" para "London guidebook":
configuração da gaianet \
--snapshot 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 \
--embedding-ctx-size 8192 \
--system-prompt "Você é um guia turístico em Londres, Reino Unido. Por favor, responda corretamente à pergunta de um visitante de Londres." \
--rag-prompt "O texto seguinte é o contexto para a pergunta do utilizador.\n----------------\n"
O --snapshot pode apontar para um ficheiro local em $HOME/gaianet em vez de um URL público. Isto permite-lhe utilizar um instantâneo de coleção de vectores privado.
Dependendo da qualidade e do tamanho dos vectores, poderá também ser necessário alterar o qdrant- opções para personalizar o comportamento de recuperação.
qdrant-limit define o número máximo de contextos relevantes a adicionar à pergunta. Se a sua base de conhecimentos consistir em grandes secções de texto (ou seja, cada capítulo de livro é um vetor), deve provavelmente definir este valor como 1 ou 2 para limitar o comprimento do pedido a um tamanho razoável.
qdrant-score-threshold é a "pontuação" mínima de correspondência que o conteúdo do conhecimento deve atingir para ser considerado "relevante". Isto depende da qualidade do texto de conhecimento e do modelo de incorporação. Em geral, esta pontuação deve ser superior a 0,5 para reduzir o contexto irrelevante no prompt.
Em config.json, também é possível personalizar os prompts. Os prompts são muitas vezes adaptados para o LLM afinado ou para a base de conhecimento para gerar respostas óptimas do nó.
O --system-prompt define um prompt do sistema. Fornece o fundo e a "personalidade" do nó. Cada pedido de API pode definir o seu próprio aviso do sistema.
O --rag-prompt é a mensagem a anexar após a mensagem do sistema (ou consulta do utilizador). Introduz o contexto RAG recuperado da base de dados vetorial, que o segue.
O --rag-policy especifica onde a opção pano-prompt e o contexto deve ir. Por defeito, o seu valor é mensagem do sistema e coloca o contexto no prompt do sistema. Mas também pode definir para última mensagem do utilizador, que coloca o pano-prompt e contexto em frente à última mensagem do utilizador.
Lembre-se de reinicializar e reiniciar o nó depois de fazer alterações na configuração.
# Se o nó estiver a funcionar:
gaianet stop
gaianet init
gaianet start
Se nenhum dos modelos aperfeiçoados publicados for perfeito para o seu caso de utilização, também pode aperfeiçoar o seu próprio LLM seguindo . O seu nó GaiaNet pode executar os seus próprios modelos aperfeiçoados.
Seleção de uma base de conhecimentos
Uma caraterística fundamental do GaiaNet é que os utilizadores podem criar e implementar bases de conhecimentos próprias no nó para complementar o LLM. Cada base de conhecimento é um ficheiro instantâneo para uma coleção de vectores. É possível utilizar bases de conhecimentos já prontas, mas encorajamo-lo a . É necessário fazer o seguinte:
O modelo de incorporação codifica e transforma o texto em vectores para que possa ser armazenado, pesquisado e recuperado. Para material de contexto diferente, pode ser necessário um modelo de incorporação diferente para obter o melhor desempenho. O modelo é um bom sítio para ver as referências de desempenho dos modelos de incorporação. Pode encontrar muitos deles na secção .