發(fā)布時間:2024-08-03 03:10
閱讀量:0
ollama是大模型部署方案,對應docker,本質(zhì)也是基于docker的容器化技術。
從前面的文章可以看到,部署大模型做的準備工作是比較繁瑣的,包括各個環(huán)節(jié)的版本對應。ollama提供了一個很好的解決方案。
ollama主要針對主流的LLaMA架構的開源大模型設計,并且已被LangChain、Taskweaver等在內(nèi)的多個熱門項目高度集成。同時ollama提供了openAI兼容的api,可以最大限度的減少理解和開發(fā)成本。
一、下載安裝ollama
1.1 安裝
官方地址:https://ollama.com/
開源地址:https://github.com/ollama/ollama
下載后雙擊安裝:
一路下一步即可。
1.2 檢驗
ollama安裝后默認已經(jīng)啟動,我們可以通過訪問其提供的api服務來進行檢驗。
參考官方文檔:ollama的api · ollama/ollama · GitHub
這里運行ollama的機器為windows系統(tǒng), ip為192.168.3.154。
1.2.1 通過localhost檢驗
運行命令:
> curl http://localhost:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}"
查看結果:
1.2.2 通過IP地址檢驗
運行命令:
> curl http://192.168.3.154:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}"
查看結果:
這是因為ollama安裝后默認只能本地訪問,接下來配置遠程訪問api。
1.3 配置
這里配置主要是因為兩個需求:遠程可以訪問ollama的api接口服務以及自定義大模型存放路徑。
ollama默認把大模型保存在路徑 用戶目錄/.ollama/models 下:
基于各種原因,我們可能不希望使用這個默認路徑,可以通過環(huán)境變量的配置來更改大模型保存的目錄。
添加環(huán)境變量 OLLAMA_HOST 以及 OLLAMA_MODELS:
- OLLAMA_HOST,0.0.0.0, 配置后可以遠程訪問;
- OLLAMA_MODELS, c:\ai\llms_ollama,配置后ollama拉取的大模型會存放在此路徑;
在任務欄的ollama圖標上點擊右鍵,選擇“Quit Ollama”退出ollama:
然后重新打開ollama:
1.4 重新檢驗
這里通過IP地址重新進行檢驗。
1.4.1 windows系統(tǒng)
運行命令:
> curl http://192.168.3.154:11434/api/generate -d "{\"model\": \"qwen2\",\"prompt\": \"who are you?\",\"stream\":false}"
返回結果:
1.4.2 linux系統(tǒng)和mac系統(tǒng)
生成Completion:
> curl http://192.168.3.154:11434/api/generate -d '{"model": "qwen2","prompt": "who are you?","stream":false}'
返回結果:
生成Chat Completion:
> curl http://192.168.3.154:11434/api/chat -d '{ "model": "qwen2", "messages": [ { "role": "user", "content": "who are you?" } ], "stream": false }'
返回結果:
二、部署運行大模型
接下來就是實際來部署一個大模型,這里以llama3為例。
2.1 獲取大模型部署命令
在ollama官網(wǎng)搜索llama3大模型:https://ollama.com/library
選擇第一個llama3進入大模型詳情頁:
在上圖可以看到默認有三個標簽可以選擇:最新版、8B和70B,這里我們選擇 8B的,所以我們需要運行 ollama run llama3。如果我們需要部署70B的,則需要運行 ollama run llama3:70b。
2.2 部署大模型
我們可以直接運行 ollama run llama3,如果llama3沒有下載過則會下載,否則直接運行。也可以先下載然后運行:
> ollama pull llama3 > ollama run llama3
可以看到,使用方式跟docker是一樣的,大模型對應了docker中的鏡像。
下載完后會提示成功:
2.3 和大模型交互
接下來可以直接跟llama3對話,在三個箭頭??后輸入問題,llama3會給出回應:
可以看到ollama成功部署了大模型,并成功運行。
三、在LangChain中使用Ollama
3.1 通過jupyter來運行
3.1.1 安裝jupyter
參考 【AI工具】jupyter notebook和jupyterlab對比和安裝-CSDN博客 安裝jupyterlab。
3.1.2 新建一個notebook
在新的文件中輸入如下代碼:
# 引入ollama from langchain_community.chat_models import ChatOllama # 加載llama3模型 ollama_llm = ChatOllama(model="llama3") # 構造Message from langchain_core.messages import HumanMessage messages = [ HumanMessage( content="你好,請你介紹一下你自己", ) ] # 發(fā)送Message chat_model_response = ollama_llm.invoke(messages) # 輸入Message chat_model_response這里有個細節(jié),代碼一共是五個輸入塊,這是為了在出錯時,可以快速定位是哪一塊出了問題。
3.1.3 運行
現(xiàn)在把鼠標定位在第一行,點擊工具欄的運行按鈕,一步一步的運行,運行5步后,輸出了AI的自我介紹:
這樣在LangChain中通過ollama,直接調(diào)用了大模型。
可以再問一次二的問題:
3.2 直接通過python運行
3.2.1 安裝LangChain環(huán)境
參考 :【AI基礎】第四步:保姆喂飯級-langchain+chatglm2-6b+m3e-base_m3e-base
3.2.2 新建python文件
輸入代碼:
# 引入ollama from langchain_community.chat_models import ChatOllama # 加載llama3模型 ollama_llm = ChatOllama(model="llama3") # 構造Message from langchain_core.messages import HumanMessage messages = [ HumanMessage( content="你好,請你介紹一下你自己", ) ] # 發(fā)送Message chat_model_response = ollama_llm.invoke(messages) # 輸入Message chat_model_response
3.2.3 運行
執(zhí)行命令運行:
> python dev_ollama.py
運行成功。