Lm.rs: tecnologia mínima de inferência de LLM em CPU com Rust e sem dependências
(github.com/samuel-vitorino)lm.rs: executando inferência local de modelos de linguagem na CPU com Rust
-
Introdução
- lm.rs é um projeto que permite executar inferência de modelos de linguagem na CPU usando Rust.
- Inspirado em
llama2.cellm.cde Karpathy, foi projetado para executar modelos de linguagem com código mínimo, sem bibliotecas de ML. - Antes suportava apenas o modelo Gemma 2, do Google, mas agora também oferece suporte aos modelos Llama 3.2 e ao modelo de imagem PHI-3.5.
-
Modelos prontos
- Fornece benchmarks de vários modelos e tokenizers, além de links para download.
- Recomenda o uso de modelos quantizados Q8_0 e Q4_0.
- A velocidade foi medida em um AMD Epyc de 16 núcleos.
-
Conversão de modelos
- É possível converter modelos do Google/Meta para o formato lmrs.
- Após instalar as dependências em Python, é possível converter o modelo e o tokenizer usando os scripts
export.pyetokenizer.py.
-
Build
- O código Rust pode ser compilado e executado com cargo.
- Para ativar os recursos multimodais, é necessário incluir a feature
multimodal.
-
TODOs
- Adicionar métodos de amostragem.
- Testar modelos 9B e 27B.
- Paralelizar o loop de atenção multi-head.
- Adicionar métricas de desempenho.
- Adicionar recurso para fornecer prompt de sistema.
- Suporte a quantização (int8, int4).
# Resumo do GN⁺
- O lm.rs oferece uma forma eficiente de executar modelos de linguagem na CPU com Rust. Isso é possível mesmo sem bibliotecas de ML, o que o torna útil em ambientes mais leves.
- Também é adequado para desenvolvedores que estão começando com Rust, e seu suporte a vários modelos oferece boa extensibilidade.
- O suporte a modelos multimodais como o PHI-3.5 também inclui recursos de processamento de imagem.
- Um projeto com funcionalidade semelhante é a biblioteca Transformers, da Hugging Face.
1 comentários
Comentários do Hacker News
1.2G llama3.2-1b-it-q80.lmrsem um MacBook M2 64GB, funcionou rapidamente, com uso de CPU de 1000% em 13 threadsunsafe