问题现象 大模型的联网搜索功能本质上是将模型的自然语言处理能力与传统搜索引擎技术相结合,实现获取联网信息并生成可靠答案的能力。但是在Open WebUI默认安装下该功能是不可用的,需要你自己来配置一下。 设置Open WebUI 在Open WebUI前端,用管理员账号登录进去,然后点右上角的设置,然后找到“联网搜索”将联网搜索功能启用一下,然后将你自己的密钥及账号信息填进去即可。 建议选择用Goole的PSE(Programmable Search Engine),因为我试着去注册了几个搜索引擎,同样是有free trial,只有Google的这个没让我绑定信用卡。 以Google PSE为例从头申请一个Google PSE的API。 然后把这个API密钥和搜索引擎ID填到Open WebUI的设置项中,保存并刷新Open WebUI,然后联网搜索就可以工作了。 注意事项 一、免费版的Google PSE的每天有使用限制(点开你创建的自定义搜索引擎后,在那里会显示),当前的限制是每次1万次。二、要使用Google PSE就意味着你的服务器是支持科学上网的,不然连不上Google一切白扯。
LLM
问题现象 整个think标签不对,如下图: 解决方案1:失败 参考:https://github.com/open-webui/open-webui/discussions/11348This might be a quick fix:in backend/open_webui/utils/middleware.py , line 1313, function tag_content_handler :change the elif to if .找到middlewares.py :1313 定位到那个elif,改成if重启openwebui,问题依旧。 解决方案2:OK 参考:https://github.com/open-webui/open-webui/issues/11259With TabbyAPI, I’m able to get the “normal” tag when removing it from the chat template.The end looks like this after the modification:{%- if add_generation_prompt %}\n […]
相比于ollama, llama.cpp等框架, vllm是一个可以产品化部署的方案,适用于需要大规模部署和高并发推理的场景,采用 PagedAttention 技术,能够有效减少内存碎片,提高内存利用率,从而显著提升推理速度。在处理长序列输入时,性能优势更为明显。因此,今天先用vllm来验证一下QWQ32B 的情况。 硬件环境 租的AutoDL的GPU服务器做的测试 •软件环境 PyTorch 2.5.1、Python 3.12(ubuntu22.04)、Cuda 12.1 •硬件环境 ○GPU:RTX 4090(24GB) * 2 ○CPU:64 vCPU Intel(R) Xeon(R) Gold 6430 ○内存:480G(至少需要382G) ○硬盘:1.8T(实际使用需要380G左右) 一、虚拟环境 conda create –prefix=/root/autodl-tmp/jacky/env/vllm python==3.12.3 conda activate /root/autodl-tmp/jacky/envs/vllm/ pip install vllm 二、安装 vLLM export VLLM_VERSION=0.6.1.post1 export PYTHON_VERSION=310 pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu118-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux1_x86_64.whl –extra-index-url https://download.pytorch.org/whl/cu118 三、从huggingface下载模型 计划测试 […]
一、说在前面 今天有一个朋友在一个群里提到了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 […]
前言 由于用默认的langchain agent碰到各种action识别错误,action input解析错误的问题,听说这个langsmith可以让我调试、测试、评估和监控基于任何 LLM 框架构建的链和智能代理的全流程。特地来学习了解一下。 注册langsmith 官网地址:https://smith.langchain.com/看到可以直接用Discord、GitHub、Google账号登录(也可以用自己邮箱注册),于是直接用github账号注册登录。 获取API 登录进去后在Personal页的右上角有一个Create API Key,点击后可创建一个API KeyAPI Key分两种:Personal Access KeyService Key我各创建了一个:Personal Access Key: lsv2_pt_706834b28bf6477a9f69ab9b81021c77_cbd33ac54bServiceKey: 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 设置环境变量 Linux:export LANGCHAIN_TRACING_V2=trueexport LANGCHAIN_ENDPOINT=”https://api.smith.langchain.com“export LANGCHAIN_API_KEY=”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”export LANGCHAIN_PROJECT=”langchain_for_llm_application_development” Windows:setx LANGCHAIN_TRACING_V2 truesetx LANGCHAIN_ENDPOINT “https://api.smith.langchain.com“setx LANGCHAIN_API_KEY lsv2_pt_706834b28bf6477a9f69ab9b81021c77_cbd33ac54bsetx LANGCHAIN_PROJECT langchain_for_llm_application_development 其中:LANGCHAIN_TRACING_V2: 设置LangChain是否开启日志跟踪模式。LANGCHAIN_PROJECT: 跟踪项目的名称。如果LangSmith上还没有这个项目,会自动创建。如果不设置这个环境变量,会把相关信息写到default项目。LANGCHAIN_API_KEY: 你在前面申请生成的LangSmith的API key。 设置好环境变量就可以了,代码无需任何变动!完全没有侵入性的感觉真好。当然,如果要较真的话,引入LangChain的时候代码就已经侵入了,但是我们本来就要用LangChain,那就不用管这个了。 使用 初始化smith ”’pythondef initSmith(self):try:from dotenv import load_dotenvload_dotenv(find_dotenv()) ”’ […]
langchain的tools经常会说:“提供的日程查询工具帮助较小,我将直接回答。” 问题现象 我加了好几个tools,希望可以在langchain的agent框架下实现一些自定义的功能,但是在实际运行过程中langchain的tools经常会说:“提供的日程查询工具帮助较小,我将直接回答。” 结论 问题分析定位的过程又臭又长,为省流直接上结论:修改调整你的prompt,以适配LLM(不同的LLM的结果不一样,如果想产品化你需要盯着一个LLM引擎自行调整prompt来适配)。 问题分析 原始请求: {‘method’: ‘post’, ‘url’: ‘/chat/completions’, ‘files’: None, ‘json_data’:{‘messages’:[{‘role’: ‘user’, ‘content’: ‘Answer the following questions as best you can.You have access to the following tools:\n\npython_executor: 此工具用于执行传入的 Python 代码片段,并返回执行结果\nScheduleAdder: 用于设置日程,使用的时候需要接受3个参数,第1个参数是时间,第2个参数是循环规则(如:\’1000100\’代表星期一和星期五循环,\’0000000\’代表不循环),第3个参数代表要执行的事项,如:(\’15:15\’, \’0000001\’, \’提醒主人叫咖啡\’)\nweather: 此工具用于获取天气预报信息,需传入英文的城市名,参数格式:Guangzhou\nCheckSensor: 此工具用于查询会议室内各种IoT设备在线状态、传感器数据、设备开关状态\nSwitch: 此工具用于控制空调、投影、窗帘、灯、终端、暖气、投屏器的开关,参数格式:(“空调”,”on”),返回True为成功\nKnowledge: 此工具用于查询XX视讯视频会议系统的专业知识,使用时请传入相关问题作为参数,例如:“XXX硬终端支持H.265+RTC的会议吗”\nScheduleDBQuery: 用于查询所有日程,返回的数据里包含3个参数:时间、循环规则(如:\’1000100\’代表星期一和星期五循环,\’0000000\’代表不循环)、执行的事项\nScheduleDBDelete: 用于删除某一个日程,接受任务id作为参数,如:2\nGetSwitchLog: 此工具用于查询会议室内的IoT设备开关当天的操作历史记录\ngetOnRunLinkage: 此工具用于查询会议室内的IoT设备当前在运行的联动,以及温度、湿度、烟感等的环境监控\nWebPageRetriever: 专门用于通过Bing搜索API快速检索和获取与特定查询词条相关的网页信息。使用 时请传入需要查询的关键词作为参数。\nWebPageScraper: 此工具用于获取网页内容,使用时请传入需要查询的网页地址作为参数,如:https://www.baidu.com/。\nKnowledgeBaseResponder: 此工具用于连接本地知识库获取问题答案,使用时请传入相关问题作为参数 ,例如:“草莓最适合的生长温度”\nMeetingScheduler: 用于预约会议,使用的时候需要接受4个参数,第1个参数是时间,第2个参数是循环规则(如:\’1000100\’代表星期一和星期五循环,\’0000000\’代表不循环),第3个参数代表要执行的事项,第4个参数代表需要参 […]
转自:https://zhuanlan.zhihu.com/p/628760014 1、标题生成 我想让你充当标题生成器。请以[文房四宝]为主题,[传承、匠心]为关键词,你将生成五个吸引人的标题。要求保持标题简洁,不超过[20]个字 2、文章续写 你是一位文案助理,以[星期日早上,我坐在床上读着《安徒生童话》中《卖火柴的小女孩》。]为开头,续写一篇小学生日记,要求表意清晰,主题鲜明,分段表述 3、文章开头 现在写出一篇文章的开头,文章主题为[如何看待中小学生沉迷网络游戏],要求文字简洁明了,具有吸引力,运用具体案例和数据 4、文章大纲 我希望你是一位文案助理,帮助我生成文章大纲,这篇大纲的主题是[人工智能发展史],要求逻辑清晰,分条表述 5、文章润色 我希望你是一位文章改写助手,我给出一段话,你对文本内容进行修改润色,以达到[更为简洁、有吸引力]的目标,要[用到成语和修辞手法]。文本内容为:[今天的天气真是好极了,我在上学路上看到了一只小猫在花丛里玩耍,它看起来非常开心。放学回家后,我向妈妈分享了这个有趣的经历。] 6、冷笑话 你是我的一位非常幽默的朋友,我现在心情不好,希望你能讲一个与[动物]有关的冷笑话,希望能够有吸引力,有想象力。 7、文章大纲 我希望你是一位文案助理,帮助我生成文章大纲,这篇大纲的主题是[人工智能发展史],要求逻辑清晰,分条表述 8、文章润色 我希望你是一位文章改写助手,我给出一段话,你对文本内容进行修改润色,以达到[更为简洁、有吸引力]的目标,要[用到成语和修辞手法]。文本内容为:[今天的天气真是好极了,我在上学路上看到了一只小猫在花丛里玩耍,它看起来非常开心。放学回家后,我向妈妈分享了这个有趣的经历。] 9、冷笑话 你是我的一位非常幽默的朋友,我现在心情不好,希望你能讲一个与[动物]有关的冷笑话,希望能够有吸引力,有想象力。 10、朋友圈文案 你是一位文案小助理,我需要你帮我写朋友圈文案,我的要求是[表达我外出游玩的好心情,我将会配一张日出的照片],50字左右,风格俏皮有趣 11、小红书文案 我希望你是一位文案助理,你将针对[保湿防晒霜]这一产品,写一篇小红书风格的种草文案,要求包含产品功效、特点以及使用体验 12、社交媒体 针对公司即将推出的[学习机新品],编辑一条微博文案,文字在[150字]之内,突出:[课程资源多、护眼、性价比高]的特点 13、策划方案 针对公司即将推出的[智能耳机产品],给出一个推广策划方案,并列出具体预算 14、用户调研 你现在是一位营销经理,针对公司的[保温杯]产品,写一份用户调研报告,分析这款产品的受众群体、他们的痛点及应采取什么营销策略 15、产品新闻稿 撰写一篇新闻稿,向[开发者]客户介绍我们的[键盘]产品,突出其[材质优良、触感好]的特点,并起一个有吸引力的标题 16、SWOT分析 针对[公司的翻译机]产品做一个SWOT分析,用中文表达 17、PPT大纲 制作一个[新媒体运营月度计划]为主题的PPT大纲,要求8页之内 18、课程设计 你现在是一位语文教师,准备[为学生讲述《静夜思》这首诗],为本次课程制定一个课程设计,要求注重师生之间的互动 19、写论文 写一篇以[学生心理发展]为主题的论文,要求有标题、内容摘要、关键词、正文、参考文献、注释等内容 20、写作文 我需要你写一篇小学生作文,300字左右,作文主题是[乌鸦喝水的故事],要求文字表达流畅,分段表述,有层次,有寓意。 21、学习技巧 你非常聪明,有很多学习技巧,请告诉我[5]个关于[学好高中物理]的学习技巧 22、学习计划 你是我的学习指导老师,我需要[通过英语四级考试],请为我制定一份详细的学习计划 23、阅读理解 你是我的语文家教,我将给到你一段文字[金色的霞光,犹如一只神奇的巨手,徐徐拉开了柔软的帷幕,整个大地豁然开朗了],请描述下所要表达的场景。 24、外语学习 我想让你扮演一个[英语]老师,我会用[英语]和你交流,你用[英语]回复我。现在我们开始练习 25、道歉邮件 […]