Transformer
今AIと呼ばれてるものの大体がこれ。
と言うくらいにほぼすべての領域で使われているアーキテクチャ。
元々は翻訳のために作られたアーキテクチャ。
恐ろしく汎用性が高く、既存のモデルの領域を尽く食っていっている
例えば画像生成なら
U-Net…と言われてたのも今は昔、
DiT(拡散Transformer)が次世代モデルをほぼ占拠している(ローカルの主流はまだSDXL、というのはさておき)
大体他のアーキテクチャを置き換えられるほどあまりにも汎用性が高い
その性能を支えてるのは並列性が非常に高いことによる
分散学習、ひいては大規模学習に向いてるその特性。極端な話メモリとコアを増やせば増やすほど速くそして高性能に学習できる。(
RNN等は分散学習に課題がある)
また、トークン(単語に近い概念)に分割できれば文字通り「何でも取り扱える(何でも何にでも変換できる)」のもこの汎用性を支える特徴。画像認識では画像を細切れにした特徴量トークンとして扱う事で対応してる。
翻訳は「A語の単語」を「B語の単語」、「A語の文」を「B語の文」に置き換える作業と言えるわけで、そこでこのトークンによる変換の仕組みがある。
ここで、「A語の指示文」を「A語の説明文」に置き換えたら文章補完出来るんじゃ?と言うのがいまの文章生成の始まり(だったはず…)
次のトークンを予測するように学習させたら補完できるようになった

画像認識だと「画像の一部」を「画像の説明」に翻訳、画像生成なら「生成指示文」を「画像のブロック」に翻訳…とすることで要するにすべて翻訳の延長と考える事ができる。
ただし、欠点がないわけではなく、一番の難点はそのメモリ消費の多さ、トークン数の二乗で増えていく…
また、基本的にサイズと性能が比例するので小型・高速化という点ではそこまで取り回しが良くは無いようで、高速検知等では
Yoloなど引き続きCNNが使われたりしてる。
その一方で、
量子化の影響が比較的小さい等、単純サイズであれば意外と小型化する手段は豊富にあったりする。