
在氣隔企業環境中使用 Ollama 進行 AI 輔助資料準備
在氣隔環境中部署 Ollama 用於 AI 輔助資料標記的逐步指南——模型轉移、離線設置、GPU 配置和常見故障模式。
Ollama 的正常工作流程假設有網路訪問:ollama pull mistral 從倉庫下載模型權重。在氣隔環境中,沒有網路。沒有倉庫訪問,沒有依賴項下載,沒有遙測回傳。運行所需的一切必須通過批准的流程物理轉移。
這是國防、情報、關鍵基礎設施和高安全性金融環境中資料準備專案的現實。在您的筆記型電腦上使用 ollama run 有效的 AI 輔助標記工作流程,在目標機器從未見過網路的情況下需要不同的部署路徑。
本指南涵蓋完整的氣隔 Ollama 部署工作流程:從連接網路的機器上準備模型到在隔離目標上的驗證操作。
前置條件
在開始轉移過程之前,在氣隔目標機器上確認以下內容:
作業系統:Linux(Ubuntu 22.04/24.04、RHEL 8/9、Rocky Linux)或 Windows 10/11。macOS 可以,但在企業氣隔環境中不常見。
GPU 驅動程式:NVIDIA 驅動程式必須已在目標上安裝並運行。運行 nvidia-smi 進行驗證。如果未安裝 GPU 驅動程式,那是一個獨立的(通常很痛苦的)離線安裝過程——NVIDIA 驅動程式包有自己的依賴項鏈。
CUDA 工具包:GPU 推理所需。必須與驅動程式版本匹配。通過 nvcc --version 或檢查 /usr/local/cuda/version.txt 進行驗證。
磁碟空間:Ollama 的模型儲存默認為 ~/.ollama/models。7B Q4 模型約 4 GB。14B Q4 模型約 8 GB。如果您要維護多個模型和量化變體,預算 50-100 GB 用於模型儲存。
批准的轉移媒體:USB 磁碟機、光學媒體,或設施的資訊轉移政策允許的任何媒體。某些環境需要帶寫保護或加密的特定媒體類型。
第一步:在連接網路的機器上準備模型
在可以訪問網路的機器上(您的開發工作站或指定的預備機器):
安裝 Ollama
curl -fsSL https://ollama.ai/install.sh | sh
拉取目標模型
拉取您需要的每個模型和量化變體。轉移後您無法拉取額外的模型。
# 核心標記模型
ollama pull mistral:7b-instruct-v0.3-q4_K_M
ollama pull mistral:7b-instruct-v0.3-q8_0
ollama pull qwen2.5:14b-instruct-q4_K_M
ollama pull qwen2.5:14b-instruct-q5_K_M
# 用於輕量任務的較小模型
ollama pull phi3:3.8b-mini-instruct-4k-q4_K_M
# 嵌入模型(如果需要用於去重複/相似性)
ollama pull nomic-embed-text
驗證模型工作
對每個模型運行測試推理,確認它們正確載入和生成:
ollama run mistral:7b-instruct-v0.3-q4_K_M "Classify this text as positive or negative: The product arrived on time."
定位模型文件
Ollama 將模型 blob 儲存在其模型目錄中:
# 默認位置
# Linux: ~/.ollama/models
# macOS: ~/.ollama/models
# Windows: C:\Users\<user>\.ollama\models
ls ~/.ollama/models/manifests/registry.ollama.ai/library/
ls ~/.ollama/models/blobs/
manifests 目錄包含元資料(將模型名稱映射到 blob 雜湊值的 JSON 文件)。blobs 目錄包含實際的模型權重和配置文件。
第二步:打包以供轉移
選項 A:複製整個 Ollama 目錄
最簡單的方法——將完整的 ~/.ollama 目錄複製到轉移媒體。
# 計算總大小
du -sh ~/.ollama/models
# 複製到轉移媒體(例如加密的 USB 磁碟機)
cp -r ~/.ollama/models /media/transfer-drive/ollama-models/
優點:保證包含一切——清單、blob 和元資料。 缺點:包含所有模型,即使是目標上可能不需要的模型。如果您已拉取許多模型,可能會非常大。
選項 B:選擇性模型導出
對於有嚴格轉移大小限制的環境,只導出您需要的模型。
# 創建一個乾淨的導出目錄
mkdir -p /media/transfer-drive/ollama-export
# 複製特定模型的清單
for model in mistral qwen2.5 phi3 nomic-embed-text; do
cp -r ~/.ollama/models/manifests/registry.ollama.ai/library/$model \
/media/transfer-drive/ollama-export/manifests/registry.ollama.ai/library/
done
# 讀取清單以識別所需的 blob,然後複製這些 blob
# (每個清單引用 blob SHA256 雜湊值)
這更複雜,但產生更小的轉移包。建議採用腳本化方法,以避免遺漏清單引用的 blob。
選項 C:直接使用 GGUF 文件(llama.cpp 備用)
如果 Ollama 目錄複製方法無法清潔工作,直接從 HuggingFace 下載 GGUF 文件,並計劃在目標上使用 llama.cpp:
# 下載 GGUF 文件
wget https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.3-GGUF/resolve/main/mistral-7b-instruct-v0.3.Q4_K_M.gguf
GGUF 文件是自包含的——單個文件包含模型權重、分詞器和配置。這是氣隔部署最可移植的格式。
準備 Ollama 二進制文件
同時轉移 Ollama 二進制文件:
# 為目標作業系統/架構下載 Ollama 二進制文件
# Linux x86_64:
curl -L https://ollama.ai/download/ollama-linux-amd64 -o ollama
chmod +x ollama
# 複製到轉移媒體
cp ollama /media/transfer-drive/ollama-binary/
計算和記錄校驗和
驗證轉移完整性:
sha256sum /media/transfer-drive/ollama-binary/ollama > /media/transfer-drive/checksums.txt
find /media/transfer-drive/ollama-models/ -type f -exec sha256sum {} + >> /media/transfer-drive/checksums.txt
第三步:轉移到氣隔機器
此步驟遵循您組織的資訊轉移政策。常見模式:
- USB 磁碟機:將文件複製到批准的 USB 磁碟機。某些環境需要加密磁碟機或已通過資料二極管掃描的磁碟機。
- 光學媒體:燒錄到 DVD 或藍光光碟。只讀媒體有時因安全原因而優先考慮——接收系統無法寫入它。
- 資料二極管轉移:某些高安全環境使用硬體資料二極管,允許從低安全到高安全網路的單向資料轉移。
無論機制如何,轉移後驗證校驗和:
sha256sum -c checksums.txt
任何校驗和不匹配意味著文件在轉移過程中損壞。不要繼續使用損壞的模型文件——它們要麼無法載入,要麼產生不正確的輸出。
第四步:在目標機器上安裝和配置
安裝 Ollama 二進制文件
# 將二進制文件複製到系統路徑
sudo cp /media/transfer/ollama-binary/ollama /usr/local/bin/
sudo chmod +x /usr/local/bin/ollama
設置模型目錄
# 如果使用選項 A(完整目錄複製):
mkdir -p ~/.ollama
cp -r /media/transfer/ollama-models ~/.ollama/models
# 驗證 Ollama 可以看到模型
ollama list
預期輸出應顯示所有轉移的模型及其大小。
配置環境
# 防止 Ollama 嘗試任何網路訪問
export OLLAMA_HOST=127.0.0.1:11434
export OLLAMA_ORIGINS=*
# 可選:自訂模型儲存位置
export OLLAMA_MODELS=/path/to/custom/model/directory
# 對於有多個 GPU 的系統,指定使用哪個
export CUDA_VISIBLE_DEVICES=0
# 設置並行請求數
export OLLAMA_NUM_PARALLEL=2
啟動和驗證
# 啟動 Ollama 伺服器
ollama serve &
# 驗證模型載入並運行
ollama run mistral:7b-instruct-v0.3-q4_K_M "Respond with 'OK' if you are working."
如果模型載入並生成回應,部署就成功了。
資料準備任務的模型選擇
對於氣隔環境,模型選擇需要更多考量,因為部署後您無法輕易更換模型。提前轉移正確的模型。
分類和標記
主要:Mistral 7B Instruct 或 Llama 3.1 8B Instruct 的 Q4_K_M。快速,在二元和多類別分類上準確。處理大多數文件分類任務。
備用:同一模型的 Q8_0,如果 Q4 不足則提高準確性。轉移兩種量化版本以備選擇。
實體提取
主要:Qwen 2.5 14B Instruct 的 Q4_K_M 或 Q5_K_M。較大的模型在從複雜文件中提取特定實體(姓名、日期、金額、法律引用)方面提供更好的準確性。
合成資料生成
主要:Qwen 2.5 14B Instruct 的 Q5_K_M。生成品質比分類更受益於更高的量化。
輕量任務
主要:Phi-3 Mini 3.8B 的 Q4_K_M。用於簡單的二元分類、格式偵測或語言識別,7B 模型過於強大而 3.8B 模型運行更快。
推薦的轉移包
對於通用資料準備部署,轉移:
| 模型 | 量化 | 大小 | 用途 |
|---|---|---|---|
| Mistral 7B Instruct v0.3 | Q4_K_M | 約 4 GB | 主要分類/標記 |
| Mistral 7B Instruct v0.3 | Q8_0 | 約 7.5 GB | 高準確性備用 |
| Qwen 2.5 14B Instruct | Q4_K_M | 約 8 GB | 實體提取、生成 |
| Qwen 2.5 14B Instruct | Q5_K_M | 約 10 GB | 高品質生成 |
| Phi-3 Mini 3.8B | Q4_K_M | 約 2.3 GB | 輕量任務 |
| nomic-embed-text | 默認 | 約 275 MB | 嵌入(去重複/相似性) |
| 合計 | 約 32 GB |
此包可以放在單個 64 GB USB 磁碟機上,還有 Ollama 二進制文件和文件的空間。