小白也能玩转AI推理:DeepSeek-R1 1.5B模型部署全攻略

张开发
2026/4/13 7:16:45 15 分钟阅读

分享文章

小白也能玩转AI推理:DeepSeek-R1 1.5B模型部署全攻略
小白也能玩转AI推理DeepSeek-R1 1.5B模型部署全攻略想体验AI的逻辑推理能力但又担心需要昂贵的显卡和复杂的配置今天我要带你玩转一个特别适合新手的AI模型——DeepSeek-R1 1.5B。这个只有15亿参数的小家伙却继承了DeepSeek-R1强大的逻辑推理基因最关键的是它能在你的普通电脑上只用CPU就能流畅运行。你可能听说过动辄几百亿参数的大模型它们确实厉害但对硬件要求也高。而这个1.5B的小模型通过知识蒸馏技术把大模型的“思考能力”浓缩到了一个小巧的版本里。这意味着你不需要专业显卡不需要复杂的服务器就能在本地搭建一个属于自己的AI推理引擎。接下来我会手把手带你完成从环境准备到实际使用的完整流程。整个过程就像搭积木一样简单即使你是第一次接触AI模型部署也能跟着一步步做下来。1. 环境准备搭建你的AI工作台在开始之前我们需要准备好运行环境。别担心这个过程很简单就像安装一个普通软件一样。1.1 检查你的系统首先确认一下你的操作系统。这个教程主要针对Linux系统比如Ubuntu但如果你用的是Windows也可以通过WSLWindows Subsystem for Linux来运行效果是一样的。打开终端输入以下命令检查系统信息# 查看系统版本 lsb_release -a # 或者用这个命令 cat /etc/os-release你会看到类似这样的信息Ubuntu 20.04.6 LTS只要是Ubuntu 18.04或更高版本或者CentOS 7以上基本上都没问题。1.2 安装必要的工具我们需要几个基础工具就像盖房子需要砖瓦一样# 更新软件包列表 sudo apt update # 安装Python和pip如果还没安装的话 sudo apt install python3 python3-pip python3-venv -y # 安装Git用来下载代码 sudo apt install git -y # 安装Git LFS用来下载大文件比如模型权重 sudo apt install git-lfs -y # 初始化Git LFS git lfs install看到“Git LFS initialized.”就说明安装成功了。Git LFS特别重要因为模型文件很大普通Git下载不了。1.3 创建Python虚拟环境虚拟环境就像给你的AI项目一个独立的小房间不会影响系统里其他的Python程序。这样管理起来更干净也避免版本冲突。# 创建一个名为deepseek的虚拟环境 python3 -m venv deepseek-env # 激活虚拟环境 source deepseek-env/bin/activate激活后你会看到命令行前面多了(deepseek-env)就像这样(deepseek-env) userserver:~$这说明你现在在这个虚拟环境里工作了。如果想退出虚拟环境输入deactivate就行。1.4 安装Python依赖包现在我们来安装运行模型需要的Python包# 升级pip到最新版本 pip install --upgrade pip # 安装vLLM推理框架 pip install vllm # 安装requests用来发HTTP请求 pip install requestsvLLM是个很厉害的推理框架它能让模型跑得更快即使只用CPU也能有不错的表现。安装过程可能需要几分钟耐心等待一下。2. 下载模型获取AI的“大脑”模型文件就是AI的“大脑”我们需要把它下载到本地。DeepSeek-R1 1.5B的模型文件大约3GB左右不算太大。2.1 下载模型文件用Git命令把模型从网上下载到你的电脑上# 克隆模型仓库 git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B这个过程可能会有点慢因为要下载3GB的文件。你可以去泡杯茶大概需要5-10分钟具体看你的网速。下载完成后进入模型目录看看cd DeepSeek-R1-Distill-Qwen-1.5B ls -la你应该能看到这些文件config.json- 模型配置文件pytorch_model.bin- 主要的模型权重文件最大的那个tokenizer_config.json- 分词器配置还有其他一些辅助文件2.2 检查文件完整性有时候大文件下载会出问题我们可以检查一下# 检查文件大小pytorch_model.bin应该在3GB左右 ls -lh pytorch_model.bin # 如果文件大小不对重新拉取LFS文件 git lfs pull如果pytorch_model.bin文件很小比如只有几百KB说明没下载完整运行git lfs pull重新下载。3. 启动服务让你的AI“活”起来现在到了最激动人心的时刻——启动AI推理服务。这个过程就像启动一个网站服务器只不过这个服务器能“思考”。3.1 启动vLLM服务回到模型目录的上一级然后运行这个命令# 确保你在虚拟环境里 source deepseek-env/bin/activate # 启动vLLM服务 vllm serve ./DeepSeek-R1-Distill-Qwen-1.5B \ --tensor-parallel-size 1 \ --max-model-len 8192 \ --enforce-eager \ --gpu-memory-utilization 0.7 \ --swap-space 4 \ --disable-log-stats我来解释一下这些参数是什么意思--tensor-parallel-size 1用单个设备运行我们用的是CPU--max-model-len 8192支持最长8192个token的对话够你聊很久了--enforce-eager用更兼容的模式运行避免一些奇怪的问题--swap-space 4预留4GB的交换空间防止内存不够用--disable-log-stats关闭一些统计日志让输出更干净第一次运行会慢一些因为要加载模型到内存里。你会看到类似这样的输出INFO 07-10 14:30:15 llm_engine.py:137] Initializing an LLM engine with config: ... INFO 07-10 14:30:15 model_runner.py:179] Loading model weights... INFO 07-10 14:30:30 model_runner.py:204] Model weights loaded. INFO 07-10 14:30:30 llm_engine.py:307] LLM engine is ready. Uvicorn running on http://0.0.0.0:8000 (Press CTRLC to quit)看到最后一行就说明成功了服务运行在8000端口你可以通过浏览器或者代码来访问它。3.2 测试服务是否正常打开另一个终端窗口我们来测试一下服务是否正常# 激活虚拟环境 source deepseek-env/bin/activate # 发送一个测试请求 python3 -c import requests import json response requests.post(http://localhost:8000/v1/completions, json{ model: DeepSeek-R1-Distill-Qwen-1.5B, prompt: 你好请介绍一下你自己, max_tokens: 100 } ) print(状态码:, response.status_code) if response.status_code 200: result response.json() print(AI回复:, result[choices][0][text]) else: print(错误:, response.text) 如果一切正常你会看到AI的自我介绍。第一次请求可能会慢一点2-3秒后面就快了。4. 使用Web界面像聊天一样简单虽然用代码调用很酷但有个网页界面用起来更方便。vLLM自带了一个简单的Web界面我们来看看怎么用。4.1 访问Web界面打开你的浏览器输入地址http://你的服务器IP:8000如果你是在本地电脑上运行的就输入http://localhost:8000你会看到一个简洁的聊天界面左边是对话历史右边是输入框跟ChatGPT的界面有点像。4.2 开始你的第一次AI对话让我们问几个问题看看这个1.5B的小模型到底有多聪明试试数学题 在输入框里写“一个笼子里有鸡和兔子一共35个头94只脚。鸡和兔子各有多少只请一步步推理。”点击发送等几秒钟你会看到AI的解答。它应该会列出方程然后一步步解出来。试试编程题 “用Python写一个函数判断一个数是不是素数。”看看它写的代码对不对能不能运行。试试逻辑题 “如果所有的猫都怕水而汤姆是一只猫那么汤姆怕水吗为什么”看看AI能不能理解这个逻辑推理。4.3 Web界面的使用技巧多轮对话你可以连续问问题AI会记住之前的对话内容在一定长度内调整参数界面里可以设置一些参数比如max_tokensAI回答的最大长度temperature创造性程度0.7左右比较平衡top_p采样范围0.9是个不错的默认值清空对话如果想重新开始可以清空对话历史5. 用代码调用更灵活的使用方式除了用Web界面你还可以用Python代码来调用AI这样能集成到你的其他程序里。5.1 基本的文本生成创建一个Python文件比如test_ai.pyimport requests import json def ask_ai(question, max_tokens200): 向AI提问的函数 # 请求的URL url http://localhost:8000/v1/completions # 请求的数据 data { model: DeepSeek-R1-Distill-Qwen-1.5B, prompt: question, max_tokens: max_tokens, temperature: 0.7, top_p: 0.9 } # 发送请求 response requests.post(url, jsondata) if response.status_code 200: result response.json() answer result[choices][0][text] return answer.strip() else: return f错误: {response.status_code}, {response.text} # 测试一下 if __name__ __main__: questions [ 什么是人工智能, 写一个Python函数计算圆的面积, 鸡兔同笼问题怎么解 ] for q in questions: print(f问题: {q}) print(f回答: {ask_ai(q)}) print(- * 50)运行这个脚本python test_ai.py你会看到AI对每个问题的回答。5.2 连续对话有记忆的聊天如果你想实现像ChatGPT那样的连续对话可以这样写import requests class AIChatbot: def __init__(self): self.conversation_history [] self.max_history 5 # 记住最近5轮对话 def chat(self, user_input): 处理用户输入返回AI回复 # 把用户的话加到历史里 self.conversation_history.append(f用户: {user_input}) # 只保留最近几轮对话避免太长 if len(self.conversation_history) self.max_history * 2: self.conversation_history self.conversation_history[-self.max_history*2:] # 构建完整的对话上下文 context \n.join(self.conversation_history) context \nAI: # 调用AI response requests.post( http://localhost:8000/v1/completions, json{ model: DeepSeek-R1-Distill-Qwen-1.5B, prompt: context, max_tokens: 150, temperature: 0.8 } ) if response.status_code 200: ai_reply response.json()[choices][0][text].strip() # 把AI的回复也加到历史里 self.conversation_history.append(fAI: {ai_reply}) return ai_reply else: return 抱歉我暂时无法回答。 def clear_history(self): 清空对话历史 self.conversation_history [] # 使用示例 bot AIChatbot() print(bot.chat(你好)) print(bot.chat(你会编程吗)) print(bot.chat(那你能帮我写一个排序算法吗))这样AI就能记住你们之前的对话内容了。5.3 批量处理问题如果你有很多问题要问可以批量处理import requests import time from concurrent.futures import ThreadPoolExecutor def process_question(question): 处理单个问题 try: response requests.post( http://localhost:8000/v1/completions, json{ model: DeepSeek-R1-Distill-Qwen-1.5B, prompt: question, max_tokens: 100, temperature: 0.7 }, timeout10 # 10秒超时 ) if response.status_code 200: return response.json()[choices][0][text].strip() else: return f错误: {response.status_code} except Exception as e: return f异常: {str(e)} # 批量处理问题 questions [ Python里怎么读取文件, 什么是递归函数, 如何判断一个数是偶数, 简述一下冒泡排序的原理, HTTP和HTTPS有什么区别 ] print(开始批量处理问题...) start_time time.time() # 用多线程加速注意不要开太多CPU会撑不住 with ThreadPoolExecutor(max_workers2) as executor: results list(executor.map(process_question, questions)) # 显示结果 for i, (q, a) in enumerate(zip(questions, results), 1): print(f\n问题{i}: {q}) print(f回答{i}: {a[:100]}...) # 只显示前100个字符 print(f\n总共处理了{len(questions)}个问题耗时{time.time()-start_time:.2f}秒)6. 常见问题与解决方案在部署和使用过程中你可能会遇到一些问题。别担心大部分问题都有解决办法。6.1 内存不足怎么办DeepSeek-R1 1.5B在CPU上运行需要大约6-8GB内存。如果你的内存不够可以试试这些方法方法1使用量化版本有些社区提供了量化版的模型内存占用更小。你可以搜索“DeepSeek-R1 1.5B GGUF”或者“DeepSeek-R1 1.5B AWQ”版本。方法2调整vLLM参数vllm serve ./DeepSeek-R1-Distill-Qwen-1.5B \ --tensor-parallel-size 1 \ --max-model-len 4096 \ # 减少上下文长度 --gpu-memory-utilization 0.5 \ # 降低内存使用率 --swap-space 8 \ # 增加交换空间 --disable-log-stats方法3使用更轻量的推理框架比如用llama.cpp它对内存要求更低# 首先把模型转换成GGUF格式 # 然后使用llama.cpp运行 ./main -m models/DeepSeek-R1-1.5B.gguf -p 你的问题6.2 响应速度太慢在CPU上运行响应速度确实不如GPU快但我们可以优化优化1限制输出长度# 在请求时设置较小的max_tokens data { model: DeepSeek-R1-Distill-Qwen-1.5B, prompt: question, max_tokens: 100, # 限制输出长度 temperature: 0.7 }优化2预热模型第一次请求总是最慢的因为要加载模型。你可以在启动服务后先发几个简单的请求“预热”一下。优化3使用缓存对于相同的问题可以在你的程序里加个缓存import hashlib from functools import lru_cache lru_cache(maxsize100) def get_cached_answer(question): 缓存AI的回答 return ask_ai(question) # 这是前面定义的函数6.3 模型回答质量不高1.5B的模型毕竟是个小模型有时候回答可能不够准确。你可以这样改进技巧1给更详细的提示不要只问“怎么写代码”而是具体说明不好的提问“写一个排序函数”好的提问“用Python写一个快速排序函数要求能处理整数列表并添加详细的注释”技巧2分步骤提问对于复杂问题拆分成几个小问题先问“什么是快速排序的基本思想”再问“快速排序的Python实现有哪些要点”最后问“能给我一个完整的快速排序代码示例吗”技巧3指定回答格式告诉AI你想要的格式 “请用以下格式回答算法原理时间复杂度分析Python代码实现测试示例”6.4 服务意外停止如果vLLM服务突然停了可以方法1用nohup后台运行nohup vllm serve ./DeepSeek-R1-Distill-Qwen-1.5B [参数] ai.log 21 这样服务会在后台运行输出会保存到ai.log文件。方法2使用systemd管理Linux系统创建一个服务文件/etc/systemd/system/deepseek-ai.service[Unit] DescriptionDeepSeek AI Service Afternetwork.target [Service] Typesimple User你的用户名 WorkingDirectory/path/to/your/project EnvironmentPATH/path/to/deepseek-env/bin ExecStart/path/to/deepseek-env/bin/python -m vllm.serve ./DeepSeek-R1-Distill-Qwen-1.5B [参数] Restartalways RestartSec10 [Install] WantedBymulti-user.target然后启用服务sudo systemctl daemon-reload sudo systemctl enable deepseek-ai sudo systemctl start deepseek-ai sudo systemctl status deepseek-ai # 查看状态7. 实际应用场景现在你的AI服务已经跑起来了它能做什么呢我来给你一些实用的想法7.1 学习助手数学题解答math_questions [ 解方程2x 5 13, 计算圆的面积半径r5, 什么是勾股定理, 等差数列1, 3, 5, 7...的第10项是多少 ]编程学习解释代码概念变量、函数、类调试简单的代码错误提供算法思路解释技术术语7.2 工作辅助文档处理def summarize_text(text): 用AI总结长文本 prompt f请用三句话总结以下内容\n\n{text}\n\n总结 return ask_ai(prompt) def translate_english(text): 翻译英文技术文档 prompt f将以下英文技术内容翻译成中文\n\n{text}\n\n中文翻译 return ask_ai(prompt)代码生成生成常用的代码片段写测试用例生成SQL查询语句写配置文件7.3 创意工具故事生成def generate_story(theme, length100): 根据主题生成小故事 prompt f请以{theme}为主题写一个{length}字左右的小故事 return ask_ai(prompt, max_tokens200) # 试试看 print(generate_story(太空探险))头脑风暴产品命名建议文章标题创意解决问题的新思路学习计划制定7.4 本地知识库问答你可以把AI和本地文档结合起来import os class LocalKnowledgeQA: def __init__(self, docs_folder): self.docs_folder docs_folder self.documents self.load_documents() def load_documents(self): 加载本地文档 docs {} for filename in os.listdir(self.docs_folder): if filename.endswith(.txt): with open(os.path.join(self.docs_folder, filename), r, encodingutf-8) as f: docs[filename] f.read() return docs def answer_question(self, question): 基于本地文档回答问题 # 简单的关键词匹配实际可以用更高级的搜索 relevant_text for doc_name, content in self.documents.items(): if any(keyword in question.lower() for keyword in [python, 代码, 编程]): if python in content.lower(): relevant_text content[:500] # 取前500字符 break prompt f根据以下信息\n{relevant_text}\n\n回答问题{question} return ask_ai(prompt) # 使用示例 qa_system LocalKnowledgeQA(./my_docs) answer qa_system.answer_question(Python里怎么读取文件) print(answer)8. 总结通过这个教程你已经成功在本地部署了一个能思考的AI模型。让我们回顾一下今天的成果你学会了什么环境搭建在普通电脑上准备好了AI运行环境模型下载获取了DeepSeek-R1 1.5B这个聪明的“小大脑”服务启动用vLLM启动了AI推理服务两种使用方式通过Web界面聊天或者用Python代码调用问题解决知道了遇到常见问题该怎么处理实际应用看到了AI能在学习、工作、创意中的各种用途这个方案的优势完全免费不需要API密钥没有使用限制隐私安全所有数据都在本地不会上传到任何服务器硬件要求低普通CPU就能运行不需要昂贵显卡随时可用断网也能用24小时服务可定制性强你可以按需修改集成到自己的项目里下一步可以尝试试试其他问题问一些你感兴趣的话题看看AI怎么回答集成到其他程序把AI功能加到你的网站或应用里尝试优化调整参数看看能不能让回答更准确学习更多了解vLLM的其他功能或者试试其他小模型最重要的是你现在有了一个本地的AI助手。它可能不如ChatGPT那么强大但它完全属于你完全免费完全私密。你可以用它来解答问题、帮助学习、激发创意或者只是随便聊聊天。AI技术正在变得越来越平民化。几年前运行一个AI模型需要专业的硬件和深厚的技术背景。今天像你这样的小白也能在半小时内搭建起自己的AI服务。这就是技术进步带来的美好——让复杂的技术变得简单可用。现在你的AI助手已经准备就绪。去问它第一个问题吧看看这个1.5B的“小大脑”能给你什么惊喜。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章