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

テキスト検索の原点:全文検索のしくみと活用ポイント

segavvy
January 17, 2024

 テキスト検索の原点:全文検索のしくみと活用ポイント

2024年1月18日に開催されたStudyCoの勉強会「【StudyCo with Momento】LLMに独自知識で回答させる『RAG』の理解を深めよう」でお話した際の資料です。
動画(スライド画面+音声)はこちらです。
https://youtu.be/IGJ4JPei6Wo?feature=shared&t=4331

※個人で作成したものであり、内容や意見は所属企業・部門見解を代表するものではありません。

segavvy

January 17, 2024
Tweet

More Decks by segavvy

Other Decks in Technology

Transcript

  1. 検索は「道具」 • ⽬的は「必要な情報を⾒つける」ことであり 「◦◦検索」はそのために使う「道具」 • 状況によって適切な道具は変わる a. ある商品のレビューと似たようなレビューを探したい時 レビューの⼀覧を⼆分探索したりはしない b.

    商品コードがわかっている商品の在庫数が知りたい時 商品DBを全⽂検索したりはしない c. ソースコードから特定関数の呼び出し箇所を列挙したい時 ソースコードをベクトル検索したりはしない ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 4
  2. ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 7 ʢٳܜʣࣗݾ঺հ ͕͑͠Β ͔ͨ͠ ߐ಄

    و࢙ !TFHBWWZʢηΨϏʣ גࣜձࣾΞΠΞΫτ ਓ޻஌ೳɾίάχςΟϒιϦϡʔγϣϯ෦ ςΫχΧϧσ ΟϨΫλʔ݉ΧελϚʔαΫηενʔϜ Ϧʔμʔ ΋ͷͮ͘Γ΍࢓૊Έͮ͘Γ͕େ޷͖ɻ"*ͷࣾձ࣮૷ʹᬏਐதʂ
  3. 仕組みは本の索引と同じ 索引 【あ】 あご 3巻 13 ⾜ 4巻 239 頭

    2巻 192 【い】 胃 2巻 28 【う】 腕 4巻 32 うなじ 2巻 129 本は索引を⾒れば ⽬的ページが すぐわかる 「⾜」については 4巻の239ページ︕ 全⽂検索でも 検索するために 索引をあらかじめ作っておく︕ ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 9
  4. 索引に載せる⾔葉は どう選ぶのか︖ 索引にない⾔葉では 検索できない どんな条件でも検索できるように 索引を作る必要がある 代表的な 2つの作り⽅をご紹介 ◦ ”AI”

    は検索できる × “RAG” は索引にないので 検索できない ⾔葉 単語の出現場所 AI ⽂書A(5、15⽂字⽬) ⽂書F(... 勉強 ⽂書A(8、18⽂字⽬) ⽂書G(… する ⽂書A(3、20⽂字⽬) ⽂書B(… ⼈達 ⽂書A(12⽂字⽬) ⽂書D(… ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 10
  5. 索引の作成時 1.⽤語辞書(品詞や原形)を使い分解 2.助詞などの不要なものを除去 3.変化しているものを 原形へ戻す 索引の作り⽅︓①⽇本語解析 A I を勉強した⼈達 A

    I 勉強 する ⼈達 検索時 検索条件の⽂字に対して 同様の処理を実施してから 索引を調べる 索引を⾒て これらが すべてあるものを探す A I を 勉強 し た ⼈達 A I 勉強 し ⼈達 A I の勉強 A I 勉強 ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 11
  6. A I を勉強した⼈達 A I を勉強した⼈達 A I を勉強した⼈達 A

    I を勉強した⼈達 A I を勉強した⼈達 A I を勉強した⼈達 A I を勉強した⼈達 A I を勉強した⼈達 索引の作り⽅︓②単純に切り刻む A I を勉強した⼈達 検索時 検索条件の⽂字に対して 同じ⽂字数で切り出す 最後の半端は前の⽂字で ⽂字数を合わせる※ 索引を⾒て これらが すべてあるものを探す 索引の作成時 1⽂字ずつ ずらしながら 固定の⽂字数で 切り出していく A I の勉強 A I の勉 勉強 ※ 切り出し ⽂字数が2の場合 ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 12
  7. ②単純に切り刻む︓⾔葉の途中が該当 東京都府中市 は 東京 京都 都府 府中 中市 に分解 “京都”

    で検索されてしまう 索引の課題 ①⽇本語解析︓解析ミス Honda Cars 東京都 は Honda Cars 東京 都 に分解 解析部分を調整したり 後処理で不要なものを除いたり 両⽅の⽅式を組み合わせたり etc. 正しくは ひがしきょうと Honda Cars 東京都 ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 13 “京都” で検索できない “東京” で検索されてしまう
  8. 表記のゆれに対応する仕組み ゆれを統⼀する表や 同義語辞書などを⽤意して処理 1 全半⾓ ABC = ABC アイウ =

    アイウ 2 ⼤⼩⽂字 ABC = abc ABC = abc 3 ひらがな・カタカナ りんご = リンゴ みかん = ミカン 4 数字 123 = 一二三 = 百二十三 = ⅠⅡⅢ 5 異体字・新旧字体 高 = 髙 斉 = 齊 辺 = 邊 6 送り仮名 引っ越し = 引越し = 引越 7 同義語 アメリカ = 米国 = 合衆国 = USA 8 記号 ー = ー = - = - = ― = ‐ ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 14
  9. 第2章のまとめ 全⽂検索の仕組み 専⾨⽤語 1 事前に索引を作ること・その索引 インデキシング・インデックス 2 索引データ(⾔葉と出現位置の対応表) 転置インデックス、転置ファイル 3

    索引作成のために 対象のデータを集めること クローリング、クロールする 4 ⽇本語の解析処理により ⾔葉を切り出すこと 形態素解析、分かち書き 5 検索で不要な 助詞などの⾔葉を 索引から除くこと ストップワードの除去 6 ⽂章を⼀定の⽂字数で単純に切り刻む⽅式 n-gram(エヌ・グラム) 7 ⽂章の分割ミスなどにより 検索に該当しないこと 検索もれ 8 ⽂章の分割ミスなどにより 間違って該当したデータ 検索ノイズ 9 表記ゆれを統⼀したり 辞書を使って対応する処理 正規化、ステミング、辞書展開 ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 15
  10. 道具だけに頼らず⼯夫しよう︕ たとえば社内のファイルを⾃然⽂で検索したい場合 • ファイルが格納された既存DBのインデックスを流⽤する LLMに ⾃然⽂の条件からDB向けのクエリーを⽣成させる • 条件が単語のみだと検索の精度が上がらないので LLMに 必要な条件が揃うまで聞き返しをさせる

    「RAG」で検索された時「RAGの何を知りたいですか︖」と聞き返す • ⼊⼒されなくても分かっている条件を⾃動的に補う 「RAGの概要が知りたい」でも営業職と技術職では欲しい情報が違う 所属部⾨と連動させて 条件を補完したり対象DBを選択したりする ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 20
  11. おわりに ©2024 segavvy 2024/1/18【StudyCo with Momento】LLMに独⾃知識で回答させる「RAG」の理解を深めよう 22 RAGといえば ベクトル検索でしょ︖ 検索もいろいろあるのか……

    ⽬的にあわせて考えねば︕ 10分前 今 このお話が検索道具の理解の⼀助になれば幸いです お時間をいただき ありがとうございました