许可证: MIT
库名称: transformers
数据集:
- PrimeIntellect/可验证编码问题
- likaixin/TACO验证集
- livecodebench/代码生成精简版
语言:
- 英语
基础模型:
- deepseek-ai/DeepSeek-R1蒸馏版Qwen-14B
管道标签: 文本生成
DeepCoder-14B预览版GGUF模型
采用IQ-DynamicGate技术的超低位量化(1-2比特)
我们最新的量化方法为超低位模型(1-2比特)引入了精度自适应量化,在Llama-3-8B上通过基准测试验证了改进效果。该方法采用分层特定策略,在保持极致内存效率的同时保留准确性。
基准测试背景
所有测试均在Llama-3-8B-Instruct上进行,使用:
- 标准困惑度评估流程
- 2048个token的上下文窗口
- 所有量化版本使用相同的提示集
方法
- 动态精度分配:
- 前25%和后25%的层 → IQ4_XS(选定层)
- 中间50% → IQ2_XXS/IQ3_S(提高效率)
- 关键组件保护:
- 嵌入层和输出层使用Q5_K
- 相比标准1-2比特减少38%误差传播
量化性能对比(Llama-3-8B)
量化方式 |
标准PPL |
DynamicGate PPL |
Δ PPL |
标准大小 |
DG大小 |
Δ大小 |
标准速度 |
DG速度 |
IQ2_XXS |
11.30 |
9.84 |
-12.9% |
2.5G |
2.6G |
+0.1G |
234s |
246s |
IQ2_XS |
11.72 |
11.63 |
-0.8% |
2.7G |
2.8G |
+0.1G |
242s |
246s |
IQ2_S |
14.31 |
9.02 |
-36.9% |
2.7G |
2.9G |
+0.2G |
238s |
244s |
IQ1_M |
27.46 |
15.41 |
-43.9% |
2.2G |
2.5G |
+0.3G |
206s |
212s |
IQ1_S |
53.07 |
32.00 |
-39.7% |
2.1G |
2.4G |
+0.3G |
184s |
209s |
关键指标:
- PPL = 困惑度(越低越好)
- Δ PPL = 从标准到DynamicGate的百分比变化
- 速度 = 推理时间(CPU avx2,2048 token上下文)
- 大小差异反映混合量化开销
关键改进:
- 🔥 IQ1_M显示困惑度大幅降低43.9%(27.46 → 15.41)
- 🚀 IQ2_S在仅增加0.2GB的同时降低困惑度36.9%
- ⚡ IQ1_S在1比特量化下仍保持39.7%更好的准确率
权衡:
- 所有变体都有适度的体积增加(0.1-0.3GB)
- 推理速度保持可比性(<5%差异)
何时使用这些模型
📌 将模型适配到GPU显存中
✔ 内存受限的部署
✔ 可以容忍1-2比特误差的CPU和边缘设备
✔ 超低位量化的研究
选择正确的模型格式
选择正确的模型格式取决于您的硬件能力和内存限制。
BF16(脑浮点16) - 如果支持BF16加速则使用
- 专为更快计算设计的16位浮点格式,同时保持良好精度。
- 提供与FP32相似的动态范围但内存使用更低。
- 如果您的硬件支持BF16加速(检查设备规格)则推荐使用。
- 与FP32相比,减少内存占用的同时实现高性能推理的理想选择。
📌 使用BF16如果:
✔ 您的硬件具有原生BF16支持(例如较新的GPU、TPU)。
✔ 您希望在节省内存的同时获得更高精度。
✔ 您计划将模型重新量化为其他格式。
📌 避免使用BF16如果:
❌ 您的硬件不支持BF16(可能会回退到FP32运行更慢)。
❌ 您需要与缺乏BF16优化的旧设备兼容。
F16(浮点16) - 比BF16支持更广泛
- 16位浮点高精度但数值范围比BF16小。
- 适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU)。
- 数值精度略低于BF16但通常足以进行推理。
📌 使用F16如果:
✔ 您的硬件支持FP16但不支持BF16。
✔ 您需要在速度、内存使用和准确性之间取得平衡。
✔ 您在GPU或其他针对FP16计算优化的设备上运行。
📌 避免使用F16如果:
❌ 您的设备缺乏原生FP16支持(可能运行比预期慢)。
❌ 您有内存限制。
量化模型(Q4_K、Q6_K、Q8等) - 用于CPU和低显存推理
量化在尽可能保持准确性的同时减少模型大小和内存使用。
- 低位模型(Q4_K) → 最适合最小内存使用,可能精度较低。
- 高位模型(Q6_K、Q8_0) → 更好的准确性,需要更多内存。
📌 使用量化模型如果:
✔ 您在CPU上运行推理并需要优化模型。
✔ 您的设备显存较低无法加载全精度模型。
✔ 您希望减少内存占用同时保持合理准确性。
📌 避免使用量化模型如果:
❌ 您需要最高精度(全精度模型更适合)。
❌ 您的硬件有足够显存支持更高精度格式(BF16/F16)。
超低位量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
这些模型针对极致内存效率进行了优化,非常适合低功耗设备或大规模部署,其中内存是关键限制。
模型格式选择摘要表
模型格式 |
精度 |
内存使用 |
设备要求 |
最佳使用场景 |
BF16 |
最高 |
高 |
支持BF16的GPU/CPU |
减少内存的高速推理 |
F16 |
高 |
高 |
支持FP16的设备 |
BF16不可用时的GPU推理 |
Q4_K |
中低 |
低 |
CPU或低显存设备 |
最适合内存受限环境 |
Q6_K |
中 |
中等 |
内存较多的CPU |
量化后仍保持较好准确性 |
Q8_0 |
高 |
中等 |
显存足够的CPU或GPU |
量化模型中最佳准确性 |
IQ3_XS |
极低 |
极低 |
超低内存设备 |
极致内存效率和低准确性 |
Q4_0 |
低 |
低 |
ARM或低内存设备 |
llama.cpp可针对ARM设备优化 |
包含文件及详情
DeepCoder-14B-Preview-bf16.gguf
- 模型权重以BF16保存。
- 如果您想将模型重新量化为其他格式,请使用此文件。
- 如果您的设备支持BF16加速则最佳。
DeepCoder-14B-Preview-f16.gguf
- 模型权重以F16存储。
- 如果您的设备支持FP16,特别是BF16不可用时使用。
DeepCoder-14B-Preview-bf16-q8_0.gguf
- 输出和嵌入层保持BF16。
- 其他所有层量化为Q8_0。
- 如果您的设备支持BF16且您需要量化版本时使用。
DeepCoder-14B-Preview-f16-q8_0.gguf
- 输出和嵌入层保持F16。
- 其他所有层量化为Q8_0。
DeepCoder-14B-Preview-q4_k.gguf
- 输出和嵌入层量化为Q8_0。
- 其他所有层量化为Q4_K。
- 适合内存有限的CPU推理。
DeepCoder-14B-Preview-q4_k_s.gguf
- 最小的Q4_K变体,以准确性为代价使用更少内存。
- 最适合极低内存配置。
DeepCoder-14B-Preview-q6_k.gguf
- 输出和嵌入层量化为Q8_0。
- 其他所有层量化为Q6_K。
DeepCoder-14B-Preview-q8_0.gguf
- 完全Q8量化模型,提供更好准确性。
- 需要更多内存但提供更高精度。
DeepCoder-14B-Preview-iq3_xs.gguf
- IQ3_XS量化,针对极致内存效率优化。
- 最适合超低内存设备。
DeepCoder-14B-Preview-iq3_m.gguf
- IQ3_M量化,提供中等块大小以获得更好准确性。
- 适合低内存设备。
DeepCoder-14B-Preview-q4_0.gguf
- 纯Q4_0量化,针对ARM设备优化。
- 最适合低内存环境。
- 如需更好准确性,推荐使用IQ4_NL。
🚀 如果您觉得这些模型有用
❤ 如果觉得有用,请点击"点赞"!
帮助我测试AI驱动的网络监控助手,具备量子就绪安全检查:
👉 免费网络监控
💬 如何测试:
- 点击聊天图标(任何页面右下角)
- 选择AI助手类型:
TurboLLM
(GPT-4迷你版)
FreeLLM
(开源版)
TestLLM
(实验性仅CPU版)
我正在测试的内容
我正在推动小型开源模型用于AI网络监控的极限,特别是:
- 针对实时网络服务的函数调用
- 模型可以小到什么程度同时仍能处理:
- 自动化Nmap扫描
- 量子就绪检查
- Metasploit集成
🟡 TestLLM - 当前实验模型(llama.cpp在6个CPU线程上):
- ✅ 零配置设置
- ⏳ 30秒加载时间(推理慢但无API成本)
- 🔧 需要帮助!如果您对边缘设备AI感兴趣,让我们一起合作!
其他助手
🟢 TurboLLM - 使用gpt-4-mini进行:
🔵 HugLLM - 开源模型(≈80亿参数):
- 比TurboLLM多2倍token
- AI驱动的日志分析
- 🌐 在Hugging Face推理API上运行
💡 测试的AI命令示例:
"给我关于我的网站SSL证书的信息"
2