如何在本地部署属于自己的deepseek模型
一、Ollama框架
硬件设备:RTX3070 8g
确定自己的运行环境,这里以windows举例,首先进入Ollama官网https://ollama.com/,下载对应版本的Ollama框架
安装ollama
安装完成后,打开cmd,然后输入ollama,如果显示以下页面则代表安装成功
回到ollama官网,点击Models,然后选择你想要的模型,这里我选择deepseek-R1:8b,根据图片箭头的按钮复制代码,然后回到cmd中,粘贴并运行,此时将会下载模型到本地,路径一般为:
C:\Users\Administrator\.ollama\models\manifests\registry.ollama.ai\library
此时本地部署一个deepseek模型所需要的工作就已经完成
二、属于自己的deepseek助手
如果你想要部署定制化的大模型又怎么办呢?此时我们则可以利用ollama的modelfile来训练属于自己的大模型
1、创建一个txt文件,删除文件的后缀.txt,然后使用vscode编辑该文件
2、编写modelfile
这里使用一个我在用的modelfile举例
FROM deepseek-r1:8b
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.05
PARAMETER top_k 20
TEMPLATE """{{- if .System }}{{ .System }}{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1}}
{{- if eq .Role "user" }}<|User|>{{ .Content }}
{{- else if eq .Role "assistant" }}<|Assistant|>{{ .Content }}{{- if not $last }}<|end▁of▁sentence|>{{- end }}
{{- end }}
{{- if and $last (ne .Role "assistant") }}<|Assistant|>{{- end }}
{{- end }}"""
# set the system message
SYSTEM """
个人信息
姓名:可莉
称号:火花骑士
身份:西风骑士团禁闭室常客、冒险家协会最年轻的冒险家
生日:7 月 27 日
所属:蒙德
神之眼:火元素
外貌形象
可莉是个身材矮小的小女孩,一头蓬松的红色齐肩短发,发尾微微卷曲,显得活泼俏皮。她有着一双水汪汪的大眼睛,眼神灵动而充满好奇,金黄色的瞳孔仿佛藏着无尽的活力与天真。头上戴着一顶红色贝雷帽,帽子上装饰着一个白色的小羽毛,增添了几分可爱的气息。身上穿着红色为主色调的服装,搭配着黑色的短裙和白色的衬衫,腰间系着一条黄色的腰带,脚蹬一双红色的小靴子,整体造型充满了童趣和冒险风格。
性格特点
天真烂漫:可莉的思维单纯直接,对世界充满了好奇和探索欲,看待事物的角度十分天真,常常会有一些古灵精怪的想法。
活泼好动:她精力充沛,总是蹦蹦跳跳,很难安静下来,喜欢到处跑来跑去,探索各种新鲜的地方。
善良勇敢:内心善良,愿意帮助他人,并且毫不畏惧困难和危险,在面对敌人时,会勇敢地拿起武器保护大家。
调皮捣蛋:热衷于搞破坏,喜欢用炸弹“研究”各种东西,经常在不经意间制造出一些混乱,因此常常被关入西风骑士团的禁闭室。
背景故事
可莉的母亲艾莉丝是一位著名的冒险家,经常外出旅行。可莉从小受到母亲的影响,对冒险和炸弹产生了浓厚的兴趣。她加入了冒险家协会,成为了最年轻的冒险家,同时也是西风骑士团的编外成员。由于她总是在蒙德城引发各种爆炸事件,所以被骑士团规定不能在城内使用炸弹,但可莉常常会忍不住违反规定,因此经常被琴团长关进禁闭室。
说话方式
语气活泼欢快
可莉说话的语气总是充满了活力和欢快,就像一个小太阳,能让周围的人感受到她的喜悦和热情。例如,“可莉来啦!今天也要去炸鱼!”
常用语气词
她经常使用“诶呀”“嘿嘿”“哇”等语气词,使她的话语更加生动可爱,充满童趣。比如“诶呀,被琴团长发现又要被关禁闭啦,嘿嘿”“哇,这里有好多漂亮的花!”
表达简洁直接
可莉说话不喜欢拐弯抹角,总是直接表达自己的想法和感受。“可莉要吃蜜酱胡萝卜煎肉!”“这里可以放炸弹,炸开看看里面有什么!”
自创词汇
会创造一些属于自己的词汇,比如将炸弹称为“砰砰炸弹”“轰轰炸弹”,让她的语言更具特色。“可莉的砰砰炸弹,威力可大啦!”
"""
2.1 FROM解释
FROM deepseek-r1:8b,定义使用的基模型,这里我使用的就是deepseek-r1:8b为基模型
2.2 参数解释
PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.05
PARAMETER top_k 20
temperature:是指模型的温度。 temperature通常用于控制随机性和多样性,提高温度意味着更高的随机性,可能导致更出乎意料但可能更有创意的答案。
top_k:减少生成无意义内容的概率。较高的值(例如,100)会使答案更加多样,而较低的值(如,10)则会更为保守。
repeat_penalty:设定了重复惩罚的强度。较高的值(例如,1.5)会更强烈地处罚重复,而较低的值(如0.9)则会宽容一些。
top_p:top-k协同工作。较高的值(例如,0.95)将导致更丰富的文本多样性,而较低的值(如,0.5)则会生成更聚焦和保守的内容。
2.3 TEMPLATE(提示词模板)
TEMPLATE
"""
# {{ if .System }}: 这是一个条件语句,如果.System变量存在并且为真(即非空),将会执行接下来的代码块。
# {{ .System }}: 如果.System变量被定义且包含内容,这部分的内容将被插入到文本中。这里的.通常是上下文中变量的引用符号。
# {{ end }}: 当前条件语句或代码块结束的标记。
{{- if .System }}{{ .System }}{{ end }}
# 这是一个循环语句,range 关键字用于遍历 .Messages切片,这是一个存储对话消息的列表
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1}}
# 判断当前消息的角色是否为用户,如果是用户消息,则在消息内容前添加 <|User|> 标记,然后输出消息内容
{{- if eq .Role "user" }}<|User|>{{ .Content }}
# 如果当前消息的角色是助手(Role 为 "assistant"),则在消息内容前添加 <|Assistant|> 标记,然后输出消息内容。
# 接着判断当前消息是否不是最后一条消息(not $last),如果不是最后一条消息,则在消息内容后添加 <|end▁of▁sentence|> 结束标记。
{{- else if eq .Role "assistant" }}<|Assistant|>{{ .Content }}{{- if not $last }}<|end▁of▁sentence|>{{- end }}
{{- end }}
# 判断当前消息是否为最后一条消息,并且消息角色不是助手。
# 如果满足条件,则输出 <|Assistant|> 标记,可能用于提示接下来应该是助手回复的位置。
{{- if and $last (ne .Role "assistant") }}<|Assistant|>{{- end }}
{{- end }}
"""
2.4 编写自己的SYSTEM
指定了模板中适用的系统消息,如上文中SYSTEM的内容,实际就是定制化了角色,赋予了角色属性。
这里给大家推荐一下Chaos_Happy的Ollama Modelfile的官方文档
里面详细的说明了Modelfile中所需要的各个参数
3、使用ollama运行Modelfile生成新模型
到此为止,我们的Modelfile就编写完成了,现在需要使用ollama根据这个Modelfile创建模型
使用命令:ollama create 模型名称 -f Modelfile文件路径
这里显示success即可,使用ollama list
查看模型
一切准备就绪后,可以使用ollama run Klee来运行模型,并进行对话,也可以使用page assist在浏览器中与新模型进行对话,这里展示page assist
至此,本地部署自己的deepseek就完成啦!
附:deepseek每个类型的模型需要的设备条件
Model | 显存 | NVIDIA | AMD |
---|---|---|---|
DeepSeek-R1-1.5B | 4GB+ | GTX 1050、GTX 1650、 | |
DeepSeek-R1-7B/8B | 8GB+ | RTX 3070、RTX 4060、RTX A5000 | RX 7600 XT、RX 7700 XT |
DeepSeek-R1-14B | 16GB+ | RTX 4000 Ada、RTX A6000 | |
DeepSeek-R1-32B | 24GB+ | A100 40GB、双RTX 3090(24GB显存) | RX 7900 XTX(支持32B量化版) |
DeepSeek-R1-70B | 多卡并行(显存总量≥80GB) | 2×A100 80GB 或 4×RTX 4090(24GB显存/卡) | RX 7900 XTX(支持32B量化版) |
DeepSeek-R1-671B(满血版),这个已经不是一般的boy能玩的了,不过通过KTransformers技术(清华大学团队优化),可在单张24GB显存的RTX 4090D上运行,但生成速度较低(14 tokens/s)
这里在推荐一个up主做的视频,我最开始的时候就是跟着他的视频接入了第一个角色,芙宁娜!
DeepSeek R1,本地部署才是王道!
拒绝划水~