前一篇 Lesson 028:CUDA 講的是「怎麼讓 AI 軟體真正使用 GPU」。
接下來自然會遇到另一個問題:
模型到底去哪裡找?
很多 AI README 會直接寫:
model="some-organization/some-model"
接著程式自己下載一大堆檔案。
這時你很可能已經走進 Hugging Face 的生態。
Hugging Face 不是一個模型
Hugging Face 是一家提供 AI 開發平台與開源工具的公司,而大家最常接觸的是 Hugging Face Hub。
可以把 Hub 想成一座大型 AI 圖書館。
每一本「書」可能是一個模型 repository,裡面放著:
- 模型權重
- 模型設定
- Tokenizer
- 使用範例
- Model Card
- 授權條款
- 版本紀錄
另外也有 Dataset、Space 等其他類型的資源。
所以別人說「這個模型在 Hugging Face 上」,通常是指它在 Hub 上有一個 repository。
模型頁面的名字為什麼長這樣?
常見格式:
organization/model-name
例如:
distilbert/distilgpt2
前半段像帳號或組織名稱,後半段是 repository 名稱。
這很像 GitHub 的:
owner/repository
上一篇 Lesson 027:Git 與 GitHub 已經提過 repository 是一個被版本管理的專案單位;Hugging Face Hub 也用 repository 來管理模型與相關檔案。
Model Card 是最不該跳過的頁面
打開模型頁面時,先不要急著複製程式碼。
模型卡(Model Card) 通常會說明:
- 模型用途
- 建議使用方式
- 訓練背景
- 限制
- 評估結果
- 授權
- 可能的風險
看到模型能下載,不代表你就能在任何商業情境隨便用。
Lesson 025 已經提過:Open-weight 不等於完全沒有限制,權重可下載仍然要看 License。
Model Card 就是你最先該看的地方之一。
Transformers 又是什麼?
Hugging Face 維護一套非常常見的 Python 函式庫:Transformers。
它把很多模型架構、Tokenizer、下載與推論流程包成一致的介面。
因此你不需要每遇到一個模型就從零寫載入程式。
安裝時常看到:
python -m pip install transformers torch
這一行在 Terminal 執行。
上一篇 Python 文章已經解釋過 pip install:這裡是在目前 Python 環境安裝 transformers 與 torch 兩個套件。
其中:
transformers:Hugging Face 的模型介面工具。torch:PyTorch 深度學習框架。
最簡單的 pipeline() 在做什麼?
官方文件常用高階的 pipeline() 讓你快速推論。
例如:
from transformers import pipeline
generator = pipeline(
"text-generation",
model="distilbert/distilgpt2"
)
result = generator("AI is becoming", max_new_tokens=20)
print(result[0]["generated_text"])
不要只複製,逐段看。
第一行
from transformers import pipeline
從 transformers 套件載入 pipeline 功能。
建立 generator
generator = pipeline(
"text-generation",
model="distilbert/distilgpt2"
)
這裡告訴 Transformers:
- 任務是
text-generation,也就是文字生成。 - 想使用的模型 repository 是
distilbert/distilgpt2。
第一次執行時,函式庫通常會從 Hub 取得需要的模型與設定檔並快取在本機。
真正產生文字
result = generator("AI is becoming", max_new_tokens=20)
把文字 AI is becoming 送進模型,並要求最多再產生 20 個新 Token。
Lesson 004:Token 的一句話 recap:Token 是模型處理文字時使用的小單位,不一定等於一個完整中文字或英文單字。
印出結果
print(result[0]["generated_text"])
result 通常是有結構的 Python 資料。這裡取第一筆結果,再取得 generated_text 欄位。
pipeline 幫你藏掉了哪些工作?
短短幾行看起來很神,但底下其實做了不少事情:
- 找到模型 repository
- 下載需要的檔案
- 讀模型設定
- 載入模型權重
- 載入 Tokenizer
- 把文字轉成 Token
- 執行模型
- 把輸出 Token 轉回可讀文字
這就是高階函式庫的價值:不是沒有複雜度,而是把常見複雜度包起來。
Tokenizer 為什麼和模型要一起下載?
Lesson 004 已經講過 Token。
真正執行模型時,文字不能直接以「你看到的句子」形式進神經網路。
通常需要 Tokenizer 把文字切分、映射成 Token ID,再交給模型。
不同模型可能使用不同的 Tokenizer、特殊 Token、聊天模板。
所以不能隨便拿 A 模型的 Tokenizer 配 B 模型,除非文件明確說它們相容。
from_pretrained() 是什麼?
當你想要比 pipeline() 更細的控制,常看到:
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "distilbert/distilgpt2"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
這段不是在「訓練模型」。
from_pretrained() 的直覺是:
載入一套已經預先訓練好的模型或 Tokenizer 資源。
- 第一個
from_pretrained載入 Tokenizer。 - 第二個載入適合因果語言模型的模型架構與權重。
之後才可以自行控制 Tokenization、Generation 參數、裝置等細節。
Hugging Face 和 Local LLM 有什麼關係?
Hugging Face Hub 常被拿來當模型與權重的發佈來源。
但「模型在 Hugging Face」不代表「只能用 Transformers 跑」。
同一個模型家族可能還有:
- Transformers 格式
- GGUF 量化版本
- 不同精度
- 不同推論框架支援格式
Lesson 025 的 Local LLM 可以透過很多不同工具執行,而 Hugging Face 更像是其中一個常見的模型來源與發布平台。
Dataset 又是什麼?
Hub 不只放模型,也有 資料集(Dataset)。
資料集可能包含:
- 文字分類資料
- 對話資料
- 圖片與標籤
- 語音
- 評測資料
之後談模型訓練、Fine-tuning、Benchmark 時,Dataset 會變得非常重要。
但同樣要注意授權、個資、資料來源與使用限制。
下載最多的模型就一定最好嗎?
不一定。
模型選擇至少要看:
- 任務
- 語言
- 參數量
- VRAM
- License
- Context
- 模型是否為 Base / Instruct
- 評測資料是否符合你的情境
不能只看下載數或排行榜。
一句話帶走
Hugging Face Hub 像 AI 世界的大型圖書館;Transformers 則是一套幫你讀取與使用館藏模型的 Python 工具。真正使用前,除了會 from_pretrained(),更要會看 Model Card、Tokenizer、授權與模型格式。
留言
有想法、疑問或想補充的地方,都可以留在這裡。
還沒有留言,來當 1F 吧。