ollama pull的时候,速度是一个先增加后下降的趋势,而ollama支持断点续传,我们可以每隔一段时间停掉重新拉取就行,下面是示例脚本,拉取千问32b
下面脚本保存为pull.sh
#!/bin/bash
# Check if model parameter is provided
if [ -z "$1" ]; then
echo "Usage: $0 <model_name>"
echo "Example: $0 qwen2.5:32b"
exit 1
fi
MODEL="$1"
while true; do
# Check if model already exists
modelExists=$(ollama list | grep "$MODEL")
if [[ -n "$modelExists" ]]; then
echo "Model $MODEL is ready"
break
fi
echo "Downloading $MODEL..."
# Start model download
ollama pull "$MODEL" &
process_pid=$!
# Wait for 60 seconds
sleep 60
# Try to stop the download process and restart
if kill -0 $process_pid 2>/dev/null; then
echo "Killing and restarting download of $MODEL..."
kill -9 $process_pid
else
echo "Error with download process"
fi
done
echo "Download of $MODEL completed successfully"
执行拉取:
chmod +x pull.sh
./pull.sh qwq:32b
Downloading qwq:32b...
pulling manifest
pulling c62ccde5630c... 3% ▕████ ▏ 557 MB/ 19 GB 6.4 MB/s 50m27sKilling and restarting download of qwq:32b...
Downloading qwq:32b...
pulling manifest