Saltar al contenido principal
InicioTutorialesInteligencia Artificial (IA)

Pixtral 12B: Una guía con ejemplos prácticos

Aprende a utilizar el Pixtral 12B de Mistral interactivamente a través de Le Chat o programáticamente mediante la API disponible en La Plateforme.
Actualizado 27 sept 2024  · 8 min leer

Mistral lanzó Pixtral 12B, un modelo lingüístico de código abierto de 12.000 millones de parámetros de código abierto (LLM). Este es el primer multimodal de Mistral, lo que significa que puede procesar tanto texto como imágenes.

He aquí por qué Pixtral es una valiosa adición al panorama de los LLM:

  • Procesa eficazmente imágenes de todos los tamaños sin preprocesamiento.
  • Una ventana contextual de 128K permite manejar avisos complejos y numerosas imágenes.
  • Gran rendimiento tanto en tareas de sólo texto como multimodales.
  • Gratis para proyectos no monetizados, por lo que es ideal para investigadores y aficionados.
  • De código abierto bajo licencia Apache 2.0, apoya la democratización de la IA.

En este tutorial, proporcionaré numerosos ejemplos y orientación paso a paso sobre el uso de Pixtral a través de la interfaz de chat web, Le Chat, y mediante programación a través de la API. Pero antes, vamos a tratar los aspectos teóricos esenciales de Pixtral.

¿Qué es Pixtral 12B?

Mistral AI ha lanzado Pixtral 12B, un modelo diseñado para procesar conjuntamente imágenes y texto. Con 12.000 millones de parámetros, puede realizar tareas que impliquen una mezcla de elementos visuales y lingüísticos, como interpretar tablas, documentos o gráficos.

Es útil para entornos que requieren un profundo conocimiento de ambos formatos.

Una característica clave de Pixtral 12B es su capacidad para manejar múltiples imágenes en una sola entrada, procesándolas a su resolución nativa. El modelo tiene una ventana contextual de 128.000 tokens, que permite analizar documentos largos y complejos, imágenes o múltiples fuentes de datos simultáneamente. Esto lo hace útil en áreas como la elaboración de informes financieros o el escaneado de documentos para empresas.

Puntos de referencia de Pixtral

Pixtral obtiene buenos resultados en las tareas relacionadas con el Conocimiento y Razonamiento Multimodal, especialmente en el test MathVista, donde lidera el pelotón. En las tareas de QA multimodal, también ocupa una posición destacada, sobre todo en ChartQA.

Puntos de referencia Pixtral

Fuente: Mistral AI

Sin embargo, en tareas de seguimiento de instrucciones y basadas en texto, otros modelos como Claude-3 Haiku y Gemini Flash-8B muestran un rendimiento competitivo o superior. Esto sugiere que Pixtral 12B destaca en el razonamiento multimodal y visual, pero puede que no domine en tareas basadas puramente en texto.

Arquitectura de Pixtral

La arquitectura de Pixtral 12B está diseñada para procesar simultáneamente texto e imágenes. Presenta dos componentes principales un Codificador de Visión y un Decodificador Transformador Multimodal.

El codificador de visión, que tiene 400 millones de parámetros, está específicamente entrenado para adaptarse a imágenes de distintos tamaños y resoluciones.

Codificador de visión de Pixtral.

Fuente: Mistral AI

El segundo componente, el Decodificador Transformador Multimodal, es un modelo más extenso con 12.000 millones de parámetros. Se basa en la arquitectura existente de Mistral Nemo y está diseñado para predecir el siguiente token de texto en secuencias que intercalan datos de texto e imagen.

Este descodificador puede procesar contextos muy largos (hasta 128k tokens), lo que le permite manejar numerosos tokens de imágenes y amplia información textual en documentos de gran tamaño.

Decodificador transformador multimodal de Pixtral.

Fuente: Mistral AI

Esta arquitectura combinada permite a Pixtral tratar con una amplia gama de tamaños y formatos de imagen, traduciendo imágenes de alta resolución en tokens coherentes sin perder el contexto.

Cómo usar Pixtral en Le Chat

La forma más fácil de acceder gratuitamente a Pixtral es a través de El Chatsu interfaz de chat. Esta interfaz se parece a otras interfaces de chat LLM-como la de ChatGPTpor ejemplo.

La interfaz web de Le Chat.

Para utilizar Pixtral, navega hasta el selector de modelo situado en la parte inferior, junto a la entrada de consulta, y elige el modelo Pixtral de la lista de modelos disponibles.

Seleccionar el modelo Pixtral en Le Chat.

Pixtral es un modelo multimodal que admite tanto texto como imágenes. Utilizando el icono del clip situado en la parte inferior, podemos subir una o varias imágenes y combinarlas con una indicación de texto. Por ejemplo, esta funcionalidad puede ayudarnos a identificar una fruta representada en una imagen.

Un ejemplo de aviso multimodal utilizando Pixtral en Le Chat.

Exploremos otro ejemplo en el que pedimos a Pixtral que transforme una imagen que contiene un gráfico circular en una tabla markdown:

Utilizar Le Chat para transformar un gráfico en una tabla de texto.

Cómo conectarse a la API de Pixtral en La Plateforme

Aunque utilizar Pixtral a través de su interfaz web es agradable y fácil, no es adecuado para incorporarlo a nuestros proyectos. En esta sección, hablaremos de cómo interactuar con Pixtral a través de su API utilizando Python, mediante La Plataforma.

Configuración del perfil

Para empezar, tenemos que crear una cuenta. Esto puede hacerse con un solo clic utilizando una cuenta de Google o, alternativamente, creando una cuenta tradicional con un nombre de usuario y una contraseña.

Al crear la cuenta, se nos pide que configuremos un espacio de trabajo. Puedes seleccionar cualquier nombre para tu espacio de trabajo y optar por la opción "Soy creador en solitario".

Crear un espacio de trabajo en La Platforme.

Después de crear la cuenta, ve a la página página de planes de facturación. Aquí tenemos la opción de crear un plan de facturación experimental, que nos permite probar la API gratuitamente, o configurar un plan de pago. Es importante tener en cuenta que el plan experimental gratuito requiere que vinculemos un número de teléfono válido a nuestra cuenta.

Seleccionar un plan de facturación en La Platforme.

Ahora nuestro perfil debería estar listo para crear una clave API. Esta clave es necesaria para hacer peticiones a la API de Mistral y para interactuar programáticamente con Pixtral utilizando Python.

Generar la clave API

Para generar la clave API, ve a la página Página de la clave API. En la parte superior de la página, tenemos un botón para crear una nueva clave API:

Crear claves API en La Platforme.

Al crear una clave, se nos pide que le pongamos un nombre y una fecha de caducidad. Sin embargo, ambos campos son opcionales, lo que nos permite dejarlos en blanco si lo deseamos.

Formulario de creación de clave API para La Plateforme de Mistral

En general, es aconsejable fijar una fecha de caducidad para las claves. A menudo, las claves se crean para experimentar con una API, pero luego se olvidan, dejándolas activas indefinidamente. Establecer una fecha de caducidad garantiza que, si una clave se filtra accidentalmente, no pueda utilizarse para siempre, minimizando así los riesgos potenciales.

Guarda la clave API después de crearla.

Una vez creada la clave, se mostrará. Esta pantalla es la única oportunidad de ver la clave, por lo que es esencial copiarla. Si se pierde la clave, la solución es borrarla de la lista y crear una nueva.

Recomiendo crear un archivo .env en el mismo directorio que el script de Python para almacenar la clave utilizando el siguiente formato (sustituyendo por la clave real):

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

No se recomienda omitir este paso y codificar la clave API en nuestro script. Esto nos impide compartir nuestro código sin compartir también la clave. Aprende más sobre este enfoque en este tutorial sobre Variables de entorno de Python.

Instalar dependencias

Para empezar, instalamos las dependencias necesarias, que incluyen:

  • mistralaila biblioteca cliente proporcionada por Mistral para la interacción con la API.
  • python-dotenvmódulo utilizado para cargar variables de entorno desde un archivo .env.
pip install python-dotenv mistralai

Una vez instaladas las dependencias, podemos proceder a la creación del script. Crea un archivo llamado mistral_example.py en el mismo directorio que el archivo .env. El paso inicial consiste en importar los módulos y cargar la clave API en una variable.

# 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")

A continuación, podemos proceder a inicializar el cliente.

Inicializar el cliente

La página de documentación del Mistral encontrarás una lista de todos los modelos disponibles. Nos interesa especialmente el último modelo de Pixtral, que tiene el punto final de la 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)

Haz una solicitud API

Ya estamos listos para hacer una petición a la API de Mistral e interactuar con Pixtral mediante programación. Aquí tienes un ejemplo de cómo enviar un mensaje 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 ejecutar este script en el terminal y ver la respuesta del Pixtral a nuestro prompt:

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

Utilizar la API con multimodalidad

En el ejemplo proporcionado, la solicitud de texto se envía a través del campo content, donde type se establece en "text".

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

El campo content es una matriz que nos permite enviar varios datos. Como modelo multimodal, Pixtral también acepta datos de imagen. Para utilizar una imagen de una URL en la consulta, podemos incluirla en el campo content especificando "image_url" como tipo:

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

Sustituye por la URL real de la imagen. Por ejemplo, podemos utilizar Pixtral para analizar los siguientes gráficos de rendimiento:

Fuente: 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)

Cuando se envía esta solicitud, Pixtral recibe tanto la petición de texto como la imagen que contiene los gráficos para su análisis y, a continuación, proporciona una respuesta en la que se detalla el análisis. No mostraremos aquí la respuesta debido a su considerable extensión.

Carga de imágenes locales

En el ejemplo anterior, hemos mostrado cómo mostrar una imagen desde una URL. Alternativamente, podemos utilizar una imagen almacenada en nuestro disco duro cargándola como una imagen codificada en base-64. Para cargar y codificar una imagen en base-64, utilizamos el paquete 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")

Cuando utilizamos imágenes codificadas en base-64, seguimos utilizando el tipo image_url para proporcionar la imagen codificada, pero necesitamos anteponerle data:image/jpeg;base64,:

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

base_64_image es el resultado de llamar a la función encode_image_base64() para cargar la imagen. Utilicemos esto para pedir a Pixtral que construya un sitio web de listas de tareas con dos páginas basado en los dos bocetos siguientes que he hecho:

Boceto para la interfaz de la app de la lista TODO.

Proporcionamos las dos imágenes por separado, así como una petición para crear un sitio web HTML basado en las imágenes:

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)

Pixtral mostrará dos bloques de código con el contenido de las dos páginas. Guardamos el código en dos archivos llamados index.html y add.html y los abrimos en el navegador. Este fue el resultado:

Aplicación de lista TODO renderizada por Pixtral.

Aunque todavía no es una aplicación totalmente funcional, es operativa y un excelente punto de partida para seguir desarrollándola.

Conclusión

Pixtral 12B es el primer modelo multimodal de Mistral. Puede manejar imágenes de todos los tamaños sin preprocesamiento, dispone de una ventana contextual de 128K para indicaciones complejas, y funciona bien tanto en tareas de sólo texto como multimodales. 

Disponible gratuitamente en proyectos no monetizados y de código abierto bajo licencia Apache 2.0, Pixtral es valioso tanto para investigadores como para aficionados.

En este tutorial, he proporcionado información práctica sobre el uso de Pixtral, destacando sus capacidades mediante ejemplos y una guía paso a paso.

Preguntas frecuentes

¿El uso de Pixtral es gratuito y en qué condiciones?

Pixtral se puede utilizar gratuitamente en El Chat o a través de la API para proyectos no monetizados.

¿Es Pixtral de código abierto?

Sí. Es de código abierto bajo licencia Apache 2.0.

¿Qué tipo de datos de entrada admite Pixtral?

Pixtral es el primer LLM multimodal de Mistral AI. Admite tanto texto como imágenes.

¿Qué tipo de imágenes admite Pixtral?

Pixtral admite imágenes de cualquier tamaño sin necesidad de ningún tipo de tratamiento previo.

¿Por qué es importante Pixtral?

Pixtral tiene un rendimiento excelente para un modelo con sólo 12 mil millones de parámetros. Además, se puede utilizar gratuitamente y es de código abierto.


Photo of François Aubry
Author
François Aubry
LinkedIn
Enseñar siempre ha sido mi pasión. Desde mis primeros días como estudiante, busqué con entusiasmo oportunidades para dar clases particulares y ayudar a otros estudiantes. Esta pasión me llevó a realizar un doctorado, en el que también trabajé como ayudante de profesor para apoyar mis esfuerzos académicos. Durante esos años, encontré una inmensa satisfacción en el entorno tradicional del aula, fomentando las conexiones y facilitando el aprendizaje. Sin embargo, con la llegada de las plataformas de aprendizaje en línea, reconocí el potencial transformador de la educación digital. De hecho, participé activamente en el desarrollo de una plataforma de este tipo en nuestra universidad. Estoy profundamente comprometida con la integración de los principios de la enseñanza tradicional con metodologías digitales innovadoras. Mi pasión es crear cursos que no sólo sean atractivos e informativos, sino también accesibles para los alumnos en esta era digital.
Temas

Aprende IA con estos cursos

Course

Image Processing in Python

4 hr
44.9K
Learn to process, transform, and manipulate images at your will.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado
An AI juggles tasks

blog

Cinco proyectos que puedes crear con modelos de IA generativa (con ejemplos)

Aprende a utilizar modelos de IA generativa para crear un editor de imágenes, un chatbot similar a ChatGPT con pocos recursos y una aplicación clasificadora de aprobación de préstamos y a automatizar interacciones PDF y un asistente de voz con GPT.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

10 maneras de utilizar ChatGPT para las finanzas

Descubre cómo los modelos lingüísticos de IA como ChatGPT pueden revolucionar tus operaciones financieras, desde la generación de informes hasta la traducción de jerga financiera.
Matt Crabtree's photo

Matt Crabtree

13 min

tutorial

Tutorial Mistral 7B: Guía paso a paso para utilizar y ajustar Mistral 7B

El tutorial cubre el acceso, la cuantización, el ajuste fino, la fusión y el almacenamiento de este potente modelo lingüístico de código abierto con 7300 millones de parámetros.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Visión GPT-4: Guía completa para principiantes

Este tutorial le presentará todo lo que necesita saber sobre GPT-4 Vision, desde cómo acceder a él hasta ejemplos prácticos del mundo real y sus limitaciones.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

tutorial

Guía para principiantes sobre el uso de la API ChatGPT

Esta guía te acompanya a través de los fundamentos de la API ChatGPT, demostrando su potencial en el procesamiento del lenguaje natural y la comunicación impulsada por la IA.
Moez Ali's photo

Moez Ali

11 min

tutorial

Cómo utilizar Custom Instructions de ChatGPT

Explora la función Custom Instructions de ChatGPT. Aprende a afinar las respuestas, explora casos de uso para profesores, empresarios y creadores de contenidos.
Moez Ali's photo

Moez Ali

7 min

See MoreSee More