welcom ! Handel home

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月21日 星期二

安排 ROS 的學習入門到進階

安排 ROS 的學習,從入門到進階,以下整理了相關主題與建議的學習順序,並參考了多個來源的資訊:

入門階段:ROS 基礎概念
了解 ROS 的基本概念
什麼是 ROS? ROS (Robot Operating System) 是一個用於機器人軟體開發的開源框架。它提供了一個標準化的介面,使不同組件之間可以方便地進行通信
ROS 的核心元素
節點 (Node):執行特定任務的程式
消息 (Message):在節點之間傳遞的數據
主題 (Topic):節點發布和訂閱消息的通道
服務 (Service):節點間請求與響應的通信方式
參數 (Parameter):節點的配置參數,可動態調整
節點管理器 (Master):負責節點的註冊和發現roscore 是 ROS 系統的先決條件,必須運行才能讓節點互相通信
ROS 的通信架構:了解發布者 (Publisher) 和訂閱者 (Subscriber) 的概念
安裝 ROS
選擇 ROS 版本:ROS 有多個發行版 (distributions),建議初學者使用 LTS (Long Term Support) 版本,例如 ROS 2 Humble Hawksbill。對於 ROS 1 使用者,Humble 是較佳的升級路徑
作業系統Ubuntu Linux 是 ROS 的主要開發平台。建議使用 ROS 官方推薦的 Tier 1 作業系統以獲得最佳體驗。例如,ROS 2 Humble Hawksbill 建議使用 Ubuntu 22.04
安裝方式:可參考 ROS 官方的安裝指南
建立 ROS 工作空間 (Workspace) 與套件 (Package)
工作空間 (Workspace):用於存放 ROS 專案的目錄
套件 (Package):ROS 程式碼的基本組織單元,包含節點、消息定義等
編寫節點 (Node)
選擇程式語言:ROS 支援 C++ (roscpp) 和 Python (rospy) 等多種程式語言
撰寫簡單的發布者 (Publisher) 和訂閱者 (Subscriber) 節點
使用 rosrun 命令運行節點
使用 ROS 工具
rosnode:查看正在運行的節點信息
rostopic:查看主題信息和發布的消息
rosparam:查看和修改參數
roslaunch:使用 launch 檔案同時啟動多個節點
學習 tf 套件: 了解座標轉換的概念,以及如何使用 tf 套件來表示幀並執行轉換
使用 turtlesim:練習使用節點、主題和參數
進階階段:機器人模擬與控制
機器人模型 (URDF)
了解 URDF (Unified Robot Description Format):用於描述機器人模型的 XML 格式
建立簡單的 URDF 模型:包括連結 (link)、關節 (joint)、碰撞 (collision) 和慣性 (inertia) 標籤
使用 Xacro: 利用屬性和巨集來簡化 URDF.
Gazebo 模擬器
什麼是 Gazebo?Gazebo 是一個功能強大的 3D 物理模擬器,可以用來模擬機器人與周圍環境的互動
Gazebo 的架構:Gazebo 分為 Server 端和 Client 端
ROS 與 Gazebo 的整合:ROS 可以透過套件與 Gazebo 進行通信
在 Gazebo 中載入機器人模型和世界 (world)
使用 ROS 控制 Gazebo 中的機器人
了解如何使用 roslaunch 啟動 Gazebo
模擬感測器資料.
在 Gazebo 中加入感應器.
使用 Gazebo 的建築編輯器建立自訂世界
ROS 控制 (ros_control)
了解 ros_control:ROS 中用於控制機器人硬體的框架.
使用 ros_control 控制 Gazebo 中的機器人.
進階 ROS 主題
Actionlib: 了解 actionlib 的概念
Launch 檔案:學習使用 launch 檔案啟動複雜的 ROS 系統
生命週期節點 (Lifecycle Nodes):了解如何使用生命週期節點來管理節點的狀態.
執行器 (Executors): 了解單線程與多線程執行器的使用方式.
組件 (Components):學習如何建立 ROS2 的組件.
專業階段:導航、SLAM 與人機互動
導航 (Navigation):
了解導航堆疊 (Navigation Stack):ROS 中用於機器人導航的程式庫
全局路徑規劃 (Global Planning):生成從起點到終點的路徑。
局部路徑規劃 (Local Planning):實時避開障礙物。
防撞 (Collision Avoidance):確保機器人安全移動。
使用 move_baseamclgmapping 等套件
調整導航參數.
實作基於地圖的導航和反應式導航
同步定位與建圖 (SLAM)
了解 SLAM 的理論基礎
使用 gmappingslam_toolbox 等套件建立地圖
人機互動 (Human-Robot Interaction, HRI):
了解 HRI 的基本概念:設計概念、評估指標、自主水平
了解如何設計和評估人機互動系統.
進階程式語言應用
使用 C++ 開發 ROS 應用程式: 學習如何使用 C++ 開發機器人程式碼
使用 Python 開發 ROS 應用程式:學習如何使用 Python 開發機器人程式碼。
其他資源
ROS 官方 Wiki:ROS 的官方文檔
ROS 官方教程:ROS 的入門教程
Gazebo 官方 Wiki:Gazebo 的官方文檔.
ROS Discourse 論壇:ROS 社群的討論區
Open Robotics Discord 伺服器:與 ROS 使用者交流的平台
學習建議
實作練習:透過實作來學習 ROS
從小專案開始:先從簡單的任務開始,逐步增加複雜度
參考範例程式碼:參考 ROS 官方和社群提供的範例程式碼.
加入社群:參與 ROS 社群的討論,尋求幫助並分享經驗
系統性學習:按照步驟逐步學習,不要跳躍學習.
理論與實作結合:將理論知識與實際操作相結合,更深入理解 ROS

這個學習路徑的安排提供了一個從 ROS 的基本概念到進階應用的逐步學習框架。
你可以根據自己的興趣和需求調整學習重點。