Ollama 介紹
Ollama 是一個開源軟體,讓使用者可以在自己的硬體上運行、創建和分享大型語言模型 (LLM) 服務。它提供了一個易於使用的平台,讓用戶無需複雜的設定即可利用 LLM 的功能。
Ollama 的主要優點包括:
- 本地端運行: Ollama 允許用戶在本地端運行 LLM,這可以保護敏感數據隱私,並降低對網路連接的依賴性。
- 易於使用: Ollama 提供了命令行介面 (CLI) 和 Python SDK,使 Ollama 易於設置、使用和自定義。
- 彈性: Ollama 支持多種 LLM 模型,包括 Llama 2 和 Mistral。它還允許用戶從其他格式導入模型並設置運行參數。
- 可擴展: Ollama 是一個開源項目,鼓勵用戶貢獻和擴展其功能。
Ollama 可用於各種任務,包括:
- 文字生成: Ollama 可以生成文字、翻譯語言、編寫不同類型的創意內容,並以信息豐富的方式回答您的問題。
- 文字處理: Ollama 可以用於各種文字處理任務,例如摘要、問答和情感分析。
- 代碼生成: Ollama 可以生成代碼、翻譯程式碼並以信息豐富的方式回答您的編碼問題。
Ollama的優點
Ollama與LM Studio相似,都是可以於本地端運行、比較多個大語言模型的工具,並且也都是開源軟體
功能 | Ollama | LM Studio |
原生功能集 | 基本 | 豐富 |
用戶界面 | 可使用Command line | 豐富易操作的視窗介面 |
開源性 | 是 | 是 |
支持的操作系統 | Windows、macOS、Linux | Windows、macOS |
擴展性 | 可使用API的方式呼叫 | 較偏向本地端應用程式面 |
Ollama本身其實是完全可以使用command line去執行的服務,因為這樣的特性,Ollama非常容易可以與其他的服務集成,因為它可以變成一個API的服務,讓其他服務去用API的方式來呼叫這個地端模型,也因此,我們會可以在伺服器上面,利用Ollama,使我們的線上服務串接到多個不同的地端LLM模型
以下為一個使用curl來呼叫地端模型的範例
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
安裝Ollama
curl -fsSL https://ollama.com/install.sh | sh
使用Ollama
用下面的指令來使用Llama3模型
ollama run llama3
設定大語言模型的腳色及回覆指導
Ollama 庫中的模型可以通過提示進行自定義。例如,要自定義 llama3
模型:
ollama pull llama3
建立 Modelfile
:
FROM llama3
# set the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# set the system message
SYSTEM """
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
"""
接下來,創建並運行模型:
ollama create mario -f ./Modelfile
ollama run mario
>>> hi
Hello! It's your friend Mario.
ollama create
用於從 Modelfile 建立模型。
ollama create mymodel -f ./Modelfile
刪除模型
ollama rm llama3
複製模型
ollama cp llama3 my-model
啟動 Ollama
ollama serve
當您想要在不運行桌面應用程式的情況下啟動 Ollama 時使用。
關閉Ollama
systemctl stop ollama
重新啟動Ollama
sudo systemctl restart ollama
API 應用程式介面
生成完成: 使用提供的模型為給定提示生成回應。這是一個流式處理終結點,因此將有一系列回應。最終回應物件將包括來自請求的統計資訊和其他數據。
產生要求(流式處理)
POST /api/chat
呼叫範例
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"prompt": "Why is the sky blue?"
}'
回應範例
{
"model": "llama3",
"created_at": "2023-08-04T08:52:19.385406455-07:00",
"response": "The",
"done": false
}
要求(無流式處理)
Request 請求
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "Why is the sky blue?"
}'
Response 回應
返回 JSON 物件流:
{
"model": "llama3",
"created_at": "2023-08-04T08:52:19.385406455-07:00",
"response": "The",
"done": false
}
可使用的模型列表
Model | Parameters | Size | Download |
---|---|---|---|
Llama 3 | 8B | 4.7GB | ollama run llama3 |
Llama 3 | 70B | 40GB | ollama run llama3:70b |
Phi 3 Mini | 3.8B | 2.3GB | ollama run phi3 |
Phi 3 Medium | 14B | 7.9GB | ollama run phi3:medium |
Gemma 2 | 9B | 5.5GB | ollama run gemma2 |
Gemma 2 | 27B | 16GB | ollama run gemma2:27b |
Mistral | 7B | 4.1GB | ollama run mistral |
Moondream 2 | 1.4B | 829MB | ollama run moondream |
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 |
LLaVA | 7B | 4.5GB | ollama run llava |
Solar | 10.7B | 6.1GB | ollama run solar |