← 返回首頁
LESSON 029AI 開發12 分鐘

Hugging Face 是什麼?為什麼找模型、資料集、Tokenizer 與範例程式時大家都會去那裡

第 29 篇把 Hugging Face Hub、Transformers、Model Card、Tokenizer、權重與 Dataset 串起來,並用最小 Python 範例解釋 pipeline() 為什麼能把下載模型與執行推論包成幾行程式。

今天用這個比喻像一座超大型 AI 圖書館:架上不只放模型,還放使用說明、Tokenizer、資料集、版本與授權資訊

前一篇 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,裡面放著:

另外也有 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 兩個套件。

其中:

最簡單的 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:

  1. 任務是 text-generation,也就是文字生成。
  2. 想使用的模型 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 幫你藏掉了哪些工作?

短短幾行看起來很神,但底下其實做了不少事情:

這就是高階函式庫的價值:不是沒有複雜度,而是把常見複雜度包起來。

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 資源。

之後才可以自行控制 Tokenization、Generation 參數、裝置等細節。

Hugging Face 和 Local LLM 有什麼關係?

Hugging Face Hub 常被拿來當模型與權重的發佈來源。

但「模型在 Hugging Face」不代表「只能用 Transformers 跑」。

同一個模型家族可能還有:

Lesson 025 的 Local LLM 可以透過很多不同工具執行,而 Hugging Face 更像是其中一個常見的模型來源與發布平台。

Dataset 又是什麼?

Hub 不只放模型,也有 資料集(Dataset)。

資料集可能包含:

之後談模型訓練、Fine-tuning、Benchmark 時,Dataset 會變得非常重要。

但同樣要注意授權、個資、資料來源與使用限制。

下載最多的模型就一定最好嗎?

不一定。

模型選擇至少要看:

不能只看下載數或排行榜。

一句話帶走

Hugging Face Hub 像 AI 世界的大型圖書館;Transformers 則是一套幫你讀取與使用館藏模型的 Python 工具。真正使用前,除了會 from_pretrained(),更要會看 Model Card、Tokenizer、授權與模型格式。

正式資料來源

比喻是理解入口;正式定義與細節請以原始資料為準。

  1. Hugging Face Hub — Models ↗
  2. Hugging Face — Using Transformers ↗
  3. Transformers — Pipeline tutorial ↗
← 上一章028CUDA 是什麼?為什麼有 NVIDIA GPU 還不夠,AI 軟體還需要一整套加速平台
下一章 →030Ollama 是什麼?從 pull 模型、run 模型到 localhost API,看懂 Local LLM 怎麼真的跑起來
COMMUNITY

留言

有想法、疑問或想補充的地方,都可以留在這裡。

0 / 1200