Inteligência artificial
Mistral 2 e Mistral NeMo: um guia abrangente para o mais recente LLM vindo de Paris

Fundada por ex-alunos da DeepMind e da Meta do Google, a startup com sede em Paris IA Mistral tem feito barulho consistentemente na comunidade de IA desde 2023.
O Mistral AI chamou a atenção do mundo pela primeira vez com seu modelo de estreia, o Mistral 7B, lançado em 2023. Este modelo de 7 bilhões de parâmetros rapidamente ganhou força por seu desempenho impressionante, superando modelos maiores como o Llama 2 13B em vários benchmarks e até mesmo rivalizando lhama 1 34B em muitas métricas. Que conjunto Mistral 7B à parte não estava apenas o seu desempenho, mas também a sua acessibilidade – o modelo poderia ser facilmente baixado do GitHub ou mesmo através de 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 em relação aos lançamentos, muitas vezes dispensando artigos, blogs ou comunicados de imprensa tradicionais, provou ser notavelmente eficaz em captar 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 player formidável no cenário da IA.
A rápida ascensão da Mistral AI no setor é ainda mais evidenciada pelo seu recente sucesso em termos de financiamento. A empresa alcançou uma impressionante avaliação de mercado de US$ 2 bilhões após uma rodada de financiamento liderada pela Andreessen Horowitz. Isso ocorreu logo após uma rodada inicial histórica de US$ 118 milhões – a maior da história europeia – demonstrando a imensa confiança dos investidores na visão e nas capacidades da Mistral AI.
Além de seus avanços tecnológicos, a Mistral AI também tem se envolvido ativamente na formulação de políticas de IA, particularmente em discussões em torno da Lei de IA da UE, onde defendeu a redução da regulamentação em IA de código aberto.
Agora, em 2024, a Mistral AI mais uma vez elevou a fasquia com dois modelos inovadores: Mistral Grande 2 (também conhecido como Mistral-Large-Instruct-2407) e Mistral NeMo. Neste guia abrangente, vamos nos aprofundar nos recursos, no desempenho e nas possíveis aplicações desses impressionantes modelos de IA.
As principais especificações do Mistral Large 2 incluem:
- 123 bilhões parâmetros
- 128k janela de contexto
- Suporte para dezenas de idiomas
- Proficiência em Mais de 80 codificação línguas
- Capacidades avançadas de chamada de função
O modelo foi projetado para ultrapassar os limites da eficiência de custos, velocidade e desempenho, tornando-o uma opção atraente para pesquisadores e 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 larga escala da Mistral AI, o Mistral NeMo, lançado em julho de 2024, adota uma abordagem diferente. Desenvolvido em colaboração com a NVIDIA, o Mistral NeMo é um modelo mais compacto, com 12 bilhões de parâmetros, que ainda oferece recursos impressionantes:
- 12 bilhões parâmetros
- contexto 128k janela
- Desempenho de última geração em sua categoria de tamanho
- Licença Apache 2.0 para uso aberto
- Consciente de quantização treinamento para inferência eficiente
Mistral NeMo está posicionado como um substituto imediato para sistemas que atualmente usam Mistral 7B, oferecendo desempenho aprimorado enquanto mantém facilidade de uso e compatibilidade.
Principais recursos e capacidades
Tanto o Mistral Large 2 quanto o Mistral NeMo compartilham vários recursos importantes que os diferenciam no cenário da IA:
- Grandes janelas de contexto: com comprimentos de contexto de token de 128 mil, ambos os modelos podem processar e compreender trechos de texto muito mais longos, permitindo resultados mais coerentes e contextualmente relevantes.
- Suporte multilingue: Os modelos se destacam em uma ampla variedade de idiomas, incluindo inglês, francês, alemão, espanhol, italiano, chinês, japonês, coreano, árabe e hindi.
- Capacidades avançadas de codificação: Ambos os modelos demonstram proficiência excepcional na geração de código em diversas linguagens de programação.
- Instrução seguinte:Melhorias significativas foram feitas na capacidade dos modelos de seguir instruções precisas e lidar com conversas multifacetadas.
- Chamada de função: o suporte nativo para chamadas 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 complexas de resolução de problemas.
Vamos explorar alguns desses recursos e examinar como eles funcionam na prática.
Benchmarks de desempenho
Para entender as verdadeiras capacidades do Mistral Large 2 e do Mistral NeMo, é essencial analisar seu desempenho em diversos benchmarks. Vamos analisar algumas métricas importantes:
Mistral Large 2 Referências
Esta tabela apresenta a proficiência de vários LLMs em diferentes linguagens de programação. Modelos como Mistral Large 2 (24.07), Llama 3.1 (405B) e GPT-4o são avaliados quanto à sua capacidade de compreender e gerar código em linguagens como Python, C++, Bash, Java, TypeScript, PHP e C#.
O Llama 3.1 405B apresenta forte desempenho em várias linguagens, 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.
Mistral NeMo Benchmarks
Embora as informações fornecidas não forneçam pontuações de benchmark específicas para o Mistral NeMo, ele é descrito como oferecendo desempenho de ponta em sua categoria de tamanho. O modelo supera outros modelos pré-treinados de código aberto recentes, como Gemma 2 9B e Llama 3 8B, em diversas tarefas.
Capacidade multilíngue e de codificação
Uma das características de destaque do Mistral Large 2 e do Mistral NeMo são suas excepcionais capacidades multilíngues. Isto é particularmente importante no nosso mundo cada vez mais globalizado, onde os modelos de IA precisam de compreender e gerar conteúdos em vários idiomas.
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 vai além da mera tradução, abrangendo compreensão e geração diferenciadas nesses idiomas.
Para ilustrar isso, vejamos um exemplo do Mistral Large 2 gerando texto em vários idiomas:
[INST] Generate a short greeting in English, French, German, Spanish, and Japanese. [/INST]
Aqui estão breves saudações nos idiomas solicitados:
Inglês: Olá! Como você está hoje?
Francês: Bom dia! Comment allez-vous aujourd'hui ?
Alemão: Olá! Como é que Ihnen está feliz?
Espanhol: ¡Olá! Como você está hoje?
Japonês: こんにちは!今日はお元気ですか?
[INST]
Agora, escreva um simples “Olá, mundo!” programa em Python, Java e JavaScript. [/INST]
Esses exemplos mostram a geração de texto multilíngue e os recursos 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. (IA Mistral | Frontier AI em suas mãos).
O Paradigma Agente e a Chamada de Função
Tanto o Mistral Large 2 quanto o Mistral NeMo adotam um design centrado na agência, o que representa uma mudança de paradigma na forma como interagimos com os modelos de IA. Essa abordagem se concentra na construção de modelos capazes de interagir com seu ambiente, tomar decisões e agir para atingir objetivos específicos.
Um recurso importante que permite esse paradigma é o suporte nativo para chamadas de funções. Isso permite que os modelos interajam dinamicamente com ferramentas e serviços externos, expandindo efetivamente suas capacidades além da simples geração de texto.
Vejamos 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
# Initialize tokenizer and model
mistral_models_path = "path/to/mistral/models" # Ensure this path is correct
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
model = Transformer.from_folder(mistral_models_path)
# Define a function for getting weather information
weather_function = Function(
name="get_current_weather",
description="Get the current weather",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The temperature unit to use. Infer this from the user's location.",
},
},
"required": ["location", "format"],
},
)
# Create a chat completion request with the function
completion_request = ChatCompletionRequest(
tools=[Tool(function=weather_function)],
messages=[
UserMessage(content="What's the weather like today in Paris?"),
],
)
# Encode the request
tokens = tokenizer.encode_chat_completion(completion_request).tokens
# Generate a response
out_tokens, _ = generate([tokens], model, max_tokens=256, temperature=0.7, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
result = tokenizer.decode(out_tokens[0])
print(result)
Neste exemplo, definimos uma função para obter informações meteorológicas e incluí-la em nossa solicitação de conclusão do chat. O modelo pode então usar esta função para recuperar dados meteorológicos em tempo real, demonstrando como pode interagir com sistemas externos para fornecer informações mais precisas e atualizadas.
Tekken: um tokenizador mais eficiente
Mistral NeMo apresenta um novo tokenizer chamado Tekken, que é baseado no Tiktoken e treinado em mais de 100 idiomas. Este novo tokenizer oferece melhorias significativas na eficiência da compactação de texto em comparação com tokenizers anteriores, como o SentencePiece.
Os principais recursos do Tekken incluem:
- Compressão 30% mais eficiente para código-fonte, chinês, italiano, francês, alemão, espanhol e russo
- Compressão 2x mais eficiente para coreano
- Compressão 3x mais eficiente para árabe
- Supera o tokenizer Llama 3 na compactação de texto para aproximadamente 85% de todos os idiomas
Essa eficiência aprimorada de tokenização se traduz em melhor desempenho do modelo, especialmente ao lidar com texto e código-fonte multilíngues. Permite que o modelo processe mais informações dentro da mesma janela de contexto, levando a resultados mais coerentes e contextualmente relevantes.
Licenciamento e Disponibilidade
Mistral Large 2 e Mistral NeMo têm modelos de licenciamento diferentes, refletindo os casos de uso pretendidos:
Mistral Grande 2
- Lançado sob a licença de pesquisa Mistral
- Permite uso e modificação para pesquisa e fins não comerciais
- O uso comercial requer uma licença comercial 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 em várias plataformas:
- Abraçando o rosto: Os pesos dos modelos base e de instrução estão hospedados aqui
- IA Mistral: Disponível como
mistral-large-2407(Mistral Grande 2) eopen-mistral-nemo-2407(Mistral NeMo) - Provedores de serviços em nuvem: Disponível no Vertex AI da Google Cloud Platform, 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 transformadores Hugging Face:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "mistralai/Mistral-Large-Instruct-2407"
device = "cuda" # Use GPU if available
# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Move the model to the appropriate device
model.to(device)
# Prepare input
messages = [
{"role": "system", "content": "You are a helpful AI assistant."},
{"role": "user", "content": "Explain the concept of neural networks in simple terms."}
]
# Encode input
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)
# Generate response
output_ids = model.generate(input_ids, max_new_tokens=500, do_sample=True)
# Decode and print the response
response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print(response)
Este código demonstra como carregar o modelo, preparar a entrada em formato de chat, gerar uma resposta e decodificar a saída.
















