メインコンテンツへスキップ
見出し画像

Attention Izu All Yu Need ── Transformerを伊豆の温泉に沈めてみた ガチな修善寺温泉観光ガイド付き

    画像



    こんにちは黒パグです🐾

    みなさんも一度は考えたことがあると思います。

    あてんしょん いず おーるゆー にーど

    ATTENTION 伊豆 オール湯 ニード

    ………………この記事は、二徹のあと、多分書いてその後酒フォルダに入っていた原稿です。なんで書いたのかわかりません……はい。

    とはいえ、せっかくなので解説します。伊豆に沈める前に、まずTransformerが何をしているのかを確認しておきましょう。

    今回もポッドキャストをご用意しましたので是非お聞きください。
    正直文章を読むよりもはるかにわかりやすくできています。
    あ、あと今回は文章に引用番号[]をつけていますので資料が気になる方は辿ってみてください


    1.Attention Is All You Needとは


    言語モデルを作ったことのある人……いや、SLMでもいいでしょう。モデルの開発に携わったことがあれば、一度は名前を聞いたことがあるはずです。

    『Attention Is All You Need』。

    Vaswaniらが2017年に発表した、Transformerを提案した論文です。原論文の中心は機械翻訳。ある言語の文章を読み、別の言語の文章を出すモデルを扱っています。[1]

    当時の代表的な方式には、単語を順番に処理するRNNなどがありました。遠く離れた語の関係を扱うにも、途中の処理をたどる必要があります。TransformerはSelf-Attentionを使い、系列内の離れた位置の情報を直接参照できる構造を採用しました。系列の各位置の計算を並列化しやすい点も特徴です。[2]

    たとえば「パグが露天風呂を見つけたので、私はタオルを取りに戻った」という文。「戻った」を処理するときに、誰が、何のために戻ったのかを、ほかの語との関係から捉える。Self-Attentionは、こうした文脈に応じた情報の取り込みを担います。

    なお、題名に「All You Need」とあっても、モデルの部品がAttention一個だけという意味ではありません。位置情報、Feed-Forward Network、残差接続なども登場します。[1]

    設備はちゃんと要るんです。温泉も、源泉だけあれば旅館になるわけではありません。

    2.Attention Izu All Yu Need

    さて、Attentionこそが、あなたに必要なすべて。

    本当にそうでしょうか。私たちには、もっと必要なものがあるのではないでしょうか。

    たとえば、温泉。

    ここで登場するのが、架空の研究所「Black Pug Onsen Lab」と、その研究成果という設定の「Izuformer」です。

    Attention Izu All Yu Need.

    日本語にすると、だいたい「伊豆の湯がすべてを解決する」です。翻訳の時点で研究の精度が怪しい。

    画像



    ここからの研究所、モデル、実験は、この企画のためのフィクションです。実在する原論文の著者が参加した研究ではありません。

    架空論文の要旨を日本語でまとめると、こんな感じになります。

    「私たちはTransformerの構造を温泉旅館に見立てた教育用パロディ、Izuformerを提案する。複数の浴槽で情報を参照し、配管で残差を足し、湯温調整をイメージした正規化を行う。実際の学習や性能検証は実施していないが、論文を読む入口として、たいへん入浴したくなる構成を目指す」

    査読の前に、日帰り入浴の受付を通ります。

    3.温泉で理解するTransformer

    画像



    ここからは、温泉のたとえと、実際の計算を対応させて見ていきます。対象は2017年の原論文にあるEncoder–Decoder型Transformerです。[1]

    ■ 入力と位置情報──パグにも席順がある

    文章は、単語やその一部などに相当する「トークン」に分けて扱います。それぞれを数値の並びであるベクトルに変えたものが、Embeddingです。[3]

    絵では、一頭ずつのパグをトークンに見立てています。ただし、パグだけを並べても順序の目印が足りません。「私がパグを洗う」と「パグが私を洗う」では、旅館で発生する事案が違います。

    そこで加えるのがPositional Encoding。原論文では、位置に応じたsin・cosの値を使い、Embeddingに足し合わせています。[1]

    番号付きの風呂椅子は、その目印のたとえです。実際には椅子の番号を一個添えるのでなく、ベクトルに位置の情報を加えます。

    ■ Attention──どの湯から、どれだけ情報をもらうか

    Attentionでは、参照する側のQuery(Q)と、参照先のKey(K)を照合し、その結果からValue(V)をどの割合で取り込むかを計算します。

    温泉なら、Qは「いま欲しい湯の条件」、Kは「それぞれの湯を探すための札」、Vは「そこから受け取る中身」と考えてみてください。条件との対応を見て、情報の配分を決めます。

    原論文のScaled Dot-Product Attentionを式で書くと、次の形です。[1]

    Attention(Q, K, V) = softmax(QKᵀ / √dₖ)V

    QとKの内積を取り、Keyの次元数dₖの平方根で割って、softmaxで重みに変換。その重みでVを足し合わせます。割り算は、内積の値が大きくなりすぎる影響を抑えるために入っています。[1]

    Self-Attentionでは、Q・K・Vの元になる情報が同じ系列から来ます。[3] つまり、同じ旅館の宿泊者同士で情報を参照するイメージです。

    ここでいう「重み」は計算で得られる配分です。パグが感情で好きな湯を選んでいる、という部分は絵の演出になります。

    ■ Multi-Head Attention──浴槽を増やして、見方を増やす

    浴槽が複数並んでいるのは、複数のAttention Headを表しています。

    各Headは、それぞれ学習する線形変換を通してQ・K・Vを作り、並列にAttentionを計算します。最後に結果を連結し、もう一度線形変換してまとめます。[1]

    同じ宿泊者名簿を、それぞれ違う見方で参照して、結果を持ち寄る。そんな合同湯めぐりです。

    ただし「一番風呂は文法、二番風呂は感情」と担当を固定して教える仕組みではありません。Headの見方は学習を通じて決まります。

    ■ EncoderとDecoder──読む棟と、書く棟

    Encoderは入力系列を受け取り、各位置に文脈を反映した表現を作る側。Decoderはその表現と、出力のここまでの情報を参照しながら、続きを作る側です。[2]

    旅館の左棟で宿泊者の情報を整理し、右棟でその記録を見ながら案内文を書く、と考えるとつながります。Encoderの出力は、一つの要約文になるのではなく、位置ごとの表現の系列として渡されます。[1]

    DecoderがEncoder側を見る処理はCross-Attentionとも呼ばれます。QはDecoder側、KとVはEncoderの出力から来ます。[3]

    原論文では両側をそれぞれ6層積んでいます。[1] 図では一層分を描き、「×6」で繰り返しを示しました。旅館の建築確認申請にそのまま出さないでください。

    ■ Masked Self-Attention──次のページは見ない

    Decoder側のSelf-Attentionには、未来の位置を参照させないマスクをかけます。[3]

    「次のトークンを当ててください」と言いながら、その答えを横に置いてしまったら練習になりません。出力側の入力を一つずらし、各予測が正解の先をのぞけないようにします。[1]

    温泉図の「未来のトークンは見ない」という表示が、このマスクに対応します。

    学習時は、正解系列をずらして与えることで、複数の位置の予測を並列に計算できます。一方、通常の自己回帰生成では、一つ出した結果を使って次を出します。[3] 「並列化しやすい」と「完成文が一瞬で全部出る」は、ここで分けておきましょう。

    ■ Residual ConnectionとLayer Normalization──配管と湯温調整

    Residual Connectionは、ある処理の入力を、処理結果へ足し戻す接続です。基本形は「x + F(x)」。深いネットワークの最適化を助ける構造として使われます。[4]

    図では、処理を迂回して合流する配管に見立てました。合流点は足し算なので、記号は「+」。お湯をただ循環させるだけの配管図とは、少し意味が違います。

    Layer Normalizationは、ここでは各トークンの特徴ベクトルについて平均と分散を使って正規化し、学習する倍率とずれを適用する処理です。[5]

    「湯温調整」は、値のスケールを整えるイメージ。実際に温度を測る処理でも、softmaxの温度パラメータでもありません。

    原論文では、各サブレイヤーの処理結果に残差を足してからLayer Normを適用します。簡略形は「LayerNorm(x + Sublayer(x))」。Encoderでは各層2か所、Decoderでは各層3か所に対応するAdd & Normがあります。[1]

    旅館全体の出口に蛇口を一個付けて終わり、では設備が足りません。

    ■ Feed-Forward Network──各席で同じ手順の加工をする

    Feed-Forward Network(FFN)は、各位置のベクトルを個別に変換する部分。同じ層の中では、どの位置にも同じパラメータを使います。[3]

    原論文の構成は、線形変換、ReLU、もう一度線形変換。[1] 図の酒樽は、この加工設備の飾りです。Transformerにアルコールを入力する設計ではありません。

    Attentionでほかの位置から情報を集め、FFNで各位置の表現を加工する。この分担まで覚えると、浴槽と樽の区別がつきます。

    最後はDecoderの出力を線形変換し、softmaxで次のトークンの確率分布に変えます。[3]

    図の「Next-token probabilities」が、この出力です。確率の高い温泉宿を予約してくれる機能は、別途実装が必要です。

    4.実験結果──BLEUとパグの機嫌

    設備ができたので、論文らしく実験結果を載せましょう。

    画像



    以下は全行がパロディ用の設定です。測定はしていません。最初の行も実在モデルの実験報告を転載したものではなく、比較役として置いた架空の行です。

    ・Transformer風ベースライン(架空設定)
     BLEU:28.4/学習時間:3.7日/湯温:―/パグ満足度:3.2/5

    ・Izuformer(base)
     BLEU:29.7/学習時間:2.1日/湯温:37.5℃/パグ満足度:4.1/5

    ・Izuformer(big)
     BLEU:31.2/学習時間:4.2日/湯温:42.0℃/パグ満足度:4.6/5

    ・Just Soak in Izu
     BLEU:12.1/学習時間:0.3日/湯温:40.0℃/パグ満足度:4.9/5


    最後の行は、名前のとおり、ただ伊豆で浸かっています。モデルの学習時間という列に滞在時間のようなものが紛れ込んだ時点で、比較実験としては崩壊しています。

    パグ満足度は最高値。翻訳の成績は大きく下がっています。

    そりゃ翻訳してないからな。

    実在の原論文では、Transformer(big)の英独翻訳における28.4 BLEUと、8基のP100 GPUで3.5日の学習が報告されています。[1] 上の架空表にある3.7日や湯温、満足度とは別の話です。

    ここで、BLEUについても少しだけ。

    BLEUは機械翻訳の自動評価指標で、参照訳と出力訳のn-gram、つまり語の連なりの一致を使います。同じ語の繰り返しによる水増しを抑えた適合率を組み合わせ、短すぎる出力にはペナルティをかけます。基本はコーパス全体での比較に使う指標です。[6]

    「BLEU 28.4」は「28.4%正しい」という意味ではありません。意味の通り方や自然さを、これ一つで直接採点しているわけでもありません。BLEUの改善と、人が感じる翻訳品質の改善が食い違う例も報告されています。[7]

    さらに、評価データやトークン分割などの条件が違うと、数値の比較も崩れます。スコアだけでなく、測り方をそろえる必要があるわけです。[8]

    今回のパグ満足度には、そもそも測り方がありません。研究所のパグがうれしそう。それだけです。

    この架空表から「温泉でモデル性能が上がる」とは結論できませんが、「何を評価している数字なのか」を考える材料にはなります。

    翻訳の良さを測りたいのか。使いやすさを知りたいのか。それとも、パグが休めたかを知りたいのか。

    全部を一つの数字で済ませようとすると、翻訳器の比較表に露天風呂が入ってきます。

    5.Conclusion──エンジニアには温泉も必要である

    画像



    架空研究の結論です。

    「Izuformerは、Transformerの構造を温泉旅館として眺めるためのパロディである。複数の参照、位置情報、残差の加算、正規化、各位置での加工、未来を見ない生成という部品を、浴槽と配管でたどれるようにした。性能向上の証拠はない。湯上がりのパグはいる」

    そして謝辞。

    「本企画の舞台として想像した伊豆の温泉風景と、最後まで真顔で入浴していた架空の黒パグに感謝する」

    実際に研究協力やデータ提供を受けた、という話ではありません。温泉街を勝手に共同研究先へ編入しない。ここは大事です。

    原論文に戻れば、Transformerの大きな意義は、Attentionを中心とした構造で系列を扱い、翻訳の品質と計算の並列化を両立する道を示したことにあります。[1][2]

    入力のどこを見るか。取り込んだ情報をどう加工するか。元の情報をどう足し、次の出力につなぐか。

    その関係が少し見えたなら、温泉旅館に沈めた甲斐がありました。

    Attention Is All You Need.

    しかし、エンジニアには温泉も必要である。

    Attention Izu All Yu Need.


    なお、酒フォルダの原稿がなぜ英語論文の体裁になっていたのかは、今後の研究課題とします。

    おまけ


    ここからは本物の修善寺温泉観光案内

    せっかくTransformerを伊豆まで連れてきたので、最後に本物の観光案内も。

    論文は架空ですが、修善寺温泉は実在します。ここからは実際の観光情報をもとにまとめました。

    ■ まずは、どこを見る?

    画像



    温泉街の中心を流れる桂川、そのほとりの竹林の小径、空海の開創と伝わる修禅寺。日枝神社や、北条政子が息子・源頼家の冥福を祈って寄進した指月殿も、散策で訪ねたい場所です。[9]

    ちなみに、地名や温泉名は「修善寺」、お寺の名前は「修禅寺」。検索するときも、この違いを覚えておくと便利です。

    ■ 半日で、ゆっくり歩く

    画像



    参拝して、川辺を歩き、竹林で休み、昼食のあとに温泉へ。画像では、休憩や入浴を含めた3〜4時間のモデルプランにしています。時刻は散策の組み立て例です。

    泊まるなら、夜の散策も候補に。温泉街のライトアップは、公式案内では日没から23時まで。昼の竹林とは、また違う雰囲気を楽しめます。[12]

    ■ 入れる湯と、眺める湯

    画像



    三島駅から伊豆箱根鉄道の駿豆線で修善寺駅へ。そこから温泉街までは、路線バスなどで移動します。駅と温泉街は別の場所です。[13]

    独鈷の湯は、温泉街を象徴する名所ですが、現在は見学のみ。入浴も足湯もできません。足湯なら河原湯やリバーテラス・杉の湯へ、日帰り入浴なら筥湯へどうぞ。[10][11]

    筥湯は大人700円、小学生400円。営業時間は10時〜21時、最終受付は20時30分です。不定休で、第2木曜は8月を除いて15時からの営業となっています。訪問前に最新の営業状況を確認しておくと、現地で慌てずに済みます。[11]

    観光案内の風景はイラストです。詳しい場所や交通時刻は、末尾の公式案内を参照してください。

    あとは、日程を空けるだけ。

    これが一番難しい。本当に難しい。

    そしてストゼロは脳内のインスピレーションを活性化させることを証明した 証明終了

    参考資料 リンク貼ろうと思ったんですがそこまでできませんでした。 Let's google it.

    [1] Vaswani et al.(2017), Attention Is All You Need.
    原論文⁠
    第3節:構造・Attention・FFN・位置情報。第5.2節:学習環境。第6.1節:翻訳結果。

    [2] Jakob Uszkoreit / Google Research(2017), Transformer: A Novel Neural Network Architecture for Language Understanding.
    Google Researchによる解説⁠

    [3] TensorFlow公式, Neural machine translation with a Transformer and Keras.
    公式チュートリアル⁠
    入力・Cross-Attention・マスク・学習と生成の流れの補助資料。層数などは原論文に合わせています。

    [4] He et al.(2015), Deep Residual Learning for Image Recognition.
    残差学習の論文⁠

    [5] Ba, Kiros and Hinton(2016), Layer Normalization.
    Layer Normalizationの論文⁠

    [6] Papineni et al.(2002), Bleu: a Method for Automatic Evaluation of Machine Translation.
    BLEUの原論文⁠

    [7] Callison-Burch, Osborne and Koehn(2006), Re-evaluating the Role of Bleu in Machine Translation Research.
    BLEUと人による品質判断の検討⁠

    [8] Post(2018), A Call for Clarity in Reporting BLEU Scores.
    BLEUの比較条件に関する論文⁠

    [9] 修善寺温泉の観光案内。
    伊豆市観光協会修善寺支部・観光案内⁠
    竹林の小径⁠
    日枝神社⁠
    指月殿⁠

    [10] 伊豆市観光情報サイト。
    独鈷の湯⁠

    [11] 伊豆市観光協会修善寺支部。
    日帰り温泉・立ち寄り湯・足湯⁠

    [12] 伊豆市観光協会修善寺支部。
    修善寺温泉街ライトアップ⁠

    [13] 伊豆市観光協会修善寺支部。
    修善寺温泉へのアクセス⁠

    観光情報の確認日:2026年10月21日。料金・営業時間・運行内容などは変更される場合があります。

    ※本記事のIzuformer、Black Pug Onsen Labおよび実験表は創作です。図の湯温は演出用の設定で、入浴条件を推奨するものではありません。

    #AI #生成AI #Transformer #Attention #機械学習 #深層学習 #論文解説 #技術解説 #伊豆 #温泉


     
     
    昭和生まれのAI技術者。生成AIの公式発表・論文・新機能を、実際に触って検証しています。難しいことを面白く、一次ソースは原文まで。画像、創作、黒パグも。PR・レビューのご相談はXかDMへ。AI使用率:記事平均30%、画像100%。パグ好きに悪い人はいないと思うよ🤧🐶

    あなたへのおすすめ