2025年11月29日 星期六

Docker Windows 安裝(二)

Docker Windows 安裝(二):

安裝 Docker 的方法取決於作業系統:在 Windows 上,下載並運行 Docker Desktop 安裝程式,確保已安裝並啟用 WSL 2;在 macOS 上,下載 Docker Desktop for Mac 的 .dmg 檔並拖動 Docker 圖示到應用程式檔案夾。在 Linux 發行版本如 Ubuntu 上,需要按照官方倉庫的步驟進行,包括更新系統、安裝依賴、添加 GPG 金鑰和倉庫,然後安裝 Docker 包。

下載連結:https://www.docker.com/products/docker-desktop/

1. 到 Docker 官方網站下載並開始安裝

到 Docker 官方網站下載並開始安裝

2. 點擊 Download 按鈕,根據自已的操作系統,選擇下載適合的 Desktop 版本

筆者是使用 Windows 11 操作系統,所以選擇下載 Download for Windows– AMD64

下載 Download for Windows– AMD64
然後點擊 Docker Desktop Installer,並開始進行安裝
Docker Configuration
Unpacking Docker File
Docker Desktop 4.43.2 完成安裝
Docker Subscription Service Agreement
可能需要安裝 WSL

安裝 WSL
安裝 WSL 完成
設定 Docker
Welcome to WSL


2025年 11月 29日(Sat)天氣報告
氣溫:41.0°F / 5.0°C @ 07:00
風速:每小時 10公里
降雨機會:10%
相對濕度:百分之 90%
天氣:多雲

2025年11月28日 星期五

Docker 介紹(一)

Docker 介紹(一):

Docker 是 dotCloud 公司於 2013 年推出的開源專案。同年 dotCloud 公司也更名為 Docker 公司。Docker 是一款開源軟體平台,核心理念為「Build and Ship Any Application Anywhere」,致力於協助開發者在虛擬環境中快速開發、運行和分享應用程式,Docker 通過容器化技術實現了應用程式的獨立性和可移植性,讓開發者和運維人員可以更加便捷地進行應用程式的開發、部署和運維。
Docker

Docker 的四個基本概念:
  • Dockerfile
Dockerfiles 類似一張紙,列出所有需要預先執行的指令。
Docker Image 會根據 Dockerfile 建立一個模板。
  • 映像檔 (Image)
Docker Image就是一個模板 Images 可以用來建立 Docker Container。
用來建立 Container 所需的應用程式環境,是一個唯獨的檔案,概念類似 VM 的 ISO 檔。
  • 容器 (Container)
Container 是從 Images 建立的環境,類似從 Image 解壓縮,Docker 利用 Container 來執行需要的 App,可以被啟動、開始、停止、刪除,每個 Container 都是相互獨立、隔離的。 Container 是由 Image 所建立執行的實例,可以被啟動、開始、停止、刪除。一個 Image 可以創建多個 Container,每個 Container 都是獨立運作、不互相影響。
  • 倉庫 (Repository)
Repository 是存放 Images 的地方,就是倉庫或資料夾,如 ros,每個 Repo 中可以包含了多個 Images。
每個 Repo 中的 Images 可以有不同的 tag,如 ros:noetic,ros:kinetic ,分為 Public 和 Private 兩種形式,大家可以把自己的 Images 傳到 Docker hub 上並分成各個 Repo。

用來管理 Repository 的場所,概念類似 Github。Repository 是指各種版本或標籤的 Images 集合,這些 Images 利用 tag 來區分。

Repository 分為公開倉庫 (Public) 以及私有倉庫 (Private),目前最大的 Public Repository 為 Docker Hub;若需要用於自己測試或是公司內部使用的倉庫,則可以創建 Private Repository。
Docker
Docker

使用 Docker 來運行 Ollama 可以提供許多優點,包括簡化設置、可攜性、隔離、資源管理、可擴展性和可重複性。可以把 Ollama 變成一個 API 服務,提供其他的應用程式直接使用API的方式來呼叫Ollama,並運行不同的本地端模型。而把Ollama變為一個Docker服務,更可以在多台機器上分發 Ollama 模型。這對於需要在高可用性環境中運行 Ollama 的情況非常有用。

以下是一些使用 Docker 運行 Ollama 的具體示例:
  • 在您的本地機器上開發和測試 Ollama 模型: Docker 允許您在本地機器上設置一個隔離的環境來開發和測試 Ollama 模型。這可以幫助您確保模型在部署到生產環境之前按預期工作。
  • 在生產環境中部署 Ollama 模型: Docker 可用於在生產環境中部署 Ollama 模型。您可以使用 Docker 映射來創建和管理 Ollama 服務器,這些服務器可以提供對模型的 API 訪問。
  • 在多台機器上分發 Ollama 模型: Docker 可用於在多台機器上分發 Ollama 模型。這對於需要在高可用性環境中運行 Ollama 的情況非常有用。
其中最重要好處的會是第三點,當我們把本地端LLM視為一個 API 服務,便可以對此服務做平衡負載,並根據使用量來增加機器,擴張服務的 Scale,讓整體服務具備有良好的擴充性。

2025年 11月 28日(Fri)天氣報告
氣溫:48.0°F / 9.0°C @ 07:00
風速:每小時 11公里
降雨機會:0%
相對濕度:百分之 80%
天氣:大致睛朗

2025年10月31日 星期五

Ollama Windows 安裝(二)

Ollama Windows 安裝(二):

Ollama 的安裝步驟相對簡單。 首先你需要前往 Ollama 的官方網站 下載適用於你操作系統的安裝程式。 下載完成後,執行安裝程式,並依照指示完成安裝。 安裝完成後,你可以開啟終端機或命令提示字元,輸入 ollama --version 來驗證是否安裝成功。

Ollama
1. 下載 Ollama 安裝程式:
  • 前往 Ollama 的官方網站。 https://ollama.com/download
  • 選擇與你操作系統相符的安裝程式(例如 Windows、macOS 或 Linux)並下載。
  • 對於 Windows 用戶,通常會下載 OllamaSetup.exe。

Download Ollama Windows 版本
2. 安裝 Ollama:
  •  下載完成後,雙擊安裝程式,並依照指示完成安裝。

下載完成後,雙擊安裝程式

  • Windows 系統通常會預設安裝到 C:\Users\%username%\AppData\Local\Programs\Ollama。

Ollama Windows 安裝

  • 安裝過程中,Ollama 可能會在右下角出現圖標,此時可以先右鍵點擊「Quit Ollama」退出,以便後續進行環境配置。

Ollama Windows 安裝進行中
Ollama Windows 成功安裝
3. 驗證安裝:
  • 開啟終端機或命令提示字元。
  • 輸入 ollama --version 並按下 Enter 鍵。
  • 如果顯示版本號,則表示 Ollama 安裝成功。

驗證安裝
安裝 LLM
4. (可選)更改模型存放路徑:library https://ollama.com/library
  • Ollama 預設將模型檔案存放在C 盤,如果 C 盤空間不足,可以更改模型存放路徑。
  • 在系統環境變數中,新增一個名為 OLLAMA_MODELS 的變數,並設定為你想要存放模型檔案的路徑。
  • 設定完成後,需要重新啟動 Ollama 才能生效。


5. (可選)關閉開機自啟動:
  • Ollama 預設會隨 Windows 自動啟動,如果不想每次都自動啟動,可以在檔案資源管理器的路徑中,找到 C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup, 並刪除其中的 Ollama.lnk 快捷方式檔。


6. 安裝模型並使用:
  • Ollama 安裝完成後,就可以開始安裝和使用模型了。 具體步驟可以參考官方文檔或者相關教程。

使用 Ollama


Ollama CLI 基本指令:

1、使用方法
  • ollama [flags]:使用標誌(flags)運行 ollama。
  • ollama [command]:運行 ollama 的某個具體命令。

指令

功能

使用方法

serve

啟動Ollama服務,使模型可以運行和交互。

ollama serve

create

使用Modelfile創建一個新模型

ollama create <model_name> -f <Modelfile>

show

顯示特定模型的詳細資訊,如模型名稱、版本等

ollama show <model_name>

run

運行一個已安裝的模型,執行某些任務

ollama run <model_name>

stop

停止一個正在運行的模型

ollama stop <model_name>

list

列出本地所有可用的模型,可以在這裡查找模型名稱

ollama list

pull

從遠端模型倉庫拉取一個模型到本地

ollama pull <model_name>

push

將本地模型推送到遠端模型倉庫,以便他人或其他系統使用

ollama push <model_name>

ps

列出所有正在運行的模型

 

cp

複製一個模型到另一個位置或給定名稱的地方

ollama cp <source_model> <destination_model>

rm

刪除一個已安裝的模型,釋放存儲空間

ollama rm <model_name>

version

顯示當前Ollama工具的版本資訊

ollama -v

ollama --version



總結:
Ollama 的安裝過程相對簡單,只需下載安裝程式並依照指示完成安裝即可。 如果需要,可以更改模型存放路徑,並關閉開機自啟動功能。 安裝完成後,就可以開始使用Ollama 來體驗各種模型了。


2025年 10月 31日(Fri)天氣報告
氣溫:45.0°F / 7.0°C @ 07:00
風速:每小時 10公里
降雨機會:10%
相對濕度:百分之 91%
天氣:多雲

2025年10月30日 星期四

Ollama介紹(一)

Ollama 介紹(一):

Ollama 是由 Meta 公司(原 Facebook 公司)在 2023 年基于 Go 语言开发開發的一個開源、輕量級且高效的大型語言模型(LLM)運行框架,旨在簡化在本地環境中運行和管理大型語言模型的過程。它支援多種開源的大型語言模型,不但可以運行由 Meta(原 Facebook 公司)发布的一系列大型语言模型 Llama(Large Language Model Meta AI),還可以運行其它的 LLM 如 Microsoft Phi-3、Mistral、Gemma、DeepSeek 等等,並且可以支持 macOS、Linux 和 Windows 操作系统。

Ollama

Ollama 的特點與優勢:

  1. 多種預訓練語言模型支援
    •   Ollama提供了多種的預訓練模型,包括常見的 GPT、BERT 等大型語言模型。 用戶可以輕鬆載入並使用這些模型進行文本生成等任務。
  2. 易於集成和使用
    • Ollama提供了命令行工具(CLI)和 Python SDK,簡化了與其他專案和服務的整合。 開發者無需擔心複雜的依賴或配置,可以快速將 Ollama 集成到現有的應用中。
  3. 本地部署與離線使用
    • 不同於一些基於雲的 NLP 服務,Ollama 允許開發者在本地計算環境中運行模型。 這意味著可以脫離對外部伺服器的依賴,保證數據隱私,並且對於高併發的請求,離線部署能提供更低的延遲和更高的可控性。
  4. 支援模型微調與自定義
    • 用戶不僅可以使用 Ollama 提供的預訓練模型,還可以在此基礎上進行模型微調。 根據自己的特定需求,開發者可以使用自己收集的數據對模型進行再訓練,從而優化模型的性能和準確度。
  5. 性能優化
    • Ollama 關注性能,提供了高效的推理機制,支援批量處理,能夠有效管理記憶體和計算資源。 這讓它在處理大規模數據時依然保持高效。
  6. 跨平台支援
    • Ollama 支援在多個操作系統上運行,包括 Windows、macOS 和 Linux。 這樣無論是開發者在本地環境調試,還是企業在生產環境部署,都能得到一致的體驗。
  7. 開放源碼與社區支援
    • Ollama 是一個開源專案,這意味著開發者可以查看原始程式碼,進行修改和優化,也可以參與到專案的貢獻中。 此外,Ollama 有一個活躍的社區,開發者可以從中獲取説明並與其他人交流經驗。
  8. 靈活性與可定制性
    • 用戶可以根據自己的需求自定義模型行為,調整系統提示詞、模型推理溫度、上下文窗口長度等參數。

2025年 10月 30日(Thu)天氣報告
氣溫:45.0°F / 7.0°C @ 07:00
風速:每小時 11公里
降雨機會:10%
相對濕度:百分之 94%
天氣:多雲

2025年9月30日 星期二

人工智能大型語言模型訓練與微調(三)

人工智能大型語言模型訓練與微調(三):

LLM 模型預訓練(Pre-training)與微調(Fine-tuning)

LLM(Large Language Model /大型語言模型)通常經過兩個階段的訓練, 預訓練和微調。預訓練階段,LLM 在海量文本資料上進行無監督學習,學習語言的通用知識和模式。微調階段,在特定任務的資料集上對預訓練模型進行微調,使其更好地適應特定任務。

模型預訓練(Pre-training)訓練流程(圖片來源:截取自互聯網網頁)

LLM 模型預訓練(Pre-training)

預訓練 - 其目標在於使模型掌握語言的統計模式與語義資訊。主流的預訓練階段流程大致相同,其中關鍵要素是資料,需收集海量無標注資料,像互聯網上的文本、新聞、博客、論壇等。這些資料可以涵蓋多種語言,且要經過一定的清理和處置,去除雜訊、無關資訊以及涉及個人隱私的內容,它使模型能夠根據上下文中不同詞語(Tokens 詞元)的重要性來權衡輸入序列中每個詞語的重要性。最後以 Tokenizer 細微性輸入到前述的語言模型中。經清洗處理後的這些資料用於訓練和優化語言模型。在預訓練過程中,模型會習得詞彙、句法和語義的規律以及上下文的關係。

資料收集 – 預訓練語料有兩種來源, 通用語料和專業語料, 資料收集完後需要對這些資料進行預處理,包括去噪、去冗餘、去除不相關和潛在的錯誤資料。

基礎大模型訓練 - 由於模型參數量和所使用的資料量巨大,所以普通伺服器單機無法完成訓練過程,因此通常採用分散式架構完成訓練 。

LLM 模型預訓練(Pre-training)與微調(Fine-tuning)

指令微調 - 在完成預訓練後,就可以通過指令微調去挖掘和增強語言模型本身具備的能力,這步也是很多企業以及科研研究人員利用大模型的重要步驟。為了讓模型訓練更加高效和簡單,這個階段還有一種高效的 fine-tuning 技術,這為普通的從業者打開了通向使用大模型的捷徑。大模型高效微調(Parameter-Efficient Fine-Tuning, PEFT)。工業界常用的 Adapter Tuning 的技術是 Low-Rank Adaptation(LoRA)。使得在大規模預訓練模型上進行微調更加高效和可行,為實際應用提供了更多可能性。

類人對齊 – 由於模型輸出的結果與人類回答差距很大,因此需要進一步優化模型,使模型的輸出與人類習慣對齊。其中 OpenAI 開發 ChatGPT 的人類回饋強化學習是最具代表性也是最成功的 。

獎勵建模 – 獎勵建模(Reward Modeling)階段的目標是構建一個文本品質對比模型,對於同一個提示詞,SFT 模型給出的多個不同輸出結果的品質進行排序。

強化學習 - 強化學習(Reinforcement Learning)階段根據數十萬使用者給出的提示詞,利用前一階段訓練的 RM 模型,給出 SFT 模型對使用者提示詞補全結果的品質評估,並與語言模型建模目標綜合得到更好的效果。

LLM 模型預訓練(Pre-training)與微調(Fine-tuning)(圖片來源:截取自互聯網網頁)

預訓練與微調:
  • LLM 通常經過兩個階段的訓練:預訓練和微調。
  • 預訓練階段,LLM 在海量文本資料上進行無監督學習,學習語言的通用知識和模式。
  • 微調階段,在特定任務的資料集上對預訓練模型進行微調,使其更好地適應特定任務。

核心能力:

LLM 的核心能力包括生成(生成文本)、總結(文本摘要)、提取(資訊抽取)、分類(文本分類)、檢索(資訊檢索)和改寫(文本改寫)等。
生成是 LLM 最核心的能力,能夠生成連貫、自然的文本內容。

應用場景:

˙ LLM 的應用非常廣泛,包括但不限於:
  • 文本生成:創作各種類型的文本,如文章、代碼、故事等。
  • 語言翻譯:實現不同語言之間的互譯。
  • 問答系統:根據使用者提問提供準確的答案。
  • 情感分析:判斷文本的情感傾向。
  • 信息抽取:從文本中提取關鍵資訊。
  • 代碼生成:根據自然語言描述生成代碼。

總結:
LLM 的核心在於深度學習和 Transformer 架構,通過海量資料訓練,學習語言的模式和結構,從而實現各種自然語言處理任務。這種技術在文本生成、語言翻譯、問答系統等領域具有廣泛的應用前景,並且還在不斷發展和完善中。目前 LLM 最大的缺點是產生幻覺 (Hallucination) 嚴重,經常會產生無中生有的回復,如果你沒有對應的專業知識,很容易被帶偏。所以如果你要用於工作、教育等嚴肅場景,人工二次校驗是必要的。幻覺短期內是無法消除的,連 LLM 的泛化能力也跟幻覺有關。為瞭解決 LLM 回覆準確性的問題,RAG 技術被廣泛應用。另外還有一些問題:訓練資訊更新不及時、邏輯能力差、推理速度慢和安全性方面等。

2025年 9月 30日(Tue)天氣報告
氣溫:56.0°F / 13.0°C @ 07:00
風速:每小時 6公里
降雨機會:0%
相對濕度:百分之 93%
天氣:晴朗有雲