LightLLM: un marco ligero y eficiente para razonar y servir grandes modelos lingüísticos

Introducción general

LightLLM es un marco de inferencia y servicios basado en Python y conocido por su diseño ligero, facilidad de escalado y rendimiento eficiente. El marco aprovecha diversas implementaciones de código abierto muy conocidas, como FasterTransformer, TGI, vLLM y FlashAttention, entre otras. lightLLM mejora drásticamente la utilización de la GPU y la velocidad de inferencia mediante técnicas como la colaboración asíncrona, el procesamiento dinámico por lotes y el paralelismo tensorial para una amplia gama de modelos y escenarios de aplicación.

LightLLM:高效的轻量级大语言模型推理和服务框架

 

Lista de funciones

  • Colaboración asíncrona: admite operaciones asíncronas de división de palabras, inferencia de modelos y eliminación de divisiones para mejorar la utilización de la GPU.
  • Atención sin relleno: admite operaciones de atención sin relleno para varios modelos y gestiona solicitudes con grandes diferencias de longitud.
  • Procesamiento dinámico por lotes: admite la programación dinámica de solicitudes por lotes.
  • FlashAttention: Aumente la velocidad y reduzca el consumo de memoria de la GPU con FlashAttention.
  • Paralelismo tensorial: acelera la inferencia en varias GPU utilizando el paralelismo tensorial.
  • Ficha Atención: Implementado mecanismo de gestión de memoria basado en tokens para caché KV con cero desperdicio de memoria.
  • Enrutadores de alto rendimiento: trabajar con Token Attention para optimizar el rendimiento del sistema.
  • Caché Int8KV: Aumenta la capacidad de tokens, casi duplicándola.
  • Compatible con varios modelos: BLOOM, LLaMA, StarCoder, ChatGLM2, etc.

 

Utilizar la ayuda

Proceso de instalación

  1. Instala LightLLM usando Docker:
   docker pull modeltc/lightllm
docker run -it --rm modeltc/lightllm
  1. Instale la dependencia:
   pip install -r requirements.txt

Utilización

  1. Inicie el servicio LightLLM:
   python -m lightllm.server
  1. Modelo de consulta (ejemplo de consola):
   python -m lightllm.client --model llama --text "你好,世界!"
  1. Modelo de consulta (ejemplo Python):
   from lightllm import Client
client = Client(model="llama")
response = client.query("你好,世界!")
print(response)

Funciones principales

  1. colaboración asíncronaLightLLM mejora significativamente la utilización de la GPU ejecutando de forma asíncrona las operaciones de segmentación, inferencia de modelos y de-segmentación. Los usuarios solo tienen que iniciar el servicio y el sistema se encarga de estas operaciones automáticamente.
  2. capacidad de atención insatisfechaLightLLM: Cuando se procesan solicitudes con grandes diferencias de longitud, LightLLM admite operaciones de atención sin relleno para garantizar un procesamiento eficaz. El usuario no necesita ninguna configuración adicional y el sistema se optimiza automáticamente.
  3. Procesamiento dinámico por lotesLightLLM soporta la programación dinámica por lotes, los usuarios pueden establecer los parámetros de los lotes a través del archivo de configuración, el sistema ajustará dinámicamente la política de lotes de acuerdo con la solicitud.
  4. FlashAtenciónFunción FlashAttention : Al integrar la tecnología FlashAttention, LightLLM mejora la velocidad de inferencia y reduce la huella de memoria de la GPU. Los usuarios pueden activar esta función en el archivo de configuración.
  5. paralelismo tensorialLightLLM admite el paralelismo tensorial en múltiples GPUs. Los usuarios pueden establecer el número de GPUs y los parámetros de paralelismo a través de un archivo de configuración, y el sistema asignará las tareas automáticamente.
  6. Atención simbólicaLightLLM implementa un mecanismo de gestión de memoria basado en tokens para la caché KV, asegurando un desperdicio cero de memoria. No hay necesidad de configuración adicional por parte del usuario, el sistema gestiona la memoria automáticamente.
  7. Router de alto rendimientoLos routers de alto rendimiento de LightLLM trabajan con Token Attention para optimizar el rendimiento del sistema. Los usuarios pueden establecer los parámetros de enrutamiento en el archivo de configuración y el sistema optimizará automáticamente la política de enrutamiento.
  8. Caché Int8KVLightLLM soporta la caché Int8KV para aumentar la capacidad de tokens, casi el doble. Los usuarios pueden activar esta función en el archivo de configuración, y el sistema ajustará automáticamente la estrategia de almacenamiento en caché.

Modelos compatibles

LightLLM es compatible con diversos modelos, entre los que se incluyen:

  • BLOOM
  • LLaMA
  • StarCoder
  • ChatGLM2
  • InternLM
  • Qwen-VL
  • Llava
  • Stablelm
  • MiniCPM
  • Phi-3
  • CohereForAI
  • DeepSeek-V2

Los usuarios pueden seleccionar el modelo adecuado según sus necesidades y configurarlo en consecuencia en el archivo de configuración.

© declaración de copyright

Puestos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...