Modelos e plataformas de IA
Mistral 2 e Mistral NeMo: Um Guia Abrangente para os Últimos Modelos LLM da Paris

Fundada por ex-alunos do Google’s DeepMind e Meta, a startup parisiense 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 o 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, aliada ao seu compromisso com os 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 Mistral AI 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 após 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 tem estado ativamente envolvida em moldar as políticas de IA, particularmente nas 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, mergulharemos 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 a dezenas de idiomas
- Proficiência em 80+ idiomas de programação
- Capacidades avançadas de chamada de funções
O modelo é projetado para empurrar os limites da eficiência de custo, velocidade e desempenho, tornando-o uma opção atraente tanto para pesquisadores quanto para 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, adota uma abordagem diferente. Desenvolvido em colaboração com a NVIDIA (NVDA ), 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
- Licença Apache 2.0 para uso aberto
- Treinamento com quantização para inferência eficiente
O Mistral NeMo é posicionado como um substituto 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árias características-chave que os destacam no cenário de IA:
- Janelas de Contexto Grandes: Com comprimentos de contexto de 128k tokens, ambos os modelos podem processar e entender textos muito mais longos, 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.
- Seguimento de 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ções: Suporte nativo para chamada de funções permite que esses modelos interajam dinamicamente com ferramentas e serviços externos.
- Raciocínio e Resolução de Problemas: Capacidades aprimoradas em raciocínio matemático e tarefas de resolução de problemas complexas.
Vamos explorar algumas dessas características e examinar como elas 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
Essa tabela apresenta a proficiência de vários LLMs em diferentes idiomas de programação. Modelos como o 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#.
O 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 o Gemma 2 9B e o Llama 3 8B, em várias tarefas.
Habilidades Multilíngues e de Codificação
Uma das características de destaque de ambos os modelos, Mistral Large 2 e Mistral NeMo, é sua capacidade 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 uma compreensão e geração nuances nesses idiomas.
Para ilustrar isso, vamos olhar um exemplo de como o Mistral Large 2 gera texto em vários idiomas:
[INST] Gere 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 programa “Olá, Mundo!” simples em Python, Java e JavaScript. [/INST]
Esses exemplos mostram tanto a capacidade de geração de texto multilíngue quanto a capacidade de codificação do modelo.
Ambos os modelos estão disponíveis em várias plataformas, como Hugging Face, a plataforma da Mistral AI e provedores de serviços de nuvem importantes como Google Cloud Platform, Azure AI Studio, Amazon Bedrock e IBM watsonx.ai (Mistral AI | IA de Ponta nas suas Mãos).
O Paradigma Agêntico e Chamada de Funções
Tanto o Mistral Large 2 quanto o 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ções. 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ções 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
<p># Inicialize o tokenizador e o modelo
mistral_models_path = "caminho/para/mistral/models" # Certifique-se de que este caminho esteja correto
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)</p>
<p># 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 a partir da localização do usuário.",
},
},
"required": ["location", "format"],
},
)</p>
<p># 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?"),
],
)</p>
<p># Codifique a solicitação
tokens = tokenizer.encode_chat_completion(completion_request).tokens</p>
<p># Gere uma resposta
output_ids = model.generate([tokens], max_new_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(output_ids[0])</p>
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 o 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 eficiência de tokenização aprimorada 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 relevantes contextualmente.
Licensing e Disponibilidade
O Mistral Large 2 e o Mistral NeMo têm modelos de licenciamento diferentes, 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 exige 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 instrutores 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 Nuvem do Google (Vertex AI), 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 os transformadores do Hugging Face:
from transformers import AutoModelForCausalLM, AutoTokenizer
<p>nome_do_modelo = "mistralai/Mistral-Large-Instruct-2407"
dispositivo = "cuda" # Use GPU se disponível</p>
<p># Carregue o modelo e o tokenizador
modelo = AutoModelForCausalLM.from_pretrained(nome_do_modelo)
tokenizador = AutoTokenizer.from_pretrained(nome_do_modelo)</p>
<p># Mova o modelo para o dispositivo apropriado
modelo.to(dispositivo)</p>
<p># Prepare a entrada
mensagens = [
{"role": "system", "content": "Você é um assistente de IA útil."},
{"role": "user", "content": "Explique o conceito de redes neurais em termos simples."}
]</p>
<p># Codifique a entrada
ids_de_entrada = tokenizador.apply_chat_template(mensagens, return_tensors="pt").to(dispositivo)</p>
<p># Gere uma resposta
ids_de_saida = modelo.generate(ids_de_entrada, max_new_tokens=500, do_sample=True)</p>
<p># Decodifique e imprima a resposta
resposta = tokenizador.decode(ids_de_saida[0], skip_special_tokens=True)
print(resposta)</p>
Esse código demonstra como carregar o modelo, preparar a entrada em formato de chat, gerar uma resposta e decodificar a saída.
















