Pular para o conteúdo principal
InicioTutoriaisInteligência Artificial (IA)

Pixtral 12B: Um guia com exemplos práticos

Saiba como usar o Pixtral 12B da Mistral de forma interativa via Le Chat ou de forma programática por meio da API disponível em La Plateforme.
Actualizado 27 de set. de 2024  · 8 min leer

A Mistral lançou o Pixtral 12B, um modelo de linguagem grande (LLM) de código aberto com 12 bilhões de parâmetros. modelo de linguagem grande (LLM) de código aberto. Esse é o primeiro multimodal da Mistral, o que significa que ele pode processar texto e imagens.

Veja por que a Pixtral é uma adição valiosa ao cenário do LLM:

  • Ele processa com eficiência imagens de todos os tamanhos sem pré-processamento.
  • Uma janela de contexto de 128K permite o manuseio de prompts complexos e várias imagens.
  • Bom desempenho em tarefas somente de texto e multimodais.
  • Gratuito para projetos não monetizados, o que o torna ideal para pesquisadores e amadores.
  • Código aberto sob a licença Apache 2.0, apoiando a democratização da IA.

Neste tutorial, fornecerei vários exemplos e orientações passo a passo sobre como usar o Pixtral por meio da interface de bate-papo na Web, Le Chat, e programaticamente por meio da API. Mas, primeiro, vamos abordar os aspectos teóricos essenciais do Pixtral.

O que é o Pixtral 12B?

A Mistral AI lançou o Pixtral 12B, um modelo projetado para processar imagens e textos juntos. Com 12 bilhões de parâmetros, ele pode lidar com tarefas que envolvem uma combinação de recursos visuais e de linguagem, como a interpretação de tabelas, documentos ou gráficos.

É útil para ambientes que exigem um conhecimento profundo de ambos os formatos.

Um recurso importante do Pixtral 12B é sua capacidade de lidar com várias imagens em uma única entrada, processando-as em sua resolução nativa. O modelo tem uma janela de contexto de 128.000 tokens, que permite a análise de documentos longos e complexos, imagens ou várias fontes de dados simultaneamente. Isso o torna útil em áreas como relatórios financeiros ou digitalização de documentos para empresas.

Benchmarks da Pixtral

O Pixtral tem um bom desempenho em tarefas relacionadas a Conhecimento e Raciocínio Multimodal, especialmente no teste MathVista, onde lidera o grupo. Em tarefas de controle de qualidade multimodal, ele também ocupa uma posição de destaque, especialmente no ChartQA.

Benchmarks Pixtral

Fonte: Mistral AI

No entanto, em tarefas de acompanhamento de instruções e baseadas em texto, outros modelos, como o Claude-3 Haiku e o Gemini Flash-8B, apresentam desempenho competitivo ou superior. Isso sugere que o Pixtral 12B é excelente em raciocínio multimodal e visual, mas pode não ser dominante em tarefas puramente baseadas em texto.

Arquitetura da Pixtral

A arquitetura do Pixtral 12B foi projetada para processar texto e imagens simultaneamente. Ele apresenta dois componentes principais: um codificador de visão e um decodificador de transformador multimodal.

O codificador de visão, que tem 400 milhões de parâmetros, é especificamente treinado para acomodar imagens de tamanhos e resoluções variados.

Codificador de visão da Pixtral.

Fonte: Mistral AI

O segundo componente, o decodificador de transformador multimodal, é um modelo mais abrangente com 12 bilhões de parâmetros. Ele se baseia na arquitetura Mistral Nemo existente e foi projetado para prever o próximo token de texto em sequências que intercalam dados de texto e imagem.

Esse decodificador pode processar contextos muito extensos (até 128 mil tokens), o que lhe permite lidar com vários tokens de imagem e informações textuais extensas em documentos grandes.

O decodificador de transformador multimodal da Pixtral.

Fonte: Mistral AI

Essa arquitetura combinada permite que o Pixtral lide com uma ampla variedade de tamanhos e formatos de imagem, traduzindo imagens de alta resolução em tokens coerentes sem perder o contexto.

Como usar o Pixtral no Le Chat

A maneira mais fácil de acessar o Pixtral gratuitamente é por meio do Le Chata interface de bate-papo. Essa interface se assemelha a outras interfaces de bate-papo do LLM, como a do ChatGPTpor exemplo.

A interface da Web do Le Chat.

Para usar o Pixtral, navegue até o seletor de modelos localizado na parte inferior, ao lado da entrada de prompt, e escolha o modelo Pixtral na lista de modelos disponíveis.

Selecionando o modelo Pixtral no Le Chat.

O Pixtral é um modelo multimodal que suporta texto e imagens. Usando o ícone de clipe localizado na parte inferior, podemos carregar uma ou mais imagens e combiná-las com um prompt de texto. Por exemplo, essa funcionalidade pode nos ajudar a identificar uma fruta retratada em uma imagem.

Um exemplo de prompt multimodal usando o Pixtral no Le Chat.

Vamos explorar outro exemplo em que solicitamos ao Pixtral que transforme uma imagem contendo um gráfico de pizza em uma tabela de markdown:

Usando o Le Chat para transformar um gráfico em uma tabela de texto.

Como se conectar à API da Pixtral em La Plateforme

Embora o uso do Pixtral por meio de sua interface da Web seja agradável e fácil, ele não é adequado para ser incorporado aos nossos projetos. Nesta seção, discutiremos como interagir com a Pixtral por meio de sua API usando Python, por meio de La Plateforme.

Configuração do perfil

Para começar, precisamos criar uma conta. Isso pode ser feito com apenas um clique, usando uma conta do Google ou, alternativamente, configurando uma conta tradicional com um nome de usuário e uma senha.

Ao criar a conta, você será solicitado a configurar um espaço de trabalho. Você pode selecionar qualquer nome para seu espaço de trabalho e optar pela opção "I'm a solo creator" (Sou um criador individual).

Criando um espaço de trabalho em La Platforme.

Depois de criar a conta, vá para a página página de planos de cobrança. Aqui, temos a opção de criar um plano de cobrança experimental, que nos permite experimentar a API gratuitamente, ou configurar um plano pago. É importante observar que o plano experimental gratuito exige que vinculemos um número de telefone válido à nossa conta.

Selecionando um plano de cobrança em La Platforme.

Agora, nosso perfil deve estar pronto para criar uma chave de API. Essa chave é necessária para que você faça solicitações à API do Mistral e interaja programaticamente com o Pixtral usando Python.

Geração da chave de API

Para gerar a chave de API, navegue até a página página de chave de API. Na parte superior da página, temos um botão para criar uma nova chave de API:

Criando chaves de API em La Platforme.

Ao criar uma chave, você será solicitado a dar um nome a ela e a definir uma data de validade. No entanto, ambos os campos são opcionais, permitindo que você os deixe em branco, se desejar.

Formulário de criação de chave de API para La Plateforme da Mistral

Em geral, é aconselhável definir uma data de validade para as chaves. Muitas vezes, as chaves são criadas para fazer experiências com uma API, mas depois são esquecidas, deixando-as ativas indefinidamente. A definição de uma data de validade garante que, se uma chave for acidentalmente vazada, ela não poderá ser usada para sempre, minimizando assim os possíveis riscos.

Manter a chave da API em segurança após a criação.

Depois que a chave for criada, ela será exibida. Essa exibição é a única oportunidade de você ver a chave, portanto, é essencial copiá-la. Se a chave for perdida, a solução é excluí-la da lista e criar uma nova.

Recomendo que você crie um arquivo .env no mesmo diretório que o script Python para armazenar a chave usando o seguinte formato (substituindo pela chave real):

# contents of the .env file
API_KEY=<key_value>

Não é recomendável ignorar essa etapa e codificar a chave da API em nosso script. Isso nos impede de compartilhar nosso código sem compartilhar a chave. Saiba mais sobre essa abordagem neste tutorial sobre Variáveis de ambiente do Python.

Instalar dependências

Para começar, instalamos as dependências necessárias, que incluem:

  • mistralaiVocê pode usar a biblioteca do cliente fornecida pela Mistral para interação com a API.
  • python-dotenvVocê pode usar o módulo .env para carregar variáveis de ambiente de um arquivo .
pip install python-dotenv mistralai

Quando as dependências estiverem instaladas, você poderá prosseguir com a criação do script. Crie um arquivo chamado mistral_example.py no mesmo diretório que o arquivo .env. A etapa inicial envolve a importação dos módulos e o carregamento da chave da API em uma variável.

# Create a mistral_example.py file in the same folder as the .env file

import os
from mistralai import Mistral
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("API_KEY")

Depois disso, podemos prosseguir com a inicialização do cliente.

Inicializar o cliente

A página de documentação do Mistral fornece uma lista de todos os modelos disponíveis. Estamos particularmente interessados no modelo Pixtral mais recente, que tem o ponto de extremidade da API pixtral-12b-2409.

# Add this code in mistral_example.py after initializing the API key

model = "pixtral-12b-2409"
client = Mistral(api_key=api_key)

Fazer uma solicitação de API

Agora estamos prontos para fazer uma solicitação à API do Mistral e interagir com o Pixtral de forma programática. Aqui está um exemplo de como enviar um prompt de texto:

# Add this code in mistral_example.py after initializing the client

chat_response = client.chat.complete(
  model=model,
  messages = [
   {
     "role": "user",
     "content": [
       {
         "type": "text",
         "text": "What is 1 + 1?"
       }
     ]
   },
 ]
)
print(chat_response.choices[0].message.content)

Podemos executar esse script no terminal e ver a resposta do Pixtral ao nosso prompt:

$ python mistral_example.py                  
The sum of 1 + 1 is 2. So,
1 + 1 = 2

Usando a API com multimodalidade

No exemplo fornecido, o prompt de texto é enviado por meio do campo content, em que type está definido como "text".

{
  "type": "text",
  "text": "What is 1 + 1?"
}

O campo content é uma matriz que nos permite enviar vários dados. Como um modelo multimodal, o Pixtral também aceita dados de imagem. Para usar uma imagem de um URL no prompt, podemos incluí-la no campo content especificando "image_url" como o tipo:

{
  "type": "image_url",
  "Image_url": "<image_url>” 
}

Substitua pelo URL real da imagem. Por exemplo, podemos usar o Pixtral para analisar os gráficos de desempenho abaixo:

Fonte: Mistral AI

chat_response = client.chat.complete(
 model=model,
 messages = [
   {
     "role": "user",
     "content": [
       {
         "type": "text",
         "text": "According to the chart, how does Pixtral 12B performs compared to other models?"
       },
       {
         "type": "image_url",
         "image_url": "https://mistral.ai/images/news/pixtral-12b/pixtral-benchmarks.png"
       }
     ]
   },
 ]
)
print(chat_response.choices[0].message.content)

Quando essa solicitação é enviada, o Pixtral recebe o prompt de texto e a imagem que contém os gráficos para análise e, em seguida, fornece uma resposta detalhando a análise. Não mostraremos a resposta aqui devido ao seu tamanho considerável.

Carregamento de imagens locais

No exemplo anterior, mostramos como exibir uma imagem a partir de um URL. Como alternativa, podemos usar uma imagem armazenada em nosso disco rígido, carregando-a como uma imagem codificada em base-64. Para carregar e codificar uma imagem em base-64, usamos o pacote incorporado base64:

def encode_image_base64(image_path):
 with open(image_path, "rb") as image_file:
   return base64.b64encode(image_file.read()).decode("utf-8")

Quando você usa imagens codificadas em base-64, ainda usamos o tipo image_url para fornecer a imagem codificada, mas precisamos prefixá-la com data:image/jpeg;base64,:

{
  "type": "image_url",
  "image_url": f"data:image/jpeg;base64,{base_64_image}"
}

base_64_image é o resultado da chamada da função encode_image_base64() para carregar a imagem. Vamos usar isso para pedir ao Pixtral que crie um site de lista de tarefas com duas páginas com base nos dois esboços que fiz a seguir:

Esboço para a interface do aplicativo da lista TODO.

Fornecemos as duas imagens separadamente, bem como um prompt solicitando que você crie um site em HTML com base nas imagens:

list_image = encode_image_base64("./todo-list.jpeg")
new_item_image = encode_image_base64("./new-item-form.jpeg")

chat_response = client.chat.complete(
 model=model,
 messages = [
   {
     "role": "user",
     "content": [
       {
         "type": "text",
         "text": "Create a HTML website with two pages like in the images"
       },
       {
         "type": "image_url",
         "image_url": f"data:image/jpeg;base64,{list_image}"
       },
       {
         "type": "image_url",
         "image_url": f"data:image/jpeg;base64,{new_item_image}"
       },      
     ]
   },
 ]
)
print(chat_response.choices[0].message.content)

O Pixtral produzirá dois blocos de código com o conteúdo das duas páginas. Salvamos o código em dois arquivos denominados index.html e add.html e os abrimos no navegador. Esse foi o resultado:

Aplicativo de lista TODO renderizado da Pixtral.

Embora ainda não seja um aplicativo totalmente funcional, ele está operacional e é um excelente ponto de partida para desenvolvimento futuro.

Conclusão

O Pixtral 12B é o primeiro modelo multimodal da Mistral. Ele pode lidar com imagens de todos os tamanhos sem pré-processamento, apresenta uma janela de contexto de 128K para prompts complexos e tem bom desempenho em tarefas somente de texto e multimodais. 

Disponível gratuitamente em projetos não monetizados e de código aberto sob a licença Apache 2.0, o Pixtral é valioso tanto para pesquisadores quanto para amadores.

Neste tutorial, forneci insights práticos sobre o uso do Pixtral, destacando seus recursos por meio de exemplos e orientações passo a passo.

Perguntas frequentes

O uso do Pixtral é gratuito e sob quais condições?

O Pixtral é gratuito para uso em Le Chat ou por meio da API para projetos não monetizados.

O Pixtral é de código aberto?

Sim. Ele é de código aberto sob a licença Apache 2.0.

Que tipo de dados de entrada o Pixtral suporta?

Pixtral é o primeiro LLM multimodal da Mistral AI. Ele suporta texto e imagens.

Que tipos de imagens são compatíveis com o Pixtral?

O Pixtral suporta imagens de qualquer tamanho sem exigir nenhum tipo de pré-processamento.

O que torna a Pixtral importante?

O Pixtral tem excelente desempenho para um modelo com apenas 12 bilhões de parâmetros. Além disso, ele pode ser usado gratuitamente e é de código aberto.


Photo of François Aubry
Author
François Aubry
LinkedIn
Ensinar sempre foi minha paixão. Desde meus primeiros dias como estudante, eu buscava ansiosamente oportunidades para dar aulas particulares e ajudar outros alunos. Essa paixão me levou a fazer um doutorado, onde também atuei como assistente de ensino para apoiar meus esforços acadêmicos. Durante esses anos, encontrei imensa satisfação no ambiente tradicional da sala de aula, promovendo conexões e facilitando o aprendizado. Entretanto, com o advento das plataformas de aprendizagem on-line, reconheci o potencial transformador da educação digital. Na verdade, participei ativamente do desenvolvimento de uma dessas plataformas em nossa universidade. Estou profundamente comprometido com a integração dos princípios tradicionais de ensino com metodologias digitais inovadoras. Minha paixão é criar cursos que não sejam apenas envolventes e informativos, mas também acessíveis aos alunos nesta era digital.
Temas

Aprenda IA com estes cursos!

Course

Image Processing in Python

4 hr
45.2K
Learn to process, transform, and manipulate images at your will.
See DetailsRight Arrow
Start Course
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

blog

10 dos melhores plug-ins do ChatGPT para você obter o máximo da IA em 2024

Desbloqueie todo o potencial do ChatGPT com nosso guia especializado sobre os 10 principais plug-ins para 2023. Aumente a produtividade, simplifique os fluxos de trabalho e descubra novas funcionalidades para elevar sua experiência com o ChatGPT.
Matt Crabtree's photo

Matt Crabtree

12 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

AI do cursor: Um guia com 10 exemplos práticos

Saiba como instalar o Cursor AI no Windows, macOS e Linux e descubra como usá-lo em 10 casos de uso diferentes.
François Aubry's photo

François Aubry

10 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

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

6 min

See MoreSee More