Slide 1

Slide 1 text

RAGだけじゃない! 古くて新しいベクトル検索の世界 2024/06/28 Classmethod, Inc. George Yoshida

Slide 2

Slide 2 text

Xへの投稿の際は、 ハッシュタグ #devio2024 #クラスメソッド福岡 でお願いいたします。 2 お願い

Slide 3

Slide 3 text

AWSの⽣成AI系What's Newから 3 Ref : https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-titan-multimodal-embeddings-model-bedrock/

Slide 4

Slide 4 text

AWSの⽣成AI系What's Newから 4 Ref : https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-titan-multimodal-embeddings-model-bedrock/ Embedding 埋め込み 基盤モデル マルチモーダル ベクトルデータベース

Slide 5

Slide 5 text

セッションのゴール = ベクトル検索関連の キーワード・概念を理解 5

Slide 6

Slide 6 text

⾃⼰紹介 ● 名前 : George Yoshida ● Blog : https://dev.classmethod.jp/author/quiver/ ● 仕事 : AWS事業本部エンジニア ● 所属 : HND󰏦 → TXL/BER󰎲 → FUK󰏦 ● 2024 Japan APN AWS ○ Top Engineer(Database) ○ All Certifications Engineer 6

Slide 7

Slide 7 text

アジェンダ 1. 実は⾝近なベクトル検索 2. 埋め込み 3. ベクトル検索 4. ベクトルデータベース 5. まとめ 7

Slide 8

Slide 8 text

ベクトル検索は以前から活躍 ● RAG 8

Slide 9

Slide 9 text

ベクトル検索は以前から活躍 ● RAG ● あいまい検索(セマンティック検索) ● 推薦システム 9

Slide 10

Slide 10 text

ベクトル検索は類似検索が得意 ● RAG → 似ているドキュメント ● あいまい検索(セマンティック検索) →似ている⽤語 ● 推薦システム → 似ているコンテンツ 10

Slide 11

Slide 11 text

RAGにおけるベクトル検索 11

Slide 12

Slide 12 text

よくあるチャット系⽣成AIサービス 12 A:2024年のオリンピック開 催とはフランスのパリです。 Q:2024年のオリン ピック開催地は?

Slide 13

Slide 13 text

よくあるチャット系⽣成AIサービス 13 A:2024年のオリンピック開 催とはフランスのパリです。 Q:2024年のオリン ピック開催地は?

Slide 14

Slide 14 text

知らないことは答えられない 14 Q:2023年末のクラメ ソは何連休だった? A:具体的な情報は⾒つける ことができませんでした。

Slide 15

Slide 15 text

知らないことは答えられない 15 Q:2023年末のクラメ ソは何連休だった? A:具体的な情報は⾒つける ことができませんでした。

Slide 16

Slide 16 text

RAGが解決すること ● RAG = Retrieval-Augmented Generation cf.)情報検索(Information Retrieval) ● 基盤モデルの外にあるナレッジを活⽤ ● 幻覚(ハルシネーション)の抑制や事前ト レーニングされていない社内ドキュメント や最新情報の検索などが可能 16

Slide 17

Slide 17 text

RAGを利⽤したナレッジの活⽤ 17 [1,2,3] [4,5,6]

Slide 18

Slide 18 text

RAGを活⽤して未知の質問に回答 18 Q:2023年末のクラメ ソは何連休だった? A:有給奨励⽇を休むと 17連休でした。

Slide 19

Slide 19 text

RAGは2種類のモデルを利⽤ 19 埋め込み テキスト [1,2,3] [4,5,6]

Slide 20

Slide 20 text

モデルとは ● モデル = アルゴリズムのようなもの ● 基盤モデル(Foundation Model;FM)は⼤規模なデー タセットで事前学習された汎⽤的なAIモデル ● 例) ○ OpenAIのGPTシリーズ ○ AnthropicのClaudeシリーズ 20

Slide 21

Slide 21 text

テキストモデル 21 テキスト ● 検索した⽂書を参考 に質問の回答を作成 ● ⽣成AIの要約と同等

Slide 22

Slide 22 text

埋め込みモデル 22 ● モデルはデータを ベクトルに変換 ● ベクトルでデータ 操作 [4,5,6] [1,2,3]

Slide 23

Slide 23 text

レコメンドも同じ埋め込み構成 23 [1,2,3] [4,5,6]

Slide 24

Slide 24 text

アジェンダ 1. 実は⾝近なベクトル検索 2. 埋め込み 3. ベクトル検索 4. ベクトルデータベース 5. まとめ 24

Slide 25

Slide 25 text

埋め込み 25 [1,2,3] [4,5,6]

Slide 26

Slide 26 text

埋め込み ● 埋め込み = Embedding = ベクトル = 数字の配列 ● 配列のサイズが次元 ● 埋め込みモデルはデータをベクトルに変換 ● 埋め込みモデル(“りんご”) = [0.1, -0.3, …, 0.2] 26

Slide 27

Slide 27 text

埋め込みモデルの例 ● テキストモデル ○ テキストデータの埋め込みを⽣成 ● マルチモーダルモデル ○ テキストや画像など異なるモードのデー タの埋め込みを⽣成 27

Slide 28

Slide 28 text

埋め込みは⾮構造から構造への橋渡し 28

Slide 29

Slide 29 text

アジェンダ 1. 実は⾝近なベクトル検索 2. 埋め込み 3. ベクトル検索 4. ベクトルデータベース 5. まとめ 29

Slide 30

Slide 30 text

ベクトル検索 30 [1,2,3] [4,5,6]

Slide 31

Slide 31 text

ベクトル検索は類似検索 ● ベクトル検索 = ベクトルでベクトルの集合を検索 ● ベクトル同⼠の⽐較が必要 ● ベクトル検索は類似検索 ○ ベクトル空間に距離を定義 ○ ベクトル同⼠(2点間)の近さから類似度を定義 ● ⽤途ごとに適切な類似度(コサイン類似度等)を選択 31

Slide 32

Slide 32 text

似たもの同⼠は近くにいる 32 2次元ベクトル空間への埋め込み Q:うどんぽい ⾷べ物は? A:ラーメン

Slide 33

Slide 33 text

ANNで近似探索 ● ⾼次元の⼤量のベクトルデータを定義通りに計 算すると計算量が爆発(最近傍探索問題) ● 正確さを犠牲にして効率よく⾼速に近似 (approximate)するアルゴリズムが近似最近傍 探索(ANN; Approximate Nearest Neighbor) 33

Slide 34

Slide 34 text

ベクトルインデックス ● RDBではB-Treeがデファクトスタンダード ● ベクトル検索には近似探索⽤の別のイン デックスが必要 ● ANNインデックスとしてグラフベースの HNSW(Hierarchical Navigable Small World)などがある 34

Slide 35

Slide 35 text

アジェンダ 1. 実は⾝近なベクトル検索 2. 埋め込み 3. ベクトル検索 4. ベクトルデータベース 5. まとめ 35

Slide 36

Slide 36 text

ベクトル検索 36 [1,2,3] [4,5,6]

Slide 37

Slide 37 text

ベクトルを操作できれば ベクトルデータベース 37

Slide 38

Slide 38 text

ベクトルデータベースの例 ● Pinecone ● Elasticsearch ● PostgreSQL 38

Slide 39

Slide 39 text

インターフェースの違い ● Pinecone → ベクトルが得意 ● Elasticsearch → JSON が得意 ● PostgreSQL → リレーショナルモデルが得意 39

Slide 40

Slide 40 text

データベースの⽬的を考えよう ● Pinecone → ベクトルが得意 ○ ベクトル検索に特化 ● Elasticsearch → JSON が得意 ○ 全⽂検索とベクトル検索のハイブリッド検索 ● PostgreSQL → リレーショナルモデルが得意 ○ データ資産を活⽤ 40

Slide 41

Slide 41 text

アジェンダ 1. 実は⾝近なベクトル検索 2. 埋め込み 3. ベクトル検索 4. ベクトルデータベース 5. まとめ 41

Slide 42

Slide 42 text

ベクトル検索の特徴 ● ベクトルDBは埋め込みモデルを介して保 存‧検索するインターフェースを提供 ● ⾮構造化データを扱える ● モデルのおかげでタグのようなメタ情報の 運⽤は不要 42

Slide 43

Slide 43 text

ベクトル検索は近似探索 ● ベクトル検索はベクトル間の距離を利⽤し た類似検索 ● 計算量を抑制するために、正確さを犠牲に 近似最近傍探索(ANN)で近似する ● 全⽂検索などと棲み分けが必要 43

Slide 44

Slide 44 text

データベースの選定 ● メインで扱うデータ・処理によってデータ ベースを使い分けよう ● ベクトル特化型データベースはRDBの上位 互換ではない 44

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

46