Personalização do nó
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ó!
Configurações pré-definidas
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 neste repositório. Por exemplo, o seguinte comando inicializa um nó GaiaNet com um modelo Llama 3 8B:
O subcomando config
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).
Fazer alterações no arquivo de modelo, no modelo de prompt e nos parâmetros de comprimento do contexto do modelo permitirá que você substitua o LLM padrão do seu nó por um modelo alternativo ajustado. Os parâmetros variam dependendo do modelo, mas eles podem ser encontrados nos cartões de modelo da organização Huggingface da gaianet.
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.
Se nenhum dos modelos aperfeiçoados publicados for perfeito para o seu caso de utilização, pode também aperfeiçoar o seu próprio LLM seguindo estes guias. O seu nó GaiaNet pode executar os seus próprios modelos ajustados.
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.
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. Pode utilizar bases de conhecimentos já prontas, mas encorajamo-lo a criar a sua própria base de conhecimentos. Terá de fazer o seguinte:
especificam o URL para a coleção de vectores (ou seja, o
instantâneo
ousnapshot.tar.gz
) no ficheiroinstantâ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":
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.
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. A tabela de classificação do MTEB é um bom local para ver as referências de desempenho dos modelos de incorporação. Pode encontrar muitos deles na organização gaianet na Huggingface.
Personalizar avisos
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.
Próximas etapas
Lembre-se de reinicializar e reiniciar o nó depois de fazer alterações na configuração.
Última atualização