简单本地部署deepseek模型(以deepseek-r1-1.5b为例)
环境配置(linux系统):
1、进入anaconda官网https://repo.anaconda.com(下载anaconda版本:Anaconda3-latest-Linux-x86_64.sh)
2、在文件所在位置打开终端运行命令:
bash Anaconda3-latest-Linux-x86_64.sh
(安装anaconda,默认主目录/anaconda3)
3、终端运行
source ~/.bashrc
或
source ~/.zshrc
(根据你的 shell)使配置生效
4、验证安装
conda --version
5、创建环境(命名为deepseek-r1-1.5b-py310,使用python3.10版本)
conda create --name deepseek-r1-1.5b-py310 python=3.10
6、激活环境
conda activate deepseek-r1-1.5b-py310
7、在环境中安装依赖:
pip install transformers
pip install accelerate
pip install huggingface_hub
8、在终端创建模型查询脚本search.py(这里也可以直接去huggingface官网查看所需模型名称):
gedit search.py
写入代码
from huggingface_hub import list_models
models = list_models(author="deepseek-ai")
for model in models:
print(model.id)
保存后终端运行脚本:
python3 search.py
会得到类似以下输出,根据需求和配置找到合适的模型:
deepseek-ai/DeepSeek-R1
deepseek-ai/DeepSeek-V3
deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
.......
9、在终端创建模型下载脚本download.py:
gedit download.py
写入代码(以下载DeepSeek-R1-Distill-Qwen-1.5B为例):
from transformers import AutoModelForCausalLM, AutoTokenizer
# 下载模型和分词器
model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 保存到本地
model.save_pretrained("./deepseek-r1-1.5b")
tokenizer.save_pretrained("./deepseek-r1-1.5b")
保存后终端运行脚本:
python3 download.py
10、在终端创建推理样本脚本sample.py
gedit sample.py
写入代码(确保模型加载路径正确,最大输出长度可根据情况进行修改):
from transformers import AutoModelForCausalLM, AutoTokenizer
# 加载本地模型和分词器
model_path = "./deepseek-r1-1.5b"
model = AutoModelForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
while True:
# 输入文本
input_text = input("用户:").strip()
if input_text.lower() in ["quit","esc"]:
print("用户退出")
break
# 分词并生成输出
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**inputs, max_length=256) #最大输出长度可以根据情况进行更改
# 解码输出
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("模型回复:", response)
运行脚本(务必确保CPU或GPU能带得动模型):
python3 sample.py
输入 quit 或 esc 结束程序
注:sample.py 只是一个示例文件,可以根据需求添加功能代码,包括但不限于流式输出、历史对话等等,同时 outputs=model.generate() 中还可以根据具体情况设置temperature、pad_token_id、top_p等参数以优化模型输出结果。
更多推荐


所有评论(0)