Hugging Face Transformers
Hugging Face Transformersとは
Transformers は、公開された事前学習モデルを共通のAPIで扱う Python ライブラリです。モデルごとに違う実装を覚えなくても、同じ書き方で読み込み・推論ができます。
from transformers import pipeline
summarizer = pipeline("summarization")
print(summarizer("長い文章…")[0]["summary_text"])
pipeline は「タスク名を指定すると、モデル・トークナイザ・前後処理をまとめて用意する」入口です。要約・分類・翻訳・質問応答などのタスクが揃っており、[[Python]] を書ければ数行で試せます。
モデル・トークナイザ・Hub
ライブラリと同じくらい重要なのが Hugging Face Hub です。モデルの重みが名前付きで公開されており、コードから名前を指定して取得します。
from transformers import AutoTokenizer, AutoModelForCausalLM
name = "組織名/モデル名"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForCausalLM.from_pretrained(name)
Auto で始まるクラスは、モデルの種類に応じた実装を自動で選ぶ仕組みです。使う側はモデル名を差し替えるだけで比較検討できます。
トークナイザはモデルと必ず対で使います。[[トークンとトークナイザ]] の分割規則はモデルごとに違うため、片方だけ差し替えると入力が壊れます。
| 構成要素 | 役割 |
|---|---|
| トークナイザ | 文章をモデルが扱う数値列へ変換する |
| モデル | 数値列を受け取り、次のトークンの確率などを返す |
| Hub | 重み・設定・トークナイザをまとめて配布する場所 |
どこで使うか
[[Transformer]] 系のモデルを細かく制御したいときに選びます。
- 出力の途中経過や確率を取り出す、独自の後処理を挟む
- [[ファインチューニング]] で自前データに合わせて追加学習する
- 文章生成だけでなく、分類・埋め込み生成などLLM以外のモデルも同じAPIで扱う
裏側の計算は PyTorch(あるいは他のフレームワーク)が担うため、GPU の有無で実行速度が大きく変わります。
「対話用のLLMを動かして応答をもらえればよい」だけなら [[Ollama(ローカルLLM実行)]] のほうが手軽です。手軽さのOllama、細かい制御のTransformersと考えると選びやすくなります。
初学者向けポイント
- まず
pipelineで動かし、制御が足りなくなってからAutoTokenizer/AutoModelへ降りるのが遠回りしない順序です - 初回実行時にモデルがダウンロードされます。サイズが大きいものはディスクとメモリを確認してから試します
- モデルごとにライセンスと利用条件が異なります。商用利用の可否は Hub のモデルページで必ず確認します
関連技術とのつながり
- [[Transformer]] — ライブラリ名の由来であり、扱うモデルの中心的な構造
- [[生成AI・LLM]] — 文章生成モデルをこのライブラリ経由で動かせる
- [[Python]] — 実装言語。周辺の数値計算ライブラリと組み合わせて使う
- [[ファインチューニング]] — 自前データでの追加学習を行うときの標準的な入口
- [[Ollama(ローカルLLM実行)]] — 手軽さを取るならこちら。細かい制御が要るならTransformers
Q: Transformersライブラリの `pipeline` の役割はどれ?
- [x] タスクを指定するとモデル・トークナイザ・前後処理をまとめて用意する
- [ ] 学習データを自動で収集する
- [ ] GPUを仮想化する
解説: `pipeline` は要約や分類といったタスク名を指定するだけで、必要な部品を揃えて推論できる入口です。
Q: トークナイザとモデルの扱いとして正しいものはどれ?
- [ ] どのモデルにも同じトークナイザが使える
- [x] モデルと対応するトークナイザを対で使う必要がある
- [ ] トークナイザは学習時のみ必要で推論では不要
解説: 分割規則はモデルごとに異なります。片方だけ差し替えると入力が壊れて正しく動きません。
Q: Ollama と Hugging Face Transformers の使い分けとして適切なものはどれ?
- [ ] Ollamaは学習専用、Transformersは推論専用
- [x] 手軽に動かすならOllama、出力の細かい制御や追加学習が要るならTransformers
- [ ] どちらも同じ機能で違いはない
解説: Ollama は起動から API 提供までを簡単にする実行環境、Transformers はモデルを細かく制御するためのライブラリです。