- 创建者: 虚拟的现实,上次更新时间:3月 10, 2025 需要 3 分钟阅读时间
简述
通过普通的 PC 电脑本地化部署大模型提供基于 deepseek r1 的模型能力。办公 PC 的配置如下:
CPU:i5-11400F 2.60GHz 内存:8G,集成显卡。操作系统:Debian
- ollama 提供模型集成整合能力
- deepseek r1 提供大模型算法能力
- dify 提供 GUI 的整合能力
docker 环境配置
略,参考2011-Photon 容器主机配置指引 和 debian 容器环境配置
Ollama 配置
参照官网的配置说明下载对应的版本:https://github.com/ollama/ollama/blob/main/docs/linux.md。网络环境不太稳定的情况建议考虑离线安装的方式。
1、下载 ollama 离线版本
ollama 有不同的离线版本,主要适配集成显卡、AMD显卡和 Nvidia CUDA 的显卡以及 ARM 版本。这里下载的是通用版本
2、安装并运行 ollama
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz tar -C /usr -xzf ollama-linux-amd64.tgz ollama serve ollama -v sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama sudo usermod -a -G ollama $(whoami)
3、配置自启动服务
需要注意在配置文件中增加 “Environment="OLLAMA_HOST=0.0.0.0",否则在后面的Dify GUI 配置界面会出现连接失败的错误
cat > /etc/systemd/system/ollama.service << EOF [Unit] Description=Ollama Service After=network-online.target [Service] Environment="OLLAMA_HOST=0.0.0.0" ExecStart=/usr/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=$PATH" [Install] WantedBy=default.target EOF systemctl daemon-reload systemctl enable ollama systemctl start ollama
加载 deepseek r1 模型
在线更新所需的模型是最简单的
ollama run deepseek-r1:32b ollama list
如果正常方式下载模型的速度比较慢,可以考虑配置国内的镜像方式下载。详细的操作可以参考以下:
Ollama 的常用参数
- OLLAMA_MODELS:模型文件存放目录,默认目录为当前用户目录(Windows 目录:C:\Users%username%.ollama\models,MacOS 目录:~/.ollama/models,Linux 目录:/usr/share/ollama/.ollama/models),如果是 Windows 系统建议修改(如:D:\OllamaModels),避免 C 盘空间吃紧
- OLLAMA_HOST:Ollama 服务监听的网络地址,默认为127.0.0.1,如果允许其他电脑访问 Ollama(如:局域网中的其他电脑),建议设置成0.0.0.0,从而允许其他网络访问
- OLLAMA_PORT:Ollama 服务监听的默认端口,默认为11434,如果端口有冲突,可以修改设置成其他端口(如:8080等)
- OLLAMA_ORIGINS:HTTP 客户端请求来源,半角逗号分隔列表,若本地使用无严格要求,可以设置成星号,代表不受限制
- OLLAMA_KEEP_ALIVE:大模型加载到内存中后的存活时间,默认为5m即 5 分钟(如:纯数字如 300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活);我们可设置成24h,即模型在内存中保持 24 小时,提高访问速度
- OLLAMA_NUM_PARALLEL:请求处理并发数量,默认为1,即单并发串行处理请求,可根据实际情况进行调整
- OLLAMA_MAX_QUEUE:请求队列长度,默认值为512,可以根据情况设置,超过队列长度请求被抛弃
- OLLAMA_DEBUG:输出 Debug 日志标识,应用研发阶段可以设置成1,即输出详细日志信息,便于排查问题
- OLLAMA_MAX_LOADED_MODELS:最多同时加载到内存中模型的数量,默认为1,即只能有 1 个模型在内存中
Ollama 导入 GGUF 模型文件到本地磁盘
若我们已经从 HF 或者 ModeScope 下载了 GGUF 文件(文件名为:Meta-Llama-3-8B-Instruct.Q4_K_M.gguf),在我们存放Llama3-8B的 GGUF 模型文件目录中,创建一个文件名为Modelfile的文件,该文件的内容如下:
FROM ./Meta-Llama-3-8B-Instruct.Q4_K_M.gguf
然后,打开终端,执行命令导入模型文件:ollama create 模型名称 -f ./Modelfile
>ollama create Llama-3-8B -f ./Modelfile
transferring model data
using existing layer sha256:647a2b64cbcdbe670432d0502ebb2592b36dd364d51a9ef7a1387b7a4365781f
creating new layer sha256:459d7c837b2bd7f895a15b0a5213846912693beedaf0257fbba2a508bc1c88d9
writing manifest
success
导入成功之后,我们就可以通过list命名,看到名为Llama-3-8B的本地模型了,后续可以和其他模型一样进行管理了。
Ollama 导入 safetensors 模型文件到到本地磁盘
官方操作文档:https://ollama.fan/getting-started/import/#importing-pytorch-safetensors。若我们已经从 HF 或者 ModeScope 下载了 safetensors 文件(文件目录为:Mistral-7B),然后,我们转换模型(结果:Mistral-7B-v0.3.bin);接下来,进行量化量化;最后,通过 Ollama 导入到本地磁盘,创建Modelfile模型文件:
git lfs install git clone https://www.modelscope.cn/rubraAI/Mistral-7B-Instruct-v0.3.git Mistral-7B python llm/llama.cpp/convert.py ./Mistral-7B --outtype f16 --outfile Mistral-7B-v0.3.bin llm/llama.cpp/quantize Mistral-7B-v0.3.bin Mistral-7B-v0.3_Q4.bin q4_0
FROM Mistral-7B-v0.3_Q4.bin
执行导入命令,导入模型文件:ollama create 模型名称 -f ./Modelfile
>ollama create Mistral-7B-v0.3 -f ./Modelfile
transferring model data
using existing layer sha256:647a2b64cbcdbe670432d0502ebb2592b36dd364d51a9ef7a1387b7a4365781f
creating new layer sha256:459d7c837b2bd7f895a15b0a5213846912693beedaf0257fbba2a508bc1c88d9
writing manifest
success
导入成功之后,我们就可以通过list命名,看到名为Mistral-7B-v0.3的本地模型了,后续可以和其他模型一样进行管理了。
参考
部署并配置 dify
部署 dify
通过 docker 部署是最省事的
git clone https://github.com/langgenius/dify.git cd dify/docker cp .env.example .env docker compose up
dify 配置
默认情况下打开 URL 即可访问
1、进入【设置】-【模型供应商】选择 ollama
2、在 配置页面输入对应的主机 URL
3、配置后即可按需求发布应用
导入第三方应用
网上有很多已经配置好的 Dify 应用,下载后导入后即可学习。这里导入的应用是【完蛋!我被LLM包围了!】。
成功导入并调整后能正常运行,如下图所示:
要实现上述的效果,需要调整模型和对应的组件。默认的情况下它无法正常启用,会提示错误或缺少相关组件。
1、下载需要导入的应用。通过 https://github.com/svcvit/Awesome-Dify-Workflow 下载,需要导入的应用都在 DSL 目录中存储。
2、修改 docker-compose.yaml 中对应的 sandbox 镜像配置,将 image: langgenius/dify-sandbox:0.2.10 修改为 image: svcvit/dify-sandbox-py:0.1.2
3、配置 sandbox 所需的依赖包
cat > volumes/sandbox/dependencies/python-requirements.txt << EOF sympy~=1.13.3 matplotlib~=3.9.3 requests~=2.32.3 EOF
4、重新启动配置文件后,容器会自动加载并更新组件和依赖包
如果导入 DSL 文件后在运行的过程中仍然提示缺少相关的组件,可以按照下面的方式更新
vim volumes/sandbox/dependencies/python-requirements.txt 添加缺失的组件 docker stop docker-sandbox-1 docker compose up -d sandbox
- 无标签
0 评论