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倍以上改善したことを示しています。
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.