Home
Login
mistralai/mistral-inference

Biblioteca de inferência oficial do modelo Mistral, contendo a implementação de código minimizada para executar modelos Mistral AI.

Apache-2.0Jupyter Notebook 10.3kmistralai Last Updated: 2025-03-20
https://github.com/mistralai/mistral-inference

Apresentação Detalhada da Biblioteca de Inferência Mistral (mistral-inference)

Visão Geral do Projeto

mistral-inference é a biblioteca de inferência de modelos Mistral desenvolvida oficialmente pela Mistral AI, fornecendo uma implementação de código minimizada para executar vários modelos Mistral. Este projeto oferece aos usuários uma maneira eficiente e concisa de implantar e usar a série de modelos de linguagem grandes Mistral.

Séries de Modelos Suportadas

Modelos Base

  • Mistral 7B: Versões base e de instrução, com suporte para chamadas de função
  • Mixtral 8x7B: Modelo de mistura de especialistas, inferência de alto desempenho
  • Mixtral 8x22B: Modelo de mistura de especialistas em maior escala
  • Mistral Nemo 12B: Modelo eficiente de escala média
  • Mistral Large 2: O modelo de grande escala mais recente
  • Mistral Small 3.1 24B: Modelo de escala média com suporte multimodal

Modelos Dedicados

  • Codestral 22B: Especialmente para geração de código e tarefas de programação
  • Codestral Mamba 7B: Modelo de código baseado na arquitetura Mamba
  • Mathstral 7B: Modelo especializado para raciocínio matemático
  • Pixtral 12B: Modelo de linguagem visual multimodal

Principais Características e Funcionalidades

1. Vários Modos de Inferência

  • Interface de Linha de Comando (CLI): Teste e interaja rapidamente através dos comandos mistral-demo e mistral-chat
  • API Python: Interface de programação completa, suporta integração personalizada
  • Suporte Multi-GPU: Suporta inferência distribuída de grandes modelos através de torchrun

2. Ricos Cenários de Aplicação

Seguimento de Instruções (Instruction Following)

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

# Carregar o modelo e o tokenizer
tokenizer = MistralTokenizer.from_file("./mistral-nemo-instruct-v0.1/tekken.json")
model = Transformer.from_folder("./mistral-nemo-instruct-v0.1")

# Gerar resposta
prompt = "How expensive would it be to ask a window cleaner to clean all windows in Paris?"
completion_request = ChatCompletionRequest(messages=[UserMessage(content=prompt)])
tokens = tokenizer.encode_chat_completion(completion_request).tokens
out_tokens, _ = generate([tokens], model, max_tokens=1024, temperature=0.35)

Inferência Multimodal

Suporta inferência conjunta de imagem e texto, pode analisar o conteúdo da imagem e responder a perguntas relacionadas:

# Processamento de conteúdo multimodal
user_content = [ImageURLChunk(image_url=url), TextChunk(text=prompt)]
tokens, images = tokenizer.instruct_tokenizer.encode_user_content(user_content, False)
out_tokens, _ = generate([tokens], model, images=[images], max_tokens=256)

Chamada de Função (Function Calling)

Todos os modelos suportam a funcionalidade de chamada de função, que pode ser integrada com ferramentas e APIs externas:

# Definir funções de ferramenta
tools=[Tool(function=Function(
    name="get_current_weather",
    description="Get the current weather",
    parameters={...}
))]

# Executar chamada de função
completion_request = ChatCompletionRequest(tools=tools, messages=[...])

Preenchimento de Código (Fill-in-the-middle)

Especialmente para cenários de edição de código, suporta geração de código de preenchimento intermediário:

prefix = "def add("
suffix = " return sum"
request = FIMRequest(prompt=prefix, suffix=suffix)
tokens = tokenizer.encode_fim(request).tokens

3. Opções de Implantação Flexíveis

Implantação Local

  • Implantação de GPU Única: Adequado para modelos menores (7B, 12B)
  • Implantação Multi-GPU: Suporta inferência distribuída de modelos grandes (8x7B, 8x22B)
  • Containerização Docker: Fornece imagens Docker integradas com vLLM

Implantação na Nuvem

  • API Oficial da Mistral AI: Serviço de nuvem La Plateforme
  • Provedores de Serviços de Nuvem: Suporta várias plataformas de nuvem convencionais

Instalação e Configuração

Requisitos do Sistema

  • Suporte a GPU: Requer ambiente GPU, pois depende da biblioteca xformers
  • Ambiente Python: Suporta versões modernas do Python
  • Espaço de Armazenamento: Requer espaço em disco suficiente, dependendo do tamanho do modelo

Métodos de Instalação

Instalar via pip

pip install mistral-inference

Instalar a partir do código fonte

cd $HOME && git clone https://github.com/mistralai/mistral-inference
cd $HOME/mistral-inference && poetry install .

Download e Configuração do Modelo

# Criar diretório de armazenamento do modelo
export MISTRAL_MODEL=$HOME/mistral_models
mkdir -p $MISTRAL_MODEL

# Baixar o modelo (usando Mistral Nemo como exemplo)
export 12B_DIR=$MISTRAL_MODEL/12B_Nemo
wget https://models.mistralcdn.com/mistral-nemo-2407/mistral-nemo-instruct-2407.tar
mkdir -p $12B_DIR
tar -xf mistral-nemo-instruct-2407.tar -C $12B_DIR

Exemplos de Uso

Interação Básica de Chat

# Modelo de GPU única
mistral-chat $12B_DIR --instruct --max_tokens 1024 --temperature 0.35

# Modelo grande multi-GPU
torchrun --nproc-per-node 2 --no-python mistral-chat $M8x7B_DIR --instruct

Uso de Modelos Dedicados

Assistente de Código Codestral

mistral-chat $M22B_CODESTRAL --instruct --max_tokens 256

Pode lidar com solicitações de programação como "Write me a function that computes fibonacci in Rust".

Raciocínio Matemático Mathstral

mistral-chat $7B_MATHSTRAL --instruct --max_tokens 256

Capaz de resolver problemas complexos de cálculo matemático.

Licença e Conformidade

Licenças de Diferentes Modelos

  • Modelos de Código Aberto: A maioria dos modelos básicos usa licenças de código aberto
  • Codestral 22B: Usa a Licença Mistral AI Non-Production (MNPL), limitada a uso não comercial
  • Mistral Large: Usa a Licença Mistral AI Research (MRL), principalmente para fins de pesquisa

Recomendações de Conformidade

Ao usar em um ambiente comercial, verifique cuidadosamente os termos da licença do modelo correspondente para garantir o uso em conformidade.

Vantagens Técnicas

Otimização de Desempenho

  • Inferência Eficiente: Otimizado especificamente para a arquitetura do modelo Mistral
  • Gerenciamento de Memória: Estratégias inteligentes de uso de memória, suporta inferência de grandes modelos
  • Processamento Paralelo: Suporta paralelismo multi-GPU, melhora a velocidade de inferência

Facilidade de Uso

  • API Concisa: Fornece uma interface Python simples e intuitiva
  • Documentação Rica: Exemplos de uso abrangentes e suporte de documentação
  • Suporte da Comunidade: Comunidade de desenvolvedores ativa e canal Discord

Escalabilidade

  • Design Modular: Fácil de integrar em projetos existentes
  • Configuração Personalizada: Suporta configuração flexível de vários parâmetros de inferência
  • Integração de Ferramentas: Suporta integração com várias ferramentas e serviços externos

Cenários de Aplicação

Aplicações de Nível Empresarial

  • Atendimento ao Cliente Inteligente: Construir sistemas de diálogo de alta qualidade
  • Geração de Conteúdo: Criação e edição automatizadas de conteúdo
  • Assistência de Código: Geração e revisão de código em ambientes de desenvolvimento

Pesquisa e Desenvolvimento

  • Pesquisa Acadêmica: Pesquisa e experimentação de modelos de linguagem
  • Desenvolvimento de Protótipos: Construção rápida de protótipos de aplicativos de IA
  • Teste de Desempenho: Avaliação e comparação do desempenho do modelo

Pessoal e Educação

  • Assistente de Aprendizagem: Ferramentas personalizadas de aprendizagem e tutoria
  • Escrita Criativa: Auxiliar na criação de conteúdo criativo
  • Aprendizagem Técnica: Suporte para aprendizagem de programação e conceitos técnicos

Conclusão

A biblioteca de inferência Mistral é uma estrutura de inferência de modelo de linguagem grande poderosa e fácil de usar. Ele não apenas fornece suporte completo para a série de modelos Mistral, mas também inclui uma rica gama de recursos, desde a geração de texto básica até inferência multimodal avançada e chamadas de função. Seja para implantação de nível empresarial ou uso de pesquisa pessoal, esta biblioteca pode fornecer soluções eficientes e confiáveis.