Inteligência artificial
Mistral 2 e Mistral NeMo: Um Guia Abrangente para os Últimos LLM Vindos de Paris

Fundada por ex-alunos do Google’s DeepMind e Meta, a startup com sede em Paris, Mistral AI tem feito ondas na comunidade de IA desde 2023.
A Mistral AI primeiro chamou a atenção do mundo com seu modelo de estreia, Mistral 7B, lançado em 2023. Esse modelo de 7 bilhões de parâmetros rapidamente ganhou tração por seu desempenho impressionante, superando modelos maiores como Llama 2 13B em vários benchmarks e até rivalizando Llama 1 34B em muitas métricas. O que distinguiu Mistral 7B não foi apenas seu desempenho, mas também sua acessibilidade – o modelo podia ser facilmente baixado do GitHub ou até via um torrent de 13,4 gigabytes, tornando-o prontamente disponível para pesquisadores e desenvolvedores em todo o mundo.
A abordagem não convencional da empresa para lançamentos, frequentemente dispensando papers tradicionais, blogs ou releases de imprensa, provou ser notavelmente eficaz em capturar a atenção da comunidade de IA. Essa estratégia, combinada com seu compromisso com princípios de código aberto, posicionou a Mistral AI como um jogador formidável no cenário de IA.
A ascensão rápida da empresa na indústria é ainda mais evidenciada por seu recente sucesso de financiamento. A empresa alcançou uma valorização estonteante de $2 bilhões após uma rodada de financiamento liderada pela Andreessen Horowitz. Isso veio na sequência de uma rodada de sementes histórica de $118 milhões – a maior da história europeia – demonstrando a imensa fé que os investidores têm na visão e nas capacidades da Mistral AI.
Além de seus avanços tecnológicos, a Mistral AI também esteve ativamente envolvida em moldar a política de IA, particularmente em discussões em torno do EU AI Act, onde defendeu uma regulação reduzida na IA de código aberto.
Agora, em 2024, a Mistral AI mais uma vez elevou a barra com dois modelos inovadores: Mistral Large 2 (também conhecido como Mistral-Large-Instruct-2407) e Mistral NeMo. Neste guia abrangente, mergulhamos fundo nas características, desempenho e aplicações potenciais desses impressionantes modelos de IA.
Especificações-chave do Mistral Large 2 incluem:
- 123 bilhões de parâmetros
- 128k janela de contexto
- Suporte para dezenas de idiomas
- Proficiência em 80+ idiomas de codificação
- Capacidades avançadas de chamada de função
O modelo é projetado para empurrar os limites da eficiência de custo, velocidade e desempenho, tornando-o uma opção atraente para ambos os pesquisadores e as empresas que buscam aproveitar a IA de ponta.
Mistral NeMo: O Novo Modelo Menor
Enquanto o Mistral Large 2 representa o melhor dos modelos de grande escala da Mistral AI, o Mistral NeMo, lançado em julho de 2024, segue uma abordagem diferente. Desenvolvido em colaboração com a NVIDIA, o Mistral NeMo é um modelo mais compacto de 12 bilhões de parâmetros que ainda oferece capacidades impressionantes:
- 12 bilhões de parâmetros
- 128k contexto janela
- Desempenho de ponta em sua categoria de tamanho
- Apache 2.0 licença para uso aberto
- Quantização-consciente treinamento para inferência eficiente
O Mistral NeMo é posicionado como um substituto drop-in para sistemas que atualmente usam o Mistral 7B, oferecendo desempenho aprimorado enquanto mantém a facilidade de uso e compatibilidade.
Recursos e Capacidades-Chave
Tanto o Mistral Large 2 quanto o Mistral NeMo compartilham vários recursos-chave que os destacam no cenário de IA:
- Janelas de Contexto Grandes: Com comprimentos de token de contexto de 128k, ambos os modelos podem processar e entender peças de texto muito mais longas, permitindo saídas mais coerentes e relevantes contextualmente.
- Suporte Multilíngue: Os modelos se destacam em uma ampla gama de idiomas, incluindo inglês, francês, alemão, espanhol, italiano, chinês, japonês, coreano, árabe e hindi.
- Capacidades de Codificação Avançadas: Ambos os modelos demonstram proficiência excepcional na geração de código em numerosos idiomas de programação.
- Seguindo Instruções: Melhorias significativas foram feitas na capacidade dos modelos de seguir instruções precisas e lidar com conversas de várias voltas.
- Chamada de Função: Suporte nativo para chamada de função permite que esses modelos interajam dinamicamente com ferramentas e serviços externos.
- Raciocínio e Resolução de Problemas: Capacidades aprimoradas em tarefas de raciocínio matemático e resolução de problemas complexos.
Vamos explorar alguns desses recursos e examinar como eles se saem na prática.
Benchmarks de Desempenho
Para entender as verdadeiras capacidades do Mistral Large 2 e do Mistral NeMo, é essencial olhar para seu desempenho em vários benchmarks. Vamos examinar algumas métricas-chave:
Benchmarks do Mistral Large 2
Esta tabela apresenta a proficiência de vários LLMs em diferentes idiomas de programação. Modelos como Mistral Large 2 (24.07), Llama 3.1 (405B) e GPT-4o são avaliados em sua capacidade de entender e gerar código em idiomas como Python, C++, Bash, Java, TypeScript, PHP e C#.
Llama 3.1 405B mostra um desempenho forte em vários idiomas, com pontuações particularmente altas em Python e Java. Essa proficiência é crítica para aplicações que envolvem geração de código, depuração e desenvolvimento de software, tornando esses modelos ferramentas valiosas para desenvolvedores.
Benchmarks do Mistral NeMo
Embora pontuações de benchmark específicas para o Mistral NeMo não sejam fornecidas nas informações dadas, ele é descrito como oferecendo desempenho de ponta em sua categoria de tamanho. O modelo supera outros modelos de pré-treinamento de código aberto recentes, como Gemma 2 9B e Llama 3 8B, em várias tarefas.
Proeza Multilíngue e de Codificação
Uma das características de destaque de ambos os modelos, Mistral Large 2 e Mistral NeMo, é sua proficiência multilíngue excepcional. Isso é particularmente importante em nosso mundo cada vez mais globalizado, onde os modelos de IA precisam entender e gerar conteúdo em múltiplos idiomas.
O Mistral Large 2, por exemplo, suporta dezenas de idiomas, incluindo francês, alemão, espanhol, italiano, português, árabe, hindi, russo, chinês, japonês e coreano. Essa proficiência multilíngue se estende além da mera tradução, abrangendo compreensão e geração nuances nesses idiomas.
Para ilustrar isso, vamos olhar um exemplo do Mistral Large 2 gerando texto em vários idiomas:
[INST] Gerar uma saudação curta em inglês, francês, alemão, espanhol e japonês. [/INST]
Aqui estão saudações curtas nos idiomas solicitados:
Inglês: Olá! Como você está hoje?
Francês: Bonjour ! Comment allez-vous aujourd’hui ?
Alemão: Hallo! Wie geht es Ihnen heute?
Espanhol: ¡Hola! ¿Cómo estás hoy?
Japonês: こんにちは!今日はお元気ですか?
[INST]
Agora, escreva um simples programa “Olá, Mundo!” em Python, Java e JavaScript. [/INST]
Esses exemplos mostram tanto a geração de texto multilíngue quanto as capacidades de codificação do modelo.
Ambos os modelos estão disponíveis em várias plataformas, como Hugging Face, plataforma da Mistral AI e principais provedores de serviços de nuvem, como Google Cloud Platform, Azure AI Studio, Amazon Bedrock e IBM watsonx.ai (Mistral AI | Frontier AI in your hands).
O Paradigma Agêntico e Chamada de Função
Ambos os modelos, Mistral Large 2 e Mistral NeMo, adotam um design centrado no agente, que representa uma mudança de paradigma em como interagimos com os modelos de IA. Essa abordagem se concentra em construir modelos capazes de interagir com seu ambiente, tomar decisões e realizar ações para alcançar objetivos específicos.
Um recurso-chave que permite esse paradigma é o suporte nativo para chamada de função. Isso permite que os modelos interajam dinamicamente com ferramentas e serviços externos, efetivamente expandindo suas capacidades além da simples geração de texto.
Vamos olhar um exemplo de como a chamada de função pode funcionar com o Mistral Large 2:
from mistral_common.protocol.instruct.tool_calls import Function, Tool
from mistral_inference.transformer import Transformer
from mistral_inference.generate import generate
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
from mistral_common.protocol.instruct.messages import UserMessage
from mistral_common.protocol.instruct.request import ChatCompletionRequest
# Inicialize o tokenizer e o modelo
mistral_models_path = "path/to/mistral/models" # Certifique-se de que o caminho esteja correto
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)
# Defina uma função para obter informações sobre o clima
weather_function = Function(
name="get_current_weather",
description="Obter o clima atual",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "A cidade e o estado, por exemplo, São Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "A unidade de temperatura a usar. Inferir isso da localização do usuário.",
},
},
"required": ["location", "format"],
},
)
# Crie uma solicitação de conclusão de chat com a função
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="Qual é o clima hoje em Paris?"),
],
)
# Codifique a solicitação
input_ids = tokenizer.apply_chat_template(completion_request, return_tensors="pt").to(device)
# Gere uma resposta
output_ids = model.generate(input_ids, max_new_tokens=256, do_sample=True)
# Decodifique e imprima a resposta
result = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(result)
Nesse exemplo, definimos uma função para obter informações sobre o clima e a incluímos em nossa solicitação de conclusão de chat. O modelo pode então usar essa função para recuperar dados climáticos em tempo real, demonstrando como ele pode interagir com sistemas externos para fornecer informações mais precisas e atualizadas.
Tekken: Um Tokenizador Mais Eficiente
O Mistral NeMo apresenta um novo tokenizador chamado Tekken, que é baseado no Tiktoken e treinado em mais de 100 idiomas. Esse novo tokenizador oferece melhorias significativas na eficiência de compressão de texto em comparação com tokenizadores anteriores, como SentencePiece.
Recursos-chave do Tekken incluem:
- 30% mais eficiente na compressão para código-fonte, chinês, italiano, francês, alemão, espanhol e russo
- 2x mais eficiente na compressão para coreano
- 3x mais eficiente na compressão para árabe
- Supera o tokenizador Llama 3 na compressão de texto para aproximadamente 85% de todos os idiomas
Essa melhoria na eficiência de tokenização se traduz em um melhor desempenho do modelo, especialmente ao lidar com texto multilíngue e código-fonte. Isso permite que o modelo processe mais informações dentro da mesma janela de contexto, levando a saídas mais coerentes e contextualmente relevantes.
Licensing e Disponibilidade
O Mistral Large 2 e o Mistral NeMo têm diferentes modelos de licenciamento, refletindo seus casos de uso pretendidos:
Mistral Large 2
- Lançado sob a Licença de Pesquisa da Mistral
- Permite uso e modificação para fins de pesquisa e não comerciais
- Uso comercial requer uma Licença Comercial da Mistral
Mistral NeMo
- Lançado sob a licença Apache 2.0
- Permite uso aberto, incluindo aplicações comerciais
Ambos os modelos estão disponíveis por meio de várias plataformas:
- Hugging Face: Pesos para ambos os modelos base e de instrução são hospedados aqui
- Mistral AI: Disponível como
mistral-large-2407(Mistral Large 2) eopen-mistral-nemo-2407(Mistral NeMo) - Provedores de Serviços de Nuvem: Disponível na Plataforma de Vertex AI do Google Cloud, Azure AI Studio, Amazon Bedrock e IBM watsonx.ai
Para desenvolvedores que desejam usar esses modelos, aqui está um exemplo rápido de como carregar e usar o Mistral Large 2 com Hugging Face transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Use GPU se disponível
# Carregue o modelo e o tokenizador
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Mova o modelo para o dispositivo apropriado
model.to(device)
# Prepare a entrada
messages = [
{"role": "system", "content": "Você é um assistente de IA útil."},
{"role": "user", "content": "Explique o conceito de redes neurais em termos simples."},
]
# Codifique a entrada
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)
# Gere uma resposta
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)
# Decodifique e imprima a resposta
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)
Este código demonstra como carregar o modelo, preparar a entrada no formato de chat, gerar uma resposta e decodificar a saída.
















