[LLM] Hugging Face の「Transformers」入門

### Hugging Faceとは
AIモデル(特にLLM)を「共有・利用・学習」できるオープンソースのAIプラットフォームです。
– GitHubのように世界中の研究者・企業がモデルを公開
– 代表ライブラリが「transformers」
– 無料で多くのモデルをダウンロードして使える

### transformers ライブラリの目的
transformers は 最先端のNLPモデルを簡単に使うためのPythonライブラリ。
代表的な利用例:
– 文章生成(GPT, LLaMA)
– 翻訳(Marian, T5)
– 要約(BART)
– 感情分析(BERT)
– 質問応答(DistilBERT)

### 基本の3構成
1️⃣ Tokenizer(トークナイザー)
→ テキストを数値化(単語 → トークンID)
2️⃣ Model(モデル)
→ トークン列を処理して出力を返す
3️⃣ Pipeline(パイプライン)
→ Tokenizer と Model をまとめて簡単に使える便利関数

実際のコード例

from transformers import pipeline
# 感情分析のパイプラインをロード
classifier = pipeline("sentiment-analysis")
# テキストを入力
result = classifier("I love Hugging Face!")
print(result)
# [{'label': 'POSITIVE', 'score': 0.9998}]

モデルを指定したコード

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "gpt2"

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

input_text = "Hello, my name is"
inputs = tokenizer(input_text, return_tensors="pt")

outputs = model.generate(**inputs, max_length=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

主なpipeline
感情分析 pipeline(“sentiment-analysis”) 映画レビューなど
翻訳 pipeline(“translation”, model=”Helsinki-NLP/opus-mt-en-jp”) 英→日翻訳
要約 pipeline(“summarization”) ニュース要約
文章生成 pipeline(“text-generation”, model=”gpt2″) GPT風応答
質問応答 pipeline(“question-answering”) QAボット

注意点
– モデルサイズが大きい場合、ダウンロードに時間がかかる
– GPUがあると高速(CUDA対応)
– オフライン実行も可能(cache_dirを指定)