Ubuntu服务器体系Docker摆设Ollama+AnythingLLM实现DeepSeek本地摆设 ...

打印 上一主题 下一主题

主题 1781|帖子 1781|积分 5343


  • 服务器配置
    CPU:Intel® Xeon® Gold 6138 (20焦点 40线程)
    内存:32GB
    磁盘:4TB
    GPU:NVIDIA GeForce RTX 3090 24G显存






  • 操作体系:Ubuntu server 22.04
  • Docker版本:20.10.22


    操作体系、docker、gpu驱动如何安装,这些都可以在网上搜到相干信息,本文就不再描述了。
拉取Ollama镜像



  • Docker镜像仓库官方地址:docker官方镜像仓库地址

    在“Explore”中找到“Gen AI”,然后往下翻,找到“Ollama”。

  • 拉取指令
  1. docker pull ollama/ollama
复制代码

这个镜像比力大,而且国内拉取镜像本来也比力慢。之前另有阿里云,道客云等平台的镜像加快站,现在很多都不能用了,这里列几个可用的加快站点,读者可以配置上。
  1. vim /etc/docker/daemon.json
  2. {
  3.     "data-root": "/var/lib/docker",
  4.     "log-driver": "json-file",
  5.     "log-level": "warn",
  6.     "log-opts": {
  7.         "max-file": "3",
  8.         "max-size": "10m"
  9.     },
  10.     # 主要是如下内容,其余部分请根据自己实际环境配置。
  11.     "registry-mirrors": [
  12.         "https://proxy.1panel.live",
  13.         "https://docker.1panel.top",
  14.         "https://docker.m.daocloud.io",
  15.         "https://docker.1ms.run",
  16.         "https://docker.ketches.cn"
  17.     ],
  18.     "runtimes": {
  19.         "nvidia": {
  20.             "args": [],
  21.             "path": "nvidia-container-runtime"
  22.         }
  23.     }
  24. }
复制代码
运行Ollama容器并拉取模子

根据镜像使用方式可知,运行ollama容器后,可在容器内拉取模子文件。

启动Ollama容器

  1. docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
复制代码
上述指令是官方给的参考指令,主要是-v参数,如果按照上述指令,-v背面直接根“ollama”,会在docker的存储卷中创建一个本地的ollama存储卷,如下图。不建议这种方式,因为这种方式,最后拉取的模子文件不好找(在这个目录中【/var/lib/docker/volumes】),照旧建议接纳自定义的绝对路径,方便找到模子文件生存的位置和迁移。

可以参考如下指令:
  1. docker run -d --name ollama --gpus=all -v /home/rarelong/project/ollama/_data:/root/.ollama -p 11434:11434  ollama/ollama
复制代码
此中,/home/rarelong/project/ollama/_data是我复制的/var/lib/docker/volumes/ollama/_data/这个目录的内容,阐明ollama的模子文件是可以复制迁移的,那么就可以将ollama的镜像和这个目录全部打包,拷贝至没有互联网的环境中直接运行。
Ollama Dockerfile部门阐明

从ollama的镜像dockerfile内容来看,官方指定了一个ENTRYPOINT [“/bin/ollama”],CMD [“server”],这导致我们只能先将ollama镜像启动起来,看成服务运行,然后用“docker exec -it”指令拉取模子文件或者运行模子。如果直接在启动的时候加上相干参数,会启动失败。如下图:




  • 官方dockerfile部门内容

    正常启动画面如下:

   阐明:此中docker启动的相干参数本文不做阐明,比如【-itd,–rm,-p,-v】等,这些必要读者自行学习。本文并非基础讲授内容,感谢理解。
  拉取模子

Ollama官方地址:Ollama官方地址

前面几个就是deepseek-r1模子的链接,另有很多别的模子,可以根据需求下载。

点击进去之后,就有选择版本和对应的下载指令。

我这里已经下载了几个模子文件,32b,7b,8b这几个参数的文件。

比如这里我们再下载一个1.5b参数的模子。


  • 如果接纳的参数是“run”,当本地没有这个模子文件时,会自动从ollama仓库中去拉取这个文件,这点根docker运行容器类似。
  • 只是单独拉取文件的话,应该是“pull”参数。这个根docker也是类似的。

  1. docker exec -it ollama ollama run deepseek-r1:1.5b
复制代码



AnythingLLM容器摆设

AnythingLLM官方地址:AnythingLLM官方地址
AnythingLLM 是一款专为企业或个人定制的 私有化大语言模子(LLM)应用平台,焦点目的是为用户提供安全、可控且高度定制化的 AI 解决方案。
在官网上,一直往下翻,直到翻到“Run via Docker”时,点击,进入anythingllm的docker镜像仓库。

anythingllm镜像拉取

拉取镜像指令:
  1. docker pull mintplexlabs/anythingllm
复制代码
在概述文件中,有该镜像的相干阐明,概述文件的最后有anythingllm容器的运行方式。


anythingllm容器运行

运行指南:anythingllm容器运行指南
anythingLLM文档

官方指令如下:
  1. export STORAGE_LOCATION=$HOME/anythingllm && \
  2. mkdir -p $STORAGE_LOCATION && \
  3. touch "$STORAGE_LOCATION/.env" && \
  4. docker run -d -p 3001:3001 \
  5. --cap-add SYS_ADMIN \
  6. -v ${STORAGE_LOCATION}:/app/server/storage \
  7. -v ${STORAGE_LOCATION}/.env:/app/server/.env \
  8. -e STORAGE_DIR="/app/server/storage" \
  9. mintplexlabs/anythingllm
复制代码
简单解释一下上述指令中的一些参数:


  • export STORAGE_LOCATION= $ HOME/anythingllm:export定义当前bash的临时变量,变量名称【STORAGE_LOCATION】,变量值【 $ HOME/anythingllm】,此中$HOME是体系环境变量,值为当前用户的家目录。
  • &&:表现执行完上一条指令后,继承执行下一条指令,如果上一条指令执行失败,背面的指令不再执行。
  • mkdir:创建文件夹;-p:递归创建文件夹。
  • touch:创建文件;.env:前面带点的文件为隐蔽文件。这里应该是一个生存环境变量配置的文件。
  • docker run:运行容器。
  • cap-add SYS_ADMIN:给容器赋予比力宽泛的管理权限。留意【–cap-add SYS_ADMIN】 如果您想抓取网页,这是必须的下令。我们使用 PuppeeteerJS 来抓取网站链接,而 --cap-add SYS_ADMIN 允许我们在所有运行时中使用沙盒 Chromium 以实现最佳安全实践。
我这里之前运行过这个容器,所以前面的那些环境变量就不用设置了。如果你必要自定义这些换变量的内容,如数据存储目录(~/anythingllm目录),环境变量文件(.env),可以先行创建,在通过-v参数,以绝对路径方式挂载进容器。



  • 自定义运行指令:
  1. docker run -d -p 3001:3001 --cap-add SYS_ADMIN -v /home/rarelong/project/anythingllm/:/app/server/storage -v /home/rarelong/project/anythingllm/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage"  mintplexlabs/anythingllm
复制代码
  通过这种方式,也可以把~/anythingllm目录和anythingllm的镜像打包迁移至别的安装有docker的服务器或pc上运行。
  使用anythingLLM



  • 访问
    在浏览器输入服务器IP+端口,即可访问。

  • 选择模子
    这个必要ollama已经下载了相干模子,才气选择对应的模子文件。

    给它上传一个文件,然后问它一个问题。



可以看到32b参数模子运行必要的显存空间是20G左右。


看来它照旧没认到这个图片的内容。



  • 再次提问




  • 过一会,gpu中的模子文件就没有了。

   由此可见,anythingLLM对于pdf这种文档的处理另有一定的困难,比如pdf内里的图片中的内容,就没解析到。不外万能的网友已经有相识决方案,读者可以搜刮学习。
主要就是要让大模子熟悉你给的内容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万有斥力

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表