本質上講,Ollama 和 Hugging Face Transformers 使用的「大腦」(模型權重和架構)通常完全相同。
例如,如果您分別透過 Ollama 和 Hugging Face 下載 Llama 3,它們都源自於 Meta 發布的相同數學檔案。然而,Ollama 和 Hugging Face Transformers 在軟體生態系統中扮演著截然不同的角色。
1) 用途(消費者 vs. 建構者) Ollama 是一個「運行器」(應用程式),您可以將 Ollama 想像成一台遊戲機(例如 PlayStation),你只想玩遊戲(運行模型),您無需擔心圖形驅動程式、記憶體管理或遊戲背後的程式碼。
Ollama 將模型封裝在一個簡潔易用的伺服器中,該伺服器會自動處理所有繁重的技術工作。
Hugging Face Transformers 則是一個「庫」(工具箱),你可以將 Hugging Face 想像成遊戲引擎(例如 Unity 或 Unreal Engine),它允許你直接存取代碼,你可以拆解模型、更改其學習方式、進行微調,或從頭開始建立一個全新的應用程式,它需要你編寫 Python 程式碼來處理記憶體、標記化和裝置配置(CPU 與 GPU)。
2) 優化(GGUF 與原始權重) 這是影響你個人電腦效能的最大技術差異。
Ollama 幾乎完全使用 GGUF 格式的模型。什麼是 GGUF?它是一種壓縮模型(量化)的技術,它將通常需要 32GB 記憶體的大型模型縮小,使其可以在配備 8GB 或 16GB 記憶體的標準筆記型電腦上運行。而且,更好的是,Ollama 會自動將圖層卸載到您的 GPU 和 CPU 上,以使其在消費級硬體上盡可能快速運作。
Hugging Face Transformers(使用原始精度):預設情況下,HF 會以其原始的龐大尺寸(Float16 或 Float32)載入模型,如果你嘗試在普通筆記型電腦上透過 Hugging Face 載入 Llama-3-70b,除非您編寫特定的程式碼對其進行壓縮(使用 bitsandbytes 或類似的函式庫),否則您的電腦很可能會崩潰(記憶體不足)。
3) 易用性(“Hello World”測試) 就Ollama而言,你只需在終端機中輸入指令:ollama run llama3,即可在 30 秒內開始聊天。而Hugging Face Transformers,你必須編寫 Python 腳本,管理依賴項,並分別處理分詞器和模型。
換言之,假設你想設定一個個人化投資分析器,該使用 Ollama(以及 LangChain),這是由於您的目標是建立一個能夠回答有關投資問題的應用程序,因此 Ollama 是更好的選擇,原因它會自動處理記憶體管理,且慢在本地筆記型電腦或桌上型電腦上運行速度更快,更好用的是,它提供了一個 LangChain 可以輕鬆連接的伺服器。
只有當你想要訓練模式永久學習特定的金融語言,而不僅僅是讀取 PDF 檔案時,才應該切換到 Hugging Face Transformers 。