清华开源KTransformers-让24GB显卡流畅运行满血DeepSeek-R1

打印 上一主题 下一主题

主题 1020|帖子 1020|积分 3060


在AI技能飞速发展的本日,大语言模子(LLM)的应用越来越广泛。然而,本地运行这些模子,尤其是像DeepSeek-R1如许的大模子,每每需要高性能的硬件支持,这让许多开辟者和研究人员望而却步。
本日,为各人保举一款由清华大学 MADSys 和 Approaching.AI 专为优化大模子本地推理体验而设计的开源框架--KTransformers。它支持在单卡24GB VRAM的GPU上运行满血版的DeepSeek-R1,较llama.cpp而言,预填充阶段性能提拔高达27.79倍!其重要的优化策略有:

  • 混合推理:KTransformers 框架采用 CPU 和 GPU 混合推理技能。盘算麋集型操作被卸载到 GPU,而其他操作则由 CPU 处理惩罚。这种分工协作的方式能够充实使用硬件资源,进步服从。
  • 专家选择策略:框架使用了一种基于离线剖析结果的专家选择策略。在推理过程中,选择较少的专家参与盘算,在不影响输出质量的条件下,有用地淘汰了内存占用。
  • Intel AMX 优化:框架中使用了 AMX 加速内核和缓存友爱的内存结构。这些优化措施显著提拔了性能,并淘汰了内存开销。
  • 高效内存管理:为了避免 NUMA 节点之间的数据传输本钱,框架将关键矩阵复制到两个 NUMA 节点,从而加快预填充和解码过程。虽然这种方法增加了内存斲丧,但显著提拔了性能。
这篇文章将带您深入了解KTransformers的强大功能,以及怎样轻松上手。
KTransformers是什么?

KTransformers是一个基于Python的开源框架,专注于优化大模子的本地推理体验。它通过先进的内核优化和机动的硬件配置策略,让开辟者能够在有限的资源下实现高效的模子推理,并提供了与 Transformers 兼容的接口、符合 OpenAI 和 Ollama 尺度的 RESTful API。


无论是单GPU、多GPU,还是CPU/GPU混合推理,KTransformers都能提供卓越的性能体现。别的,它还支持多种量化方法(如Q2K、Q3K、Q5K等),能够在不显著影响模子精度的环境下,大幅低落内存占用。
KTransformers核心功能


  • 支持DeepSeek-R1/V3本地运行
    KTransformers支持在单卡24GB VRAM的GPU上运行DeepSeek-R1/V3的Q4_K_M版本,性能体现如下:

    • Prefill Speed(tokens/s):54.21(单节点)→ 74.362(双节点)→ 286.55(优化后)。
    • Decode Speed(tokens/s):8.73(单节点)→ 11.26(双节点)→ 13.69(优化后)。
    • 相比llama.cpp,KTransformers的Prefill速度提拔高达27.79倍,Decode速度提拔3.03倍!

  • 支持长上下文推理
    KTransformers能够在单卡24GB GPU上支持128K甚至1M的长上下文推理,速度比llama.cpp快10倍以上,同时保持100%的推理精度。
  • 多GPU和异构盘算支持
    KTransformers不但支持多GPU并行推理,还支持CPU/GPU混合推理,充实使用硬件资源,提拔推理服从。
  • 机动的配置和优化
    用户可以通过简单的YAML配置文件,机动地调解模子的优化策略,例如选择不同的量化方法或替换特定的模块。
  • 丰富的API和教程
    KTransformers提供了RESTful API和具体的教程文档,方便开辟者快速上手。
怎样使用KTransformers?

使用KTransformers非常简单,以下是基本步调:

  • 安装依赖
    1. pip install ktransformers
    复制代码
  • 加载模子
    1. from transformers import AutoModelForCausalLM
    2. import torch
    3. with torch.device("meta"):
    4.     model = AutoModelForCausalLM.from_config(config, trust_remote_code=True)
    复制代码
  • 优化和加载模子
    1. from ktransformers import optimize_and_load_gguf
    2. optimize_and_load_gguf(model, optimize_rule_path, gguf_path, config)
    复制代码
  • 生成文本
    1. generated = prefill_and_generate(model, tokenizer, input_tensor.cuda(), max_new_tokens=1000)
    复制代码
性能对比:KTransformers vs llama.cpp

  指标
  llama.cpp(双节点,64核)
  KTransformers(双节点,64核)
  提拔倍数
  Prefill Speed
  10.31 tokens/s
  286.55 tokens/s
  27.79×
  Decode Speed
  4.51 tokens/s
  13.69 tokens/s
  3.03×
  从上表可以看出,KTransformers在性能上远超llama.cpp,尤其是在Prefill阶段,速度提拔了27.79倍!
KTransformers的实用场景


  • 本地开辟和测试
    假如您希望在本地快速开辟和测试大模子,KTransformers是一个抱负的选择。
  • 资源受限的环境
    对于硬件资源有限的开辟者,KTransformers可以通过优化和量化,让模子在有限的资源下运行得更好。
  • 高性能推理需求
    假如您需要在本地实现高性能的模子推理,KTransformers的多GPU和异构盘算支持能够满意您的需求。
KTransformers的源代码:https://github.com/kvcache-ai/ktransformers

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表