Neste tutorial, você descobrirá como aplicar o modelo multimodal Pixtral 12B da Mistral IA, agora disponível em watsonx.ai para tarefas multimodais, como legendas de imagens e respostas a perguntas visuais.
Em setembro de 2024, a Mistral IA lançou o Pixtral 12B, um grande modelo de linguagem (LLM) de código aberto sob a licença Apache 2.0.grandes modelos de linguagem (LLM).
Com 12 bilhões de parâmetros, o modelo multimodal é desenvolvido no Nemo 12B LLM da Mistral IA. O Pixtral 12B tem dois componentes: o codificador de visão para tokenizar imagens e um decodificador transformador multimodal para prever o seguinte token de texto dada uma sequência de texto e imagens. O codificador de visão tem 400 milhões de parâmetros e é compatível com tamanhos de imagem variáveis.
O modelo se destaca em vários casos de uso, incluindo a compreensão de gráficos, diagramas, gráficos e documentos em alta resolução, que podem ser usados para responder a perguntas sobre documentos, seguir instruções ou tarefas de geração aumentada de recuperação (RAG). Além disso, o Pixtral 12B possui uma janela de contexto de 128.000 token, que permite o consumo de várias imagens simultaneamente.
Em termos de benchmarks, o Pixtral 12B supera o desempenho de vários modelos, incluindo o Qwen2-VL, Gemini-1.5 Flash 8B e Claude-3 Haiku. Para determinados benchmarks, incluindo DocVQA (ANLS) e VQAv2 (VQA Match), o modelo supera o GPT-4o e o Claude-3.5 Sonnet da OpenAI.
Além de poder executar o Pixtral 12B no watsonx.ai, o modelo também está disponível via Hugging Face, no Le Chat, o chatbot conversacional da Mistral, ou via endpoint de API por meio do La Plateforme da Mistral.
Consulte este vídeo da IBM Technology no YouTube que mostra as instruções de configuração a seguir nas etapas 1 e 2.
Embora seja possível escolher entre várias ferramentas, este tutorial é mais adequado para um Jupyter Notebook. Os Jupyter Notebooks são amplamente utilizados na ciência de dados para combinar código com várias fontes de dados, como texto, imagens e visualização de dados.
Este tutorial vai orientar você em como configurar uma conta IBM para usar um Jupyter Notebook.
Faça login no watsonx.ai usando sua conta do IBM Cloud. Observe que, no momento, o Pixtral 12B está disponível apenas nas regiões da IBM Europe Frankfurt e Londres.
Criar um projeto do watsonx.ai.
Você pode obter a ID do projeto a partir de seu projeto. Clique na guia Gerenciar. Em seguida, copie a ID do projeto da seção Detalhes da página Geral. Você precisa dessa ID para este tutorial.
Crie um Jupyter Notebook.
Esta etapa abrirá um ambiente de notebook onde você pode copiar o código deste tutorial para implementar o ajuste de prompt por conta própria. Ou então, você pode baixar esse Notebook em seu sistema local e carregá-lo como um ativo em seu projeto do watsonx.ai. Esse Jupyter Notebook , juntamente com os conjuntos de dados utilizados, pode ser encontrado no GitHub.
Para evitar conflitos de dependência de pacotes Python, recomendamos configurar um ambiente virtual.
Precisaremos de algumas bibliotecas e módulos para este tutorial. Não deixe de importar os seguintes itens; se eles não estiverem instalados, você poderá resolver isso com uma instalação rápida.
Insira seu WATSONX_EU_APIKEY e WATSONX_EU_PROJECT_ID que você criou nas etapas 1 e 2 ao executar a seguinte célula. Também definiremos a URL como o endpoint da API.
Podemos usar a classe Credentials para encapsular nossas credenciais passadas.
Neste tutorial, trabalharemos com várias imagens para aplicações de IA multimodal, como legendas de imagens e detecção de objetos. As imagens que usaremos podem ser acessadas usando as seguintes URLs. Podemos armazenar essas URLs em uma lista para codificá-las de forma iterativa.
Para entender melhor nossa entrada de dados, vamos exibir as imagens.
Saídas:
url_image_0
url_image_1
url_image_2
url_image_3
Para codificar essas imagens de uma maneira que seja digerível para o LLM, codificaremos as imagens em bytes que, em seguida, decodificamos para representação UTF-8.
Agora que as imagens podem ser enviadas para o LLM, vamos configurar uma função para as chamadas de API do watsonx. A função augment_api_request_body recebe a consulta e a imagem do usuário como parâmetros e aumenta o corpo da solicitação de API. Usaremos essa função em cada iteração.
Vamos instanciar a interface do modelo usando a classe TheModelInference. Neste tutorial, usaremos o modelo mistralai/pixtral-12b.
Agora, podemos percorrer nossas imagens para ver as descrições de texto produzidas pelo modelo em resposta à consulta "O que está acontecendo nesta imagem?"
Saída:
A imagem mostra um campo vibrante de flores em plena floração sob um céu azul límpido, com o sol brilhando forte, criando uma cena serena e pitoresco.
Na imagem, uma pessoa está sentada em uma mesa, usando um notebook enquanto segura um cartão de crédito. Há algumas maçãs em uma tigela na mesa ao lado do notebook.
Uma pessoa está ao lado de um carro fortemente coberto de neve, segurando um guarda-chuva vermelho para se proteger da neve que cai.
A imagem descreve um fluxo de trabalho para processar e armazenar dados, provavelmente para aprendizado de máquina ou análise de dados. Começa com o carregamento de dados de origem (como documentos HTML ou XML), transformando os dados em um formato adequado, incorporando-os por meio do embedding em um armazenamento de vetores, armazenando esses vetores em um banco de dados e, finalmente, recuperando os dados quando necessário.
O modelo Pixtral 12B conseguiu legendar com sucesso cada imagem com detalhes significativos.
Agora que mostramos a capacidade do modelo de realizar legendas de imagens na etapa anterior, vamos fazer ao modelo algumas perguntas que exigem detecção de objeto. Em relação à segunda imagem que mostra a mulher fazendo compras on-line, perguntaremos ao modelo "O que a mulher tem na mão?"
Saída: a mulher está segurando um cartão de crédito na mão.
O modelo identificou corretamente o objeto na mão da mulher. Agora, vamos perguntar sobre o problema na imagem do carro coberto de neve.
Saída: o carro provavelmente está preso na neve profunda, dificultando ou impossibilitando sua movimentação.
Essa resposta destaca o valor que a IA multimodal tem para domínios como o de seguros. O modelo conseguiu detectar o problema com o carro preso na neve. Essa pode ser uma ferramenta poderosa para melhorar o tempo de processamento de pedidos de seguro.
Em seguida, vamos perguntar ao modelo sobre as etapas que estão na imagem do fluxograma.
Saída: o diagrama ilustra um processo que envolve várias etapas: "Carregar", "Transformar", "Incorporar", "Armazenar" e "Recuperar". Essa sequência provavelmente representa um fluxo de trabalho para processar e armazenar dados, transformando-os em vetores incorporados para armazenamento e recuperação eficientes.
Ótimo! O modelo foi capaz de discernir objetos dentro das imagens após consultas de usuários. Incentivamos que você faça mais consultas para demonstrar melhor o desempenho do modelo.
Neste tutorial, você usou o modelo Pixtral 12B para realizar operações multimodais, incluindo legendas de imagens e respostas a perguntas visuais.
Para experimentar outros modelos multimodais, consulte este tutorial sobre o modelo multimodal Llama 3.2 da Meta no watsonx.ai.
Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.
Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.
Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.