一、省流,直接看结论 一)参数:两个4090,1000 token的输入,128 token的输出(vllm benchmark默认值) 1. benchmark最高并发请求:60+ 参数:两个4090,1000 token的输入,128 token的输出(vllm benchmark默认值) 2.启用FlashInfer前后对比 启用FlashInfer比默认的PyTorch-native模式的性能提升差不多。 client端统计对比 server端统计对比 用pyplot针对这3次测试跑的3个日志文件生成了一个图。 3.结论 测试1000个请求, 三轮跑下来, 不启用flashinfer总耗时稍长一点点(差10来秒, 459 vs 449).启用flashinfer: 并发请求可达到60左右,但是受限于硬件/GPU, 首字出字速度, 单位输出token时延等数据都会延长。每秒输出的总token数1=125604/448.73=27.99 tps每秒输出的总token数2=125600/449.52=27.32 tps不启用flashinfer: 并发请求在40左右, 但首字出字速度, 单位输出 token时延都会较短.每秒输出的总token数=125604/459.73=27.32 tps 关于flashinfer:从测试结果来看,启用后并没有将这1000个请求的总耗时降下来多少,因此最终还是会受限于硬件/GPU? 二)参数:两个4090,1000 token的输入,1000 token的输出(会议摘要常规输出) 1.benchmark最高并发请求:约40~50左右 2.启用FlashInfer后数据 合并到上面的表格,具体看FlashInfer3一列数据 3.结论 指定输出token数量从128到1000,对最大并发有影响,全影响不是非常大。每秒输出的总token数=967760/1423.79=67.9 tps。这一段测试是在5点后,快下班时间跑的 二、测试硬件环境 •软件环境:PyTorch 2.6.0、Python 3.12(ubuntu22.04)、Cuda 12.4•硬件环境:○GPU:RTX 4090(24GB) * […]
LLM
一、导言 ***牵头组织了一个会议,对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 […]
一、说在前面 今天有一个朋友在一个群里提到了N年前经常用的一个软件:UC浏览器,一个子勾起了当年无数的回忆。于是又让我想起来今年过年、在家里无聊时安装的这个最低配的Deepseek版本。晚上在家无的事事,那就把我当初安装时写的笔记稍作整理,放出来跟大家分享一下。 特别说明:这个百无禁忌版本的Deepseek是为了让大家能体验到原汁原味的大模型的输出,不是让你去做坏事的哈,并且这个东西只可自己学习时用,不可对外提供接口,因为这是违反国家政策的。不过另外一句话来讲,事实上有许多东西都是:我可能一辈子都不会去用,但是我不能没有它(卖保险的同学听到这句话,一下子泪目,您说的太对了,明天咱们聊聊?)。 安装要求:1、操作系统:据说Windows Family版本会有一些问题,但是我没试过。不太清楚什么情况。当然,如果是Linux操作系统,那只要你更新到新一点的版本,随便哪个发行版都不会有问题。2、硬盘要求: 版本 内存 CPU 显卡 适用场景 1.5B 8GB+ i5/Ryzen 5 集成显卡或低端独显 基础对话、简单文本生成 7B/8B 16GB+(建议24GB) i7/Ryzen 7 RTX 3060及以上 通用对话、代码生成 14B 32GB+ i9/Ryzen 9 RTX 3080/4070 长文本推理、专业应用 32B 64GB+ 高性能多核服务器 双卡专业级GPU 科研计算、复杂检索 70B 128GB+ 服务器级多核系统 多卡GPU集群 企业级私有化部署 看完这些要求后,如果你的电脑满足要求,那你可以考虑继续往下看,如果不满足要求,那就不要浪费你自己的时间了。 以下是我的8年前配的笔记本配置,我选择的模型是8B,但是出字速度不太行。 二、安装Ollama 官网下载频道:https://ollama.com/download ,不过实际的下载地址还是指向了github,所以不能科学上网的同学那下载的会比较郁闷,因为整个包有1G左右。当然也可以找度娘的网盘。 下载下来后,就直接默认安装即可。 安装完了会自动跳出来一个命令行,在那里敲一个: 如果返回一个版本号,那么恭喜你,安装成功! 但是,如果你跟我一样,是晚上睡觉前开的下载,然后下载完了自动关电脑的。那么你在重新开机后,可以用管理员的身份打开一个命令行,然后在那里再敲: ollama -v […]
关于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 […]
[TOC] Ktransformer+Deepseek R1 671B实操 一、测试目标 验证并确认Ktransformer+Deepseek R1 671B的效果是否能满足公司的需求,并得出最终的硬件要求,以最终自行购置一台服务器来跑Deepseek R1 671B. 二、目标硬件要求 根据网上的测评,拿到一个硬件要求如下:•软件环境: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左右) 三、GPU服务器租用-选AutoDL 阿里云、腾讯云、百度云、华为云这些都有GPU服务器,但是他们的GPU都是企业级的GPU,而我们最终的目标是自建,所以只能选消费级的GPU来测试。因此首选AutoDL,但是他的服务器白天基本上一直忙,早上一大早就需要去抢才能抢到,单台服务器的内存最高120,购置4台可满足要求,其中一台硬盘要可扩到至少600G。 四、服务器环境 python版本 返回Python 3.12.3 CUDA版本 返回nvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2023 NVIDIA CorporationBuilt on Mon_Apr__3_17:16:06_PDT_2023Cuda compilation tools, release 12.1, V12.1.105Build cuda_12.1.r12.1/compiler.32688072_0 torch版本 返回2.6.0+cu124 […]
1. 春考情况 春考结束了,希望是春考后不用再看英语了,但是这次春考的题目感觉比之前做过的每一个模拟卷都难,尤其是星期一的听力,上午和下午两套题差异明显,众多同学都普遍认为下午的比较简单,都是之前练习时涉及比较广泛的,而上午的则是一些新的、之前未涉及的一些内容,我参加的是上午的,心理有一些忐忑。但我知道这个时候我应该放下,不管怎么样,考完了就是考完了,一切等1月21日见分晓。 今天把聊天机器人在老爸的指导下,照着教程改了一下,主要学习的是django框架下的一些数据库操作,修改涉及内容: 2. 学习笔记 为后端加了数据库 共三个model1)agent model (希望可以做成多个智能体)2)session model(会话模型)3)message model(聊天消息模型) 照着文心一言给生成的数据库,并生成了这三个model的代码。然后再:1)python manage.py makemigrations 生成迁移文件2)python manage.py migrate 更新到数据库 并学习和了解了在用户认证中的token, 聊天中的session等等一些概念、名词及意义。token: 用户登录到后端后,后端会为这个用户生成一个独一无二的字符串,来代表这个用户,登录成功拿到这个token后,前端再与后端做交互的话,可以用这个token代表他自己,不需要每个交互请求都认证一遍。session: 这个比较了理解,在所有的大模型里都是这么一个用法,不展开了。 记录保存数据库 照着https://docs.djangoproject.com/zh-hans/5.1/ 介绍,尝试理解django里的model,view的概念。然后将我和智能体之间的聊天记录可以保存到创建的这个数据库,其中有几个点是需要注意的: 后端的信息传递到前端 有些数据是存储在后端的,前端一开始没有,所以第一次交互的时候都是空值,比如像上面那些user_id, session_id, agent_id,第一次请求到后端后,我们可以在后端生成或者获取到这些信息,而我们在拿到大模型的答复后,在响应里可以把这些信息一并带回前端,那样后面前端就有了所有这些信息,后续的交互里内容就完整了。 前端如何接收来自后端的数据 好多种方法,先练习一个,具体看代码。 一边问文心一言,一边改,改了好久,文心一言给了好多代码,但是许多代码跟前面的代码不搭,跑不起来,或者跑起来有问题。从中午12点到晚上18点,今天花的时间有点多了,不过总算把功能都走通了,开心。晚一点递交代码到github。