ExLlama:用于量化权重的内存高效Llama实现

ExLlama

3.5 | 58 | 0
类型:
开源项目
最后更新:
2025/10/18
资源描述:
ExLlama是一个内存高效的Llama独立Python/C++/CUDA实现,用于在现代GPU上使用4位GPTQ量化权重进行快速推理。
分享:
Llama 推理
GPTQ 量化
CUDA
内存效率
大型语言模型

ExLlama 概述

ExLlama:用于量化权重的内存高效 Llama 实现

ExLlama 是 Llama 的一个独立 Python/C++/CUDA 实现,专为在使用现代 GPU 上的 4 位 GPTQ 权重时实现速度和内存效率而设计。该项目旨在为 Hugging Face Transformers 实现提供更快、更节省内存的替代方案,特别是对于使用量化模型的用户。

什么是 ExLlama?

ExLlama 旨在成为 Llama 系列语言模型的高性能推理引擎。它利用 CUDA 进行 GPU 加速,并针对 4 位 GPTQ 量化权重进行了优化,使用户能够在内存有限的 GPU 上运行大型语言模型。

ExLlama 如何工作?

ExLlama 通过以下几种技术优化内存使用和推理速度:

  • CUDA 实现: 利用 CUDA 实现高效的 GPU 计算。
  • 量化支持: 专门为 4 位 GPTQ 量化权重设计。
  • 内存效率: 与标准实现相比,减少了内存占用。

主要特性和优势

  • 高性能: 针对快速推理进行了优化。
  • 内存效率: 允许在性能较低的 GPU 上运行大型模型。
  • 独立实现: 无需 Hugging Face Transformers 库。
  • Web UI: 包括一个简单的 Web UI,方便与模型交互(JavaScript 由 ChatGPT 编写,请注意!)。
  • Docker 支持: 可以在 Docker 容器中运行,以便于部署和安全性。

如何使用 ExLlama?

  1. 安装

    • 克隆存储库:git clone https://github.com/turboderp/exllama
    • 导航到目录:cd exllama
    • 安装依赖项:pip install -r requirements.txt
  2. 运行基准测试

    • python test_benchmark_inference.py -d <path_to_model_files> -p -ppl
  3. 运行 Chatbot 示例

    • python example_chatbot.py -d <path_to_model_files> -un "Jeff" -p prompt_chatbort.txt
  4. Web UI

    • 安装其他依赖项:pip install -r requirements-web.txt
    • 运行 Web UI:python webui/app.py -d <path_to_model_files>

为什么选择 ExLlama?

ExLlama 具有以下几个优势:

  • 性能: 与其他实现相比,提供更快的推理速度。
  • 可访问性: 使 GPU 内存有限的用户能够运行大型语言模型。
  • 灵活性: 可以通过 Python 模块集成到其他项目中。
  • 易用性: 提供一个简单的 Web UI 用于与模型交互。

ExLlama 适用于哪些人?

ExLlama 适用于:

  • 研究人员和开发人员使用大型语言模型。
  • 使用 NVIDIA GPU 的用户(推荐 30 系列及更高版本)。
  • 那些寻求内存高效和高性能推理解决方案的人。
  • 任何有兴趣使用 4 位 GPTQ 量化运行 Llama 模型的人。

硬件要求

  • NVIDIA GPU(推荐 RTX 30 系列或更高版本)
  • ROCm 支持在理论上可行,但未经测试

依赖项

  • Python 3.9+
  • PyTorch(在 2.0.1 和 2.1.0 nightly 上测试)与 CUDA 11.8
  • safetensors 0.3.2
  • sentencepiece
  • ninja
  • flask 和 waitress(对于 Web UI)

Docker 支持

ExLlama 可以在 Docker 容器中运行,以便于部署和安全性。Docker 镜像支持 NVIDIA GPU。

结果和基准

ExLlama 与其他实现相比,在性能方面表现出显著的改进,尤其是在推理期间的每秒令牌数 (t/s) 方面。提供了针对不同 GPU 配置的各种 Llama 模型大小(7B、13B、33B、65B、70B)的基准。

使用示例

import torch
from exllama.model import ExLlama, ExLlamaCache, ExLlamaConfig
from exllama.tokenizer import ExLlamaTokenizer

## 初始化模型和 tokenizer
model_directory = "/path/to/your/model"
tokenizer_path = os.path.join(model_directory, "tokenizer.model")
model_config_path = os.path.join(model_directory, "config.json")

config = ExLlamaConfig(model_config_path)
config.model_path = os.path.join(model_directory, "model.safetensors")

tokenizer = ExLlamaTokenizer(tokenizer_path)
model = ExLlama(config)
cache = ExLlamaCache(model)

## 准备输入
prompt = "The quick brown fox jumps over the lazy"
input_ids = tokenizer.encode(prompt)

## 生成输出
model.forward(input_ids, cache)
token = model.sample(temperature = 0.7, top_k = 50, top_p = 0.7)

output = tokenizer.decode([token])
print(prompt + output)

兼容性和模型支持

ExLlama 与一系列 Llama 模型兼容,包括 Llama 1 和 Llama 2。该项目不断更新以支持新模型和功能。

ExLlama 是任何希望高效运行 Llama 模型的人的强大工具。它专注于内存优化和速度,使其成为研究和实际应用的绝佳选择。

"ExLlama"的最佳替代工具

Friendli Inference
暂无图片
111 0

Friendli Inference 是最快的 LLM 推理引擎,针对速度和成本效益进行了优化,可在提供高吞吐量和低延迟的同时,将 GPU 成本降低 50-90%。

LLM 服务
GPU 优化
推理引擎
llama.cpp
暂无图片
103 0

使用 llama.cpp 实现高效的 LLM 推理,这是一个为各种硬件优化的 C/C++ 库,支持量化、CUDA 和 GGUF 模型。 非常适合本地和云部署。

LLM 推理
C/C++ 库
llm-answer-engine
暂无图片
162 0

使用 Next.js, Groq, Llama-3 和 Langchain 构建一个 Perplexity 风格的 AI 问答引擎。高效获取来源、答案、图像和后续问题。

AI 问答引擎
语义搜索
vLLM
暂无图片
151 0

vLLM是一个用于LLM的高吞吐量和内存效率的推理和服务引擎,具有PagedAttention和连续批处理功能,可优化性能。

LLM推理引擎
Nebius AI Studio Inference Service
暂无图片
155 0

Nebius AI Studio Inference Service 提供托管开源模型,实现比专有 API 更快、更便宜、更准确的推理结果。无需 MLOps,即可无缝扩展,适用于 RAG 和生产工作负载。

AI推理
开源大语言模型
低延迟服务
ChatLLaMA
暂无图片
153 0

ChatLLaMA 是基于 LLaMA 模型的 LoRA 训练 AI 助手,可在本地 GPU 上运行自定义个人对话。提供桌面 GUI,使用 Anthropic 的 HH 数据集训练,支持 7B、13B 和 30B 模型。

LoRA微调
对话AI
本地GPU推理
Hoody AI
暂无图片
127 0

Hoody AI 通过安全仪表板提供对领先LLM如GPT-4o、Claude 3.7和Llama 3.1的匿名访问。享受多模型聊天、语音交互、文件上传以及无跟踪或个人信息要求的完整隐私。

匿名LLM访问
多模型仪表板
Inweave
暂无图片
142 0

Inweave 是一个为初创企业和扩展企业设计的 AI 驱动平台,可高效自动化工作流。通过聊天或 API 使用 GPT 和 Llama 等顶级模型部署可定制 AI 助手,实现无缝生产力提升。

工作流自动化
AI 助手
模型灵活性
Sagify
暂无图片
143 0

Sagify 是一个开源 Python 工具,可简化 AWS SageMaker 上的机器学习管道,提供统一的 LLM 网关,实现专有和开源大型语言模型的无缝集成,提高生产力。

ML部署
LLM网关
Reflection 70B
暂无图片
203 0

体验 Reflection 70B,世界领先的开源 AI 模型。它采用 Reflection-Tuning 训练,可以实时检测和纠正推理错误,非常适合复杂任务。

LLM
开源
推理
Featherless.ai
暂无图片
313 0

无需设置任何服务器,即可立即运行HuggingFace中的任何Llama模型。提供超过11,900种模型。起价为每月10美元,无限制访问。

LLM托管
AI推理
无服务器
Venice
暂无图片
216 0

Venice.ai:私有且无审查的AI,用于生成文本、图像、角色和代码。私下访问领先的开源模型。

私有AI
无审查AI
AI模型
Reflection 70B
暂无图片
278 0

在线体验 Reflection 70B,一款基于 Llama 70B 的开源 LLM。凭借创新的自我修正功能,性能优于 GPT-4。提供在线免费试用。

开源语言模型
AI 自我修正
Fireworks AI
暂无图片
348 0

Fireworks AI 使用最先进的开源模型为生成式人工智能提供极快的推理。 免费微调和部署您自己的模型。 在全球范围内扩展 AI 工作负载。

推理引擎
开源LLM
AI 扩展