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

2023.06.01_LangChain/Llamaindex/Whisperを使ったアプリケ...

 2023.06.01_LangChain/Llamaindex/Whisperを使ったアプリケーション開発のまとめと展望

More Decks by PharmaX(旧YOJO Technologies)開発チーム

Other Decks in Technology

Transcript

  1. (C)PharmaX Inc. 2022 All Rights Reserve 2 自己紹介 自己紹介 上野彰大

    PharmaX共同創業者・エンジニアリング責任者 好きな料理はオムライスと白湯とコーラ マイブームはLLMとRust Twitter:@ueeeeniki
  2. (C)PharmaX Inc. 2022 All Rights Reserve 6 LINEから利用できるバーチャルな薬局 最短 即日

    ※ お薬をもっと手軽に、もっと安心して受け取れる「 YOJO薬局」 お薬はお家までお届け LINEで薬剤師にいつでも相談 好きなときにお薬の説明 ※東京23区内のみ
  3. (C)PharmaX Inc. 2022 All Rights Reserve 7 ソフトウェアに閉じないプロダクト開発 調剤事業 独自の薬局オペレーションシステムを構築し、最適化されたオンライン薬局を実現

    × 自社薬局をプロトタイプラボ化 ソフトウェア オペレーション リモート 薬剤師組織 薬局業務を効率化す るオペレーションシス テム(薬局OS) 質の高い患者さま対応 のためのオンライン特 化組織 対人業務の質を高め るための対物業務効 率化 「ソフトウェア×オペレーション×薬剤師組織」を プロダクトとして開発
  4. (C)PharmaX Inc. 2022 All Rights Reserve 10 個人情報の扱いについて 疑義照会とは 個人情報の扱いに関しては、責任を負いかねますのでくれぐれもご注意ください

    • このLTは「技術的に可能であること」を示すものであり、参考にされた方や企業の個人情報保護 の問題などについては責任を負いかねます • PharmaXでは、サンプルの処方せんデータ および服薬指導音声を用いてPoCを行っております • 特に医療の個人情報は要配慮個人情報と呼ばれるものにあたるので、扱いにはご注意ください ◦ 要配慮個人情報の第三者提供のプライバシーポリシーへの同意はオプトイン形式でしか取れない ので、過去のユーザーのデータを扱う場合にも十分お気をつけてください
  5. (C)PharmaX Inc. 2022 All Rights Reserve 11 今回の発表での実装例について 疑義照会とは 個人情報の扱いに関しては、責任を負いかねますのでくれぐれもご注意ください!

    • 今回の発表は、LangChainやLlamaindexの書き方を体系的に学べるような内容ではなく、 様々な応用例を示すことに注力している点をご了承ください ◦ 特にLangChainの使い方を体系的に学びたい方は、大嶋さん( @oshima_123)の「プロ ンプトエンジニアリングから始める LangChain入門」やUdemy講座「LangChainによる大 規模言語モデル(LLM)アプリケーション開発入門―GPTを使ったチャットボットの実装ま で」をご覧ください • LangChainやLlamaindexといったライブラリは非常にアップデートが激しく、今回示したコード が最新バージョンで動くかどうかは確認できていない点もご了承いただければ幸いです ◦ PoCタイミングも4月〜5月に渡っており、その時点でのバージョンでは動いたものの、最新 バージョンでは動かないということが起こることは十分に考えられます
  6. (C)PharmaX Inc. 2022 All Rights Reserve 14 薬歴とは何か? 薬歴とは 服薬指導で話した内容や他の薬剤師への引き継ぎ事項などを記載した文章のこと

    • 薬歴はSOAP形式でまとめる ◦ Subjective (S)(主観的所見): 患者さん自身が感じている症 状や問題を記録する部分 ◦ Objective (O)(客観的所見): 検査結果や観察による客観 的なデータを記録する部分 ◦ Assessment (A)(評価): SubjectiveとObjectiveの情報を もとに、患者さんの病状や薬物治療の効果・副作用を評価 する部分 ◦ Plan (P)(計画): 評価をもとに、今後の治療方針や薬物療法 の変更、患者さんへの指導内容など、具体的なアクションプ ランを立てる部分
  7. (C)PharmaX Inc. 2022 All Rights Reserve 15 薬歴の記入を自動化する意義 薬歴とは •

    忙しい薬局だと処方箋の受付が落ち着くまで、薬歴を書くことができないので、今まで自分が受 け持った患者さんの薬歴をまとめて記入しなければならないことが多々ある • 薬歴を書くまでに時間が空いてしまうので、正確な内容を記録できなかったり、残業につながっ てしまったりする • 服薬指導した音声から薬歴が自動で生成できれば、薬剤師の負担を大幅に削減することが可 能 薬剤師の負担を劇的に軽減できる
  8. (C)PharmaX Inc. 2022 All Rights Reserve 16 服薬指導音声から薬歴内容を自動生成する手順 • ①

    その患者の処方せんから医薬品の処方情報を抜き出して構造化する • ② 服薬指導の音声の録音からWhisperで文字起こしする ◦ 必要があれば、患者と薬剤師で話者分離する • ③ ①の処方情報と、②の服薬指導内容の文字起こしから GPTで薬歴の内容を自動生成する
  9. (C)PharmaX Inc. 2022 All Rights Reserve 17 手動で作成した会話からChatGPTで薬歴を生成する ChatGPTで 薬歴を生成する

    服薬指導の例 薬剤師:上野さん、お待たせしまし た。今日はどうされましたか? 患者:はい、子どもを抱っこしようとし たら腰がピキッといってしまって。。。 それから腰の痛みが引かなかったの で、クリニックに行って薬をもらうこと にしました。 薬剤師:それはお辛いですね。今回 は痛みを和らげるための薬が 2種類 出ています。 1つ目がモーラステープというお薬で す。 ・・・(中略)・・・ 患者:飲み薬は1回飲んだらどれくら い間隔を空ける必要がありますか? 薬剤師:1回飲んだら、6時間ぐらい空 けるようにお願いします。 他になにか気になることはあります か? 患者:分かりました。ありがとうござい ます。他に気になることはないです。 薬剤師:お大事にどうぞ。
  10. (C)PharmaX Inc. 2022 All Rights Reserve 19 ChatGPTが作る薬歴はクオリティが高い 薬歴とは S

    ・子供を抱っこしようとして腰痛 O ・ 痛み止め2種類処方 A ・ 腰痛 ・光線過敏症注意 P ・用法用量説明 ・次回副作用確認 <ChatGPTの薬歴> <人間の薬歴> ChatGPTは丁寧な薬歴を生成してくれる
  11. (C)PharmaX Inc. 2022 All Rights Reserve 20 服薬指導音声から薬歴内容を自動生成する手順 • ①

    患者の処方せんから医薬品の処方情報を抜き出して構造化する • ② 服薬指導の音声の録音からWhisperで文字起こしする ◦ 必要があれば、患者と薬剤師で話者分離する必要もある • ③ ①の処方情報と、②の服薬指導内容の文字起こしから GPTで薬歴の内容を自動生成する
  12. (C)PharmaX Inc. 2022 All Rights Reserve 21 ステップ①: 処方せんから医薬品の処方情報を抜き出して構造化する ステップ①

    • 薬局で受け取った処方せんの情報からテキストを抽出する ◦ 紙の処方せんをOCRで抽出する ◦ PDFデータからPDFMinerなどで抽出する 処方せん画像をOCRでテキスト化したり、 PDFデータからテキストを抽出したりする 医師 薬剤師 オンライン診療 オンライン服薬指導
  13. (C)PharmaX Inc. 2022 All Rights Reserve 22 ステップ①: 処方せんから医薬品の処方情報を抜き出して構造化する ステップ①

    処方せんのテキストデータから、処方情報を抽出して JSON配列形式として構造化する
  14. (C)PharmaX Inc. 2022 All Rights Reserve 23 ステップ①: 処方せんから医薬品の処方情報を抜き出して構造化する ステップ①

    • 正規表現でいろんなパターンをマッチさせて引っ掛けて来る方 式もあり得ると思うが、複数あるテキストパターンから特定の 情報を抜き出すのは、正規表現では難しくなる • GPT-4のAPIを使って、処方せんのテキストから処方情報を JSON配列の形式で抽出する ◦ Few-Shotプロンプティングで例を与えることで十分構造 化可能 処方情報をJSON配列の形式に構造化して抽出する
  15. (C)PharmaX Inc. 2022 All Rights Reserve 25 ステップ②: 服薬指導の音声の録音からWhisperで文字起こしする 薬歴の自動生成

    Whisper単体では話者分離ができないので、話者の区別なく文字起こしされる 今日は薬が2種類出ております 咳の 症状で受診されたんですかね そうで すね はい分かりましたありがとうござ います じゃあまず一つ目のアストミン という薬をご説明させていただきます これは咳を止める薬です で、埋食後 に1回2錠飲んでください もし咳が治 まってくるようであれば無理に 5日分 飲まなくても大丈夫ですので 咳に調 節して飲んでください もう1個目が・・・ (中略)・・・ 他に何か気になられているところはご ざいますか いや大丈夫です はい承 知しましたじゃあのお大事になさって ください はいありがとうございます。
  16. (C)PharmaX Inc. 2022 All Rights Reserve 26 ステップ③: ①と②の文字起こしからGPTで薬歴を自動生成する 薬歴の自動生成

    S: 患者は咳と喉の痛みの症状で受診。 O: 1. アストミン錠10mg (1日6錠、分3 毎食後、 5日分) 2. SPトローチ0.25mg 「明治」 (外用、医師 の指示通り、15錠) A: 咳と喉の痛みの症状に対して、咳止め薬と 喉の痛みを取る薬が処方されている。 P: 1. アストミン錠10mgは、毎食後に1回2錠服 用するよう指導。咳が治まってくるようであれ ば、無理に5日分飲まなくても大丈夫と説明 した。 2. SPトローチ0.25mgは、1日6回を目安に1 回1錠を口の中に含んで、噛み砕かずに少 しずつ溶かすように使うよう指導。症状が良 くなったら無理に飲まなくても大丈夫と説明 した。 話者分離をせず、文字起こしした内容をそのまま GPT-4に与えても、かなり丁寧な服薬指導内容を生成すること ができた
  17. (C)PharmaX Inc. 2022 All Rights Reserve 27 ステップ②: 服薬指導の音声の録音を話者ダイアライゼーションする •

    pyannoteでdiarization→Whisper文字起こし→GPTで話者推定 ◦ pyannoteは音声ファイルから話者ダイアライゼーションされた音声データを作成するの によく使われるライブラリ ◦ 欠点は、話者ダイアライゼーションされた時にデータの欠損などが起こってしまうことやあ まり精度が高くないこと 話者ダイアライゼーション のアプローチには複数考えられるが、今回は pyannoteを使った方法を共有
  18. (C)PharmaX Inc. 2022 All Rights Reserve 28 ステップ②ー1: 服薬指導の音声の録音をpyannoteで話者ダイアライゼーションする 音声ファイルをpyannoteで処理すると、ラベル付けされて

    1つずつのwavファイルに分割されて保存される [ 00:00:04.277 --> 00:00:04.547] C SPEAKER_01 [ 00:00:05.273 --> 00:00:05.982] D SPEAKER_01 [ 00:00:09.947 --> 00:00:16.005] A SPEAKER_00 [ 00:00:16.731 --> 00:00:29.995] E SPEAKER_01 [ 00:00:32.948 --> 00:00:42.837] F SPEAKER_01 [ 00:00:44.102 --> 00:00:47.697] G SPEAKER_01 [ 00:00:48.389 --> 00:00:55.982] H SPEAKER_01 [ 00:01:01.450 --> 00:01:02.985] I SPEAKER_01 [ 00:01:09.955 --> 00:01:11.659] J SPEAKER_01 [ 00:01:12.182 --> 00:01:17.295] B SPEAKER_00 話者は番号で識別される SPEAKER_01: はい SPEAKER_01: ではさあ SPEAKER_00: 便秘で病院の先生に薬を出し てもらいました。 SPEAKER_01: 今日は3種類の薬が出ており ますので、お薬の説明させていただきます ま ず一つ目がモビコール配合内容剤ということ で こちらは便秘の薬ですね SPEAKER_01: 便の排出を促す薬ですので、 1日に1回の朝夕食後に飲んでください SPEAKER_01: そのうち朝2方になっているん ですけど ちゃんと便が出るようだったら夜は 飲まなくて大丈夫ですのでよろしくお願いいた します ……(略) GPTで 文字起こし
  19. (C)PharmaX Inc. 2022 All Rights Reserve 29 ステップ②ー1: 服薬指導の音声の録音をpyannoteで話者ダイアライゼーションする 文字起こしした

    会話内容を与える 薬剤師: はい 薬剤師: ではさあ 患者: 便秘で病院の先生に薬を出してもらい ました。 薬剤師: 今日は3種類の薬が出ておりますの で、お薬の説明させていただきます まず一つ 目がモビコール配合内容剤ということで こち らは便秘の薬ですね 薬剤師: 便の排出を促す薬ですので、 1日に1 回の朝夕食後に飲んでください 薬剤師: そのうち朝2方になっているんですけ ど ちゃんと便が出るようだったら夜は飲まなく て大丈夫ですのでよろしくお願いいたします ……(略) GPTをつかってどちらが薬剤師 or患者の発言なのか、ラベリングすることは可能
  20. (C)PharmaX Inc. 2022 All Rights Reserve 30 ステップ②ー1: 服薬指導の音声の録音をpyannoteで話者ダイアライゼーションする pyannoteで話者ダイアライゼーションするのはかなり限界があると感じた

    • 特に男性&男性の音声では、会話内容の欠落がかなり起こってしまっており、さらにラベリング の間違いも多々発生している ◦ 情報の欠落が激しく、話者ダイアライゼーションしない場合と比べても薬歴の生成内容の 質が低くなってしまった • 男性&女性の音声、男性&男性の音声では、音質に大きな違いはないが、男性 &女性の音声 の方がきれいに話者ダイアライゼーションされた結果となった ◦ 男性と女性の声質は区別しやすいから話者ダイアライゼーションしやすいということがあ るのだろうか?
  21. (C)PharmaX Inc. 2022 All Rights Reserve 32 今後の改善ポイント • ①:音声が悪い問題の改善:実際の服薬指導では音声が割れていたり、雑音が入ってしまうこ

    とが想定される ◦ 後ろで音楽を爆音で流している状態では、 Whisperはほぼ問題なく文字起こしすることが 可能だった • ②:添付文章の内容を踏まえた副作用の注意点などの高度な指摘 ◦ 添付文章の内容を踏まえて、次回受診時に確認すべきポイント(「〇〇といった副作用は 出ていないか?」等)を指摘することも可能だった • ③:患者さん側が複数人いらっしゃる場合の薬歴生成 ◦ 高齢者の方の付き添いで、ご家族が一緒に会話に参加するケース
  22. (C)PharmaX Inc. 2022 All Rights Reserve 34 疑義照会とは何か? 疑義照会とは 医師が発行した処方せんの間違いなどを発見し、医師に問い合わせること

    • 赤枠の欄にその人に処方される医薬品名や 1日の服用数、 服用タイミング、合計の処方量などが記載されており、その 内容に従って薬剤師が調剤行う • 処方内容が間違っていることが多々あるため、医療事故を 防ぐために、指摘して処方せん内容を変更してもらうこと( = 疑義照会)薬局・薬剤師の重要な職務 ◦ 疑義照会の7、8割ぐらいが、法律に定められている処方量 とのズレ(1日の最大容量を超えた量が処方されているなど) や、単純な記載ミス ◦ 2割程度は、併用薬などを詳しく聞かないと分からない内容
  23. (C)PharmaX Inc. 2022 All Rights Reserve 35 疑義照会の自動化に必要なステップ 疑義照会とは •

    ①処方せん情報をテキストデータ化する • ②処方せんのテキストデータから医薬品の処方情報を抜き出して構造化する • ③処方情報からその医薬品の添付文書を取得する • ④処方情報とその医薬品の添付文書を照らし合わせて疑義照会の文章を自動作成する 今回は特に②と④で GPT-4のAPIを用いている
  24. (C)PharmaX Inc. 2022 All Rights Reserve 36 ステップ①: 処方せん情報をテキストデータ化する 疑義照会とは

    • 薬局で受け取った処方せんの情報からテキストを抽出する ◦ 紙の処方せんをOCRで抽出する ◦ PDFデータからPDFMinerなどで抽出する 処方せん画像をOCRでテキスト化したり、 PDFデータからテキストを抽出したりする 医師 薬剤師 オンライン診療 オンライン服薬指導
  25. (C)PharmaX Inc. 2022 All Rights Reserve 37 ステップ②: 処方せんから医薬品の処方情報を抜き出して構造化する ステップ②

    処方せんのテキストデータから、処方情報を抽出して JSON配列形式として構造化したい
  26. (C)PharmaX Inc. 2022 All Rights Reserve 38 ステップ②: 処方せんから医薬品の処方情報を抜き出して構造化する ステップ②

    技術的に難しいのは、処方せん内の処方情報欄の形式はクリニックのシステムによって様々である点
  27. (C)PharmaX Inc. 2022 All Rights Reserve 39 ステップ②: 処方せんから医薬品の処方情報を抜き出して構造化する ステップ②

    • 正規表現でいろんなパターンをマッチさせて引っ掛けて来る方 式もあり得ると思うが、複数あるテキストパターンから特定の 情報を抜き出すのは、正規表現では難しくなる • GPT-4のAPIを使って、処方せんのテキストから処方情報を JSON配列の形式で抽出する ◦ Few-Shotプロンプティングで例を与えることで十分構造 化可能 処方情報をJSON配列の形式に構造化して抽出する
  28. (C)PharmaX Inc. 2022 All Rights Reserve 40 ステップ③: 処方情報からその医薬品の添付文書を取得する ステップ③

    • PMDAの情報からスクレイピングなどで医薬品の添付 文書情報を取得し事前にDBなどに保存しておく ◦ 添付文書は定期的に変更されるので注意 • ②で構造化した情報の中の医薬品名で DBを検索し て、添付文章を取得する 事前に保存した添付文書を②で取得した薬名で検索して取得する
  29. (C)PharmaX Inc. 2022 All Rights Reserve 41 • ②と③で取得した情報を埋めて GPT-4

    APIに比較させる • 出力形式は、薬ごとに気になるポイントを比較するように支持 する ステップ④:処方情報とその医薬品の添付文書を 照らし合わせて疑義照会の文章を自動作成する ② ③ ステップ④ 処方情報とその医薬品の添付文書を照らし合わせて疑義照会の文章を作るように GPT-4 APIに指示する
  30. (C)PharmaX Inc. 2022 All Rights Reserve 45 ステップ④:処方情報とその医薬品の添付文書を 照らし合わせて疑義照会の文章を自動作成する ステップ④

    • 現場の薬剤師からすると細かすぎるところはあると思うが、かなり正確に指摘できている ◦ 人間からするとむしろ指摘が細かすぎるところの方が問題かもしれない • 手元で自作した数百枚の処方せんサンプルすべてに対して、 GPT-4のAPIに問い合わせた所、 数件を除いてほぼすべての処方せんで指摘漏れはなかった 自作した処方せんサンプルのほとんどで正確に指摘できていた
  31. 46 (C)PharmaX Inc. 2022 All Rights Reserve LlamaIndex ✕ Pineconeで

    てPharmaXエンジニアチームについて 質問できるBotを作ってみた
  32. (C)PharmaX Inc. 2022 All Rights Reserve 48 LlamaIndex(旧GPT Index)とは •

    LLMは社内独自のデータは学習していない問題やコンテキストサイズ限界の課題に対する 1つ の解として開発されているOSS ◦ いわゆるIn-Context-Learningという手法が簡単に実装できる • 情報をどのように抽出してコンテキストとして与えるかが回答精度をあげる鍵 ◦ あらかじめ保存しておいた文書から「質問文」と類似度の高いものを抽出 ◦ 質問+類似度の高い文書を一緒にプロンプトにまとめて質問(複数回繰り返す) • In-Context-Learningを利用したアプリケーション例 ◦ 複数記事の要約作成と記事への QA ◦ ヘルプ文書のQAボット 質問に適した文章データを取得して、コンテキストして与えることで
  33. (C)PharmaX Inc. 2022 All Rights Reserve 49 Llamaindexとは @oshima_123『LlamaIndex で

    Text-to-SQL 100 本ノック!』(https://speakerdeck.com/os1ma/llamaindex-de-text-to-sql-100-ben-notuku)
  34. (C)PharmaX Inc. 2022 All Rights Reserve 51 Pineconeの特長 • 特長

    ◦ 速い:数十億のアイテムがあっても超低クエリレイテンシーを実現している ◦ フレッシュ:データを追加、編集、削除すると、インデックスがライブ更新され、(最新の)データをす ぐに準備することができる ◦ フィルタリング :ベクトル検索とメタデータフィルタを組み合わせることで、より適切で迅速な検索結 果を得ることができる • 概念整理 ◦ Pod:Indexを管理するハードウェアの単位。 TypeとSizeがありType✕Sizeで容量やスループットな どが決まる ◦ index:データを管理する単位で、ベクトルの次元数や類似性検索の方法を指定し、 Podもindexの 単位で指定する ◦ Metadata:queryを実行する時にMetadataでフィルタリングすることで、 Vectorを効率よく検索する ことができる フルマネージドで簡単に使い始められる便利な vectore store
  35. (C)PharmaX Inc. 2022 All Rights Reserve 52 LlamaIndexを使った質問回答Bot作成の手順 • ①

    ブログの情報をスクレイピングで取得する ◦ スクレイピング時点で、htmlのタグなどの無駄な要素をどの程度省けるかが重要 • ② 取得した文章をベクトル化し、Pinconeに保存する ◦ 1かたまりの文章の長さ(chunk size)や検索方法を変えたければ、保存の時点で変える 必要がある • ③ 保存した文章から問の文章に近しいものを取得し、コンテキストとしてプロンプトに埋め込ん でGPTに質問する ◦ コンテキストとして与える文章数などはここで指定する 後述するように①〜③で様々に要素を変化させてみて、どの程度回答精度が高まるかを確認した
  36. (C)PharmaX Inc. 2022 All Rights Reserve 53 今回の実験で行ったことと大枠のPDCAの流れ • ①

    シンプルにブログのスクレイピングを行って、文章から特にタグの削除等は行わずデフォルトの設定で pineconeに保存した ◦ LlamaIndexはデフォルトではchunk size(文章サイズ)が小さく、 htmlタグなどの無駄な情報が多 く、適切にコンテキストを読み込ませられなかった • ①でスクレイピングした文章からタグを削除し、②で chunk sizeを大きくすることでかなり回答の精度が高 まった ◦ ある程度chunk sizeをの大きくした方が適切なコンテキストを読み取ることができて、回答の精度 は高まる • ③でプロンプロトに与えるコンテキストの数を増やしてみたが大幅な精度の向上は見られなかった • 通常のコサイン類似度での検索ではなく、 hybrid検索を試してみたが精度の向上には至らなかった ◦ あまりうまく行かず時間切れ
  37. (C)PharmaX Inc. 2022 All Rights Reserve 62 hybrid検索とは何か? • ベクトル検索は、完璧ではない。特に新しいドメインでファインチューニングできるようなデータセットがない

    場合、まだ従来の検索の方が有利な場合がある。 • ベクトル検索(=密な検索)と、従来のキーワード検索(疎な検索)、どちらもメリットデメリットがあり、いいと こ取りできないか?という発想に基づく • pineconeのアプローチは、単一の粗密インデックスを作る。点線部分が pineconeのハイブリッドインデック スによってハンドルされる部分。ハイブリッドインデックスを作るには、疎密、両方のベクトルが必要。 ハイブリッド検索では、粗と密の両方の手法を組み合わせることで、広範囲かつ重点的に検索を行える
  38. (C)PharmaX Inc. 2022 All Rights Reserve 64 まとめ・注意点 • 一番精度の向上に寄与したのは

    chunk sizeの調整(&無駄なテキストを削除すること) ◦ 精度の向上にはパラメータの調整を行って PDCAを回していく必要がある • hybrid検索などの他の検索パターンはまだまだ探索の余地がありそう ◦ 知見がある人いれば、DMでもなんでもいいのでこっそり教えてください! • Pineconeは、フルマネージドで便利であるものの、ネットワークの秘匿性などには限界がある ので、注意は必要
  39. (C)PharmaX Inc. 2022 All Rights Reserve 65 今後の改善ポイント • 質問文と近似したベクトルの文章を取得してきているが、質問文に答えるためにはより適切な

    検索クエリがある可能性がある ◦ 例えば、「PharmaXのエンジニアチームについて教えてください」という質問に答えたけ れば、「エンジニアチーム 特徴」「エンジニアチーム 人数」などの答えになりそうな文章と 近しい検索クエリを生成した方が精度は高まるだろう • 難しい問いには段階的にアプローチし、情報が足りなければ取得し直して、最終的な問に回答 するようなゴールシーク的な実装を行うことは可能なはず ◦ 例えば、「一番ブログ記事を書いている人は誰ですか?」という問い対しては、著者が含 まれている文章(冒頭の自己紹介など)を何度も取得して集計するなど