8章Transformersの高速化

これまでの章では、Transformerをファインチューニングすることで、さまざまなタスクで良い性能を出せることを確認してきました。しかし、多くの場合、正解率などの最適化対象の指標だけでは不十分です。最先端のモデルが遅すぎたり大きすぎたりして、アプリケーションのビジネス要件を満たせなければ、あまり役に立ちません。より高速でコンパクトなモデルを学習させることもできますが、モデル容量の削減は性能の低下を伴う傾向があります。では、高速でコンパクト、しかも高性能なモデルが必要な場合、どうすればよいのでしょうか。

本章では、Transformerモデルの予測を高速化し、メモリ使用量を削減するために使用できる、4つの補完的な技術を紹介します。それらの技術は、知識蒸留量子化枝刈り、Open Neural Network Exchange(ONNX)フォーマットとONNX Runtime(ORT)を用いたグラフ最適化と呼ばれています。また、これらを組み合わせることで、大幅な性能向上を実現する方法を確認します。そのような例として、Robloxエンジニアリングチームの記事「How We Scaled Bert to Serve 1+ Billion Daily Requests on CPUs」(https://oreil.ly/QdNIk)が挙げられます。記事では、図8-1に示すように、知識蒸留と量子化を組み合わせることによって、BERTによる分類器のレイテンシーとスループットを30倍以上改善したことを示しています。

図8-1 Robloxが知識蒸留、動的パディング、重み量子化でBERTをスケールした方法(写真提供:Roblox社Quoc N. Le、Kip ...

Get 機械学習エンジニアのためのTransformers ―最先端の自然言語処理ライブラリによるモデル開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.