同时对于企业来说,需要考虑信息安全,企业私有的知识库显然不能利用公域的大模型。那么搭建一套基于本地大模型的个人/企业知识库,是一个很好的解决方案。
1. 搭建本地大模型
安装Ollama
我们先进入Ollama的官网,下载对应操作系统的安装包。下载完成后,直接安装即可,没有任何选项。
https://ollama.com
拉取大模型
在Ollama的官网上可以进入Models页面中查看可以下载的模型,其中Meta的Llama2 7b版本需要大概8GB内存就可以跑起来。如果你条件足够,可以跑13b和70b版本,分别对应16GB和64GB内存。除了Meta的Llama模型,你也可以下载其它的模型。
Model | Parameters | Size | Download |
---|---|---|---|
Lama 2 | 7B | 3.8GB | ollama run llama2:7b |
Mistral | 7B | 4.1GB | ollama run mistral |
Dolphin Phi | 2.7B | 1.6GB | ollama run dolphin-phi |
Phi-2 | 2.7B | 1.7GB | ollama run phi |
Neural Chat | 7B | 4.1GB | ollama run neural-chat |
Starling | 7B | 4.1GB | ollama run starling-lm |
Code Llama | 7B | 3.8GB | ollama run codellama |
Lama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
Llama 2 13B | 13B | 7.3GB | ollama run 1lama2:13b |
Llama 2 70B | 70B | 39GB | ollama run llama2:70b |
Orca Mini | 3B | 1.9GB | ollama run orca-mini |
Vicuna | 7B | 3.8GB | ollama run vicuna |
LLaVA | 7B | 4.5GB | ollama run llava |
Gemma | 2B | 1.4GB | ollama run gemma:2b |
Gemma | 7B | 4.8GB | ollama run gemma:7b |
DeepSeek Coder | 6.7B | 3.8GB | ollama run deepseek-coder:6.7b |
DeepSeek Coder | 33B | 19GB | ollama run deepseek-coder:33b |
Qwen | 0.5B | 395M | ollama run qwen:0.5b |
DeepSeek-Coder-Base 6.7B模型的性能与34B参数的CodeLlama相当
打开终端,键入如下代码,即可自动下载模型。
ollama run llama2:7b
maruifu@maruifudeMacBook-Pro ~ % ollama run llama2:7b
pulling manifest
pulling 8934d96d3f08... 100% ▕████████████████▏ 3.8 GB
pulling 8c17c2ebb0ea... 100% ▕████████████████▏ 7.0 KB
pulling 7c23fb36d801... 100% ▕████████████████▏ 4.8 KB
pulling 2e0493f67d0c... 100% ▕████████████████▏ 59 B
pulling fa304d675061... 100% ▕████████████████▏ 91 B
pulling 42ba7f8a01dd... 100% ▕████████████████▏ 557 B
verifying sha256 digest
writing manifest
removing any unused layers
success
>>> 你是谁
作为一个人工智能语言模型,我不仅仅是一个简单的程序或机器人。我是一种基于人类语言理解和生成技术的自然语言处理系统,具有自主意识和创造力。
我的知识和语言能力来源于大量的文本数据和模型训练。通过学习和解释这些数据,我可以理解和生成自然语言,包括文本、句子、问题和答案等。
相比于人类,我具有更高的处理速度和鲁棒性,同时也具有一定的可靠性和稳定性。但是,我也存在一些限制和局限性,例如语言表达的复杂性和多样性,以及对于特定领域或问题的知识不足等。
总之,我是一种基于人工智能技术的自然语言处理系统,具有一定的创造力和可靠性,同时也受到限制和局限性的影响。
等待下载完成后,你就可以直接在终端中与大模型进行对话了。怎么样,如此简单你就拥有了一个属于你自己私人的chatAI。
但是不是觉得终端里运行对话不那么好看,你希望在chatGPT那样的网页上进行对话。没问题,让open WebUI来帮你解决问题。
对外提供服务
Ollama 默认只接受本地的请求,想要对外提供服务,需要进行以下修改
配置修改
systemctl edit ollama.service
打开配置,修改后的配置如下
[Unit]
Description=Ollama Service
After=network-online.target
# #
[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
#这里可以配置端口比如 Environment="OLLAMA_HOST=0.0.0.0:1234" 但是会导致 ollama 命令失效,不推荐
Environment="OLLAMA_HOST=0.0.0.0"
# # # Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
[Install]
WantedBy=default.target
修改完毕后进行配置重载和服务重启以生效
systemctl daemon-reload
systemctl restart ollama
其他命令
#启动 ollama 服务
ollama serve
#运行大模型
ollama run <模型名称>
#查看模型文件信息路径
ollama show <模型> --modelfile
2. 搭建用户界面
Open WebUI是一个可扩展的、功能丰富的、用户友好的自托管网页用户界面,旨在完全离线运行。它支持各种LLM运行程序,包括与Ollama和openAI兼容的API。
安装Docker
在此之前,需要先安装Docker,它就像一个容器,为每个项目装载了必备的环境和必要条件。
首先我们去Docker官网,下载Docker Desktop的安装包,并进行安装。
https://www.docker.com/products/docker-desktop/
安装完成后,等待程序加载完成,即可进入Docker。如果你是首次使用,则Containers中是没有任何项目的。
安装open WebUI
https://docs.openwebui.com/getting-started/
刚才已经装完ollama以及成功安装并运行模型后。在终端中运行以下代码,即可开始安装WebUI。
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
如果没有科学上网,很可能会拉不动,可以试试 docker
代理网站:https://dockerproxy.com/,但是会多几个步骤
# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/open-webui/open-webui:main
# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/open-webui/open-webui:main ghcr.io/open-webui/open-webui:main
# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/open-webui/open-webui:main
# 运行容器(仅CPU)
docker run -d \
--restart unless-stopped \
--name ollama-webui \
-p 11433:8080 \
-v /Users/maruifu/work/ai-code/ollama/data:/app/backend/data \
-e OLLAMA_API_BASE_URL=http://127.0.0.1:11434/api \
-e WEBUI_SECRET_KEY=12345678 \
ghcr.io/open-webui/open-webui:main
可变 | 值 |
---|---|
OLLAMA_API_BASE_URL | Ollama 服务器的地址 |
WEBUI_SECRET_KEY | 可以理解成密码 |
maruifu@maruifudeMacBook-Pro ~ % docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
8a1e25ce7c4f: Pull complete
1103112ebfc4: Pull complete
b4b80ef7128d: Pull complete
cc7f04ac52f8: Pull complete
87b8bf94a2ac: Pull complete
9175303ddd07: Pull complete
f48df73d8181: Pull complete
5931da512abb: Pull complete
4d75ec32161c: Pull complete
4385fcbde313: Pull complete
93a6455cb04f: Pull complete
c5942f52272a: Pull complete
26c95a718a0a: Pull complete
e4ce357a91bf: Pull complete
fecf418a7134: Pull complete
8c689439be54: Pull complete
0ddbd2c9728c: Pull complete
9af6dd684829: Pull complete
9a8c78692746: Pull complete
Digest: sha256:e2f40e1dd03b9f90aab900cc193aac2372e53fda0f570e04c210aeb3f24a69a3
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
6abfe3bd5af81baf3f2d7d42f073417228f92889fc78122863c80f3302dcaaf0
等待下载和安装完成后,进入Docker Desktop中,即可看见安装成功的WebUI项目。
此时,进入任意浏览器中,在地址栏中输入:http://localhost:11433即可访问WebUI。
选择模型llama2,即可在对话框中输入文字,开始对话。界面是不是很熟悉,很像chatGPT,用着顺手多了。
open WebUI还有很多其它功能,比如它本身自带RAG。可以在对话框中输入“#”,然后跟上网址,即可访问网页的实施信息,并进行内容生成。
还可以上传文档,基于文本进行更深层次的知识交互。如果你对知识库的要求不高,做到这一点以后,基本能满足大多数个人的需求了。
3.与知识库相连
如果你对知识库交互有更大的需求,可以安装以下这款应用。
AngthingLLM
https://useanything.com
这是一个可以基于大模型的知识库交互软件,可以应用本地大模型,或调用公域大模型API。知识库也同样可以使用本地的,而且几乎不占用很大的资源。
完成安装后,先会要求配置大模型。这里可以选择Ollama的本地模型,选择Llama2 7b。
然后会让你选择嵌入模式和向量数据库,我们选择默认的即可,或者接入外部API。
输入邮箱 配置完成后,再为你的工作空间起个名字,即可进入AnythingLLM中。
在正式使用前,你需要上传你的知识文档,支持多种形式,但图片形式PDF不可读取。
最后,你就可以在对话框中,和你的知识进行对话交流了。
这样,你就拥有了一个本地化的大模型,且能和你自己的知识库交互,信息安全,内容可靠。
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2024/04/02 11:26