Principais Destaques
- Definição de Template de Chat: Um template de chat no Mistral define papéis estruturados (como “usuário” e “assistente”) e regras de formatação que orientam como os dados conversacionais são processados, garantindo interações coerentes e sensíveis ao contexto na geração de diálogos orientada por IA.
- Guia de Uso do Template de Chat Mistral: Este guia abrangente inclui a configuração do ambiente, construção e aplicação do template de chat.
- Eficiência do Pipeline Automatizado: A introdução de um pipeline de chat automatizado simplifica a aplicação de templates de chat, melhorando a eficiência na geração de respostas adaptadas a contextos específicos de conversa.
Introdução
Curioso sobre como dominar o uso do template de chat Mistral? Mergulhe no nosso guia passo a passo abrangente! Antes de nos aprofundarmos no guia do usuário, vamos dissecar como um template de chat funciona para aprimorar seu entendimento. Além disso, apresentaremos um pipeline de chat automatizado para aumentar a eficiência. Se você está intrigado, continue lendo!
O que é o Template de Chat Mistral?
Resumindo, “Template de Chat Mistral” significa template de chat para modelos Mistral.
Série de Modelos Mistral

A série de modelos Mixtral faz parte dos modelos de IA generativa de código aberto da Mixtral AI, disponíveis sob a licença Apache 2.0. A Mistral AI oferece os modelos Mixtral como código aberto, permitindo que desenvolvedores e empresas os usem e personalizem para diversas aplicações. Especificamente, existem duas versões dos modelos Mixtral: Mixtral 8x7B e Mixtral 8x22B.
Apresentando o Template de Chat
A utilização de LLMs para aplicações de chat está se tornando cada vez mais comum. Diferentemente dos modelos de linguagem tradicionais que processam texto em uma sequência contínua, os LLMs em um ambiente de chat lidam com um diálogo contínuo composto por múltiplas mensagens. Cada mensagem neste diálogo é caracterizada por um papel específico, como “usuário” ou “assistente”, juntamente com o texto real da mensagem.
Assim como no processo de tokenização, diferentes LLMs exigem formatos de entrada distintos para interações de chat. Para lidar com isso, templates de chat foram incorporados como um recurso. Esses templates são integrados à funcionalidade do tokenizador, delineando o método para transformar uma lista de mensagens conversacionais em uma única string tokenizável específica do modelo.

Como Funciona o Template de Chat?
Estrutura da Mensagem
Cada mensagem em um template de chat é tipicamente representada como um objeto ou dicionário contendo dois atributos principais:
- Papel: Especifica o papel do falante, como “usuário” ou “assistente”.
- Conteúdo: O texto real ou conteúdo da mensagem.
{"role": "user", "content": "Olá, como vai?"}
{"role": "assistant", "content": "Estou muito bem. Como posso ajudá-lo hoje?"}
Regras de Formatação
Os templates de chat definem como essas mensagens são concatenadas ou separadas para formar uma string de entrada coerente para o modelo. Isso pode envolver adicionar espaços em branco, pontuação ou tokens especiais para indicar a estrutura da conversa.
Exemplo:
- Template simples (BlenderBot):
" Olá, como vai? Estou muito bem. Como posso ajudá-lo hoje? Gostaria de mostrar como o template de chat funciona!</s>"
- Template complexo (Mistral-7B-Instruct):
"<s>[INST] Olá, como vai? [/INST]Estou muito bem. Como posso ajudá-lo hoje?</s> [INST] Gostaria de mostrar como o template de chat funciona! [/INST]"
No Mistral-7B-Instruct, por exemplo, os tokens [INST] e [/INST] são usados para demarcar mensagens do usuário, indicando informações estruturais específicas que o modelo foi treinado para interpretar.
Integração com o Tokenizador
Os templates de chat são integrados ao tokenizador do modelo para garantir que os dados de conversa formatados sejam convertidos em um formato tokenizado que o modelo possa processar efetivamente. Essa tokenização é crucial para que o modelo gere respostas apropriadas com base no contexto fornecido pela conversa.
Como Uso o Template de Chat Mistral?
Para usar o modelo Mistral-7B-Instruct-v0.2 com templates de chat para geração conversacional, você pode seguir estes passos com base nas informações fornecidas:
Configuração e Preparação
Primeiro, certifique-se de ter as importações e configurações necessárias para seu ambiente, incluindo a obtenção da API do modelo Mistral pela Novita AI:
from transformers import AutoModelForCausalLM, AutoTokenizer
# Assumindo que você já importou o OpenAI e configurou o cliente
# from openai import OpenAI
# client = OpenAI(base_url="https://api.novita.ai/v3/openai", api_key="<YOUR Novita AI API Key>")
# Defina seu modelo e tokenizador
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Defina o dispositivo (CPU ou GPU)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
Construindo o Template de Chat
Defina sua conversa como uma lista de mensagens, onde cada mensagem inclui o papel (“usuário” ou “assistente”) e o conteúdo da mensagem:
messages = [
{"role": "user", "content": "Qual é o seu condimento favorito?"},
{"role": "assistant", "content": "Bem, eu gosto bastante de um bom espremido de limão fresco. Ele adiciona a quantidade certa de sabor cítrico ao que estou cozinhando na cozinha!"},
{"role": "user", "content": "Você tem receitas de maionese?"}
]
Aplicando o Template de Chat
Use o método apply_chat_template() fornecido pelo tokenizador para formatar as mensagens de acordo com os requisitos do template de chat do Mistral:
encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")
model_inputs = encodeds.to(device)
Gerando Respostas
Gere respostas usando o modelo Mistral:
generated_ids = model.generate(model_inputs['input_ids'], max_new_tokens=1000, do_sample=True)
decoded_responses = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
print(decoded_responses)
Explicação:
- Tokenização: O método
apply_chat_template()converte a lista de mensagens (messages) em um formato que o modelo Mistral espera. Ele lida com a adição de tokens necessários como[INST]e[/INST]para delimitar as entradas do usuário conforme especificado. - Inferência do Modelo:
model.generate()é usado para gerar respostas com base na entrada formatada. Ajustemax_new_tokensconforme necessário para controlar o comprimento das respostas geradas.do_sample=Trueativa a amostragem da distribuição do modelo, o que pode melhorar a diversidade das respostas. - Decodificação:
tokenizer.batch_decode()decodifica os IDs de token gerados em texto legível, ignorando tokens especiais como<s>and</s>.
Notas:
- Certifique-se de que seu ambiente tenha recursos suficientes (CPU/GPU) para lidar com a inferência do modelo, especialmente com modelos maiores como o Mistral-7B.
- Ajuste parâmetros como
max_new_tokensedo_samplecom base nos requisitos específicos da sua aplicação para comprimento da resposta e estratégia de geração.
Como Usar um Pipeline Automático para Chat?
Além de usar templates de chat, como o template de chat Mistral, o pipeline automatizado de geração de texto fornecido pelo Hugging Face Transformers simplifica a integração de modelos de IA conversacional. Usar o “TextGenerationPipeline”, que agora inclui funcionalidades anteriormente tratadas pelo obsoleto “ConversationalPipeline”, torna direto gerar respostas com base em mensagens de chat estruturadas.
Pontos Principais
- Integração do Pipeline: O “TextGenerationPipeline” suporta entradas de chat, lidando com tokenização e aplicação de template de chat de forma transparente.
- Funcionalidade Obsoleta: A classe mais antiga “ConversationalPipeline” foi descontinuada em favor da abordagem unificada com o “TextGenerationPipeline”.
- Exemplo com Modelo Mistral: Demonstra o uso do pipeline com o modelo Mistral-7B-Instruct-v0.2. As mensagens são estruturadas com papéis (“system” ou “user”) e conteúdo, formatadas de acordo com o template de chat do Mistral.
- Simplificação do Uso: Inicializar o pipeline e passar uma lista de mensagens estruturadas automatiza a tokenização e aplicação do template.
- Exemplo de Saída: A resposta do assistente é gerada com base na mensagem de entrada, mantendo o contexto e estilo especificados pelo modelo Mistral.
Exemplo de Código
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
# Inicialize o pipeline de geração de texto com o modelo Mistral
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
pipe = pipeline("text-generation", model=model_name)
# Defina mensagens de chat com papéis e conteúdo
messages = [
{"role": "system", "content": "Você é um chatbot amigável."},
{"role": "user", "content": "Explique o conceito de inteligência artificial."},
]
# Gere resposta usando o pipeline
response = pipe(messages, max_new_tokens=128)[0]['generated_text']
# Imprima a resposta do assistente
print(response)
Neste exemplo de código:
- Inicialização: O pipeline é inicializado com o modelo Mistral-7B-Instruct-v0.2 usando
pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.2"). - Formato da Mensagem: As mensagens são estruturadas com papéis (“system” ou “user”) e conteúdo, aderindo ao formato do template de chat do Mistral.
- Geração de Resposta: O pipeline lida com a tokenização e aplica o template de chat automaticamente. A resposta gerada reflete o contexto de entrada e o estilo especificado pelo modelo Mistral.
Essa abordagem aproveita os recursos do Hugging Face Transformers para simplificar a implementação de modelos de IA conversacional, garantindo integração eficiente e eficaz em aplicações baseadas em chat.
Aplicações Reais do Template de Chat
Chatbots de Suporte ao Cliente:
- Cenário: Um cliente interage com um chatbot para solução de problemas ou assistência.
- Template de Chat: O template estrutura a conversa com papéis como “usuário” (cliente) e “assistente” (chatbot), garantindo que o chatbot entenda as consultas do usuário e forneça respostas apropriadas.
- Benefícios: Melhora a eficiência na resolução de problemas dos clientes, mantendo o contexto em várias interações.
Chatbots Educacionais:
- Cenário: Alunos interagem com chatbots para fazer perguntas, buscar explicações ou receber assistência de tutoria.
- Template de Chat: Papéis estruturados como “aluno” e “tutor” orientam como o conteúdo educacional é apresentado e discutido.
- Benefícios: Facilita experiências de aprendizado personalizadas, adaptando a entrega de conteúdo com base nas consultas dos alunos e objetivos de aprendizado.
Consulta de Saúde:
- Cenário: Pacientes interagem com assistentes virtuais de saúde para aconselhamento médico, verificação de sintomas ou agendamento de consultas.
- Template de Chat: Define como as entradas do paciente (sintomas, preocupações) e as respostas/conselhos de saúde são estruturados.
- Benefícios: Garante comunicação precisa de informações médicas, adesão às regulamentações de privacidade e continuidade do cuidado.
Simulações de Entrevista de Emprego:
- Cenário: Candidatos a emprego participam de entrevistas virtuais conduzidas por entrevistadores orientados por IA.
- Template de Chat: Estrutura o diálogo da entrevista com papéis como “entrevistador” e “candidato”, guiando o fluxo de perguntas e respostas.
- Benefícios: Fornece prática realista de entrevista, feedback sobre habilidades de comunicação e preparação para entrevistas reais.
Conclusão
Em conclusão, dominar o uso do template de chat Mistral envolve entender sua abordagem estruturada para processar dados conversacionais. Exploramos como os templates de chat funcionam, particularmente no contexto de modelos Mistral como o Mistral-7B-Instruct-v0.2. Ao dissecar esses componentes, destacamos a integração perfeita dos templates de chat com o tokenizador e modelo Mistral, garantindo geração de diálogo coerente e sensível ao contexto. Além disso, apresentamos um pipeline de chat automatizado que simplifica ainda mais o processo, substituindo métodos obsoletos por uma abordagem unificada através do TextGenerationPipeline.
Com esses insights e ferramentas, desenvolvedores e empresas podem aproveitar efetivamente o poder do Mistral para diversas aplicações em sistemas conversacionais orientados por IA.
Novita AI é a plataforma completa em nuvem que impulsiona suas ambições de IA. Com APIs perfeitamente integradas, computação serverless e aceleração GPU, fornecemos as ferramentas econômicas que você precisa para construir e escalar rapidamente seu negócio orientado por IA. Elimine as dores de cabeça de infraestrutura e comece gratuitamente — a Novita AI torna seus sonhos de IA realidade.
Leitura Recomendada
Apresentando o Modelo Mixtral 8x7B da Mistral: Tudo que Você Precisa Saber
