はじめに
transformers.jsはHugging Faceによって開発されたJavaScriptライブラリで、最先端の機械学習モデルをサーバーのサポートなしにブラウザ上で直接実行できるようにするものです。このライブラリはHugging FaceのPython用transformersライブラリと機能的に同等であり、自然言語処理、コンピュータビジョン、音声認識などのタスクをカバーする幅広い事前学習済みモデルをサポートしています。transformers.jsはモデルの実行にONNX Runtimeを使用し、CPUとWebGPUの両方での実行をサポートし、効率的なモデルを提供します。PyTorch、TensorFlow、JAXのモデルをONNX形式に変換し、ブラウザ上で実行するための効率的なモデル変換および定量化ツールを提供します。
機能一覧
- 自然言語処理テキスト分類、名前付きエンティティ認識、質問応答システム、言語モデリング、要約生成、翻訳、多肢選択、テキスト生成。
- コンピュータビジョン画像分類、ターゲット検出、画像分割、深度推定。
- 音声認識自動音声認識、音声分類、音声合成。
- マルチモーダル課題埋め込み、ゼロサンプル音声分類、ゼロサンプル画像分類、ゼロサンプルターゲット検出。
- モデルの変換と定量化PyTorch、TensorFlow、JAXモデルをONNXフォーマットに変換し、パフォーマンスを最適化するために定量化する機能をサポートします。
- WebGPUサポートWebGPUを使用してサポートされているブラウザでモデルを実行することにより、計算効率を向上させます。
ヘルプの使用
取り付け
Transformers.jsは、NPM経由でインストールするか、CDNまたは静的ホスティング経由でブラウザで使用することができます。以下はインストール手順です:
NPMのインストール
npm i @huggingface/transformers
CDNの使用
HTMLファイルに以下のスクリプト・タグを追加する:
https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.1.0' から { pipeline } をインポートする;
</script
使用例
Transformers.jsは、Python版のtransformersライブラリと同様のパイプラインAPIを提供し、モデルの使用を非常に簡単にしている。一般的なタスクの例をいくつか紹介します:
センチメント分析
インポート { パイプライン } from '@huggingface/transformers';
// センチメント分析用のパイプラインを割り当てる
const pipe = await pipeline('sentiment-analysis');
const out = await pipe('I love transformers!'); // センチメント分析のパイプラインを割り当てます。
出力: [{'label': 'POSITIVE', 'score': 0.999817686}]]; // センチメント分析パイプラインを割り当てます。
異なるモデルの使用
モデルIDまたはパスを指定することで、別のモデルを使用することができます:
const pipe = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment');
WebGPUでモデルを動かす
const pipe = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english', { device: 'webgpu' });
モデルの変換と定量化
Transformers.jsは、PyTorch、TensorFlow、またはJAXモデルをONNX形式に変換し、パフォーマンスを最適化するために定量化することをサポートしています。以下は変換と定量化の例です:
python -m scripts.convert --quantize --model_id bert-base-uncased
変換されたファイルは ./モデル
ディレクトリを含む。 model.onnx
歌で応える model_quantized.onnx
ドキュメンテーション
サンプルアプリケーション
Transformers.jsは、ユーザーがすぐに使い始められるように、いくつかのサンプル・アプリケーションを提供している:
- ウィスパー・ウェブ音声認識
- 落書きダッシュリアルタイムスケッチ認識ゲーム
- コード・プレイグラウンドブラウザ内コード補完
- セマンティック画像検索テキスト検索
- テキストから音声へ音声合成