Prepare seus dados para ajustar um modelo de conclusão de bate-papo

Concluído

Ao decidir que deseja ajustar um modelo de linguagem, você precisa identificar o conjunto de dados que pode usar para ajustar seu modelo de linguagem.

Semelhante a qualquer modelo de aprendizado de máquina, a qualidade do conjunto de dados tem um grande efeito na qualidade do seu modelo. Embora você precise de menos dados do que quando treinaria um modelo de linguagem do zero, ainda pode precisar de dados suficientes para maximizar a consistência do comportamento do modelo desejado. A quantidade de dados de que necessita depende do seu caso de utilização.

Quando você ajusta um modelo de idioma para conclusão de bate-papo, os dados usados para ajustar um modelo são uma coleção de conversas de exemplo. Mais especificamente, os dados devem conter três componentes:

  • A mensagem do sistema
  • A mensagem do utilizador
  • Resposta do assistente

As três variáveis se reúnem em um arquivo JSON Lines ou JSONL. Por exemplo, uma linha nesse conjunto de dados pode se parecer com:

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}

O conjunto de dados deve mostrar o comportamento ideal do modelo. Você pode criar esse conjunto de dados com base no histórico de bate-papo de um aplicativo de bate-papo que você tem. Algumas coisas a ter em mente quando você usa dados reais são:

  • Remova qualquer informação pessoal ou sensível.
  • Não se concentre apenas na criação de um grande conjunto de dados de treinamento, mas também garanta que seu conjunto de dados inclua um conjunto diversificado de exemplos.

Você pode incluir várias voltas de uma conversa em uma única linha no conjunto de dados. Se quiser ajustar apenas mensagens de assistente específicas, você pode, opcionalmente, usar o weight par chave-valor. Quando o peso é definido como 0, a mensagem é ignorada, quando você define como 1, a mensagem é incluída para treinamento.

Um exemplo de um formato de arquivo de bate-papo multiturno com pesos:

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}

Ao preparar seu conjunto de dados para ajustar um modelo de linguagem, você deve entender os comportamentos desejados do modelo, criar um conjunto de dados no formato JSONL e garantir que os exemplos incluídos sejam de alta qualidade e diversos. Ao preparar seu conjunto de dados, você tem uma chance maior de que o modelo ajustado melhore o desempenho do seu aplicativo de chat.