
本地化部署DeepSeek-R1
Ollama:最新版本 0.5.7官网在这里但是下载太慢,得换个思路;Chatbox可以用作前端UI集成适用。
对对本文环境搭建均基于免费工具,感谢开源。
一、下载工具并安装
1. Ollama:最新版本 0.5.7
官网在这里
https://ollama.com/download
但是下载太慢,得换个思路
https://sourceforge.net/projects/ollama.mirror/
2.Chatbox
https://chatboxai.app/zh
二、安装配置Ollama
安装一路next,默认是装到C盘
(1)调整模型默认存放路径
如果C盘空间吃紧,需要新建环境变量OLLAMA_MODELS
windows下更改模型默认下载路径:
默认路径在C:Users<username>.ollama/models
模型一般占用都比较大,换到其他盘去
高级系统设置-环境变量-新建OLLAMA_MODELS,重启Ollama生效。
注:已经下载的模型文件直接搬到新的路径下就可以使用,不需要再下载。
文件在models/blobs中
(2)下载DeepSeek模型
根据自己的硬件设备在Ollama主页选择不同的版本下载
我的是t490s的本子,没有独显,试了下14b勉强可以跑。
ollama pull deepseek-r1:14b
(3)修改环境变量
配置环境变量 OLLAMA_HOST、OLLAMA_ORIGINS
默认情况下,Ollama服务仅在本地运行,不对外提供服务。
如果要提供对外服务,需要新增两个环境变量
--------------------------------
Ollama默认绑定127.0.0.1,不会对外网暴露。
如果自己有独立公网ip或在服务器上跑,那么绑定0.0.0.0会对外网暴露自己服务,这一项设置要慎重!
--------------------------------
保存设置,重启Ollama服务。
小结下Ollama环境变量的作用:
(4)优化配置
1)创建自定义配置文件
创建一个名为Modelfile
的文件:
FROM deepseek-coder:14b
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
a. temperature
含义
temperature
(温度)是一个用于控制生成文本随机性的参数,主要应用于基于概率分布的文本生成过程。在模型预测下一个词时,通常会根据每个词的概率分布来进行采样。temperature
会对这个概率分布进行调整。具体来说,模型在生成下一个词时,会为每个可能的词计算一个概率。temperature
通过以下公式对原始概率P()分布进行变换:
当 temperature
接近 0 时,概率分布会变得更加尖锐,模型更倾向于选择概率最高的词,生成的文本更加确定、保守,通常会生成和训练数据中类似的常见表述。当 temperature
较大时,概率分布会变得更加平坦,原本概率较低的词也有更大的机会被选中,生成的文本更加多样化、富有创意,但也可能会出现更多不连贯或不合理的内容。
b.temperature
数值设定依据
- 保守生成(低
temperature
):如果希望生成的文本准确、连贯,符合常见的语言表达习惯,例如生成新闻稿、技术文档等,通常会选择较低的temperature
值,如 0.2 - 0.5。这样可以保证模型选择最可能的词,减少错误和不恰当的表述。 - 创意生成(高
temperature
):当需要生成富有创意的内容,如诗歌、故事等,较高的温度值(如 0.7 - 1.0)可以让模型尝试更多不同的词汇组合,产生更具个性和想象力的文本。这里设定为 0.7,是一个相对适中偏高的值,既能保证一定的连贯性,又能在一定程度上增加文本的多样性和创意性。
c. top_p
含义
top_p
(核采样)也称为核概率采样,是一种采样策略,用于限制模型在生成下一个词时的候选词范围。它会根据词的概率对所有可能的词进行排序,然后选择累积概率达到 top_p
的最小词集。模型只会从这个词集中进行采样,而不是从整个词汇表中采样。
例如,假设 top_p = 0.9
,模型会按概率从高到低对所有词进行排序,然后依次累加这些词的概率,直到累加概率超过 0.9 为止,最后从这些满足条件的词中随机选择一个作为下一个生成的词。
d. top_p数值设定依据
- 限制多样性(低
top_p
):如果设置较低的top_p
值(如 0.6 - 0.8),会进一步缩小候选词的范围,使得生成的文本更加聚焦,减少生成不常见或不合理词的可能性,适用于对准确性要求较高的场景。 - 平衡多样性和合理性(适中
top_p
):设置为 0.9 是一个比较常见的选择,它在保证生成文本有一定多样性的同时,又能避免选择过于罕见或不合理的词,使得生成的文本既不过于单调,也不会出现过多的错误。
e. top_k
含义
top_k
是另一种采样策略,它会在模型生成下一个词时,只考虑概率最高的 top_k
个词,然后从这 top_k
个词中进行采样。例如,当 top_k = 40
时,模型会选择概率最高的 40 个词,忽略其他词,然后在这 40 个词中随机选择一个作为下一个生成的词。
f.数值设定依据
- 限制选择范围(低
top_k
):较小的top_k
值(如 10 - 20)会极大地限制候选词的数量,使得生成的文本更加集中在最可能的词上,生成结果更加稳定,但可能会导致文本缺乏多样性。 - 平衡多样性和稳定性(适中
top_k
):设置top_k = 40
是一个比较适中的选择,它在一定程度上限制了候选词的范围,避免选择概率极低的词,同时又保留了足够多的候选词,使得生成的文本有一定的多样性。这个值在很多文本生成任务中都能取得较好的效果。
综上所述,temperature = 0.7
、top_p = 0.9
和 top_k = 40
这组参数的组合旨在在生成文本的多样性和合理性之间取得平衡,既让生成的内容具有一定的创意和变化,又保证文本的连贯性和准确性。
2) 构建优化后的模型
使用自定义配置构建模型:
ollama create deepseek-custom -f Modelfile
3) 设置自定义系统提示
为了获得更好的中文输出效果,可以添加系统提示:
FROM deepseek-custom
SYSTEM "专业的AI助手,请用流畅的中文回答问题。"
三、安装配置Chatbox
1. 一路next,安装完成。
2.配置:
(1)选择“模型”-“Ollama API”-“deepseek-r1:14b”
选择“显示”-“语言”-“简体中文”。
注: 如果“模型”下拉菜单为空,重启Ollama服务,重新打开Chatbox再试一下。
四、本地运行
本地化运行因为硬件比较拉跨,速度有点慢,其他体验完美。
DeepSeek确实对中文的理解更深更细腻,推荐大家使用。
更多推荐
所有评论(0)