welcom ! Handel home

顯示具有 Ollama 標籤的文章。 顯示所有文章
顯示具有 Ollama 標籤的文章。 顯示所有文章

2025年1月23日 星期四

如何在 Ollama 中使用模型的设置和测试方法

以下是如何在 Ollama 中使用上述模型的设置和测试方法,以及一些重要的注意事项:

Ollama 模型使用总览

Ollama 通过简单的 ollama pullollama run 命令来管理和运行模型。关键在于模型的名称需要正确。上述表格中,“模型名称”一列通常对应 Ollama 中使用的模型名称,但有时会有细微差别。

Ollama 使用步骤

  1. 安装 Ollama: 按照 Ollama 官方文档 (https://ollama.ai/) 的指引安装 Ollama。

  2. 拉取模型: 使用 ollama pull 命令下载模型。

  3. 运行模型: 使用 ollama run 命令启动模型。

  4. 与模型交互: 启动后,可以直接在终端输入文本与模型交互。

各模型在 Ollama 中的使用方法

以下针对您提供的模型列表,说明如何在 Ollama 中使用它们:

  • Llama 3.3 (70B): 目前 Ollama 库中可能还没有直接提供 Llama 3.3。通常 Ollama 会使用更常见的版本号,例如 llama2 (对应 Llama 2 系列,可能包含 70B 版本)。您需要使用 ollama pull llama2 来拉取,然后通过 ollama run llama2 运行。具体版本信息可以在拉取后通过 ollama show llama2 查看。

  • Phi-4 (14B): 同样,需要确认 Ollama 库中是否有 phi-4 的模型。如果存在,使用 ollama pull phi-4ollama run phi-4。如果没有,可能需要自行转换模型格式或寻找其他可用的 Phi 模型。

  • QwQ (32B): 这是一个实验性研究模型,Ollama 库中很可能没有直接提供。您可能需要自行构建或转换模型。

  • Llama 3.2 Vision (11B, 90B): Ollama 主要专注于文本模型。Vision 模型(处理图像的模型)通常需要不同的工具和框架。Ollama 目前可能不支持直接运行 Vision 模型。

  • Llama 3.2 (1B, 3B) 和 Llama 3.1 (8B, 70B, 405B): 这些模型通常可以通过 llama2 这个名称在 Ollama 中找到。使用 ollama pull llama2 拉取,然后用 ollama run llama2 运行。通过 ollama show llama2 可以查看具体版本和参数信息。

  • Mistral (7B, v0.3): 使用 ollama pull mistralollama run mistral。Ollama 通常会更新到最新版本,所以您拉取的可能是最新的 Mistral 版本。

  • Gemma (7B): 使用 ollama pull gemmaollama run gemma

  • Qwen (0.5B - 110B) 和 Qwen2.5 (0.5B - 72B): Ollama 支持 Qwen 系列模型。使用 ollama pull qwen(或 qwen2)拉取,然后使用 ollama run qwen(或 qwen2)运行。Ollama 可能会提供不同参数大小的版本,您可以通过 ollama show qwen 查看可用的版本。例如,要指定 7B 版本,可能需要使用 ollama pull qwen:7b,具体取决于 Ollama 库中的命名约定。

重要提示

  • 模型大小和硬件要求: 模型参数越大(例如 70B、405B),需要的显存(VRAM)就越多。运行大型模型可能需要高端的 GPU。如果显存不足,Ollama 可能会报错或运行缓慢。
  • Ollama 模型库: Ollama 的模型库不断更新。您可以使用 ollama list 命令查看当前可用的模型列表。
  • 模型名称的细微差别: 有时 Ollama 库中使用的模型名称可能与原始模型名称略有不同。请仔细查看 Ollama 库或使用 ollama show 命令来确认正确的名称。
  • 自定义模型: 如果 Ollama 库中没有您需要的模型,您可以尝试自行转换模型格式并添加到 Ollama 中。这需要一定的技术知识。
  • 测试: 运行模型后,您可以输入一些简单的提示语来测试模型是否正常工作。例如,输入 “Hello, how are you?” 或 “请写一首关于秋天的诗。”

示例:运行 Qwen 7B 模型

  1. 拉取模型:

<!-- end list -->

Bash
ollama pull qwen:7b # 注意这里可能需要指定版本号,具体看ollama list的输出
  1. 运行模型:

<!-- end list -->

Bash
ollama run qwen:7b
  1. 与模型交互:

<!-- end list -->

>>> 你好!
你好!很高兴认识你。有什么我可以帮你的吗?
>>> 请写一首关于秋天的诗。
秋风瑟瑟落叶黄,
雁字回时天渐凉。
菊残犹有傲霜枝,
枫染层林胜锦章。

希望以上信息能够帮助您在 Ollama 中使用这些大型语言模型。记住,密切关注 Ollama 的官方文档和模型库,以获取最新的信息和支持。

Ollama库中一些大型语言模型(LLM)的版本

 

以下是Ollama库中一些大型语言模型(LLM)的版本、名称、特性和容量的汇总:

模型名称 特性描述 参数容量

Llama 3.3 新的最先进70B模型,性能与Llama 3.1 405B相似。 70B

Phi-4 微软的14B参数开源模型,具有最新的技术。 14B

QwQ 实验性研究模型,专注于提升AI推理能力。 32B

Llama 3.2 Vision 包含11B和90B尺寸的指令调优图像推理生成模型。 11B, 90B

Llama 3.2 Meta的Llama 3.2,提供1B和3B的小型模型。 1B, 3B

Llama 3.1 Meta的新一代模型,提供8B、70B和405B参数选项。 8B, 70B, 405B

Mistral Mistral AI发布的7B模型,更新至0.3版本。 7B

Gemma Google DeepMind构建的一系列轻量级开源模型。 7B

Qwen 阿里云的大型语言模型系列,参数范围从0.5B到110B。 0.5B, 1.8B, 4B, 7B, 14B, 32B, 72B, 110B

Qwen2.5 在阿里巴巴最新的大规模数据集上预训练,

支持多语言和128K令牌。 0.5B, 1.5B, 3B, 7B, 14B, 32B, 72B

2025年1月22日 星期三

安裝 Ollama Lite for GPU 的 docker 安裝啟動流程

 

安裝 Ollama Lite for GPU 的 docker 安裝啟動流程

使用 Docker 安裝啟動 Ollama 並啟用 GPU 的詳細流程,包含 Ollama Lite 的概念說明:

Ollama 與 Ollama Lite 的概念

  • Ollama: Ollama 是一個用於運行大型語言模型 (LLM) 的工具,它簡化了模型的下載、管理和執行。Ollama 本身並不區分 "Lite" 版本,而是透過不同的模型檔案來達到類似 "Lite" 的效果。
  • Ollama Lite (廣義概念): 指的是使用較小、參數較少的模型,這些模型通常檔案較小、運行速度較快,但可能在某些任務上的表現不如大型模型。在 Ollama 中,您可以選擇下載不同大小的模型,例如 Llama 2 有 7B、13B、70B 等不同版本,7B 版本相對來說就是一種 "Lite" 的選擇。因此,並不存在一個官方的 "Ollama Lite" 版本,而是透過選擇較小的模型來達到輕量化的目的。

使用 Docker 安裝啟動 Ollama (包含 GPU 支援)

以下步驟假設您已安裝 Docker Desktop 或 Docker Engine,並且您的系統具備 NVIDIA GPU 以及正確安裝 NVIDIA Driver 和 NVIDIA Container Toolkit。

1. 安裝 NVIDIA Container Toolkit

這是啟用 Docker 使用 GPU 的關鍵步驟。

  • Ubuntu/Debian:
  • <!-- end list -->

    Bash:
    $curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
    $curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring..list
    $sudo nvidia-ctk runtime configure --runtime=docker
    $sudo systemctl restart docker
  • 其他 Linux 發行版或 Windows (WSL2): 請參考 NVIDIA 官方文件:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html

2. 建立 Docker Volume (可選但建議)

建立一個 Docker Volume 來持久化儲存 Ollama 的模型檔案,避免每次重啟容器都需要重新下載。

Bash:
$docker volume create ollama_models

3. 運行 Ollama Docker 容器 (GPU 支援)

使用以下指令運行 Ollama 容器,並啟用 GPU 支援:

Bash:
$docker run -d --gpus all -p 11434:11434 -v ollama_models:/root/.ollama --name ollama ollama/ollama

各參數說明:

  • -d:在後台運行容器。
  • --gpus all:允許容器使用所有可用的 GPU。
  • -p 11434:11434:將主機的 11434 端口映射到容器的 11434 端口,這是 Ollama API 的預設端口。
  • -v ollama_models:/root/.ollama:將先前建立的 ollama_models volume 掛載到容器內的 /root/.ollama 目錄,用於儲存模型檔案。
  • --name ollama:為容器命名為 ollama
  • ollama/ollama:Ollama 的 Docker 映像檔。

4. 下載模型

進入 Ollama 容器:

Bash:
$docker exec -it ollama bash

然後使用 ollama pull 指令下載模型。例如,下載 Llama 2 7B 模型 (相對 "Lite" 的選擇):

Bash:
$ollama pull llama2

或者下載其他模型,例如:

Bash:
$ollama pull mistral
$ollama pull codellama

您可以從 Ollama 的模型庫 (https://ollama.ai/library) 找到更多模型。

5. 運行模型

在 Ollama 容器內,使用 ollama run 指令運行模型:

Bash:
$ollama run llama2

現在您可以開始與模型互動。

6. 使用 Ollama API

您可以使用 curl 或其他 HTTP 客戶端與 Ollama API 互動。例如:

Bash:
$curl http://localhost:11434/api/generate -d '{ "model": "llama2", "prompt": "Hello, how are you?" }'


7. 使用 Open WebUI (可選)

如果您想要使用網頁介面與 Ollama 互動,可以參考我先前提供的 Open WebUI 安裝指南。請確保 Open WebUI 正確連接到 Ollama API (http://host.docker.internal:11434http://ollama:11434,取決於您的網路設定)。

總結

透過以上步驟,您就可以在 Docker 中安裝並使用 Ollama,並啟用 GPU 加速。透過選擇不同大小的模型,您可以根據您的需求和硬體資源選擇合適的 "Lite" 或完整版本。使用 Docker Volume 可以方便地管理模型檔案,而 Open WebUI 則提供了一個更友好的使用者介面。









Ollama 版本系列、功能特色及安裝需求

1. Ollama 版本系列

Ollama 提供多個版本,以適應不同的使用需求:

  • 穩定版 (Stable Release):適用於正式環境,提供經過測試的功能和修復。
  • 開發版 (Beta Release):包含最新功能,但可能仍在測試階段。
  • 企業版 (Enterprise Edition):針對企業用戶,提供高效能支援、API 擴展和商業應用功能。
  • Docker 版 (Docker Image):適用於容器化環境,可輕鬆部署和擴展。
  • 低運算需求版本 (Lightweight Edition):適用於資源有限的設備,如低功耗 CPU、嵌入式系統或邊緣運算環境。

2. 低運算需求版本的特性

針對低算力環境,Ollama 提供了輕量化選擇,主要包括以下版本:

  • Ollama Lite

    • 適用於 RAM 低於 8GB 的設備
    • 提供精簡模型,減少記憶體與運算資源的消耗
    • 適用於 IoT、邊緣設備、單板電腦(如 Raspberry Pi)
  • Ollama Edge

    • 針對邊緣 AI 設備進行優化
    • 支援 ARM 架構處理器,適用於低功耗運算環境
    • 可與微服務架構整合,提高運行效率
  • Ollama Mobile

    • 可運行於 Android、iOS 等行動設備
    • 利用設備的神經處理單元 (NPU) 來提升 AI 計算能力
    • 針對行動裝置優化的低功耗模式

3. 主要功能特色

Ollama 提供強大的 AI 模型處理能力,並具備以下特點:

  • 多模組支持:支援多種大型語言模型 (LLM),包括 OpenAI API 相容模型。
  • REST API 整合:可透過 REST API 與應用程式無縫整合。
  • CLI 操作:提供直觀的指令列工具,方便開發者使用。
  • GPU 加速:可利用 GPU 提升模型推理效能。
  • RAG 檢索增強生成:提升對話的準確性與資訊檢索能力。
  • 高效能佇列處理:支援多執行緒佇列機制,提高請求處理效率。
  • 輕量級模式:針對低算力設備進行優化,減少資源佔用。

4. 安裝需求

Ollama 可以運行在多種環境中,基本安裝需求如下:

(1) 硬體需求

  • 最低需求

    • CPU:Intel 或 AMD 64-bit 處理器 / ARM 架構處理器(適用於 Edge/Mobile 版)
    • RAM:4GB 以上(建議 8GB)
    • 硬碟空間:10GB 以上(依據模型大小需求)
  • 建議配置

    • CPU:多核心高效能處理器 / ARM v8 以上
    • RAM:8GB 以上
    • GPU:適用於 AI 推理的低功耗 GPU 或內建 NPU
    • 硬碟:SSD/NVMe 高速存儲

(2) 軟體需求

  • 作業系統

    • Linux(Ubuntu 20.04 以上)
    • macOS(Apple Silicon 及 Intel)
    • Windows(需使用 WSL2)
    • Android(適用於 Mobile 版)
    • 嵌入式 Linux(適用於 Edge 版)
  • 依賴環境

    • Docker(若使用容器化方式)
    • Python 3.8 以上(若需自行開發擴充功能)

5. 安裝 Ollama Lite for GPU 的 Docker 安裝啟動流程

(1) 拉取 Docker 映像檔

$docker pull ollama/ollama:latest

(2) 啟動 Docker 容器

$docker run -d --name ollama-lite-gpu \
  --runtime=nvidia \
  -p 11434:11434 \
  -e NVIDIA_VISIBLE_DEVICES=all \
  -v ollama-lite-gpu-data:/root/.ollama \
  ollama/ollama:latest

(3) 確認容器運行狀態

$docker ps -a

如果看到 ollama-lite-gpu 正在運行,表示安裝成功。

login 進入 Ollama-lite-gpu 容器 docker image

$docker exec -it ollama-lite-gpu bash

然後使用 ollama pull 指令下載模型。例如,下載 Llama 2 7B 模型 (相對 "Lite" 的選擇):

$ollama pull llama2

或者下載其他模型,例如:

$ollama pull mistral
$ollama pull codellama

您可以從 Ollama 的模型庫 (https://ollama.ai/library) 找到更多模型。

(4) 測試運行

$curl http://localhost:11434/v1/models

如果返回模型列表,則表示 Ollama Lite for GPU 成功啟動。

安裝完成後,可使用 REST API 或 CLI 進行模型運行與測試。

這樣就成功安裝並設定 Ollama Lite for GPU,準備開始使用其強大功能!

Open WebUI 使用 Docker 安裝及連接 Ollama Docker 注視設定


1. 安裝 Open WebUI

使用 Docker 安裝 Open WebUI 可以讓部署更加方便,以下是安裝步驟:

# 拉取 Open WebUI 映像檔
docker pull ghcr.io/open-webui/open-webui:latest

# 啟動 Open WebUI 容器
docker run -d --name open-webui \
  -p 3000:3000 \
  -v open-webui-data:/app/data \
  ghcr.io/open-webui/open-webui:latest

2. 安裝並運行 Ollama Docker 容器

Ollama 主要透過 CLI 運行,但也可以使用 Docker 方式運行。

# 拉取 Ollama Docker 映像檔
docker pull ollama/ollama:latest

# 啟動 Ollama 容器
docker run -d --name ollama \
  --runtime=nvidia \
  -p 11434:11434 \
  -v ollama-data:/root/.ollama \
  ollama/ollama:latest

3. 連接 Open WebUI 到 Ollama

當 Open WebUI 和 Ollama 兩個 Docker 容器都在運行後,需要讓 Open WebUI 連接到 Ollama。

方法 1:透過 Docker Network 連接

# 建立 Docker 網路
docker network create ollama-net

# 重新啟動並加入網路

# 移除已運行的 Open WebUI 和 Ollama
docker stop open-webui ollama

docker rm open-webui ollama

# 重新啟動 Ollama 並加入網路
docker run -d --name ollama \
  --network ollama-net \
  -p 11434:11434 \
  -v ollama-data:/root/.ollama \
  ollama/ollama:latest

# 重新啟動 Open WebUI 並加入網路
docker run -d --name open-webui \
  --network ollama-net \
  -p 3000:3000 \
  -v open-webui-data:/app/data \
  ghcr.io/open-webui/open-webui:latest

方法 2:設定 Open WebUI 連接本機 Ollama

如果 Open WebUI 需要連接到運行在本機端的 Ollama,可設定環境變數。

docker run -d --name open-webui \
  -p 3000:3000 \
  -e OLLAMA_BASE_URL=http://localhost:11434 \
  -v open-webui-data:/app/data \
  ghcr.io/open-webui/open-webui:latest

4. 驗證連接是否成功

  1. 開啟瀏覽器,進入 http://localhost:3000

  2. 登入 Open WebUI。

  3. 在設定中檢查是否成功連接到 http://ollama:11434http://localhost:11434

  4. 測試與模型互動,確認運行正常。

這樣就成功使用 Docker 安裝 Open WebUI 並連接 Ollama 了!

使用 Docker 安裝 Open WebUI 並連接 Ollama 的完整指南

 使用 Docker 安裝 Open WebUI 並連接 Ollama 的完整指南

Open WebUI 是一個基於網頁的圖形使用者介面 (GUI),讓您能更方便地管理和操作 Ollama 運行的大型語言模型 (LLM)。透過 Docker 安裝 Open WebUI 並連接到 Ollama,您可以輕鬆地透過網頁介面與本地部署的 LLM 模型互動。


1. 使用 Docker 安裝 Open WebUI

安裝 Open WebUI 有兩種方式:基本 Docker 指令安裝和使用 Docker Compose 安裝。


1.1 基本 Docker 指令安裝

您可以使用以下的 Docker 指令來安裝 Open WebUI:


Bash

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

各參數說明如下:


-d:在後台運行容器。

-p 3000:8080:將主機的 3000 端口映射到容器的 8080 端口,這樣您就可以透過 http://localhost:3000 在瀏覽器中訪問 Open WebUI。

--add-host=host.docker.internal:host-gateway:這是非常重要的一步,它設定讓容器可以連接到主機的服務。在 Docker 內部,host.docker.internal 會指向主機環境,這對於連接到主機上運行的 Ollama 服務至關重要。

-v open-webui:/app/backend/data:設定持久化儲存,將容器內的 /app/backend/data 目錄掛載到主機的 open-webui 卷宗。這確保了您的設定和資料在容器重新啟動或刪除後仍然保留。

--name open-webui:為容器命名為 open-webui,方便後續管理,例如停止、啟動或刪除容器。

--restart always:設定容器在失敗時自動重啟,確保服務的穩定性。

ghcr.io/open-webui/open-webui:main:指定使用 Open WebUI 的映像檔,:main 代表使用最新的主分支版本。

1.2 Docker Compose 安裝


使用 Docker Compose 可以更方便地同時部署 Ollama 和 Open WebUI。以下是一個 docker-compose.yml 檔案範例:


YAML:

version: "3.9"

services:

  ollama:

image: ollama/ollama

ports:

  - "11434:11434"

volumes:

  - ollama:/root/.ollama

deploy:

resources:

  reservations:

devices:

  - driver: nvidia # 取消註釋以使用 NVIDIA GPU

count: 1

capabilities: [gpu]

  open-webui:

image: ghcr.io/open-webui/open-webui:main

ports:

  - 3000:8080

depends_on:

  - ollama

environment:

  - OLLAMA_API_BASE_URL=http://ollama:11434 # 使用容器名稱 ollama

volumes:

  - open-webui:/app/backend/data

restart: always


volumes:

  ollama:

  open-webui:

  

使用此設定檔,您可以執行以下指令來部署:


Bash:

docker-compose up -d


此指令會建立並啟動 docker-compose.yml 檔案中定義的所有服務。


1.3 GPU 注意事項

如果您有 NVIDIA GPU,可以取消 docker-compose.yml 檔案中 ollama 服務下的 deploy 部分的註釋,以啟用 GPU 加速。如果沒有 NVIDIA GPU,請保持註釋狀態。


2. 連接 Ollama 和 Open WebUI

2.1 設定 Ollama API 連接

在 docker-compose.yml 文件中,open-webui 服務的 environment 設定了 OLLAMA_API_BASE_URL 環境變數,將 Open WebUI 連接到 Ollama 的 API。在這個範例中,我們使用 http://ollama:11434,其中 ollama 是 Ollama 服務的容器名稱,11434 是 Ollama 的預設 API 端口。


2.2 使用容器名稱或 host.docker.internal

如果 Ollama 和 Open WebUI 在同一個 Docker 網路中(例如使用 Docker Compose),建議使用容器名稱(如 ollama)來連接。如果 Ollama 部署在主機或其他伺服器上,則需要將 OLLAMA_API_BASE_URL 修改為 http://host.docker.internal:11434(在基本 Docker 指令安裝中)或伺服器的 IP 地址或域名。


2.3 啟動 Open WebUI

安裝完成後,在瀏覽器輸入 http://localhost:3000 來存取 Open WebUI。如果 Ollama 和 Open WebUI 部署在遠端伺服器,則需要將 localhost 替換為伺服器的 IP 位址或域名。


2.4 登入和設定

初次登入 Open WebUI 需要註冊帳號,第一個註冊的用戶會成為管理員。登入後,可以在設定中選擇要使用的本地模型。如果要使用其他模型供應商的 API,也可以在設定中輸入 API 金鑰。


3. 其他注意事項

Docker 版本: 如果您沒有用過 Docker,您必須先安裝 Docker Desktop 或 Docker Engine 及其 dependencies。

網路連線: 確保網路連線正常,並且沒有防火牆或代理阻止連線。

檢查日誌: 如果 Open WebUI 無法啟動,可以檢查 Docker 的日誌來除錯:docker-compose logs open-webui 或 docker logs open-webui。

更新: 使用 docker-compose pull 和 docker-compose up -d 來更新 Open WebUI 到最新版本。

Ollama API 端口: Ollama 預設的 API 端口是 11434。


Ollama 常見的 GUI 介面

 Ollama 本身是一個在終端機執行的工具,但有許多圖形使用者介面 (GUI) 可以搭配使用,讓使用者更方便地操作和與模型互動。以下整理了 Ollama 常見的 GUI 介面及其相關資訊:

1. Open WebUI (原名 Ollama WebUI)

  • 這是一個網頁介面,讓使用者可以像使用 ChatGPT 那樣與 Ollama 運行的模型對話。

  • Open WebUI 可以搭配 Ollama 或其他相容 OpenAI 的 LLM 使用。

  • 它提供了類似 ChatGPT 的聊天介面,並支援許多功能,例如:管理模型、提示詞範本、工具使用(例如:天氣查詢、Google 搜尋)、檔案上傳等等。

  • Open WebUI 是一個高度模組化的網頁介面,可以執行 AI 繪圖、辨識圖片、執行 RAG 檢索增強生成、整理 PDF 檔案內容、搜尋網頁等。

  • 可以使用 Docker 部署 Open WebUI。

2. 其他 GUI 選擇

  • 除了 Open WebUI,還有許多其他的 GUI 可以與 Ollama 整合,例如 Raycast 和 Ollamac。

  • 這些工具提供了不同的介面和功能,使用者可以根據自己的需求選擇合適的工具。

3. 如何使用 Open WebUI

  1. 安裝

    • Open WebUI 通常使用 Docker 進行部署,可參考相關教學文章使用 docker-composedocker run 指令安裝。

  2. 設定

    • 首次使用需要建立帳戶,並且可以選擇使用 Ollama 或其他模型供應商的 API。

    • 接著可以新增對話,選擇想要使用的模型。

  3. 使用

    • 在網頁介面中,可以輸入文字與模型互動,並且使用 Open WebUI 提供的各種功能。

4. 圖形介面的優點

  • 更直觀:相較於終端機指令,圖形介面更直觀易用,方便不熟悉命令列的使用者。

  • 更豐富的功能:圖形介面通常提供更多額外功能,例如歷史紀錄、模型管理、提示詞管理等。

  • 更友好的互動:類似 ChatGPT 的介面讓使用者更容易上手。

5. Ollama 本身預設是指令列操作

  • Ollama 的設計理念是預設模式很簡單,但同時也具有高度的彈性。

  • Ollama 的核心功能是透過指令列 (CLI) 來操作,例如 ollama runollama pull 等指令。

  • Ollama 提供 REST API,開發人員可以將 Ollama 整合到其他應用程式中。

6. 總結

雖然 Ollama 本身主要透過終端機操作,但透過 Open WebUI 或其他 GUI 工具,使用者可以更方便地與 Ollama 互動,並使用其提供的各種功能。這些 GUI 工具讓 Ollama 的使用更加普及,即使不熟悉指令列的使用者也能輕鬆上手。

Ollama 詳細介紹與應用

 Ollama 詳細介紹與應用

一、簡介

Ollama 是一個開源的本地大型語言模型(LLM)運行框架,旨在讓開發者和技術愛好者能更輕鬆地部署和使用各種 LLM 模型,而無需依賴雲端服務。它以簡便的操作、本地化的運行和強大的功能,在 AI 開發社群中迅速受到歡迎。正如多個來源所說,「Ollama 可以僅使用一行 command 就完成 LLM 的部署、API Service 的架設達到即開即用的成果,江湖人稱 LLM 界 Docker 的存在。」(Nero Un Chi Hin)。

二、主要特性與優點

  1. 本地運行: Ollama 的核心優勢在於其能在使用者自己的設備上運行模型,無需將數據傳輸至雲端,這大大提升了數據隱私和安全性。「Ollama 支援在自己的設備上載入模型,無需將數據上傳至雲端,確保數據隱私與安全。」(SJ)
  2. 跨平台支援: Ollama 支援 macOS、Linux 和 Windows 等主流作業系統,也提供 Docker 容器部署選項。「Ollama 支援 macOS、Linux 和 Windows 等主流操作系統」(Marconi Jiang)。
  3. 簡單易用: Ollama 的安裝和使用都非常簡單,多數操作可透過 CLI 完成,且提供 API 服務供程式呼叫。「Ollama 的操作非常簡單, 從下載 Ollama 到在 CLI (Command Line Interface) 下執行以下任何一個 ollama run llama3.2 (或其他 model)的指令, 整個步驟可以在 10 分鐘內完成。」(Marconi Jiang)
  4. 多種模型支援: Ollama 支援多種開源 LLM 模型,包括 Llama 3、Mistral、Gemma 等,使用者可以根據需求下載不同大小和功能的模型。「Ollama 是一個開源的大型語言模型平台, 允許使用者在本地端運行各種模型. 以下表格詳細列出 Ollama 可以支援的 models, 如 Llama 3 等。」(Marconi Jiang)。
  5. 客製化模型: 除了使用現有的模型,Ollama 也支援使用者自行建立模型,並可透過 Modelfile 設定模型參數和行為。「除了使用現有的模型,Ollama 也支援使用者自行建立模型」(Simon Liu)。
  6. API 服務: Ollama 提供 RESTful API 介面,讓開發者能輕鬆將 LLM 功能整合到自己的應用程式中。「提供簡單易用的 API 和工具,幫助開發者快速集成語言模型功能到他們的應用中。」(SJ)。

三、安裝與設定

  1. 安裝方式:
  • macOS: 從 GitHub Releases 下載 .dmg 檔案,解壓縮後移動到應用程式資料夾。
  • Linux: 使用 curl -fsSL https://ollama.com/install.sh | sh 命令安裝。
  • Docker: 使用 docker run 命令啟動容器,並映射 11434 端口和模型資料夾。例如使用 GPU 可以加上 --gpus=all 參數。「可以使用以下命令:docker run -d --gpus=all -v $HOME/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama」(Ollama安裝教學 - HackMD)
  1. 基本操作:
  • ollama serve:啟動 Ollama 服務。「啟動 Ollama 服務時,預設 API 服務會開啟在 http://0.0.0.0:11434」(SJ)。
  • ollama pull <model_name>:下載指定模型。「ollama pull llama3,沒有注明 size (:7b) 的話就會下載 default 那個 size」(夢想家)。
  • ollama run <model_name>:執行指定模型,進入對話模式。「ollama run gemma:2b,執行成功後會出現類似 terminal input 的樣式」(Nero Un Chi Hin)
  • ollama list:列出已下載的模型。「ollama list 列出可用的模型,概念與 Docker Image 一樣」(SJ)。
  • ollama rm <model_name>:移除指定模型。「ollama rm llama3 移除模型」(夢想家)。
  • ollama cp <model_name_1> <model_name_2>: 複製模型。「ollama cp llama3 my-model,複製模型」(夢想家)。
  • ollama show <model_name>:顯示模型資訊。「ollama show --modelfile gemma:2b,顯示模型檔案位置」(Nero Un Chi Hin)
  • ollama create <model_name> -f <Modelfile_path>:從 Modelfile 創建自訂模型。「ollama create "MyTranslator" -f ./Modelfile」(Ivon的部落格)。
  1. 模型儲存位置
  • 模型預設儲存在 ~/.ollama/models 目錄下。
  • 可透過環境變數 OLLAMA_MODELS 修改儲存路徑,如 Environment="OLLAMA_MODELS=/media/mydisk/models/" (imuslab)。

四、模型下載與使用

  1. Ollama Library: Ollama 官方網站提供了一個模型庫(https://ollama.com/library),使用者可從此處瀏覽並下載各種模型。
  • 熱門模型:Llama 3: Meta 的最新大型語言模型,有 3B, 8B, 70B 等不同參數大小的版本。「可以下載 llama3.2 模型,不指定版本的話預設是 3b 的模型」(SJ)。
  • Mistral: 由 Mistral AI 開發的開源模型,有 7B 版本。「FROM mistral:7b-instruct」 (Ivon的部落格)
  • Gemma: Google DeepMind 開發的模型,有 2B 和 7B 等版本。「ollama run gemma:2b,執行 Google Deep Mind gemma 模型」(Marconi Jiang)。
  • Phi 3: 微軟開發的小型語言模型,有 3.8B 和 14B 版本。「ollama run phi3,下載微軟出的「小」模型 phi3」(YWC 科技筆記)。
  • Code Llama: 用於程式碼生成的模型,有 7B 和 13B 等版本。「ollama pull codellama:7b,下載用於程式碼生成的模型」(夢想家)。
  1. 模型大小與記憶體需求: 運行模型需要一定的記憶體(RAM),通常 7B 模型需要 8GB RAM,13B 模型需要 16GB RAM,33B 模型需要 32GB RAM。「Note: 記憶體需求大約是如下, 要跑 7B 的模型, 需要 8GB 的 RAM. 16 GB 的 RAM 來跑 13B models, 跟 32 GB 跑 33B models.」(Marconi Jiang)。
  2. GGUF 模型
  • GGUF (GPT-Generated Unified Format) 是一種為大型語言模型設計的量化格式,能有效節省資源。「GGUF(GGML Universal Format)是由 llama.cpp 團隊開發的 GGML 的後續版本,專為大型語言模型設計的量化格式。」(hengshiousheu)
  • 可以從 HuggingFace 下載 GGUF 模型檔案。
  • 需要使用 Modelfile 將 GGUF 檔案導入 Ollama,才能在 Ollama 上運行。
  1. Modelfile 範例:FROM ./TAIDE-LX-7B-Chat.Q8_0.gguf
  2. TEMPLATE """[INST] {{ if .System }}<<SYS>>{{ .System }}<</SYS>>{{ end }}{{ .Prompt }} [/INST] """
  3. SYSTEM """你是一個來自台灣的AI助理,你的名字是 TAIDE,樂於以台灣人的立場幫助使用者,會用繁體中文回答問題"""
  • FROM 指定模型檔案位置。
  • TEMPLATE 定義 Prompt 的格式。
  • SYSTEM 設定模型的角色和行為。

五、API 介面與應用

  1. RESTful API: Ollama 提供 RESTful API,使用者可透過 curl 或其他 HTTP 客戶端與模型互動。
  • 生成文字: 使用 /api/generate 接口生成文字。例如:
  • curl http://localhost:11434/api/generate -d '{ "model": "mistral", "prompt":"Why is the sky blue?" }'
  • 對話: 使用 /api/chat 接口進行對話。例如:
  • curl http://localhost:11434/api/chat -d '{ "model": "mistral", "messages": [ { "role": "user", "content": "why is the sky blue?" } ] }'
  1. Python SDK: Ollama 提供 Python 函式庫,方便開發者在 Python 應用中整合 LLM 功能。
  • 使用 pip install ollama 安裝套件。
  • ollama.chat 可用於一來一往的對話。
  • ollama.generate 可用於單次文字生成。
  1. API 參數:
  • "model":指定要使用的模型名稱。
  • "prompt" 或 "messages":指定輸入的文字或對話訊息。
  • "stream": false:設定為 false 時,回覆將以單一 JSON 物件返回,而非串流。
  1. API 應用:
  • 本地化聊天介面: 結合 Open WebUI 等前端介面,建立本地化的聊天應用程式。「不想讓資料外洩怎麼辦:在本地用 Ollama 搭配 Open WebUI 做一個聊天界面吧!」(海狸大師)
  • RAG (檢索增強生成): 結合 LangChain 等工具,實作 RAG 應用,提升 LLM 回答的準確性和相關性。「之後有時間我們會整合 LangChain 實現 RAG 的解決方案。」(SJ)。「Ollama + RAG 安裝 pip 套件,pip3 install gradio pypdf chromadb langchain_ollama ollama pull nomic-embed-text」(Marconi Jiang)
  • 程式碼輔助: 整合 aider 等工具,輔助程式碼撰寫和註解。「看到 Linux 大神 jserv 讚嘆 aider 協助程式寫作, 以及 comment 的撰寫, 馬上來試。」(Marconi Jiang)

六、進階應用

  1. 自定義模型: 使用者可以根據自己的需求,使用 Hugging Face 的模型,並透過 GGUF 轉換和 Modelfile 設定,建立自定義的 LLM 模型。
  2. Web UI: 使用 Open WebUI 等工具,提供更方便的圖形化介面,讓使用者能輕鬆與 LLM 互動。
  3. 程式碼輔助: 整合 Aider 等程式碼輔助工具,讓 LLM 成為開發者的助手。

七、Ollama 的重要性

Ollama 作為一個開源、易用、本地化的 LLM 解決方案,在 AI 開發領域扮演著越來越重要的角色:

  • 隱私保護: 在本地運行模型,能有效保護使用者數據隱私。
  • 開發便利: 簡化 LLM 的部署和使用流程,降低技術門檻。
  • 開源生態: 促進開源 LLM 技術的發展和應用。
  • 應用廣泛: 可應用於多種場景,包括聊天機器人、RAG 應用、程式碼輔助等。

八、總結

Ollama 是一個強大且靈活的工具,使得本地運行大型語言模型變得更加簡單。它不僅適用於研究人員和開發者,也適合對 AI 有興趣的廣大使用者。透過 Ollama,我們可以探索本地 AI 開發的無限可能,並在保護隱私的前提下,充分利用 AI 的力量。

九、其他重點

  • 效能監控: 透過 API 呼叫可取得模型回覆時間、token 數量等數據,以評估系統效能。「從 Ollama API Documentation可以查到 Ollama API 的使用手冊。」(Marconi Jiang)
  • 多 GPU: Ollama 若偵測到多 GPU,會將模型載入至其中一個 GPU 中,以減少 PCI 傳輸。
  • 模型快取: 模型資料是 memory mapped 的,並會顯示在 file cache 中。
  • 模型移除: 模型快取時間(UNTIL) 到達後會從記憶體中卸載,可透過 ollama ps 觀察。可透過設定 keep_alive=-1 讓模型常駐記憶體。「 To preload a model and leave it in memory, curl $URL -d '{"model": "llama3", "keep_alive": -1}'」(夢想家)

十、參考資料

  • 各來源文章中引用的連結與相關資訊。

這份簡報文件涵蓋了您提供的所有來源中的主要主題、概念和重要事實,希望能幫助您更好地理解 Ollama。

Docker 中安裝 Ollama 的流程

 Docker 中安裝 Ollama 的流程如下:

1.CPU 環境:

◦建立一個用於存放 Ollama 資料的目錄: mkdir $HOME/ollama

◦執行 Docker 命令來啟動 Ollama 容器,並將主機的 11434 端口映射到容器的 11434 端口:

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


2.NVIDIA GPU 環境:

◦確保已安裝 NVIDIA Container Toolkit.

◦建立 Ollama 資料目錄: mkdir $HOME/ollama

◦執行 Docker 命令,啟用 GPU 支持,並映射端口:

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

或 

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


3.AMD GPU 環境:

◦建立 Ollama 資料目錄: mkdir $HOME/ollama

◦使用 rocm 標籤啟動容器,並映射端口:

$docker run -d --device /dev/kfd --device /dev/dri -v $HOME/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm


4.其他注意事項:

◦-d 參數表示在後台運行容器.

◦-v ollama:/root/.ollama 設定持久化儲存,確保資料安全.

◦--name ollama 為容器命名,便於管理.

◦-p 11434:11434 進行端口映射,讓主機可以和容器通訊.

◦也可以使用 

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

來部署最新版本的 Ollama 映像檔.


5.驗證安裝

◦安裝完成後,可以使用 docker ps 檢查容器是否正在運行.

◦可以使用 

$docker exec -it ollama ollama -h 

或 

$docker exec -it ollama ollama serve 

來驗證 Ollama 是否正確安裝.


6.下載模型

◦進入容器後,可以使用 ollama pull 命令下載模型,

例如:

$docker exec -it ollama ollama pull llama2.

可以使用 ollama list 來查看已下載的模型.


7.執行模型

◦可以使用 

$docker exec -it ollama ollama run <模型名稱> 來執行模型, 

例如: 

$docker exec -it ollama ollama run llama2.

另外,如果你的 Ollama 是部署在另一台伺服器上面,你可以將 host.docker.internal 改成另一台伺服器的 IP 地址或網域名稱. 

這樣你就可以透過網路連接到你的 Ollama 服務。

請注意,首次下載模型需要一些時間,具體時間取決於網路速度和模型大小. 

如果您的系統資源有限,可以選擇下載較小的模型進行測試.


2025年1月16日 星期四

Ollama 研究指南

 

Ollama 研究指南

測驗

請以簡短的 2-3 句話回答下列問題:

  1. 什麼是 Ollama,它的主要用途是什麼?
  2. Ollama 支援哪些作業系統?
  3. Ollama 如何簡化大型語言模型 (LLM) 的使用?
  4. 如何在 Ollama 中下載和執行模型?
  5. 在 Ollama 中,ollama run llama3 指令的用途是什麼?
  6. 什麼是 Modelfile,它在 Ollama 中的作用是什麼?
  7. Ollama 使用的預設 API 端口是什麼?
  8. RESTful API 在 Ollama 的應用是什麼?
  9. 什麼是 GGUF,它與 Ollama 的關係是什麼?
  10. 什麼是 RAG,如何在 Ollama 中應用?

測驗答案

  1. Ollama 是一個開源的框架,主要用於在本機端輕鬆部署和運行大型語言模型 (LLM)。它簡化了下載、管理和執行 LLM 的流程。
  2. Ollama 支援 macOS、Linux 和 Windows 等主流作業系統,這讓它可以在不同的開發環境中使用。
  3. Ollama 透過提供一個簡單的 CLI 工具和 API 服務,使得使用者不必深入了解複雜的程式碼或模型架構,就能輕鬆使用 LLM。
  4. 使用 ollama pull <模型名稱> 指令下載模型,然後使用 ollama run <模型名稱> 指令執行模型。Ollama 會自動處理模型下載和部署。
  5. ollama run llama3 指令會下載名為 llama3 的模型(如果尚未下載),然後啟動一個互動式的對話界面,讓使用者與該模型互動。
  6. Modelfile 是 Ollama 用於定義自訂模型的格式檔,其中包含了模型來源、參數、系統提示和範本等資訊。它讓使用者能客製化模型。
  7. Ollama 的預設 API 端口是 11434,透過這個端口,你可以使用 API 與 Ollama 模型進行互動。
  8. 在 Ollama 中,RESTful API 可用於程式化地與模型進行互動,像是產生文本或進行聊天,而不是只能使用 CLI。使用者可以使用 HTTP 請求來呼叫模型,這讓整合到其他應用程式變得更加容易。
  9. GGUF (GPT-Generated Unified Format) 是一種專為大型語言模型設計的量化格式,可以提高在 CPU 或 GPU 上執行的效率,Ollama 支援 GGUF 格式,允許使用者載入和使用以這種格式儲存的模型。
  10. RAG (Retrieval-Augmented Generation) 是一種利用外部知識來增強語言模型生成能力的方法。在 Ollama 中,可以使用 RAG 來擴展模型的知識,使其能夠根據特定的數據或文件回答問題。

論述題

請針對下列題目,以論文格式回答(請勿提供答案)。

  1. 探討 Ollama 在本地 AI 開發中的重要性,並分析其相對於雲端服務的優缺點。
  2. 詳細比較在 Ollama 中使用 CLI、RESTful API 和 Python SDK 的差異,並說明各自的應用情境。
  3. 分析 Modelfile 的作用,並舉例說明如何使用 Modelfile 創建一個自訂的 LLM 模型。
  4. 探討 Ollama 與其他本地 LLM 部署工具(如 LM Studio)的差異,並說明各自的適用場景。
  5. 解釋 RAG 技術在本地 LLM 應用中的價值,並說明如何在 Ollama 中實作 RAG。

詞彙表

以下是本研究指南中出現的關鍵詞彙及其定義:

  • Ollama:一個開源的工具,允許使用者在本機端輕鬆部署和運行大型語言模型。
  • LLM (Large Language Model):大型語言模型,是一種基於大量文本數據訓練的人工智慧模型,能理解和生成人類語言。
  • CLI (Command Line Interface):命令列介面,一種透過輸入文字命令與電腦互動的方式。在 Ollama 中,CLI 用於下載、運行和管理模型。
  • RESTful API:一種軟體架構風格,用於建立網路服務。Ollama 提供 RESTful API,允許開發者透過 HTTP 請求與模型互動。
  • Modelfile:Ollama 用於定義模型配置的文件,包含模型來源、參數、系統提示和範本等。
  • GGUF (GPT-Generated Unified Format):一種用於儲存和載入大型語言模型的二進制檔案格式,可以提高在 CPU 或 GPU 上執行的效率。
  • RAG (Retrieval-Augmented Generation):檢索增強生成,是一種利用外部知識來增強語言模型生成能力的方法。
  • Model Quantization:模型量化,是一種降低模型參數精度的方法,可以減少模型大小,加快運行速度。
  • Hugging Face: 一個提供大量預訓練模型和數據集的人工智慧平台,許多 Ollama 模型都是從這裡衍生而來。
  • Docker: 一種容器化平台,可將應用程式及其依賴項打包成容器,方便部署和管理。Ollama 亦支援 Docker 部署。
  • Open WebUI: 一個可以與 Ollama 模型互動的網頁圖形介面。
  • API Key: 一個驗證使用者身份的唯一碼,通常用在與雲端服務互動時。Ollama 並不需要 API Key,因為它是在本機端運作。
  • System Prompt: 系統提示,是在使用 LLM 模型時,預先設定的一些指示或規範,用以引導模型的回應方式。
  • Template: 範本,在 Ollama 中,指的是定義 LLM 如何解釋輸入提示 (prompts) 的格式。它通常用於處理多輪對話或系統訊息。
  • Token: 在自然語言處理中,指的是文字的最小單位,例如單字或符號。LLM 模型會將輸入的文字分解成 token 來處理。
  • ollama serve: Ollama 的一個指令,用於啟動 Ollama 的 API 服務,以便其他應用程式可以使用這些模型。
  • ollama pull: Ollama 的一個指令,用於從 Ollama 模型庫下載模型到本機。
  • ollama run: Ollama 的一個指令,用於運行已下載的模型。
  • ollama list: Ollama 的一個指令,用於列出本機已下載的模型。
  • ollama rm: Ollama 的一個指令,用於刪除本機已下載的模型。
  • ollama cp: Ollama 的一個指令,用於複製模型。
  • OLLAMA_MODELS: 一個環境變數,可以用於指定 Ollama 模型儲存的路徑。
  • OLLAMA_API_BASE: 一個環境變數,用於指定 Ollama API 伺服器的網址。