一、说在前面 今天有一个朋友在一个群里提到了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 […]
jacky
关于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 […]
摘要 「Ray-Ban Meta 的成功不是因为踩中了风口,而是(Meta)打造了风暴本身」。 2 月 26 日,从多方消息来源可以确认,小米将会在 2 月 27 日晚的新品发布会上,首次公布小米 AI 眼镜包括外观、功能乃至售价等相关信息。 相对于 27 日发布会主角小米 SU7 Ultra,小米 AI 眼镜的名气可能没有那么大,但是它对于国内 AI 眼镜行业来说,却有可能是重要的转折点。 不过,如果你期待看到小米举起屠刀,推出一款「999 元」的 AI 眼镜,一举将 AI 眼镜推向大众,那大概率要失望了。 根据业内信息,小米首款 AI 眼镜整体规格将对标 Ray-Ban Meta,在售价上也将超过 2000 元人民币。 为什么小米选择在这个时候,推出 AI 眼镜产品。而为什么团队没有选择「小米价」?小米 AI 眼镜,能否像 DeepSeek 激活 AI 行业一样,激活整个中国的 AI 眼镜行业? 01 999?别想了! 根据业内人士透露,小米有可能在 27 日曝光的小米 […]
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1007) 问题现象 语音合成功能突然不能用了,查看后台log发现TTS_BertVits2API的请求一直失败,报错为ssl握手失败。 我使用的是免费的原神角色语音合成,打开其网页地址:https://v2.genshinvoice.top ,发现在浏览器中就会报不安全证书的警告。 问题排查 加verify=False跳过证书校验:失败 考虑到目标网址的证书异常,我在请求中给加了个verify=False,再跑,错误依旧。 查看当前环境 降级urllib3到1.23: 搞定 问题解决。 屏蔽告警 由于https://v2.genshinvoice.top 的证书有问题,即使在浏览器上访问也会告警,用urllib3去请求同样会出现一个告警。 如果你觉得这个告警烦人,可以用这个方式屏蔽掉。
一、前言 小落同学原先没有做多用户,想改版一下可以支持多用户,所以需要改造原来的websocket API接口目标示例的请求如下:ws://x.rg4.net/ws/b7e14e7c1a1d42019d866166c81119d1?llm=chatgpt&character_id=2&chatmode=text&token= OK,那让我们来试试。 二、让Django支持websocket 在 Django 中启用 WebSocket 通常需要借助第三方库,因为 Django 自身的框架并不直接支持WebSocket。一个流行的选择是使用 Django Channels,这是一个为 Django 提供异步能力的扩展,包括 WebSocket 支持。 以下是如何在 Django 项目中启用 WebSocket 的基本步骤: 1. 安装 Django Channels 2. 更新 Django 设置 在你的 Django 项目的 settings.py 文件中,你需要添加 Channels 到你的 INSTALLED_APPS 列表中,并设置 注意:’xiaoluo.asgi.application’ 应该替换为你的 Django 项目的实际名称和 ASGI 应用程序的路径。 3. 创建 ASGI 应用程序: […]
关于letsencrypt 官网:https://letsencrypt.org文档:https://letsencrypt.org/zh-cn/docs/文档2:https://eff-certbot.readthedocs.io/en/latest/using.html#certbot-commands 安装certbot 获取证书 命令 中间需要你在你的域名解析里加一个类型为TXT的域名,域名的名字为:_acme-challenge,txt的值为certbot提供给你的一段字串。 设置成功后回车,certbot会自动校验,校验通过了会提示你,生成证书成功,并告知你证书保存的路径。 部署证书 如果你用了宝塔,那你可以将生成的证书内容填到宝塔的SSL配置那里。 以我申请到的证书及路径为例: 部署完成后,可以考虑让nginx重新加载一下 问题
[TOC] 前言 由于买的这个阿里云ECS是最低配的(2核1G内存),小落同学的后台进程经常会被莫名奇妙的杀掉,因此拟给加个看门狗保护下。整个保护分成两部分:1)进程检测脚本:watchdog.sh2)将检测脚本加入crontab 具体步骤如下。 进程检测脚本:watchdog.sh 利用一个配置文件,将小落同学绑定的端口及进程启动脚本在配置文件里配置好。然后再用一个脚本去telnet这个端口,若telnet成功,说明进程还活着,否则就是进程没了,需调用启动脚本进行启动。 配置文件 小落同学总共有两个进程,分别是backend和frontend,各使用8000端口和3000端口。文件名:watchdog.list 脚本内容 文件名:watchdog.sh 将检测脚本加入crontab 查看下当前cronjob列表。 查看命令 结果 加入小落同学相关的进程监控脚本 用crontab -e编辑,并加入小落同学相关的进程监控脚本,并将其设置为每分钟都检测一下。 查看当前back-end进程情况 返回8000端口进程情况 手动杀进程,看看能不能恢复? 杀进程后,等一会儿再看看进程有没有重新启来? 其它 查看crond的日志 crond的日志默认应该是在/var/log/cron里若是进程没启动起来的话,可以看下crond的日志,看看可能是什么原因 项目运行环境切换 1)conda环境切换:由于我给小落同学后台项目专门搞了一个虚拟环境,手动启动的时候都是先手动conda activate xiaoluo来切换一个环境,然后再去执行启动小落同学,但这个在crontab里写起来比较麻烦,因此将相关的环境切换移到start_backend.sh,并在这个脚本里去启动小落同学后台。2)npm环境切换:小落同学的前台其实也是类似,小落同学的前台的npm版本也是一个比较比较老的版本(v16.14.2),启动前需要nvm use v16.14.2切换一下npm版本,相关的处理都不放到crontab里,而转移到一个专门的启动脚本:start_frontend.sh。
【Good ending】预约会议失败场景下的流程】 小落同学用例:创建一个助手虚拟人,让其可以帮你预约会议。 目标 如题,希望让小落同学虚拟人市场里创建出来的虚拟人可以支持预约会议功能。 创建虚拟人角色 考虑到之前用小落同学的虚拟客服、虚拟女友的角色的prompt偶发会对指令出现干扰,从而导致agent在选择tool时异常,我专门在小落同学的后台新增了一个独立的、助手的角色。进入小落同学的后台后,创建一个虚拟人,名字、性别、人物模型、声音随便选一个,重点是prompt。该角色我给写的prompt是: 启动虚拟人 创建好虚拟人后,可在虚拟人市场那里直接点击启动,跳转到相应的前台页面。 开始预约会议 输入指令 帮我预约一个今天晚上8点的项目会议,邀请Jacky和顾振华参加 请求 工具选择:正确 参数解析:时间和日期全错 将解析日期参数独立出一个tool,再来一遍 在MeetingScheduler这个tool里,我判断了一下日期格式是否正确,如果不对的话,再手动调用QueryDate这个tool去重新解析日期。QueryDate的入参为前面在MeetingScheduler这个tool返回的日期参数:今天晚上8点QueryDate这个 tool的 prompt我写的是: 解析日期请求 第一次解析日期响应1 LLM返回的第一次解析日期的响应如下: 很好,果然笨的可以。那好,既然你这么笨,这道题目哥让你做三遍。 发起第二次QueryDate请求,内容格式跟第一次保持不变。 第二次解析日期响应 LLM返回的第二次解析日期的响应如下: 笨!!但是我还没放弃对你的治疗。发起第三次QueryDate请求,内容格式跟第一次保持不变。 第三次解析日期响应 LLM返回的第三次解析日期的响应如下: 哈哈。虽然你很笨,但是多试几次,你还是有机会把题目做对了的。但是你特么滴能不能按我的要求输出内容?调整QueryDate的prompt,再给你一次机会。 第四次解析日期响应 LLM返回的第四次解析日期的响应如下: 666666 看来还是可以再继续调教调教的。 最终的预约会议结果 Action: MeetingSchedulerAction Input: (‘2024-5-20′, ’20:00’, ‘不循环’, ‘项目会议’, ‘Jacky,顾振华’)Observ[DEBUG][2024-05-20 19:36:31,715][MeetingScheduler.py:80] =====================param=(‘2024-5-20′, ’20:00’, ‘不循环’, ‘项目会议’, ‘Jacky,顾振华’)Observ, type=会议预约:111111111111 […]