Para darle un repaso rápido, el Pi 5 es una microcomputadora con una CPU Cortex-A76 de 4 núcleos, hasta 8 GB de RAM y una GPU VideoCore VI. Es básicamente una computadora de bolsillo.
Ahora comienza la verdadera diversión. Los competidores de nuestro experimento incluyen una variedad de LL.M., cada uno con sus propias fortalezas y limitaciones. Probaremos Phi-3.5B, Gemma2-2B, Qwen2.5-3B, Mistral-7B y Llama 2-7B.
Veamos qué modelos de lenguaje están a la altura del desafío de ejecutarse en una Raspberry Pi 5.
Tabla de Contenidos
Estándares de prueba
Para garantizar una evaluación justa y objetiva del LL.M., utilicé un enfoque estandarizado para cada modelo.
Probé todos los modelos directamente en Ollama dentro de la terminal, sin una GUI, para eliminar cualquier sobrecarga de rendimiento y proporcionar una forma básica de ver cómo funcionaban estos modelos.
Tarea: Cada LL.M. tiene la tarea de producir un Archivo de redacción de Docker Para instalaciones de WordPress con base de datos MySQL.
índice:
- Tiempo de razonamiento: El tiempo que lleva desde que se solicita hasta que se completa la generación del archivo Docker Compose. Tiempos de inferencia más cortos indican un mejor rendimiento.
- exactitud: La exactitud e integridad del archivo Docker Compose generado. Evaluaremos si el archivo define con precisión los servicios, páginas y volúmenes necesarios para una instalación funcional de WordPress.
- eficiencia: Utilización de recursos de LLM durante la misión. Supervisaremos el uso de la CPU, el consumo de memoria y la E/S del disco para identificar cualquier cuello de botella en el rendimiento.
Los modelos Gemma 2 de Google están disponibles en tamaños 2B, 9B y 27B, y cada uno utiliza una nueva arquitectura diseñada para ofrecer un rendimiento y una eficiencia impresionantes.
Como puede ver en el vídeo de arriba, el modelo Google Gemma2 funciona de manera impresionante en la Raspberry Pi 5.
Los tiempos de inferencia son rápidos y la calidad de respuesta es muy buena, utilizando sólo 3 GB de los 8 GB de memoria disponibles, dejando mucho espacio para otras tareas.
Teniendo en cuenta estos resultados, le daría a este conjunto 5 de 5 estrellas.
Qwen2.5 es el producto de última generación de la serie Qwen de modelos de lenguaje a gran escala. Incluye varios modelos básicos y versiones adaptadas a las instrucciones con tamaños de parámetros que oscilan entre 0,5 y 72 mil millones. Qwen2.5 trae varias mejoras en comparación con su predecesor Qwen2.
Esta fue la primera vez que probé este modelo y quedé impresionado. Los tiempos de inferencia son muy rápidos y las respuestas son precisas y relevantes.
Utiliza 5,4 GB de los 8 GB de RAM disponibles, dejando algo de espacio para otras tareas.
Esto significa que puede usar Qwen 2.5 fácilmente mientras realiza otras actividades personales sin ninguna desaceleración notable.
El Phi-3.5-mini es un modelo compacto de punta abierta derivado de la serie Phi-3.
Se entrena con el mismo conjunto de datos, que incluye datos sintéticos y sitios web públicos seleccionados, enfatizando información de alta calidad y rica en inferencias.
El modelo, con una longitud de contexto de 128.000 tokens, se ha perfeccionado a través de un proceso integral que combina ajuste supervisado, optimización de políticas próximas y optimización de preferencias directas para mejorar su capacidad de seguir instrucciones con precisión y mantener protocolos de seguridad sólidos.
En mis pruebas del modelo Microsoft Phi 3.5, el rendimiento fue aceptable.
Si bien el tiempo de inferencia no fue tan malo y la respuesta inicial pareció buena, el modelo comenzó a alucinar y producir resultados inexactos.
Después de unos 11 minutos tuve que forzar el abandono porque no mostraba signos de detenerse y probablemente continuaría indefinidamente.
El modelo utiliza alrededor de 5 GB de RAM, lo que deja algo de capacidad para otras tareas, pero la ilusión acaba restando valor a la experiencia general.
Mistral es un modelo de 7 mil millones de parámetros lanzado bajo la licencia Apache que proporciona seguimiento de instrucciones y variantes de finalización literal.
Según el equipo de Mistral AI, Mistral 7B supera a Llama2-13B en todos los puntos de referencia e incluso supera a Llama 1 34B en varios aspectos.
También ofrece un rendimiento cercano al CodeLlama 7B para tareas de codificación, sin dejar de funcionar bien en tareas generales de idioma inglés.
Era escéptico acerca de este modelo ya que es un modelo de parámetro 7b, pero cuando lo probé en un Pi 5, completó con éxito la tarea dada, aunque el tiempo de inferencia no fue muy rápido, alrededor de 6 minutos.
Utiliza sólo 5 GB de RAM, lo cual es impresionante teniendo en cuenta su tamaño, y la respuesta es acertada y está en línea con mis expectativas.
Si bien no usaré este modelo a diario en el Pi, definitivamente es bueno tenerlo como opción para tareas más complejas cuando sea necesario.
Llama 2, desarrollado por Meta Platforms, Inc., está entrenado en un conjunto de datos de 2 billones de tokens y admite de forma nativa una longitud de contexto de 4096 tokens.
El modelo Llama 2 Chat está optimizado específicamente para uso conversacional y ajustado con más de 1 millón de anotaciones humanas para mejorar sus capacidades de chat.
Vale, vale, como puedes ver arriba, cuando intenté ejecutar el modelo Llama 2, descubrí que no funcionaba en absoluto debido a sus mayores requisitos de RAM.
Code Llama se basa en Llama 2, un modelo creado para ayudar en la generación y discusión de código.
Está diseñado para agilizar el flujo de trabajo de desarrollo y simplificar el proceso de aprendizaje de codificación.
Code Llama puede generar código y lenguaje natural interpretado, admitiendo una variedad de lenguajes de programación populares, como Python, C++, Java, PHP, Typescript (Javascript), C#, Bash, etc.
Al igual que el modelo llama2, simplemente no se ejecuta en mi Raspberry Pi 5 debido a sus mayores requisitos de RAM.
Nemotron-Mini-4B-Instruct está diseñado para generar respuestas para juegos de roles, generación de aumento de recuperación (RAG) y llamadas a funciones.
Es un modelo de lenguaje pequeño (SLM) que se ha mejorado mediante técnicas de destilación, poda y cuantificación para mejorar la velocidad y la implementación en el dispositivo.
El modelo de instrucción está optimizado específicamente para juegos de rol, control de calidad basado en RAG y llamadas a funciones en inglés, admite una longitud de contexto de 4096 tokens y está listo para uso comercial.
Durante las pruebas del Nemotron-Mini-4B-Instruct, descubrí que el modelo es muy eficiente.
Ofrece respuestas rápidamente, con tiempos de inferencia de menos de 2 minutos, mientras utiliza solo 4 GB de RAM.
Este nivel de rendimiento lo convierte en una opción viable como copiloto personal en tu Pi.
Orca Mini es una familia de modelos basados en Llama y Llama 2, entrenados utilizando conjuntos de datos estilo Orca, como se describe en el artículo «Orca: Progressive Learning from Complex Interpretation Trajectories in GPT-4».
Hay dos versiones: la Orca Mini original está construida sobre Llama y está disponible en 3, 7 y 13 mil millones de tamaños de parámetros, y la versión 3 está basada en Llama 2 y está disponible en 7, 13 y 70 mil millones de tamaños de parámetros.
Orca Mini utiliza 4,5 GB de los 8 GB de RAM disponibles y tiene buenos tiempos de inferencia.
Aunque no estoy completamente seguro de la precisión de la respuesta (es necesario verificarlo probando el archivo de salida), aún así recomendaría este modelo debido a su eficiencia y rendimiento.
CodeGemma es un conjunto de modelos livianos y versátiles capaces de manejar una variedad de tareas de codificación, incluida la finalización de código de relleno, la generación de código, la comprensión del lenguaje natural, el razonamiento matemático y el seguimiento de instrucciones.
Mi experiencia con CodeGemma ha sido muy interesante. En lugar de responder cualquiera de mis preguntas, la modelo, curiosamente, comenzó a hacerme preguntas, casi como si tuviera personalidad propia.
Creo que este comportamiento puede deberse a su enfoque en la finalización del código, por lo que planeo probarlo en el IDE para ver cómo funciona en ese contexto.
A pesar de las interacciones inesperadas, se cargó exitosamente en Ollama y usó solo 2,5 GB de RAM, lo cual es impresionante para un modelo tan liviano.
mi calificación
Tenga en cuenta que todas las calificaciones proporcionadas son subjetivas y se basan en mi experiencia personal al probar estos modelos.
Reflejan el rendimiento de cada modelo en una Raspberry Pi 5, pero los resultados pueden variar según las diferentes configuraciones y casos de uso.
Le animo a que tome estas calificaciones con cautela y las pruebe usted mismo para ver qué funciona mejor para sus necesidades.
Maestro de leyes | Clasificación |
Gema 2 (2b) | ⭐⭐⭐⭐ |
Kuiwen 2.5 (3b) | ⭐⭐⭐⭐⭐ |
Φ 3,5 (3,8b) | ⭐⭐ |
Mistral(7b) | ⭐⭐⭐ |
Camello 2 (7b) | – |
Kodrama(7b) | – |
Nemotron-mini(4b) | ⭐⭐⭐⭐ |
Orca Mini(3b) | ⭐⭐⭐ |
Código Gemma (2b) | ⭐ |
pensamientos finales
Probar varios LLM en Raspberry Pi 5 proporcionó información valiosa sobre los tipos de modelos que realmente se pueden ejecutar en este dispositivo compacto.
En términos generales, Los modelos con menos de 7 mil millones de parámetros son perfectos para Piproporcionando un buen equilibrio entre rendimiento y uso de recursos.
Sin embargo, hay algunas excepciones, como el Mistral 7B, que a pesar de ser un modelo más grande, funciona bien, aunque un poco lento.
Por otro lado, los modelos de las series 2B, 3B y 4B tuvieron un rendimiento excepcional, demostrando la capacidad de Pi para manejar tareas complejas de IA.
A medida que sigamos avanzando en el campo de la inteligencia artificial, creo que veremos más modelos optimizados para dispositivos pequeños como Raspberry Pi.
¿Qué opinas? ¿Qué modelos estás probando en el Pi? ¡Por favor cuéntanos!