Entre em contato

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

Inteligência artificial

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

mm
Mistral Grande 2 e Mistral NeMo

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:

  1. 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.
  2. 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.
  3. 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.
  4. Instrução seguinte:Melhorias significativas foram feitas na capacidade dos modelos de seguir instruções precisas e lidar com conversas multifacetadas.
  5. Chamada de função: o suporte nativo para chamadas de funções permite que esses modelos interajam dinamicamente com ferramentas e serviços externos.
  6. 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.

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

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) e open-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
https://mistral.ai/news/mistral-large-2407/

https://mistral.ai/news/mistral-large-2407/

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.

Limitações e Considerações Éticas

Embora o Mistral Large 2 e o Mistral NeMo representem avanços significativos na tecnologia de IA, é crucial reconhecer suas limitações e as considerações éticas em torno de seu uso:

  1. Potencial para preconceitos: como todos os modelos de IA treinados em grandes conjuntos de dados, esses modelos podem herdar e amplificar preconceitos presentes em seus dados de treinamento. Os usuários devem estar cientes disso e implementar salvaguardas apropriadas.
  2. Falta de verdadeira compreensão: Apesar de suas capacidades impressionantes, esses modelos não possuem verdadeira compreensão ou consciência. Eles geram respostas com base em padrões em seus dados de treinamento, o que às vezes pode levar a informações aparentemente plausíveis, mas incorretas.
  3. Preocupações com a privacidade:Ao usar esses modelos, especialmente em aplicativos que lidam com informações confidenciais, é crucial considerar as implicações de privacidade e segurança dos dados.

Conclusão

O ajuste fino de modelos avançados como Mistral Large 2 e Mistral NeMo apresenta uma oportunidade poderosa para aproveitar a IA de ponta para uma variedade de aplicações, desde chamadas de funções dinâmicas até processamento multilíngue eficiente. Aqui estão algumas dicas práticas e informações importantes a serem lembradas:

  1. Entenda seu caso de usoDefina claramente as tarefas e objetivos específicos que você deseja que seu modelo alcance. Essa compreensão orientará sua escolha de modelo e sua abordagem de ajuste fino, sejam os robustos recursos de chamada de função do Mistral ou seu eficiente processamento de texto multilíngue.
  2. Otimize para eficiência: Utilize o tokenizer Tekken para melhorar significativamente a eficiência da compactação de texto, especialmente se seu aplicativo envolver o manuseio de grandes volumes de texto ou vários idiomas. Isso melhorará o desempenho do modelo e reduzirá os custos computacionais.
  3. Aproveite a chamada de função: Adote o paradigma agêntico incorporando chamadas de função nas interações do seu modelo. Isso permite que sua IA interaja dinamicamente com ferramentas e serviços externos, fornecendo resultados mais precisos e acionáveis. Por exemplo, integrar APIs meteorológicas ou outras fontes de dados externas pode aumentar significativamente a relevância e a utilidade das respostas do seu modelo.
  4. Escolha a plataforma certa: Certifique-se de implantar seus modelos em plataformas que suportem seus recursos, como Vertex AI do Google Cloud Platform, Azure AI Studio, Amazon Bedrock e IBM watsonx.ai. Essas plataformas fornecem a infraestrutura e as ferramentas necessárias para maximizar o desempenho e a escalabilidade dos seus modelos de IA.

Seguindo essas dicas e utilizando os exemplos de código fornecidos, você pode aproveitar com eficácia o poder do Mistral Large 2 e do Mistral NeMo para suas necessidades específicas.

Passei os últimos cinco anos mergulhando no fascinante mundo do Machine Learning e Deep Learning. Minha paixão e experiência me levaram a contribuir para mais de 50 projetos diversos de engenharia de software, com foco particular em AI/ML. Minha curiosidade contínua também me atraiu para o Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.