Introdução geral
llama.cpp é uma biblioteca implementada em C/C++ puro, projetada para simplificar o processo de inferência de modelos de linguagem grande (LLM). Ela é compatível com uma ampla variedade de plataformas de hardware, incluindo Apple Silicon, GPUs NVIDIA e GPUs AMD, e oferece várias opções de quantificação para aumentar a velocidade de inferência e reduzir o uso de memória. O objetivo do projeto é obter inferência LLM de alto desempenho com configuração mínima para ambientes locais e em nuvem.
Lista de funções
- Suporte a várias plataformas de hardware, incluindo Apple Silicon, GPUs NVIDIA e GPUs AMD
- Oferece opções de quantização de números inteiros de 1,5 a 8 bits
- Oferece suporte a vários modelos de LLM, como LLaMA, Mistral, Falcon, etc.
- Fornecer interface de API REST para facilitar a integração
- Suporta raciocínio misto de CPU+GPU
- Fornecer vários vínculos de linguagem de programação, como Python, Go, Node.js, etc.
- Fornecer uma variedade de ferramentas e suporte de infraestrutura, como ferramentas de transformação de modelos, balanceadores de carga, etc.
Usando a Ajuda
Processo de instalação
- Armazém de Clonagem:
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
- Compile o projeto:
fazer
Diretrizes para uso
transformação de modelos
O llama.cpp fornece uma variedade de ferramentas para converter e quantificar modelos para que sejam executados com eficiência em diferentes hardwares. Por exemplo, o modelo Hugging Face pode ser convertido para o formato GGML usando o seguinte comando:
python3 convert_hf_to_gguf.py --model
Exemplo de raciocínio
Após a compilação, você pode usar os seguintes comandos para inferência:
. /llama-cli -m models/llama-13b-v2/ggml-model-q4_0.gguf -p "Olá, mundo!"
Uso da API REST
O llama.cpp também fornece um servidor HTTP compatível com a API da OpenAI que pode ser usado para serviços de inferência de modelos locais. Inicie o servidor:
. /llama-server -m models/llama-13b-v2/ggml-model-q4_0.gguf --port 8080
A UI básica da Web pode ser acessada por meio de um navegador ou usando a API para solicitações de inferência:
curl -X POST http://localhost:8080/v1/chat -d '{"prompt": "Hello, world!"}'
Fluxo de operação detalhado da função
- Carregamento do modeloPrimeiro, você precisa fazer o download do arquivo do modelo e colocá-lo no diretório especificado e, em seguida, carregar o modelo usando a ferramenta de linha de comando.
- Configuração de raciocínioParâmetros relevantes para inferência, como comprimento do contexto, tamanho do lote, etc., podem ser definidos por meio de arquivos de configuração ou parâmetros de linha de comando.
- Integração de APIPor meio da interface REST API, o llama.cpp pode ser integrado aos aplicativos existentes para permitir serviços de raciocínio automatizados.
- otimização do desempenhoUtilizar as opções de quantificação e os recursos de aceleração de hardware pode melhorar significativamente a velocidade e a eficiência da inferência.