一、前言 听说KTransformers 0.2.4支持并发了,这可是个大进步,之前测试下来KTranformers最大的期待就是AMX指令加速和支持并发。 现在可以支持并发了,是否意味着KT终于不再是一个玩具,有可能朝产品化的方向去走了,因此上手体验一下看看。 省流,直接看结论:这个版本的方案下,依然没有看到传说中的新版XEON CPU的amx指令加速带来的飞跃,并发依然不行(能并发,但体验无法忍受),个人玩玩,研究一下技术可以,但无法产品化、商业化使用。 有兴趣复现的可以照我这个步骤来走,基本不会有问题。 二、软硬件环境 1. 软硬件环境 还是原来的环境。租的AutoDL的GPU服务器做的测试 2. 虚拟环境 我图省事,就直接复用了之前的v0.2.3的虚拟环境:/root/autodl-tmp/jacky/envs/kt0.2.3 重头开始的朋友可以重新创建一个新的虚拟环境,步骤如下 三、开工 测试使用: 1. 下载KT代码 给挂个加速器https://ghfast.top/ ,避免下载代码失败。 2. 同步子模块 先改下子模块的代码仓库路径,同样给加下加速。 所有子模块地址给挂个加速 然后下载子模块代码 注: 这一步要注意,v0.2.4引入了一些新的子模块,并且这些子模块又有子模块,这样会导致下载子模块会失败,从而导致下面的:编译完有一个报错:ERROR: Directory ‘third_party/custom_flashinfer/’ is not installable 这个错误,这个现在在墙内没办法,只能跑两遍(有多少层递归就要跑多少遍),然后每一层的代码用ghfast.top加速下载成功后,再去改那一层的.gitmodules里的每个子模块的仓库地址,然后再跑。 3. 安装依赖 4. 编译KTransformers v0.2.4 1) 修改./install.sh, vi install.sh 加入: 2)编译 如果你有1T内存,可以 USE_NUMA=1(# For those who […]
KTransformers
一、导言 ***牵头组织了一个会议,对Deepseek在视讯方案的可能性进行了一番讨论,讨论后的结论是对Deepseek先做一番技术上的预研,然后再上产品路标。后来**和**也针对此事做了一些交待。再后来就是撸起袖子了。 二、预研目标 《Deepseek在视讯方案的可能性》:一句话表示:在消费级的GPU上跑满血版Deepseek R11、GPU:结合公司的实际情况(还躺在米国政府的黑名单上),预研所针对的硬件必须是我们有可能买得到的硬件。2、Deepseek R1满血版:预研初期确定的目标是满血版Deepseek R1 671B(实际测下来发现可能存在一些问题) 三、预研情况说明 在曾哥租到GPU服务器之后,有了硬件资源后,主要利用这个GPU服务器做了以下几部分预研。一是包括Deepseek/QwQ32-B/Gemma3等等在内的大模型安装、部署与测试。二是有了大模型之后,视讯这边可能的一些应用,包括:Chat API, Agent等。三是与KIS做了一些集成测试。四是视讯智能产品KIS相关的一些周边技术,包括:ASR, TTS等。 一)预研设定的环境 1. 软件环境 PyTorch 2.5.1Python 3.12(ubuntu22.04)Cuda 12.4 2. 硬件环境 ○GPU:RTX 4090(24GB) * 2○CPU:64 vCPU Intel(R) Xeon(R) Gold 6430○内存:480G(至少需要382G)○硬盘:1.8T(实际使用需要380G左右) 参考:京东上GPU 4090 x2+CPU 6330 +内存64G+硬盘2T报价约为:69500。https://item.jd.com/10106874216614.html 二)大模型测试 直接上结论。 测试结果 大模型 框架 max_new_tokens context GPU数量 TPS(单连接) TPS(多连接) ds-r1-671b Q4 KT 8192 […]
关于BF8 DeepSeek R1和DeepSeek V3都是默认BF8精度,是一种低精度的浮点数格式。BF8的全称是”Brain Floating Point”,由Google提出,主要用于大规模计算任务。与常见的16位浮点数(FP16)不同,BF8采用了8位尾数和8位指数的结构,能够在保证精度的同时减少计算和内存开销。 BF8的设计目标是减少计算量并保持数值稳定性,特别是在机器学习模型训练中,能在加速硬件上提供比FP32更好的性能。 硬件选择 采用“强推理、弱训练”的硬件配置:如选择国产芯片、或者采购DeepSeek一体机、甚至是选择MacMini集群等,都是不错的选择。这些硬件模型训练性能较弱,但推理能力强悍,对于一些不需要进行模型训练和微调、只需要推理(也就是对话)的场景来说,是个非常不错的选择。例如45万左右成本,就能购买能运行DeepSeek R1满血版模型的Mac Mini集群,相比购买英伟达显卡,能够节省很大一部分成本。但劣势在于Mac M系列芯片并不适合进行模型训练和微调。 蒸馏模型 采用DeepSeek R1 Distill蒸馏模型:DeepSeek R蒸馏模型组同样推理性能不俗,且蒸馏模型尺寸在1.5B到70B之间,可以适配于任何硬件环境和各类不同的使用需求。 采用KTransformers •KTransformers主页: https://github.com/kvcache-ai/ktransformers采用KTransformers(Quick Transformers)技术:这是一项由清华大学团队提出的,可以在模型运行过程中灵活的将专家模型加载到CPU上,同时将MLA/KVCache卸载到GPU上,从而深度挖掘硬件性能,实现更低的显存运行更大尺寸的模型。该技术目前的实践效果,可以实现480G内存+13G显存(长尺寸输出或多并发时达到20G显存),即可运行DeepSeek R1 Q_4_K_M量化版模型(类似INT4量化),并且响应速度能够达到15token/s。 传统情况下,8卡 A100 GPU服务器才能运行DeepSeek R1 INT4模型,成本接近200万。而480G内存+单卡4090服务器,总成本不到5万。 采用Unsloth动态量化 •Unsloth主页:https://unsloth.ai/采用Unsloth动态量化技术:不同于KT将不同的专家加载到CPU上,通过内存分担显存的方法保证R1 Q4KM模型运行。技术方案是在确保模型性能的基础上,更深度的进行模型量化(最多量化到1.58Bit),并且执行不同任务时将激活的专家加载到GPU上,从而压缩模型运行所需硬件条件。该技术能够实现单卡24G显存运行1.58bit到2.51bit的DeepSeek R1模型,并且提供了一整套动态方案,支持从单卡24G到双卡80G服务器运行动态量化的R1模型,并且对于内存和CPU没有任何要求。通常意义下量化程度越深,模型效果越差,但由于Unsloth出色的技术能力,导致哪怕是1.58bit量化情况下,量化模型仍能拥有大部分原版模型的能力。 CPU AMX指令 CPU AMX(Advanced Matrix Extensions)是Intel在其Sapphire Rapids系列处理器中推出的一种新型硬件加速指令集,旨在提升矩阵运算的性能,尤其是针对深度学习和人工智能应用。
[TOC] 由于模型、权重文件已经下载好了,所以跳过这些步骤。open-webui也在昨天已经安装好,同样跳过。无废话流程 硬件环境 租的AutoDL的GPU服务器做的测试•软件环境PyTorch 2.5.1、Python 3.12(ubuntu22.04)、Cuda 12.4•硬件环境○GPU:RTX 4090(24GB) * 4(实际只使用一张GPU)○CPU:64 vCPU Intel(R) Xeon(R) Gold 6430○内存:480G(至少需要382G)○硬盘:1.8T(实际使用需要380G左右) 一、创建环境 创建虚拟环境 安装 PyTorch、packaging、ninja 安装flash-attn 安装libstdcxx-ng 二、编译安装ktransformers 修改./install.sh,加入: export MAX_JOBS=64export CMAKE_BUILD_PARALLEL_LEVEL=64 三、运行 运行ktransformer 启动命令行聊天 启动本地聊天API端点 运行open-webui 建立 ssh转发 等服务器上webui和api端点都起来后,在本地PC上,建一个ssh转发规则 打开浏览器进行测试 http://localhost:3000 四、参数调整 将cpu_info降低,观察tps变化 直接上结论,数据看后面: cpu_info = 64 PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True python3 ktransformers/server/main.py –gguf_path /root/autodl-tmp/DeepSeek-R1-GGUF/ –model_path /root/autodl-tmp/DeepSeek-R1 –model_name […]