2025年2月4日 星期二

Windows 本地部署 DeepSeek 模型(使用 Ollama)

在本機部署 deepseek-r1 模型。

環境:
作業系統 Windows 10、
CPU AMD Ryzen 7 3700X、
記憶體 32G、
顯示卡 NVIDIA GeForce GTX 1660 Ti 6G


安裝 Ollama

Ollama (https://ollama.com) 是一個開放原始碼專案,方便在本機部署執行 AI 模型。
支援的 AI 模型,可從 https://ollama.com/library 查看。

  1. https://ollama.com/download 查看各作業系統的安裝方法。
    Windows 是下載安裝檔(OllamaSetup.exe)進行安裝。








  2. 安裝完,會自動執行,在工作列通知區域(小圖示)可以看到執行中的 Ollama,在圖示上案右鍵,可執行 Quit Ollama,關閉退出 Ollama


    關閉 Ollama 後,要再啟動。
    可以從開始功能表,找到 Ollama 執行 (執行後,會出現在工作列通知區域小圖示)。


    或是使用 cmd 命令列,用指令執行 (執行後,退出指令,就會停止)
    >ollama serve


    Ollama 執行後,會使用 11434 PORT
    瀏覽器瀏覽 http://127.0.0.1:11434/
    可看到 「Ollama is running」

    Ollama 的 REST API,便是使用這個網址


  3. Ollama 指令操作
    查看 Ollama 版本
    >ollama -v
    ollama version is 0.5.7

    看 Ollama 可用指令
    >ollama -h
    Large language model runner
    
    Usage:
      ollama [flags]
      ollama [command]
    
    Available Commands:
      serve       Start ollama
      create      Create a model from a Modelfile
      show        Show information for a model
      run         Run a model
      stop        Stop a running model
      pull        Pull a model from a registry
      push        Push a model to a registry
      list        List models
      ps          List running models
      cp          Copy a model
      rm          Remove a model
      help        Help about any command
    
    Flags:
      -h, --help      help for ollama
      -v, --version   Show version information
    
    Use "ollama [command] --help" for more information about a command.

    部署 deepseek-r1
    https://ollama.com/library/deepseek-r1 查看可用版本,有 1.5b(billion)參數 ~ 671b(billion)參數各版本
    參數量越大、模型容量越大、執行須更好的硬體 (我同一台電腦,裝了 1.5B、7B、8B,三者執行速度有明顯差異)

    下載 7b 版本
    >ollama pull deepseek-r1:7b
    pulling manifest
    pulling 96c415656d37... 100% ▕██████████████████████████████████████████████████████████████████▏ 4.7 GB
    pulling 369ca498f347... 100% ▕██████████████████████████████████████████████████████████████████▏  387 B
    pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████████████████████████████████▏ 1.1 KB
    pulling f4d24e9138dd... 100% ▕██████████████████████████████████████████████████████████████████▏  148 B
    pulling 40fb844194b2... 100% ▕██████████████████████████████████████████████████████████████████▏  487 B
    verifying sha256 digest
    writing manifest
    success

    執行 1.5b 版本 (若沒下載過,會先下載再執行)
    >ollama run deepseek-r1:1.5b
    pulling manifest
    pulling aabd4debf0c8... 100% ▕█████████████████████████████████████████████████████████████████████▏ 1.1 GB
    pulling 369ca498f347... 100% ▕█████████████████████████████████████████████████████████████████████▏  387 B
    pulling 6e4c38e1172f... 100% ▕█████████████████████████████████████████████████████████████████████▏ 1.1 KB
    pulling f4d24e9138dd... 100% ▕█████████████████████████████████████████████████████████████████████▏  148 B
    pulling a85fe2a2e58e... 100% ▕█████████████████████████████████████████████████████████████████████▏  487 B
    verifying sha256 digest
    writing manifest
    success
    >>> Send a message (/? for help)

    執行後,便可以輸入文字開始對話互動
    >>> 你是誰
    <think>
    
    </think>
    
    您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。
    
    >>> Send a message (/? for help)

    查看互動時,可用指令
    >>> /?
    Available Commands:
      /set            Set session variables
      /show           Show model information
      /load <model>   Load a session or model
      /save <model>   Save your current session
      /clear          Clear session context
      /bye            Exit
      /?, /help       Help for a command
      /? shortcuts    Help for keyboard shortcuts
    
    Use """ to begin a multi-line message.

    可知要退出對話,可以用 /bye 指令
    >>> /bye


    其他指令:
    目前 Ollama 已下載的模型
    >ollama list
    NAME                ID              SIZE      MODIFIED
    deepseek-r1:7b      0a8c26691023    4.7 GB    3 days ago
    deepseek-r1:8b      28f8fd6cdc67    4.9 GB    3 days ago
    deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    3 days ago
    目前執行的模型(可看到 CPU/GPU 使用比例)
    >ollama ps
    NAME                ID              SIZE      PROCESSOR    UNTIL
    deepseek-r1:1.5b    a42b25d8c10a    2.0 GB    100% GPU     4 minutes from now
    
    >ollama ps
    NAME              ID              SIZE      PROCESSOR          UNTIL
    deepseek-r1:7b    0a8c26691023    5.9 GB    26%/74% CPU/GPU    4 minutes from now





安裝 Open WebUI


用指令跟 AI 互動不怎麼方便,以下安裝 Open WebUI 網頁互動介面。
Open WebUI (https://github.com/open-webui/open-webui) 可經由 Python 套件管理工具或用 Docker 安裝。

這邊用官方推薦的 uv 套件管理工具

  1. 安裝 Python uv 套件管理工具 ( https://docs.astral.sh/uvhttps://github.com/astral-sh/uv )
    這個指令用 cmd 指令視窗就可執行安裝
    > powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    Downloading uv 0.5.27 (x86_64-pc-windows-msvc)
    Installing to C:\Users\帳號\.local\bin
      uv.exe
      uvx.exe
    everything's installed!
    
    To add C:\Users\帳號\.local\bin to your PATH, either restart your shell or run:
    
        set Path=C:\Users\帳號\.local\bin;%Path%   (cmd)
        $env:Path = "C:\Users\帳號\.local\bin;$env:Path"   (powershell)
    安裝完,會將「C:\Users\帳號\.local\bin」路徑加入系統環境變數,
    裡面有 uv.exe、uvx.exe 兩個執行檔。(uvx 是 uv tool run 的別名)


  2. 新開一個 cmd 指令視窗,新加入的環境變數,在新開的命令列才會生效。
    查看系統可安裝以及已安裝的 Python 版本(列表中 3.13.1、3.11.9 是我之前另外裝的)。
    > uv python list
    cpython-3.14.0a4+freethreaded-windows-x86_64-none    <download available>
    cpython-3.14.0a4-windows-x86_64-none                 <download available>
    cpython-3.13.1+freethreaded-windows-x86_64-none      <download available>
    cpython-3.13.1-windows-x86_64-none                   AppData\Local\Programs\Python\Python313\python.exe
    cpython-3.13.1-windows-x86_64-none                   <download available>
    cpython-3.12.8-windows-x86_64-none                   <download available>
    cpython-3.11.11-windows-x86_64-none                  <download available>
    cpython-3.11.9-windows-x86_64-none                   AppData\Local\Programs\Python\Python311\python.exe
    cpython-3.10.16-windows-x86_64-none                  <download available>
    cpython-3.9.21-windows-x86_64-none                   <download available>
    cpython-3.8.20-windows-x86_64-none                   <download available>
    cpython-3.7.9-windows-x86_64-none                    <download available>
    pypy-3.10.14-windows-x86_64-none                     <download available>
    pypy-3.9.19-windows-x86_64-none                      <download available>
    pypy-3.8.16-windows-x86_64-none                      <download available>
    pypy-3.7.13-windows-x86_64-none                      <download available>
    


  3. 用 uvx 指令在 powershell 執行 Open WebUI
    $env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
    開啟 powershell,此指令需 powershell 才能執行

    指令中:

    DATA_DIR,指定資料儲存的目錄,包括上傳、快取、向量資料庫等
    https://docs.openwebui.com/getting-started/env-configuration/

    --python 3.11,目前的 Open WebUI 開發環境是 Python 3.11,所以指定使用  Python 3.11
    https://docs.openwebui.com/#installation-with-pip
    (官網說明:Python 3.11 is the development environment. Python 3.12 seems to work but has not been thoroughly tested. Python 3.13 is entirely untested—use at your own risk.)
    初次執行,會自動下載安裝需要的套件,需一點時間


  4. 執行成功

    打開瀏覽器瀏覽
    http://127.0.0.1:8080/


  5. 新增管理者帳號


  6. 登入後,會自動抓到 Ollama 安裝的模型,上方可以選擇要使用的模型。
    中間對話框,可開始對話。






其他:
原本我電腦已經有安裝 Python 3.11.9,若只指定用 3.11 執行,會直接使用 3.11.9
如果想用新的 3.11.11,須明確指定 3.11.11
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11.11 open-webui@latest serve
如此,便會再自動安裝 Python 3.11.11
>uv python list
cpython-3.14.0a4+freethreaded-windows-x86_64-none    <download available>
cpython-3.14.0a4-windows-x86_64-none                 <download available>
cpython-3.13.1+freethreaded-windows-x86_64-none      <download available>
cpython-3.13.1-windows-x86_64-none                   AppData\Local\Programs\Python\Python313\python.exe
cpython-3.13.1-windows-x86_64-none                   <download available>
cpython-3.12.8-windows-x86_64-none                   <download available>
cpython-3.11.11-windows-x86_64-none                  AppData\Roaming\uv\python\cpython-3.11.11-windows-x86_64-none\python.exe
cpython-3.11.9-windows-x86_64-none                   AppData\Local\Programs\Python\Python311\python.exe
cpython-3.10.16-windows-x86_64-none                  <download available>
cpython-3.9.21-windows-x86_64-none                   <download available>
cpython-3.8.20-windows-x86_64-none                   <download available>
cpython-3.7.9-windows-x86_64-none                    <download available>
pypy-3.10.14-windows-x86_64-none                     <download available>
pypy-3.9.19-windows-x86_64-none                      <download available>
pypy-3.8.16-windows-x86_64-none                      <download available>
pypy-3.7.13-windows-x86_64-none                      <download available>






沒有留言:

張貼留言