手把手教你在云上搭建本地大語言模型

大語言模型LLM現(xiàn)在已經(jīng)不是什么新鮮事物了,雖然線上ChatGPT、Gemini、Claude等各家大模型飛速迭代,但是收費(fèi)高、區(qū)域限制、隱私難以保證等問題始終難以解決。事實(shí)上,除了在線大模型以外,離線(本地部署)大模型也是一個(gè)很好的選擇。比如大家都知道谷歌前陣子發(fā)布了Gemini,但可能有人不知道其還發(fā)布了開源的大模型Gemma,初次以外還有HuggingFace上也有很多出色的開源模型可供選擇,比如Llama、Mistral等等。
本文簡(jiǎn)要介紹一下基于開源項(xiàng)目ollama如何在云上部署一個(gè)本地大語言模型。

買云服務(wù)器
GPU對(duì)于大部分LLM來說是必不可少的,僅有CPU雖然有時(shí)也能跑,但是問答速度無法忍受,如果希望長(zhǎng)期將LLM融入工作生活中,一個(gè)帶有GPU的穩(wěn)定服務(wù)器比不可少。筆者以華為云的ECS為例,在選購實(shí)例的時(shí)候篩選GPU加速型即可,帶上N卡模型跑起來嗖嗖快。

image.png

安裝Ollama

Ollama是一個(gè)用戶本地LLM部署的開源平臺(tái),支持Linux\Windows等多平臺(tái)部署,基于Docker安裝ollama可以簡(jiǎn)化后續(xù)的配置步驟。另外,讓Docker能使用GPU資源還需要一些額外的工具,使用GPU與只有CPU的場(chǎng)景下性能差異天壤之別。

CPU Only

如果你的機(jī)器沒有GPU,可以采用這種方式部署

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Nvidia GPU
如果你的機(jī)器有GPU,那么可以采用這種方式部署

配置yum倉庫

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
    | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

安裝Nvidia容器工具包

sudo yum install -y nvidia-container-toolkit
sudo systemctl restart docker

配置Docker使用NVIDIA驅(qū)動(dòng)

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

啟動(dòng)本地大模型,這里以llama2為例:

docker exec -it ollama ollama run llama2

模型下載完以后會(huì)開啟命令行模式,可以看到在GPU加持下相應(yīng)速度還是很快的


image.png

Ollama 還支持很多市面上其他開源大模型(大模型列表 ollama.com/library),下面是一些列子:

Model Parameters Size Download
Llama 2 7B 3.8GB ollama run llama2
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
Llama 2 Uncensored 7B 3.8GB ollama run llama2-uncensored
Llama 2 13B 13B 7.3GB ollama run llama2: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

API

Ollama平臺(tái)也提供給了REST API進(jìn)行問答和模型管理,不過目前這個(gè)版本API沒有認(rèn)證鑒權(quán)功能,如果需要的話只能自己在前端包裝一個(gè)API網(wǎng)關(guān)實(shí)現(xiàn)認(rèn)證,可以考慮用華為云APIG配置。
下面是一個(gè)調(diào)用模型問答的例子,可以指定要使用的模型名字

curl http://localhost:11434/api/chat -d '{
  "model": "mistral",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

更多詳情見API文檔

Chatbot UI

Chatbot Ollama提供了一個(gè)類似ChatGPT的簡(jiǎn)單WEB UI,可以讓你的對(duì)話體驗(yàn)更好一些,項(xiàng)目支持docker部署。

  • 克隆工程到本地
git clone https://github.com/ivanfioravanti/chatbot-ollama.git
  • 修改配置
    在下載的工程目錄下有個(gè)Dockerfile文件,需要修改其中的ollama主機(jī)IP,可以使用主機(jī)本地的私網(wǎng)IP
ENV OLLAMA_HOST="http://host.docker.internal:11434"
  • 本地構(gòu)建
docker build -t chatbot-ollama .
docker run -p 3000:3000 chatbot-ollama

之后就可以通過ip:3000端口訪問了

image.png

最后Ollama Github README文檔中還提到了很多現(xiàn)成的WEB和桌面插件,感興趣的朋友可以一探究竟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容