Pular para o conteúdo principal

Pixtral Large: Um guia com exemplos

Saiba como usar o Pixtral Large da Mistral via Le Chat ou acesse-o programaticamente por meio da API em La Plateforme.
Actualizado 27 de nov. de 2024  · 8 min de leitura

A Mistral AI anunciou recentemente o Pixtral Large, um modelo multimodal que é uma versão mais potente do Pixtral 12Bque foi lançado no início deste ano.

O Pixtral Large é um modelo multimodal 124B que pode lidar com tarefas avançadas de compreensão de imagens e, ao mesmo tempo, preservar os excepcionais recursos de processamento de texto do Mistral Large 2. Com uma enorme janela de contexto de 128K, esse modelo pode analisar até 30 imagens de alta resolução juntamente com texto, o que o torna ideal para documentos, gráficos e imagens naturais.

Neste tutorial, mostrarei a você vários exemplos e fornecerei instruções detalhadas, passo a passo, sobre como usar o Pixtral Large por meio da interface da Web do Le Chat e da API. Antes de mergulhar nas etapas práticas, vamos primeiro explorar os principais conceitos teóricos por trás do Pixtral Large.

O que é Pixtral Large?

O Pixtral Large apresenta um decodificador multimodal 123B e um codificador de visão de parâmetro 1B (parâmetros 124B), o que o torna capaz de lidar efetivamente com multimodais multimodais. Ele demonstrou recursos inigualáveis em diversos cenários, como:

  • OCR multilíngue: Isso serve para processar recibos com precisão e realizar cálculos com contexto (um exemplo é a análise de nossas contas de restaurante).
  • Compreensão do gráfico: Isso é usado para identificar anomalias e tendências, como a identificação de problemas nas curvas de perda de treinamento.
  • Análise geral: Ele pode extrair insights de capturas de tela, respondendo a consultas contextuais de forma eficaz, etc.

O Pixtral Large mostra bons resultados em vários benchmarks - aqui estão os que chamaram minha atenção:

  • MathVista: 69,4% de precisão no raciocínio matemático sobre dados visuais.
  • ChartQA e DocVQA: Superou o desempenho dos principais concorrentes, como GPT-4o e Gemini-1.5 Pro no raciocínio sobre gráficos e documentos complexos.
  • MM-MT-Bench: Superou o Claude-3.5 Sonnet, o Gemini-1.5 Pro e o GPT-4o em tarefas multimodais do mundo real.

Pixtral Large em vários benchmarks

Fonte: Mistral AI

Pixtral Large 124B vs Pixtral 12B

O Pixtral Large 124B e o Pixtral 12B compartilham algumas bases arquitetônicas, mas não são idênticos. Embora o Pixtral Large se baseie nos fundamentos estabelecidos pelo Pixtral 12B, seus recursos são significativos em termos de arquitetura, tamanho da janela de contexto e integração multimodal, levando a um desempenho superior em várias tarefas. Aqui estão algumas diferenças entre os dois modelos.

  • A diferença significativa de tamanho permite que o Pixtral Large lide com tarefas mais complexas e conjuntos de dados maiores.
  • Uma janela de contexto maior permite que o Pixtral Large processe e compreenda sequências mais longas de texto e imagens mais complexas.
  • Ambos os modelos são projetados para tarefas multimodais, integrando dados de texto e imagem. No entanto, o Pixtral Large introduz camadas especializadas de atenção cruzada para fundir melhor as informações em diferentes modalidades, aprimorando seu desempenho em tarefas como compreensão de imagens e processamento de documentos.
  • O Pixtral Large requer mais recursos computacionais, incluindo mais de 200 GB de dados e uma GPU avançada, em comparação com o Pixtral 12B. Isso destaca a maior complexidade e capacidade do modelo maior.

Arquitetura Pixtral

Arquitetura Pixtral. Fonte: Relatório técnico do Pixtral 12B.

Se você quiser explorar a arquitetura do modelo mais profundamente, consulte o relatório técnico do Pixtral 12B relatório técnico. O relatório técnico do Pixtral Large não está disponível no momento.

Como usar o Pixtral Large no Le Chat

Le Chat oferece uma interface baseada em bate-papo, muito parecida com o popular ChatGPT.

Interface Le Chat da Mistral AI

Embora não possamos selecionar especificamente o modelo Pixtral Large, o artigo de anúncio deixa claro que o novo Pixtral Large multimodal oferece "compreensão de ponta de documentos e imagens".

Experimentei o Pixtral Large pela primeira vez em um trabalho de pesquisa sobre Transformer-Liteque tem muitos textos e gráficos. Pedi ao modelo que me fornecesse um resumo do documento:

Resumindo um artigo de pesquisa usando o modelo Pixtal Large via Le Chat

Fiquei bastante satisfeito com o resultado. Em seguida, pedi à Pixtral que explicasse esse gráfico de pizza da distribuição de marcas de smartphones, mas tive o cuidado de manter meu pedido vago e não revelar do que se trata o gráfico de pizza.

Experiência 2 - Resumindo o gráfico de pizza usando o modelo Pixtal Large via Le Chat

O modelo entendeu o gráfico de pizza e identificou os números corretamente. A resposta está bem estruturada e também fornece uma interpretação precisa, dizendo que, embora a Samsung e a Apple liderem o mercado, uma parte significativa é ocupada por várias outras marcas.

Como usar a API do Pixtral Large em La Plateforme

Para a maioria dos casos de uso diário, o Le Chat é uma ótima opção, mas se quisermos usar o Pixtral Large de forma programática, precisaremos nos conectar por meio de sua API. Primeiro, mostrarei a você como se conectar à API por meio do La Plateforme e, em seguida, testarei o Pixtral Large em meus próprios desenhos.

Conecte-se a La Plateforme

Para usar o Pixtral Large por meio da API, você pode seguir as seguintes etapas:

1. Faça login em A plataforma.

2. Clique em Início rápido → Solicitações de API

Início rápido da API Mistral

3. Selecione a opção de conta gratuita. Clique em Experiment for free, o que nos leva a outra página para verificar a conta usando nosso número de celular com um OTP e configurar uma nova conta.

Opções do plano de cobrança Mistral

4. Depois que a conta estiver configurada, selecione API keys na guia API (lado esquerdo) .

Guia Chaves da API Mistral

5. Em seguida, clique em Create new key. Você pode preencher os detalhes opcionais e clicar em Create key.

Mistral aparece para você criar uma chave de API

A chave da API agora está pronta para ser usada. 

Guia para localizar chaves de API ativas e expiradas no Mistral

Gerador de descrição de imagem usando API no meu desenho

Agora, vamos criar um gerador de descrição de imagem usando a API. O objetivo é passar qualquer imagem para o modelo junto com uma pergunta no prompt (por exemplo, "Forneça uma descrição detalhada da imagem fornecida") e receber uma resposta.

Vou testar isso gerando uma descrição para um de meus desenhos, que é mostrado abaixo. A imagem mostra uma estrutura móvel para um aplicativo de chatbot de suporte ao cliente 24 horas por dia, 7 dias por semana.

Desenho usado para a demonstração da api pixtral large

Antes de começarmos, verifique se você tem a seguinte configuração:

  1. GPU: Uma GPU T4 é necessária para essa configuração. Você pode usar o Google Colab, que fornece acesso gratuito a uma GPU T4.
  2. Biblioteca de IA Mistral: Para instalá-lo, execute o seguinte comando:
!pip install -U mistralai

Vamos começar:

Etapa 1: Importações

Em seguida, configuramos nossas importações. Para este tutorial, usaremos as seguintes bibliotecas:

  • Pillow (PIL) para processamento de imagens
  • Base64 para codificação e decodificação de dados binários em um formato base64
  • A biblioteca io.BytesIO fornece uma interface de fluxo de bytes na memória
import base64
from io import BytesIO
from PIL import Image
from mistralai import Mistral

Etapa 2: Cliente da API Pixtral

Em seguida, use a chave da API. Para configurar a chave de API no Google Colab, vá para a guia Segredos. Clique no ícone de chave na barra lateral esquerda, cole sua chave de API e atribua um nome ao segredo. Depois disso, alterne o botão para ativar o segredo para uso em seu código. Isso nos permitirá usar o seguinte código em nosso aplicativo.

from google.colab import userdata
userdata.get('secretName') # pass in your secretName here

Quando a chave secreta estiver pronta, definimos uma variável com o nome API_KEY e passamos a ela nosso nome secreto, conforme mostrado no código abaixo. Em seguida, passamos a chave da API para a função Mistral e configuramos o cliente.

from google.colab import userdata
API_KEY = userdata.get('secretName')  # Replace with your actual secret name
client = Mistral(api_key=API_KEY) 

Observação: Opcionalmente, podemos passar a chave da API diretamente, mas isso não é recomendado por motivos de segurança e privacidade. 

Etapa 3: Codificação de imagem

Depois de configurar o cliente, começamos a processar a imagem que será a entrada para o modelo Pixtral Large.

# Helper function to encode an image to base64
def encode_image(image_obj):
    if isinstance(image_obj, Image.Image):  # Check if it's already a PIL Image
        img = image_obj
    else:  # Otherwise, try opening it as a path
        img = Image.open(image_obj)
    buffered = BytesIO()
    img.save(buffered, format="PNG")
    return base64.b64encode(buffered.getvalue()).decode("utf-8")

O objetivo principal da função acima é pegar uma imagem, seja como um caminho de arquivo ou um objeto PIL.Image.Image pré-carregado, e retornar sua representação de string Base64. Isso é útil para você:

  • Incorporar a imagem diretamente em um objeto JSON ou em uma solicitação de API.
  • Evitando a necessidade de enviar a imagem como um arquivo separado.

Etapa 4: Inferência na imagem

Quando tivermos a imagem, queremos gerar sua descrição com a API Pixtral Large. O fluxo de trabalho inclui a codificação da imagem, a criação de um prompt, o envio de uma solicitação à API do Pixtral e o recebimento de uma resposta descritiva. Veja como o código a seguir funciona:

  1. A imagem é codificada em um formato Base64 e enviada junto com o prompt em uma mensagem estruturada para a API do Pixtral.
  2. O modelo Pixtral Large processa o prompt e a imagem para gerar uma descrição textual detalhada do conteúdo da imagem.
  3. A resposta é analisada para extrair a descrição, que é exibida para o usuário.

Observação: Certifique-se de que, em client.chat.complete, o modelo esteja definido como "pixtral-large-latest", que é atualmente o único modelo Pixtral Large disponível ao público.

# Function to perform inference for image description
def describe_image(image_path):
    # Load and encode the image
    image_base64 = encode_image(image_path)
    # Prompt for the Pixtral model
    prompt = "Please provide a detailed description of the given image."
    # Prepare input for the Pixtral API
    messages = [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": prompt},
                {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_base64}"}}
            ]
        }
    ]
    # Perform inference
    response = client.chat.complete(
        model="pixtral-large-latest",
        messages=messages,
        max_tokens=300
    )
    # Return the model's output
    return response.choices[0].message.content

# Usage
if __name__ == "__main__":
    # Provide the path to your image file
    image_path = "image.png"  # Replace with the path to your image
    # Get the description of the image
    description = describe_image(image_path)
    
    # Print the result
    print("Image Description:")
    print(description)
Image Description:
The image is a sketch of a mobile app prototype for automated customer support. The sketch depicts a smartphone screen with a customer support interface.
At the top of the screen, there is a header that reads "24x7 Customer Support Powered By AI." Below the header, there is a chat window where a conversation between a user and an AI-powered support system is taking place.
The conversation starts with the AI greeting the user: "Hi! How can I help you?" The user responds: "Hi, I am looking for assistance for featureX." The AI then provides a response: "Sure, here are a few steps:" followed by a placeholder for the steps, which are represented by horizontal lines.
At the bottom of the screen, there is a text input box labeled "Type your message" and a button labeled "Ask AI." The button is highlighted in red, indicating it is an actionable element for the user to interact with.
Overall, the sketch illustrates a user-friendly interface for automated customer support, utilizing AI to provide assistance and guidance to users.

Aqui está outro exemplo de uma árvore de Natal que também desenhei e, abaixo da imagem, o que o Pixtral Large achou dela.

Desenho de uma árvore de Natal

Image Description:
The image presents a charming scene of a Christmas tree, standing tall and proud. 
.
.
This description is based on the visible content of the image and does not include any speculative or imaginary elements.

Conclusão

O Pixtral Large parece ser um passo à frente na IA multimodal, com melhor compreensão de imagens e processamento de texto. Neste guia, exploramos os recursos do modelo por meio do Le Chat e do La Plateforme, e espero que este guia seja útil para você.


Photo of Aashi Dutt
Author
Aashi Dutt
LinkedIn
Twitter

Sou Google Developers Expert em ML (Gen AI), Kaggle 3x Expert e Women Techmakers Ambassador com mais de 3 anos de experiência em tecnologia. Fui cofundador de uma startup de tecnologia de saúde em 2020 e estou fazendo mestrado em ciência da computação na Georgia Tech, com especialização em machine learning.

Temas

Aprenda IA com estes cursos!

curso

Retrieval Augmented Generation (RAG) with LangChain

3 hr
1.1K
Learn cutting-edge methods for integrating external data with LLMs using Retrieval Augmented Generation (RAG) with LangChain.
Ver DetalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

O que é o Mistral Large 2? Como funciona, casos de uso e muito mais

O Mistral Large 2 é o modelo de idioma mais recente da Mistral AI, competindo com modelos como GPT-4o, Llama 3.1 e Claude 3 Opus.
Ryan Ong's photo

Ryan Ong

8 min

tutorial

Guia para iniciantes no uso da API do ChatGPT

Este guia o orienta sobre os conceitos básicos da API ChatGPT, demonstrando seu potencial no processamento de linguagem natural e na comunicação orientada por IA.
Moez Ali's photo

Moez Ali

11 min

tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

8 min

tutorial

Guia de Introdução ao Ajuste Fino de LLMs

O ajuste fino dos grandes modelos de linguagem (LLMs, Large Language Models) revolucionou o processamento de linguagem natural (PLN), oferecendo recursos sem precedentes em tarefas como tradução de idiomas, análise de sentimentos e geração de textos. Essa abordagem transformadora aproveita modelos pré-treinados como o GPT-2, aprimorando seu desempenho em domínios específicos pelo processo de ajuste fino.
Josep Ferrer's photo

Josep Ferrer

12 min

tutorial

Visão GPT-4: Um guia abrangente para iniciantes

Este tutorial apresentará tudo o que você precisa saber sobre o GPT-4 Vision, desde o acesso a ele, passando por exemplos práticos do mundo real, até suas limitações.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

tutorial

DCLM-7B da Apple: Configuração, exemplo de uso, ajuste fino

Comece a usar o modelo de linguagem grande DCLM-7B da Apple e saiba como configurá-lo, usá-lo e ajustá-lo para tarefas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

See MoreSee More