1 pontos por GN⁺ 2023-12-21 | Ainda não há comentários. | Compartilhar no WhatsApp

PowerInfer: serviço rápido de modelos de linguagem de grande porte usando GPUs de consumo

  • PowerInfer é um motor de inferência de LLM em CPU/GPU que aproveita a localidade de ativação.
  • PowerInfer e llama.cpp rodam no mesmo hardware e utilizam totalmente a VRAM de uma RTX 4090.

Visão geral

  • PowerInfer é um motor que realiza inferência de modelos de linguagem de grande porte (LLM) em alta velocidade com uma única GPU de consumo instalada em um computador pessoal (PC).
  • A base do design do PowerInfer é aproveitar a alta localidade observada na inferência de LLMs, caracterizada por uma distribuição de lei de potência na ativação de neurônios.
  • Essa distribuição indica que um pequeno número de neurônios “quentes” é ativado de forma consistente, enquanto a maioria dos neurônios “frios” varia conforme a entrada.
  • PowerInfer usa esse insight para projetar um motor de inferência híbrido GPU-CPU: os neurônios “quentes” são pré-carregados na GPU, e os neurônios “frios” são calculados na CPU, reduzindo significativamente os requisitos de memória da GPU e a transferência de dados entre CPU e GPU.
  • PowerInfer integra um preditor adaptativo e operadores esparsos com consciência de neurônios para otimizar a eficiência da ativação de neurônios e da esparsidade computacional.
  • Na avaliação, o PowerInfer alcançou taxa média de geração de 13,20 tokens/segundo e pico de 29,08 tokens/segundo em vários LLMs (por exemplo, OPT-175B) em uma única NVIDIA RTX 4090, ficando 18% abaixo do desempenho de uma GPU A100 de nível de servidor.
  • Mantendo a precisão do modelo, apresentou desempenho até 11,69 vezes superior ao do llama.cpp.

Características

  • Design centrado em localidade: usa ativação esparsa e os conceitos de neurônios “quentes”/“frios” para uma inferência eficiente de LLM, garantindo alta velocidade com baixa exigência de recursos.

  • Uso híbrido de CPU/GPU: integra de forma fluida as capacidades de memória e computação de CPU e GPU para permitir carga de trabalho equilibrada e processamento rápido.

  • Integração simples: compatível com modelos esparsos baseados em ReLU populares.

  • Facilidade de implantação local: profundamente otimizado para implantação local em hardware de consumo, permitindo inferência e serving de LLM com baixa latência em uma única GPU.

  • Compatibilidade retroativa: embora seja diferente do llama.cpp, a maioria dos examples/, como servidor e geração em lote, pode ser usada de forma semelhante ao llama.cpp.

Primeiros passos

  • São fornecidas orientações de instalação e de pesos dos modelos.

Configuração e instalação

  • São fornecidas instruções para obter o código e fazer a compilação.

Pesos dos modelos

  • Os modelos do PowerInfer são armazenados no formato PowerInfer GGUF, que inclui os pesos do LLM e os pesos do preditor.
  • É possível baixar os pesos PowerInfer GGUF via Hugging Face.
  • São fornecidas instruções para converter os pesos originais do modelo e os pesos do preditor para PowerInfer GGUF.

Inferência

  • São fornecidas instruções para inferência usando apenas CPU ou inferência híbrida CPU-GPU usando toda a VRAM disponível.

Quantização

  • São fornecidas orientações sobre suporte a quantização otimizada para modelos INT4(Q4_0) e como usá-la.

Avaliação

  • O PowerInfer alcança ganhos de velocidade de até 11x e 8x para modelos FP16 e INT4, respectivamente.

Perguntas frequentes

  • São fornecidas orientações de suporte para resolver o erro CUDA_ERROR_OUT_OF_MEMORY e outros problemas.

A fazer

  • São apresentadas previsões de lançamento para o código principal do PowerInfer, o modelo Mistral-7B, suporte a Windows, text-generation-webui, código de avaliação de perplexidade, suporte a Metal para Mac, código do modelo OPT, código de treinamento do preditor, particionamento online da rede FFN, suporte a Multi-GPU e outros.

Artigo e citação

  • Os detalhes técnicos do PowerInfer podem ser consultados no artigo.
  • Se o PowerInfer for útil ou ajudar em projetos e pesquisas relacionados, é solicitado citar o artigo.

Agradecimentos

  • Agradecimentos à biblioteca de operadores ajustáveis ggml e ao runtime de execução do llama.cpp.
  • Agradecimentos ao apoio da THUNLP para modelos esparsos baseados em ReLU.
  • Agradecimentos à pesquisa Deja Vu, que inspirou o PowerInfer.

Opinião do GN⁺

  • O PowerInfer é um motor inovador que permite inferência rápida e eficiente de modelos de linguagem de grande porte usando GPUs de consumo.
  • Por meio dos conceitos de neurônios “quentes”/“frios” e do uso híbrido de CPU/GPU, ele oferece velocidade de inferência próxima ao desempenho de nível de servidor, ao mesmo tempo em que economiza recursos.
  • Essa tecnologia abre oportunidades para que desenvolvedores individuais ou pequenas equipes experimentem e implantem modelos de alto desempenho em pesquisa e desenvolvimento de IA sem acesso a hardware de nível de servidor.

Ainda não há comentários.

Ainda não há comentários.