Skip to content

Instantly share code, notes, and snippets.

@j796160836
Created December 11, 2024 22:08
Show Gist options
  • Save j796160836/10502f85a7216829e963a29b672ee38c to your computer and use it in GitHub Desktop.
Save j796160836/10502f85a7216829e963a29b672ee38c to your computer and use it in GitHub Desktop.

Ollama model Export & Import

Use this script
https://github.com/cgjosephlee/ollama-save-load

Define ollama model path

Mac

export OLLAMA_MODELS="~/.ollama/models"

Windows

export OLLAMA_MODELS="C:\Users\<username>\.ollama\models"

Docker version

export OLLAMA_MODELS="$(PWD)/ollama/models"

Export model

ollama pull kenneth85/llama-3-taiwan:8b-instruct-q4_0
./ollama-save.py kenneth85/llama-3-taiwan:8b-instruct-q4_0 | gzip > llm_model_llama-3-taiwan_8b-instruct-q4_0.tar.gz

Load model

./ollama-load.py llm_model_llama-3-taiwan_8b-instruct-q4_0.tar.gz
#!/bin/bash
# 檢查是否提供模型名稱參數
if [ $# -ne 1 ]; then
echo "Usage: $0 <model_name>"
echo "Example: $0 cwchang/llama3-taide-lx-8b-chat-alpha1:q5_k_m"
exit 1
fi
MODEL_NAME="$1"
# 從完整模型名稱中提取基本資訊
# 移除 tag 前的冒號
BASE_NAME=$(echo "$MODEL_NAME" | sed 's/:.*//')
# 獲取 tag(如果存在)
TAG=$(echo "$MODEL_NAME" | grep -o ':[^:]*$' | sed 's/^://')
# 從基本名稱中提取模型名稱,移除 username/
MODEL_ONLY=$(echo "$BASE_NAME" | sed 's/.*\///')
# 建構輸出檔案名稱
if [ -n "$TAG" ]; then
# 如果有 tag,加入到檔名中
OUTPUT_FILE="llm_model_${MODEL_ONLY}-${TAG}.tar.gz"
else
# 如果沒有 tag,使用基本名稱
OUTPUT_FILE="llm_model_${MODEL_ONLY}.tar.gz"
fi
# 顯示將要執行的操作
echo "Pulling model: $MODEL_NAME"
echo "Output will be saved as: $OUTPUT_FILE"
# 執行 ollama pull
if ! ollama pull "$MODEL_NAME"; then
echo "Error: Failed to pull model"
exit 1
fi
# 執行儲存操作
if ! ./ollama-save.py "$MODEL_NAME" | gzip > "$OUTPUT_FILE"; then
echo "Error: Failed to save model"
exit 1
fi
echo "Successfully saved model to $OUTPUT_FILE"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment