Lm.rs: tecnología mínima de inferencia de LLM en CPU basada en Rust y sin dependencias
(github.com/samuel-vitorino)lm.rs: ejecutar inferencia local de modelos de lenguaje en CPU con Rust
-
Introducción
- lm.rs es un proyecto que permite ejecutar inferencia de modelos de lenguaje en CPU usando Rust.
- Está diseñado para ejecutar modelos de lenguaje con código mínimo y sin bibliotecas de ML, inspirado en
llama2.cyllm.cde Karpathy. - Antes solo era compatible con el modelo Gemma 2 de Google, pero ahora también soporta los modelos Llama 3.2 y el modelo de imágenes PHI-3.5.
-
Modelos preparados
- Ofrece benchmarks y enlaces de descarga para varios modelos y tokenizers.
- Se recomienda usar modelos cuantizados Q8_0 y Q4_0.
- La velocidad fue medida en un AMD Epyc de 16 núcleos.
-
Conversión de modelos
- Es posible convertir modelos de Google/Meta al formato lmrs.
- Después de instalar las dependencias de Python, se pueden usar los scripts
export.pyytokenizer.pypara convertir el modelo y el tokenizer.
-
Build
- El código Rust puede compilarse y ejecutarse con cargo.
- Para activar las funciones multimodales, es necesario incluir la feature
multimodal.
-
TODOs
- Agregar métodos de sampling.
- Probar modelos 9B y 27B.
- Paralelizar el bucle de atención multi-head.
- Agregar métricas de rendimiento.
- Agregar una función para proporcionar system prompts.
- Soporte de cuantización (
int8,int4).
# Resumen de GN⁺
- lm.rs ofrece una forma eficiente de ejecutar modelos de lenguaje en CPU con Rust. Esto es posible incluso sin bibliotecas de ML, por lo que resulta útil en entornos ligeros.
- También es adecuado para desarrolladores que usan Rust por primera vez, y tiene alta extensibilidad gracias a su compatibilidad con varios modelos.
- El soporte para modelos multimodales como PHI-3.5 también incluye capacidades de procesamiento de imágenes.
- Un proyecto con funcionalidad similar es la biblioteca Transformers de Hugging Face.
1 comentarios
Comentarios de Hacker News
unsafe