common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


Sign in
Sign up
common.title

[レビュー]BTT-Transformer / マルチヘッドアテンションとテンソル分解

Yuichiro Minato

2023/04/22 05:16

1

先端領域では従来別物として見ていた量子計算と機械学習技術を同列で扱うようなものも増えてきました。ここでは、テンソルを活用した自然言語モデルの実装についての論文をみます。今回は量子計算と使うモデルはだいぶ違いますが、Transformerの機械学習モデルの中でも、量子計算で利用するのと同じモデルを利用することもあります。そちらは追って紹介します。

A Tensorized Transformer for Language Modeling

Xindian Ma1 , Peng Zhang1∗ , Shuai Zhang1 , Nan Duan2 , Yuexian Hou1 , Dawei Song3 , Ming Zhou2

1College of Intelligence and Computing, Tianjin University, Tianjin, China

2Microsoft Research Asia, Beijing, China

3School of Computer Science and Technology, Beijing Institute of Technology, Beijing, China

{xindianma, pzhang, szhang96, yxhou}@tju.edu.cn

{nanduan, mingzhou}@microsoft.com

{dwsong}@bit.edu.cn

https://arxiv.org/pdf/1906.09777.pdf

マルチヘッドアテンションとテンソル分解

Transformerモデルの中核をなす技術としてマルチヘッドアテンションがある。今回はこのマルチヘッドアテンションのモデルをテンソル分解を通じてパラメータ圧縮をするのが目的である。

引用:https://arxiv.org/pdf/1906.09777.pdf

左がシングルブロックアテンションで、タッカー分解を利用してテンソルをコアテンソルと行列に分解している。このブロックを複数利用してマルチヘッドアテンションのモデルをテンソル分解するが、アテンションモデルでの関数は非線形で、

Attension = softmax(QK^T/√d)V

となっているので、非線形を線形モデルに書き換える必要がある。線型部分は上記のシングルブロックアテンションに利用されたタッカー分解と、上記右側のコアテンソルがあるように、CPランクhでCP分解も利用している。Tucker分解とCP分解を併用するテクニックは、Block-Term分解と名前がついていて、別のブログで簡単に紹介している。

Block-Term tensor decomposition (BTD)

https://blueqat.com/yuichiro_minato2/d298e71e-89cc-49dd-bdde-c417a5799633

BTDによって構築されたorder3のテンソルは、テンソルスライシングを通じて行列化され、最終的に重み行列Woをかけて出力される。

仕組みとしてはとてもシンプルで、マルチヘッドアテンションの代わりにマルチリニアアテンションと名前をつけている。基本的にはpytorchで当該モデルが実装されており、内部のテンソルネットワークの該当部分もtorch.einsumによってpytorch内部でテンソルネットワークが実行されて完結しているので、追いやすい。

圧縮率などにもきちんと言及されており、精度も言語モデルや翻訳モデルで評価されている。

正直もうちょい読み込むにはBTDの仕組みや機能についてもちょい理解が必要だという形で勉強会も興味がある人も多かったです。機械学習論文は量子の論文と異なってパフォーマンス重視、理論控えめ、実装中心なので、ほぼレビューというより論文紹介みたいになってしまいそうですが、どんどんやっていきます。

以上です。

© 2025, blueqat Inc. All rights reserved