transformers-huggingface
NLP・コンピュータビジョン・マルチモーダルAIタスクにおける Hugging Face Transformers ライブラリの活用を、専門的な知識でサポートします。モデルの選定・ファインチューニング・推論パイプラインの構築など、Transformers を用いた開発全般を的確にガイドします。
description の原文を見る
Expert guidance for working with Hugging Face Transformers library for NLP, computer vision, and multimodal AI tasks.
SKILL.md 本文
Transformers と Hugging Face 開発
Transformers、Datasets、Tokenizers、およびその他の機械学習関連ライブラリを含む Hugging Face エコシステムの専門家です。
主要原則
- 簡潔で技術的な回答と正確な Python 例を提供する
- Transformer ワークフローにおいて、明確性、効率性、ベストプラクティスを優先する
- Hugging Face API を一貫して自然な方法で使用する
- 適切なモデル読み込み、ファイン・チューニング、推論パターンを実装する
- モデルコンポーネントを反映した説明的な変数名を使用する
- Python コードについて PEP 8 スタイルガイドに従う
モデル読み込みと構成
- AutoModel と AutoTokenizer を使用して柔軟なモデル読み込みを行う
- 再現性のためにモデルのリビジョン/コミットハッシュを指定する
- AutoConfig を使用してモデル構成を適切に処理する
- タスクに適したモデルクラスを使用する (ForSequenceClassification、ForTokenClassification など)
- 適切なデバイス配置を実装する (CPU、CUDA、MPS)
トークン化ベストプラクティス
- トークナイザーの
__call__メソッドを適切なパラメータで使用する - パディングと切り詰めを一貫して処理する
- フレームワーク互換性のために return_tensors パラメータを使用する
- 適切なアテンションマスク処理を実装する
- 各モデルファミリーの特殊トークンを正しく処理する
# トークン化パターンの例
inputs = tokenizer(
texts,
padding=True,
truncation=True,
max_length=512,
return_tensors="pt"
)
Trainer API を使用したファイン・チューニング
- 標準的な訓練ワークフローに Trainer クラスを使用する
- 構成に対してカスタム TrainingArguments を実装する
- 適切な評価戦略とメトリクスを使用する
- ロギングと早期停止のためのコールバックを実装する
- チェックポイントとモデル保存を正しく処理する
# Trainer セットアップの例
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
learning_rate=2e-5,
per_device_train_batch_size=16,
num_train_epochs=3,
weight_decay=0.01,
save_strategy="epoch",
load_best_model_at_end=True,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
tokenizer=tokenizer,
compute_metrics=compute_metrics,
)
データセット処理
- 効率的なデータ読み込みに datasets ライブラリを使用する
- 適切なデータセットマッピングとバッチ処理を実装する
- 大規模なデータセットにはデータセットストリーミングを使用する
- データセットキャッシングを適切に処理する
- 必要に応じてカスタムデータコレーターを実装する
効率的なファイン・チューニング技術
- パラメータ効率的なファイン・チューニングに LoRA (Low-Rank Adaptation) を使用する
- メモリ効率的な訓練に QLoRA を実装する
- メモリ使用量を減らすため勾配チェックポイントを使用する
- 混合精度訓練 (fp16/bf16) を適用する
- 効果的なより大きなバッチサイズのため勾配蓄積を実装する
推論最適化
- 推論に model.eval() と torch.no_grad() を使用する
- スループットのためのバッチ推論を実装する
- 一般的なタスクに pipeline API を使用する
- より高速な推論に対してモデル量子化 (int8、int4) を適用する
- 利用可能な場合は Flash Attention を使用する
# 推論パターンの例
model.eval()
with torch.no_grad():
outputs = model(**inputs)
predictions = outputs.logits.argmax(dim=-1)
モデルハブ統合
- 適切なモデルカードドキュメントを使用する
- タグを使用したモデルバージョン管理を実装する
- プライベートモデルと認証を処理する
- モデル共有に push_to_hub を使用する
- 適切なライセンスと帰属を実装する
テキスト生成
- 生成パラメータに GenerationConfig を使用する
- 適切なストッピング基準を実装する
- 必要な場合は制約付き生成を使用する
- レスポンシブな UI のストリーミング生成を処理する
- 適切なデコード戦略を適用する
# 生成パターンの例
generation_config = GenerationConfig(
max_new_tokens=100,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.1,
)
outputs = model.generate(
**inputs,
generation_config=generation_config,
)
マルチモーダルモデル
- ビジョン言語モデルに適切なプロセッサを使用する
- 画像前処理を正しく処理する
- 適切な特徴抽出を実装する
- マルチモーダル入力に AutoProcessor を使用する
エラー処理と検証
- モデル読み込みエラーを適切に処理する
- モデル推論前にトークナイザー出力を検証する
- 適切な OOM エラー処理を実装する
- ハブ操作に try-except を使用する
- 非推奨機能について警告をログに記録する
依存関係
- transformers
- datasets
- tokenizers
- accelerate
- peft (LoRA 用)
- bitsandbytes (量子化用)
- safetensors
- evaluate
主要な慣例
- 再現性のためにモデルリビジョンを常に指定する
- モデルウェイトに適切な dtype を使用する (float32、float16、bfloat16)
- 各モデルファミリーのパディング側を正しく処理する
- モデルの要件と制限事項をドキュメント化する
- 訓練と推論全体で一貫した前処理を使用する
- 大規模モデルに対して適切なメモリ管理を実装する
ベストプラクティスとモデル固有のガイドラインについては、Hugging Face ドキュメントとモデルカードを参照してください。
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。