Introdução geral
LightLLM O lightLLM é uma estrutura de serviço e inferência do Large Language Model (LLM) baseada em Python, conhecida por seu design leve, facilidade de dimensionamento e desempenho eficiente. A estrutura aproveita uma variedade de implementações de código aberto bem conhecidas, incluindo FasterTransformer, TGI, vLLM e FlashAttention, entre outras. O lightLLM melhora drasticamente a utilização da GPU e a velocidade de inferência por meio de técnicas como colaboração assíncrona, lotes dinâmicos e paralelismo de tensor para uma ampla variedade de modelos e cenários de aplicativos.
Lista de funções
- Colaboração assíncrona: oferece suporte à divisão assíncrona de palavras, inferência de modelos e operações de divisão para melhorar a utilização da GPU.
- Atenção sem preenchimento: suporta operações de atenção sem preenchimento para vários modelos e lida com solicitações com grandes diferenças de comprimento.
- Processamento dinâmico em lote: oferece suporte ao agendamento dinâmico de solicitações em lote.
- FlashAttention: aumente a velocidade e reduza o espaço de memória da GPU com o FlashAttention.
- Paralelismo de tensor: acelere a inferência em várias GPUs usando o paralelismo de tensor.
- Token Atenção: mecanismo de gerenciamento de memória baseado em tokens implementado para o cache KV com desperdício zero de memória.
- Roteadores de alto desempenho: trabalhando com Token Attention para otimizar o rendimento do sistema.
- Cache Int8KV: aumenta a capacidade do token, quase dobrando-a.
- Suporte a vários modelos: incluindo BLOOM, LLaMA, StarCoder, ChatGLM2, etc.
Usando a Ajuda
Processo de instalação
- Instale o LightLLM usando o Docker:
docker pull modeltc/lightllm
docker run -it --rm modeltc/lightllm
- Instale a dependência:
pip install -r requirements.txt
Uso
- Inicie o serviço LightLLM:
python -m lightllm.server
- Modelo de consulta (exemplo de console):
python -m lightllm.client --model llama --text "你好,世界!"
- Modelo de consulta (exemplo em Python):
from lightllm import Client
client = Client(model="llama")
response = client.query("你好,世界!")
print(response)
Funções principais
- colaboração assíncronaLightLLM: o LightLLM melhora significativamente a utilização da GPU executando de forma assíncrona as operações de segmentação, inferência de modelos e remoção de segmentação. Os usuários simplesmente iniciam o serviço e o sistema lida com essas operações automaticamente.
- atenção não preenchidaQuando se processam solicitações com grandes diferenças de comprimento, o LightLLM oferece suporte a operações de atenção sem preenchimento para garantir um processamento eficiente. Não é necessária nenhuma configuração adicional por parte do usuário e o sistema é otimizado automaticamente.
- Processamento dinâmico de lotesLightLLM suporta agendamento dinâmico de lotes, os usuários podem definir os parâmetros de lote por meio do arquivo de configuração, o sistema ajustará dinamicamente a política de lote de acordo com a solicitação.
- FlashAttentionFuncionalidade de inferência: Ao integrar a tecnologia FlashAttention, o LightLLM melhora a velocidade de inferência e reduz o espaço de memória da GPU. Os usuários podem ativar esse recurso no arquivo de configuração.
- paralelismo de tensoresOs usuários podem definir o número de GPUs e os parâmetros de paralelismo por meio de um arquivo de configuração, e o sistema atribuirá tarefas automaticamente.
- Token de atençãoLightLLM: O LightLLM implementa um mecanismo de gerenciamento de memória baseado em tokens para o cache KV, garantindo desperdício zero de memória. Não há necessidade de configuração adicional do usuário, o sistema gerencia a memória automaticamente.
- Roteador de alto desempenhoRoteadores de alto desempenho da LightLLM: Os roteadores de alto desempenho da LightLLM trabalham com o Token Attention para otimizar a taxa de transferência do sistema. Os usuários podem definir os parâmetros de roteamento no arquivo de configuração e o sistema otimizará automaticamente a política de roteamento.
- Cache Int8KVLightLLM: O LightLLM oferece suporte ao cache Int8KV para aumentar a capacidade do token, quase o dobro. Os usuários podem ativar esse recurso no arquivo de configuração, e o sistema ajustará automaticamente a estratégia de cache.
Modelos suportados
O LightLLM é compatível com uma variedade de modelos, incluindo, entre outros, os seguintes:
- BLOOM
- LLaMA
- Codificador estelar
- ChatGLM2
- InternLM
- Qwen-VL
- Llava
- Estável
- MiniCPM
- Phi-3
- CohereForAI
- DeepSeek-V2
Os usuários podem selecionar o modelo apropriado de acordo com suas necessidades e defini-lo adequadamente no arquivo de configuração.