Slide 1

Slide 1 text

デュエルマスターズでカードを RAG検索 たそたく

Slide 2

Slide 2 text

デュエルマスターズ ◼トレーディングカードゲーム ◼カジュアルにやってる

Slide 3

Slide 3 text

デュエル・マスターズの悩み 3ターン目に コスト5の カード使い たいなぁ デュエマ公式カードリスト 探しに行く

Slide 4

Slide 4 text

ワード検索 カード検索 文明 コスト カードの種類 能力 パワー 商品名 フォーマット・イラストレーター

Slide 5

Slide 5 text

どうやって探す? コストが3少なくなる 3ターン目に コスト5の カード使い たいなぁ 山札の上から2枚を….. マナゾーンに置き… 手札にあるこの クリーチャーを入れ替えて もよい 多様すぎて検索できない

Slide 6

Slide 6 text

どうやって探す? コストが3少なくなる 3ターン目に コスト5の カード使い たいなぁ 山札の上から2枚を….. マナゾーンに置き… 手札にあるこの クリーチャーを入れ替えて もよい 多様すぎて検索できない LLMでうまいことできないかな?

Slide 7

Slide 7 text

◼全カード1万枚以上 ◼カードによっては文章量が それなりにある LLMのプロンプトで渡すの のは無理

Slide 8

Slide 8 text

◼全カード1万枚以上 ◼カードによっては文章量が それなりにある LLMのプロンプトで渡すの のは無理 ならRAGを使おう

Slide 9

Slide 9 text

RAG(検索拡張生成)とは ◼外部データに検索を行って、調べてから返答をする方法 ◼使用例 ⚫LLMが学習していない最新の情報を与える ⚫ネットにはない機密文書を参照する

Slide 10

Slide 10 text

概要 ◼以下の3ステップからなる ◼①カードリストの収集 ⚫まずは手元に参照するデータが必要 ◼②ベクトル化(Emdedding) ⚫検索処理ができるように、ベクトル化 ◼③カードの検索 ⚫全データを見ることは難しいため、必要なデータのみを抜粋 ◼④回答作成 ⚫参照したデータを元に回答作成 ①カードリスト の収集 ③カードの検索 ④回答作成 ②ベクトル化

Slide 11

Slide 11 text

①カードリストの収集 1. カードリスト表示 2. カード個別ページに移動 3. テキストデータを得る

Slide 12

Slide 12 text

カードリストの表示 ◼もちろん全てのカードが1ページにまとまっているわけではない ◼URLでソート・フィルター・何ページ目かを指定している

Slide 13

Slide 13 text

テキストデータの収集 ◼該当するテーブルから抜き出す

Slide 14

Slide 14 text

②ベクトル化(Embedding) ◼ 後に検索などの処理ができるようにベクトル化 ◼これをすることで、言葉同士の類似度を数値化できるので、文章か ら検索が行えるようになる ◼今回は Open AI の text-embedding-3-large を使用

Slide 15

Slide 15 text

③カードの検索 ◼ベクトル化したカードリストから、近いカードを探す 例:山札から墓地 自分の山札の上から2枚を墓地に置く。その後、相手は自身の山札の 上から2枚を墓地に置く。 このクリーチャーが自分の山札から墓地に置かれた時、バトルゾーン に出す。

Slide 16

Slide 16 text

④回答作成 ◼ピックアップしたカード情報を元に回答を生成する ◼検索して上位数百件ならLLMに入力できる