问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ollama下载很慢?这个小技巧帮你大幅提升下载速度

创作时间:
作者:
@小白创作中心

ollama下载很慢?这个小技巧帮你大幅提升下载速度

引用
CSDN
1.
https://blog.csdn.net/CaliXz/article/details/145548090

在使用ollama下载模型时,你是否遇到过下载速度缓慢的问题?本文将为你介绍一个简单而有效的解决方案,通过编写自动化脚本,利用ollama的断点续传特性,大幅提升下载速度。

原理

在使用ollama的过程中,作者发现了一个有趣的现象:当运行ollama pull deepseek-r1:7bollama run deepseek-r1:7b时,下载速度会先有一个短暂的高速期(例如3MB/s),持续几十秒后才会回落到正常速度(如800KB/s)。因此,通过不断重启下载命令,可以持续利用这个高速期来加速下载。

实现

基于上述原理,我们可以编写一个简单的脚本,让系统自动重复执行下载命令。以下是针对不同平台的实现方案:

Windows CMD版本

将以下代码保存为.bat文件,双击即可运行:

@echo off
echo Starting Ollama auto-restart script...
:loop
start /B ollama pull deepseek-r1:7b ::这里切换你自己的下载语句,此处是pull deepseek-r1:7b
timeout /t 60 /nobreak
for /f "tokens=2 delims=," %%a in ('tasklist /FI "IMAGENAME eq ollama.exe" /FO CSV /NH') do set CMD_PID=%%a
if defined CMD_PID (
    echo Stopping Ollama process %CMD_PID%
    taskkill /PID %CMD_PID% /F
)
goto loop

Windows PowerShell版本

将以下代码保存为.ps1文件,右键选择"使用PowerShell运行":

while ($true) {
    $process = Start-Process -NoNewWindow -PassThru -FilePath "ollama" -ArgumentList "pull deepseek-r1:7b"
    Write-Host "Started Ollama with PID: $($process.Id)"
    
    Start-Sleep -Seconds 60
    
    if (-Not $process.HasExited) {
        Write-Host "Stopping Ollama process..."
        Stop-Process -Id $process.Id -Force
    }
}

macOS/Linux版本

将以下代码保存为.sh文件,然后赋予执行权限并运行:

#!/bin/bash
echo "Starting Ollama auto-restart script..."
while true; do
    timeout 60 ollama run deepseek-r1:7b &
    CMD_PID=$!
    echo "Started Ollama with PID: $CMD_PID"
    
    sleep 60
    if ps -p $CMD_PID > /dev/null; then
        echo "Stopping Ollama process..."
        kill -9 $CMD_PID
        wait $CMD_PID 2>/dev/null
    fi
done

使用步骤:

  1. 给脚本赋予执行权限(只需执行一次)
    chmod +x restart_ollama.sh
    
  2. 双击 restart_ollama.sh 运行 或者 在终端运行:
    ./restart_ollama.sh
    

其他尝试

有用户尝试通过使用代理来进一步加速下载,发现在某些情况下可以达到17MB/s的下载速度。但是这种方法的效果并不稳定,且可能涉及复杂的网络配置,因此不建议普通用户尝试。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号