transformers について
Hugging Face Transformersで事前学習済みモデルを読み込み、推論やファインチューニングを行うスキルです。自然言語処理、画像、音声、マルチモーダルのタスクを扱います。
主な機能
- 01多様なタスクのPipeline推論
- 02事前学習済みモデルの読み込みと設定
- 03テキスト生成の制御
- 04独自データセットでのファインチューニング
- 05テキストのトークン化と前処理
活用シーン
- 01モデルタスクの迅速な試作
- 02テキスト生成や分類
- 03ドメインデータによるモデル調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ crazymsn/ academic-skills --skill transformersインストール後、Claude Code で/transformersを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/generation.mdmodels.mdpipelines.mdtokenizers.mdtraining.md詳細
Transformers
概要
Hugging Face Transformers ライブラリは、NLP、コンピュータービジョン、音声、マルチモーダルの各領域にわたる数千の事前学習済みモデルへのアクセスを提供します。このスキルを使用すると、モデルの読み込み、推論の実行、カスタムデータでのファインチューニングを行えます。
インストール
transformers とコア依存関係をインストールします:
uv pip install torch transformers datasets evaluate accelerate
ビジョンタスクの場合は、次を追加します:
uv pip install timm pillow
音声タスクの場合は、次を追加します:
uv pip install librosa soundfile
認証
Hugging Face Hub 上の多くのモデルでは認証が必要です。アクセスを設定します:
from huggingface_hub import login
login() # Follow prompts to enter token
または、環境変数を設定します:
export HUGGINGFACE_TOKEN="your_token_here"
トークンの取得先: https://huggingface.co/settings/tokens
クイックスタート
手動での設定なしで高速に推論を行うには、Pipeline API を使用します:
from transformers import pipeline
# Text generation
generator = pipeline("text-generation", model="gpt2")
result = generator("The future of AI is", max_length=50)
# Text classification
classifier = pipeline("text-classification")
result = classifier("This movie was excellent!")
# Question answering
qa = pipeline("question-answering")
result = qa(question="What is AI?", context="AI is artificial intelligence...")
主な機能
1. クイック推論のためのパイプライン
多くのタスクに対して、シンプルで最適化された推論を行うために使用します。テキスト生成、分類、NER、質問応答、要約、翻訳、画像分類、物体検出、音声分類などをサポートしています。
使用する場面: 簡単なプロトタイピング、シンプルな推論タスク、カスタムの前処理が不要な場合。
タスクの網羅的な一覧と最適化については、references/pipelines.md を参照してください。
2. モデルの読み込みと管理
設定、デバイス配置、精度を細かく制御しながら、事前学習済みモデルを読み込みます。
使用する場面: カスタムモデルの初期化、高度なデバイス管理、モデルの検査。
読み込みパターンとベストプラクティスについては、references/models.md を参照してください。
3. テキスト生成
さまざまなデコーディング戦略(貪欲法、ビームサーチ、サンプリング)と制御パラメーター(temperature、top-k、top-p)を使用して、LLM でテキストを生成します。
使用する場面: 創作的なテキスト生成、コード生成、対話型 AI、テキスト補完。
生成戦略とパラメーターについては、references/generation.md を参照してください。
4. 学習とファインチューニング
Trainer API を使用して、自動混合精度、分散学習、ロギングを備えたカスタムデータセットでの事前学習済みモデルのファインチューニングを行います。
使用する場面: タスク固有のモデル適応、ドメイン適応、モデル性能の向上。
学習ワークフローとベストプラクティスについては、references/training.md を参照してください。
5. トークナイゼーション
パディング、トランケーション、特殊トークンの処理を伴って、テキストをモデル入力用のトークンとトークン ID に変換します。
使用する場面: カスタムの前処理パイプライン、モデル入力の理解、バッチ処理。
トークナイゼーションの詳細については、references/tokenizers.md を参照してください。
よくあるパターン
パターン 1: シンプルな推論
簡単なタスクには、パイプラインを使用します:
pipe = pipeline("task-name", model="model-id")
output = pipe(input_data)
パターン 2: カスタムモデルの利用
高度な制御を行うには、モデルとトークナイザーをそれぞれ個別に読み込みます:
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("model-id")
model = AutoModelForCausalLM.from_pretrained("model-id", device_map="auto")
inputs = tokenizer("text", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100)
result = tokenizer.decode(outputs[0])
パターン 3: ファインチューニング
タスクへの適応には、Trainer を使用します:
from transformers import Trainer, TrainingArguments
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=8,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
)
trainer.train()
リファレンスドキュメント
特定のコンポーネントの詳細情報:
- パイプライン:
references/pipelines.md- サポートされているすべてのタスクと最適化 - モデル:
references/models.md- 読み込み、保存、設定 - 生成:
references/generation.md- テキスト生成の戦略とパラメーター - 学習:
references/training.md- Trainer API によるファインチューニング - トークナイザー:
references/tokenizers.md- トークナイゼーションと前処理