- Ollama comenzó a ofrecer soporte para modelos multimodales (texto + imagen) mediante un nuevo motor
- Es compatible con varios modelos visuales multimodales como Llama 4 Scout y Gemma 3, lo que permite preguntas y respuestas combinando imágenes y texto
- El nuevo motor ofrece mayor modularidad de modelos, mejor precisión y gestión eficiente de memoria
- Con caché de imágenes y uso de metadatos de hardware, logra inferencias más rápidas y optimización para el hardware
- También se anticipa la expansión de funciones como soporte para contextos más largos, tool calling y streaming
Soporte de Ollama para modelos multimodales
Con la incorporación de un nuevo motor multimodal, Ollama ahora es compatible con los modelos de visión multimodal más recientes, capaces de trabajar de forma combinada con imágenes y texto
Comprensión e inferencia multimodal integral
Llama 4 Scout
- Ollama ofrece soporte para Llama 4 Scout (109 mil millones de parámetros, modelo mixture-of-experts)
- Como ejemplo, puede responder preguntas basadas en la ubicación dentro de fotogramas de video
- Ej.) detecta diversas características de la imagen, como edificios específicos, elementos del entorno e información del fondo
- También puede continuar de forma natural con distintas preguntas de seguimiento
- Ej.) “¿Qué tan lejos está este edificio de Stanford?” o “¿Cuál es la mejor forma de llegar?”, ofreciendo información precisa
- Proporciona respuestas ajustadas a situaciones reales, incluyendo varios medios de transporte, rutas y tiempos estimados
Gemma 3
- Gemma 3 puede recibir varias imágenes al mismo tiempo y analizar la relación entre ellas
- Ej.) puede identificar rápidamente condiciones diversas, como animales o plantas que aparecen en común en 4 imágenes, la presencia de cierta escena o situaciones inusuales
- Como ejemplo curioso, puede analizar quién ganaría en una pelea de box entre una llama y un delfín al observar la escena y comprender las características y dinámica de cada uno
Reconocimiento y análisis de documentos
Qwen 2.5 VL
- El modelo Qwen 2.5 VL se utiliza para reconocimiento de texto (OCR) y extracción de información textual específica dentro de imágenes
- Como caso de uso real, puede extraer información de un cheque o traducir al inglés inscripciones verticales en chino, como los dísticos de primavera
Características del motor multimodal de Ollama
- Hasta ahora, Ollama había dependido del proyecto ggml-org/llama.cpp para dar soporte a modelos, desarrollándose con foco en la usabilidad y la portabilidad de modelos
- Recientemente, distintos laboratorios han publicado modelos multimodales, y Ollama ha reforzado su motor propio para ampliar la compatibilidad de modelos, en línea con ese objetivo
- El nuevo motor trata a los modelos multimodales como objetos independientes y de primera clase, y también impulsa más participación de socios y de la comunidad
Qué significa esta evolución del motor
- Mejora la confiabilidad y precisión de la inferencia local de Ollama, y sienta las bases para soportar en el futuro diversos campos multimodales (por ejemplo: voz, generación de imágenes, generación de video, contextos largos y mejor uso de herramientas)
Modularidad de modelos
- Se diseñó para aislar de forma independiente el “ámbito de impacto” de cada modelo, mejorando la confiabilidad y permitiendo que los desarrolladores integren nuevos modelos con facilidad
- El ggml/llama.cpp existente solo soportaba modelos de texto; en multimodal, el decodificador de texto y el codificador visual están separados y se ejecutan por separado
- Como las imágenes deben convertirse en embeddings en el algoritmo de visión y luego enviarse al modelo de texto, es posible implementar una lógica más ligera para cada modelo
- Dentro de Ollama, cada modelo puede separar por sí mismo la capa de proyección de embeddings y los componentes ajustados a su propio esquema de entrenamiento
- Los creadores de modelos pueden concentrarse solo en su modelo y entrenamiento, sin parches adicionales ni condicionales complejos
- Algunos ejemplos de arquitecturas de modelos pueden verse en el repositorio de GitHub de Ollama
Mejora de precisión
- Las imágenes grandes generan muchos tokens y pueden superar el tamaño del batch
- Si la imagen excede el batch, la información posicional puede descomponerse
- Ollama mejora la precisión al añadir metadatos adicionales durante el procesamiento de imágenes
- Maneja con detalle aspectos como si se aplica causal attention y la división por batches de embeddings de imagen junto con el control de sus límites
- Si el punto de división no es adecuado, la calidad de salida puede degradarse, por lo que se ajustan los criterios según los papers de cada modelo
- Otras herramientas de inferencia local lo implementan cada una a su manera, pero Ollama garantiza la calidad con un procesamiento preciso alineado con el diseño y método de entrenamiento de cada modelo
Optimización de la gestión de memoria
- Caché de imágenes: una vez procesada, la imagen permanece en memoria y acelera el procesamiento de prompts posteriores. Mientras no se alcance el límite de memoria, la imagen se conserva
- Predicción de memoria y optimización de la caché KV: en colaboración con fabricantes de hardware y socios del sistema operativo, busca optimizar el uso de memoria reconociendo con precisión los metadatos del hardware
- Se realizan validaciones por versión de firmware y benchmarks de nuevas funciones
- Ollama optimiza causal attention por separado a nivel de modelo, ofreciendo ajustes personalizados para cada modelo en lugar de configuraciones por grupo
- Ejemplos:
- Gemma 3 de Google DeepMind: asigna solo parte de la longitud de contexto mediante sliding window attention, y dedica el resto de la memoria a tareas como inferencia simultánea
- Llama 4 Scout, Maverick y otros de Meta: soportan chunked attention, embeddings rotatorios 2D y soporte de contexto largo para modelos mixture-of-experts
- Ejemplos:
- En modelos donde la capa de attention no está completamente implementada, puede que “funcionen”, pero a largo plazo podrían degradar la calidad de salida o producir resultados anómalos
Próximos planes
- Soporte para contextos más largos
- Refuerzo de capacidades de inferencia/razonamiento
- Tool calling y respuestas en streaming
- Ampliación de funciones para uso directo de la computadora
Agradecimientos
- Organizaciones e investigadores que contribuyeron al desarrollo de modelos
- Agradecen a los distintos laboratorios y miembros de la comunidad que impulsaron el desarrollo de modelos de visión, como Google DeepMind, Meta Llama, Alibaba Qwen, Mistral e IBM Granite
- GGML
- La biblioteca de tensores del equipo de GGML es un elemento central del motor de inferencia de Ollama. Es posible acceder directamente a GGML desde Go y usarlo para gráficos de inferencia personalizados y el diseño de arquitecturas de modelos complejas
- Socios de hardware
- Agradecen a socios de hardware como NVIDIA, AMD, Qualcomm, Intel y Microsoft por colaborar en la mejora del rendimiento de inferencia en diversos dispositivos
1 comentarios
Comentarios de Hacker News
llama.cpppor fin incluyó funciones de visión estables en la rama principal y de que un largo esfuerzo finalmente dio frutos, supone que Ollama ya llevaba mucho tiempo preparando esta función, y considera razonable la decisión de romper su dependencia inicial dellama.cpppara avanzar de forma independientellama.cpptambién es un proyecto impresionante, así que si hicieron un motor que lo reemplaza le gustaría ver ejemplos de cómo fue implementado, supone que la biblioteca de tensores GGML cumple un papel central, entiende que la estructura aprovecha funciones de GGML escribiendo directamente el funcionamiento del modelo (por ejemplo, una implementación de Gemma3) desde Go mediante FFI, y cree que estos detalles técnicos deberían haberse explicado con más claridad en el blog oficialllama.cpptú mismo” no había visto muchas explicacionesllama.cpp, e incluso señala que en algunos proyectos se usallama.cppdirectamente pero el mérito termina atribuyéndose a Ollama; añade que Ollama no contribuye directamente (aunque no esté obligada a hacerlo), pero sí mantiene un fork interno desde el cual quien tenga interés puede aprovechar código cuando quiera mediante cherry-pickllama.cpp; agrega que ahora sí existe cierto nivel de crédito más abiertollama.cpp, lmstudio y ramalama es más fácil entender la situación de cada una; añade que ramalama contribuye bastante a varios proyectos open source relacionados y comparte un enlace de GitHub como referenciallama.cpppero no lo deje claro ni lo reconozca