关键要点
- MIT许可证,由一位化名turboderp的开发者创建
- 约4,600个GitHub星标;github.com/turboderp-org/exllamav2上的仓库已标记为归档
- EXL2量化格式:在每一层混合2、3、4、5、6和8比特精度,以达到目标平均比特率,例如让一个700亿参数模型在24GB显存中以约2.55比特/权重运行
- 继任项目ExLlamaV3(约1,300个GitHub星标)引入了EXL3格式,这是康奈尔大学RelaxML团队QTIP量化方法的精简变体
- 基于FastAPI的TabbyAPI是两个版本都推荐使用的OpenAI兼容API层
- 同时也集成在text-generation-webui、lollms-webui以及独立的ExUI网页界面中
📍 简单一句话
ExLlamaV2是turboderp's开发的免费MIT许可推理库,专为在消费级NVIDIA GPU上实现快速LLM推理而设计,以灵活的EXL2量化格式著称,但其仓库现已归档,让位于仍在积极开发的继任者ExLlamaV3。
💬 简单来说
ExLlamaV2的设计初衷是利用一套异常灵活的量化方案,在单张消费级GPU上榨取最大速度;其维护者本人此后已将开发重心转移到新项目ExLlamaV3,而不再继续更新V2。
📌注: ExLlamaV2的GitHub README本身就说明该项目已归档,开发工作在ExLlamaV3中继续进行——今天要启动新项目的人应该评估ExLlamaV3,而不是在已归档的V2代码库上继续构建。
ExLlamaV2曾是什么
ExLlamaV2曾是一个免费开源的推理库,由一位化名turboderp的开发者以MIT许可证发布,专为在消费级NVIDIA GPU上最大化推理速度而构建。 它是早期项目ExLlama的继任者,本身是一次更节省内存的重写,专注于在单张GPU上快速运行量化模型。
该仓库github.com/turboderp-org/exllamav2在被标记为归档之前获得了约4,600个GitHub星标,其README将ExLlamaV3指定为开发现在继续进行的项目。
- 相比llama.cpp等引擎覆盖广泛的硬件厂商,ExLlamaV2专注于NVIDIA消费级GPU
- 引入EXL2量化格式作为其主要技术贡献,允许在同一模型内进行混合精度量化
- 除了自有的EXL2格式外,还支持与原始ExLlama相同的4比特GPTQ模型
- 可通过pip(
pip install exllamav2)、预编译wheel包安装,或在安装CUDA Toolkit后从源代码构建
EXL2量化是什么
EXL2是ExLlamaV2的量化格式,允许同一模型内不同的线性层使用不同的比特宽度——从2比特到8比特——根据校准数据自动选择,以达到目标平均比特率。 这比在整个模型上统一应用单一固定比特宽度更加灵活。
- 支持2、3、4、5、6和8比特的量化级别,在同一模型内按层混合使用
- 更重要的权重列可以以更高精度量化,而不太重要的权重列使用更少的比特,原理上类似于稀疏量化
- 让大模型在有限显存下实现极致压缩——已有文档记录的测试显示,一个700亿参数的模型在24GB显存中以约2.55比特/权重、2048个token上下文运行
- 量化参数根据校准数据自动选择,无需手动进行逐层配置
为什么ExLlamaV2被归档,ExLlamaV3改变了什么
turboderp-org/exllamav2仓库已被标记为归档,其自身的README说明开发工作在ExLlamaV3中继续进行。 这是在为新项目评估ExLlamaV2之前需要了解的最重要事实。
ExLlamaV3引入了自己的格式EXL3,被描述为康奈尔大学RelaxML团队QTIP量化方法的精简变体。与EXL2不同,EXL3保留了原始张量结构而不是重命名它们,旨在让其他框架未来更容易提供支持。ExLlamaV3的文档要求CUDA 12.4或更高版本,并且其维护者明确表示该项目仍在成熟过程中——需要预期存在一些不够完善之处。
- ExLlamaV2:已归档,MIT许可证,EXL2格式,仍可安装但不再获得进一步开发
- ExLlamaV3:活跃开发中,MIT许可证,EXL3格式(基于QTIP研究),按官方文档处于beta阶段的稳定性
- 两者均由同一位开发者turboderp在turboderp-org这一GitHub组织下维护
📌注: 对于任何新部署,应首先评估ExLlamaV3——积极的维护和改进都发生在那里。ExLlamaV2主要仍与已基于它构建的现有部署,或已经在流通中的EXL2量化模型文件相关。
如何安装和运行ExLlamaV2(或V3)
ExLlamaV2可通过pip、预编译wheel包安装,或从源代码搭配CUDA Toolkit构建;ExLlamaV3遵循类似的模式。 TabbyAPI是在两者之上获得OpenAI兼容服务器的推荐方式。
- 1对于ExLlamaV2:通过
pip install exllamav2安装,或从GitHub Releases页面下载与你的Python和CUDA版本匹配的预编译wheel包,或在安装CUDA Toolkit后克隆并从源代码构建。 - 2对于ExLlamaV3(推荐用于新搭建的项目):按照github.com/turboderp-org/exllamav3上记录的对应安装路径进行操作,注意需要CUDA 12.4或更高版本。
- 3下载一个预量化的EXL2(或EXL3)模型,通常由社区量化人员发布在Hugging Face上。
- 4安装并运行推荐的基于FastAPI的服务器TabbyAPI,以暴露一个支持HF模型下载和Jinja2聊天模板的OpenAI兼容API端点。
- 5或者,通过现有的集成——text-generation-webui、lollms-webui或独立的ExUI网页界面——使用ExLlamaV2/V3,而不是直接运行TabbyAPI。
我今天还能使用ExLlamaV2吗?
可以,它仍然可以安装和使用,但仓库已归档,不会再收到进一步的更新、错误修复或新功能。
EXL2模型文件能在ExLlamaV3上使用吗?
不能直接使用——ExLlamaV3使用自己的EXL3量化格式。现有的EXL2模型文件是为ExLlamaV2/TabbyAPI搭建准备的,不适用于V3。
ExLlamaV2需要什么硬件
ExLlamaV2专门针对消费级NVIDIA GPU——没有面向AMD、Intel或纯CPU的支持路径。 这种狭窄的硬件定位正是它能够如此大幅优化单GPU速度的部分原因。
- 仅支持NVIDIA GPU,需要CUDA——没有关于AMD、Intel或Apple Silicon支持的文档说明
- 主要围绕消费级显卡设计,而非数据中心GPU,不过也能在后者上运行
- 显存需求随模型大小和所选的EXL2比特率而变化——正是这种灵活的量化方式让大模型能够装入相对较小的显存空间
- ExLlamaV3的文档要求CUDA 12.4或更高版本,这是比ExLlamaV2当初假设的更新的基准
谁应该使用ExLlamaV2(或ExLlamaV3)
如果从单张NVIDIA消费级GPU上榨取最大速度和显存效率,比广泛的硬件支持或长期稳定性保证更重要,那么在新项目中使用ExLlamaV3;如今几乎没有理由在已归档的ExLlamaV2上启动全新项目。
ExLlamaV2与替代方案相比如何
ExLlamaV2最接近的比较对象是其自身的继任者,以及其他在量化或单GPU速度方面有较强侧重的引擎。
评估ExLlamaV2时的常见误区
大多数困惑源于没有意识到该项目已归档,或者误以为EXL2和EXL3模型文件可以互相兼容。
常见问题
ExLlamaV2还在维护吗?
不再维护。turboderp-org/exllamav2的GitHub仓库已被标记为归档,其README说明开发工作已转移到ExLlamaV3。
EXL2是什么?
EXL2是ExLlamaV2的量化格式,支持在同一模型内按层混合2到8比特的精度,以达到目标平均比特率,让大模型能够装入更少的显存。
ExLlamaV3是什么,与它有何不同?
ExLlamaV3是ExLlamaV2仍在积极开发的继任者,使用基于康奈尔大学RelaxML的QTIP方法的新EXL3量化格式。其维护者将其文档记录为beta阶段软件。
谁创建了ExLlamaV2和ExLlamaV3?
两者都由一位化名turboderp的开发者在GitHub组织turboderp-org下创建。
ExLlamaV2可以免费使用吗?
可以。ExLlamaV2和ExLlamaV3都以MIT许可证发布,个人和商业用途均可免费使用。
ExLlamaV2支持AMD GPU吗?
不支持。ExLlamaV2和ExLlamaV3都需要搭配CUDA的NVIDIA GPU——没有AMD、Intel或Apple Silicon的支持。
TabbyAPI是什么?
TabbyAPI是一个基于FastAPI的服务器,是在ExLlamaV2或ExLlamaV3之上暴露OpenAI兼容API的推荐方式,还带有Hugging Face模型下载和Jinja2聊天模板支持等附加功能。
EXL2和EXL3模型文件可以互换使用吗?
不可以。EXL2文件是为ExLlamaV2量化的,与使用独立EXL3格式的ExLlamaV3不直接兼容。
新项目应该使用ExLlamaV2还是ExLlamaV3?
应使用ExLlamaV3,因为ExLlamaV2已归档,不再获得进一步开发。ExLlamaV3仍处于beta阶段,相比成熟、经过积极稳定化的项目,需要预期存在一些不够完善之处。
ExLlamaV2与llama.cpp相比如何?
llama.cpp支持范围广泛得多的硬件(NVIDIA、AMD、Apple Silicon、Intel、纯CPU),并且仍在积极维护;ExLlamaV2曾专注于NVIDIA消费级GPU,如今已归档,ExLlamaV3是其活跃的继任者。
