Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Transformerによるテキストベクトル化を解説

payanotty
January 18, 2024

 Transformerによるテキストベクトル化を解説

payanotty

January 18, 2024
Tweet

More Decks by payanotty

Other Decks in Technology

Transcript

  1. 自己紹介
 • 名前
 ◦ 早野 康太
 • お仕事
 ◦ 自然言語モデルの改善


    • 今期アニメ
 ◦ ダンジョン飯
 ◦ 姫様“拷問”の時間です
 ◦ 魔法少女にあこがれて

  2. • Attention Is All You Need (Łukasz Kaiser et al.,

    2017)
 ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 ◦ GPTなどの文章生成モデル
 ▪ → TransformerモデルのDecoder部分を利用
 ◦ テキストベクトル化用のモデル
 ▪ → TransformerモデルのEncoder部分を利用
 Transformerモデル 

  3. • A Survey of Transformers 
 (TIANYANG LIN et. al.,

    2021)
 ◦ Transformer派生についてのサーベイ
 ◦ 膨大な数のTransformer派生について
 詳細にまとめられている
 ◦ もっと詳しく知りたい方は
 こちらを読まれるのをおすすめします
 
 Transformerから他のモデルへの派生

  4. Attentionによる単語のベクトル化
 吾輩
 は
 猫
 である
 。
 吾輩
 は
 猫
 である


    。
 文章を単語単位に分かち書き(トークナイズ) 
 各単語に対応するベクトル 

  5. Attentionによる単語のベクトル化
 吾輩
 は
 猫
 である
 。
 吾輩
 は
 猫
 である


    。
 0.1
 0.3
 -0.5
 0.8
 長方形はベクトルだと思ってください 
 文章を単語単位に分かち書き(トークナイズ) 

  6. Attentionによる単語のベクトル化
 吾輩
 は
 猫
 である
 。
 吾輩
 は
 猫
 である


    。
 文章を単語単位に分かち書き(トークナイズ) 
 各単語に対応するベクトル 
 単語に対応する新しいベクトル 
 ベクトル同士の内積の値(類似度) 
 ×

  7. AttentionからTransformerへ
 吾輩
 は
 猫
 である
 。
 Attention
 Attention
 Transformer
 吾輩


    は
 猫
 である
 。
 BERTやGPTをはじめとしたTransformer系列のモデルは 
 Attentionを繰り返して文章をベクトルの連なりに変換している 

  8. AttentionからTransformerへ
 吾輩
 は
 猫
 である
 。
 Attention
 Attention
 Transformer
 吾輩


    は
 猫
 である
 。
 BERTやGPTをはじめとしたTransformer系列のモデルは 
 Attentionを繰り返して文章をベクトルの連なりに変換している 
 一番はじめのベクトルは 
 ランダム初期化
 (学習の中で最適化されていく) 
 

  9. 文章のベクトル化
 吾輩
 は
 猫
 である
 。
 Attention
 Attention
 Transformer
 吾輩


    は
 猫
 である
 。
 [CLS]
 [CLS]
 文頭に特別な トークンを追加
 • CLS Pooling
 ◦ 文頭の特別なトークンのベクトルを文章ベクトルとして使う 
 • Average Pooling
 ◦ 全トークンの値を平均して文章ベクトルとして使う 

  10. ベクトル化に特化させるためのfine-tuning
 Query:
 吾輩は猫であるの作者は?
 Negative Passage:
 『人間失格』(にんげんしっかく)は、太宰 治による中編小説。
 ベクトル化&類似度計算 
 ポジティブ類似度


    ネガティブ類似度
 Positive Passage:
 『吾輩は猫である』(わがはいはねこであ る)は、夏目漱石の長編小説であり、処女 小説である。
 • ポジティブ類似度が高く、ネガティブ類似度が低くなるように 
 ロス関数を設定して学習する
 ◦ ロス = - ポジティブ / (ポジティブ + ネガティブ) 

  11. ベンチマーク上位のモデルたち
 • MTEB Leaderboard - a Hugging Face Space by

    mteb
 ◦ AnglE-optimized Text Embeddings
 ◦ Cohere/Cohere-embed-english-v3.0 · Hugging Face
 ◦ BAAI/bge-large-en-v1.5 · Hugging Face
 ◦ intfloat/e5-large-v2 · Hugging Face
 
 

  12. RAG (Retrieval Augmented Generation)
 質問 + 選択肢
 Wikipedia passages
 dump


    Wikipedia embeddings
 
 あらかじめベクトル化 
 ベクトル化
 embedding
 ベクトル類似度検索 
 関連する文章
 (Context)
 LLMへのインプット
 Wikipedia記事から
 検索してContextを取得
 ベクトル検索用に調整された言語モデルを使う 
 (質問に回答するモデルとは別物) 

  13. Stable Diffusion (画像生成モデルへの応用)
 
 
 raw pixel value
 VAE
 latent


    noisy latent
 + noise
 input text
 Text
 Encoder
 embedding 
 UNET
 prediction
 loss
 velocity
 生成したい画像についての文章を 
 ベクトル化して生成モデルに与える 

  14. 音楽生成モデル
 
 
 • Suno AI
 ◦ 自然言語で歌詞や曲調を指定すると
 その通りに音楽を生成してくれる
 ◦

    具体的なモデルは公開されていないが
 内部では文章→ベクトルの変換を通して
 文章情報を生成モデルに与えている......はず!