Transformers.jsでの英文要約と翻訳

WhisperとTransformers.jsでのオフライン音声認識&翻訳が思いのほか良かったので、ニュース記事等の要約も試してみました。

残念ながらまだ日本語の要約モデルは見当たらないので英語ニュースを要約させてみます。
実際には結構手こずったのですが、その原因が翻訳との両立でした。
それぞれかなり大きなモデルですので双方を事前にロードしておくとパソコンのブラウザでもメモリ不足に陥ります。
Transformers.jsのモデルの明示的な解放がないことが原因のひとつで、試しにオフライン翻訳だけ、要約だけで動かすと問題なく動きます。
Web Workerで分割して片方ずつでWorkerを閉じてみたりもしましたが、どうもWASMはそれでも残ったままになるようです。
こちらも明示的な解放がないので諦めかけましたけど、ページ遷移で要約を引き継ぐ形にしてなんとか無理やり実現させました。

使い勝手は良くないですけど、そもそも要約や翻訳の処理時間も結構なもので、まだまだ実用的とはいえないです。
要約や翻訳の品質はわりと良いレベルだと思うんですけどね。

ちなみにニュース全文の翻訳をやらせてみると10分以上かかってなんとかメモリ不足も起こさずに処理できました。
人間による翻訳を100点とするとTransformers.jsは55~60点、Google翻訳が60~65点といったところでしょうか。
ネイティブにPythonで組めばせいぜい数10秒らしいので実用面ではそっちですが、UIがどうしても疎かになりがちです。
それでもどのくらい高速になるのか、まずはCUIで試してみようとは思ってます。

現状は速度と精度の両立がまだ難しいですけど、WebGPU対応はもうかなり進んでいて、動作こそまだ不安定ですが将来性はあると思います。
さらにNPU/TPU活用にも期待したいところです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)