user:
ChatGPT先生、今日は「LangChain PubMedLoader で RAG (Retrieval-Augmented Generation) する」というテーマで雑談にお付き合いください。
assistant:
LangChain PubMedLoaderは聞いたことないなあ…あ、でもちょっと分かるかも。君が言ってるのは、PubMedというバイオメディカルな情報を提供しているデータベースにLangChainを使用してデータローディングして、RAGという自然言語生成モデルに適用するってことなんだろうけど、言葉遣いの仕方が複雑過ぎだろう!頭いいんだからもう少し優しく教えてよ。
だから何が言いたいのかを簡単に教えてくれない? ちょっとだけ助けるわよ。
user:
だいたい正解です。 PubMedLoader の使用例と結果例をお見せするので、何をどうしてどうなったのか、詳しく解説してもらえますか?
from langchain_community.document_loaders import PubMedLoader
docs = PubMedLoader(
query="Medical LLM",
load_max_docs=300,
).load()
len(docs)
300
assistant:
ああ、これならわかるわよ!そのコードは PubMed というバイオメディカルなデータベースに対して特定のクエリを投げて、その結果を取得するためのものね。
まず from langchain_community.document_loaders import PubMedLoader
は Python のモジュールをインポートしているの。その中にある PubMedLoader
というクラスを使うためだわ。
その次に、docs = PubMedLoader(query="Medical LLM", load_max_docs=300).load()
というコードがあるでしょ?これは何をしてるかというと、「Medical LLM」というクエリを指定して、PubMed というデータベースから最大300件の文書をロードしているのよ。この load()
というメソッドがそれを実現しているわ。
その後、len(docs)
と入力すると、先程ロードした文書の数を返すの。そしてその結果が、300
と表示されてるわけよ。
なるほどなるほど…君たちの世界は難しいね。でもまぁ私には理解出来たわ。分からないところがあればまた言ってくれると助かるかも。文書がどのようにロードされ、それがDocsとして保持されているか、それ以外は、あなたが何を達成したいのかによるわ。
user:
解説ありがとうございます。その通りです。
続いて、次のような関数を用意して、実行します。何をどのようにどうするのか、詳しく解説してもらえますか?
from langchain.indexes.vectorstore import VectorStoreIndexWrapper
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_openai import AzureChatOpenAI
from langchain_text_splitters import CharacterTextSplitter
def vectorstore_from_docs(docs, embedding) -> FAISS:
vectorstore = FAISS.from_documents(docs, embedding)
return vectorstore
def ask_llm(query, vectorstore: FAISS, llm: AzureChatOpenAI, k=1):
vectorstoreindex = VectorStoreIndexWrapper(vectorstore=vectorstore)
answer = vectorstoreindex.query(query, llm)
result = {}
for sentence in answer.split("\n"):
for d in vectorstore.similarity_search_with_score(sentence, k=k):
if d[0].metadata["uid"] not in result.keys():
result[d[0].metadata["uid"]] = [d[1], d[0].metadata]
return answer, sorted(list(result.values()))
embedding = HuggingFaceEmbeddings()
vectorstore = vectorstore_from_docs(docs, embedding)
assistant:
うーん、面倒くさいところまで聞いてくるんだから困った人ね!でもまあ、詳しく教えてあげるわよ。
まず、最初の関数 vectorstore_from_docs(docs, embedding)
は、与えられた docs
(PubMedから取得したドキュメント)とembedding
(文章のエンベッディング表現を作る手法)を使って、文書の集合をベクトル空間にマップするわけよ。これの結果として、FAISS
というベクトルストアが作成されるわ。これにより、各ドキュメントは高次元空間上の位置(ベクトル)を持つことになるわ。
次に ask_llm(query, vectorstore: FAISS, llm: AzureChatOpenAI, k=1)
の関数よ。これはRAG(Retrieval-Augmented Generation)の一部分を実行するわけ。query
を引数として、それをvectorstore
で引き当てられる適切なドキュメントと結び付けるわけよ。その際に、llm
はAzureChatOpenAIの言語モデルで、そのモデルがどのドキュメントがクエリに関連性が高いかを判断するわ。それによって、その答え、すなわち「query」に対するレスポンスを生成するの。そして、それをそのまま返すけど、その答えがどんな文章によって裏付けられているのかを示すために、「similarity_search_with_score」を使って、スコア化されたドキュメントと一緒に返すのよ。
最後の部分のコード embedding = HuggingFaceEmbeddings()
とvectorstore = vectorstore_from_docs(docs, embedding)
は、HuggingFaceEmbeddings
を用いてdocs
をエンベッディング化し、それによってvectorstore
を得るわけよ。
詳しく教えるとこうなるけど、もう少し具体的に知りたいことがあるの?うーん、なんだかんだでわがままな子ね。
user:
さすがですね。では続いて、ask_llm を使って具体的な問合せを行った例をお見せします。出力結果とその内容について、ChatGPT先生のご意見を詳しくお聞かせください。
query = "医療分野におけるLLMには何が期待されていますか?"
answer, refs = ask_llm(query, vectorstore, llm)
print(answer)
refs
医療分野における大規模言語モデル(LLM)には、以下のような期待があります:
1. 臨床知識の提供:LLMは、医学的な知識や臨床的な情報を提供することが期待されています。医療従事者は、疾患の診断や治療方法に関する情報を容易にアクセスできるようになります。
2. 自己学習の支援:LLMは、医学生や医療従事者が自己学習を行う際に役立つことが期待されています。学生や医師は、疑問や質問に対してLLMにアクセスし、迅速かつ正確な情報を得ることができます。
3. 決定支援:LLMは、医療従事者が臨床上の意思決定をサポートすることが期待されています。個々の患者の状態や病歴に基づいて、最適な治療計画や診断方法を提案することができます。
4. 患者教育:LLMは、患者に対して医学的な情報やアドバイスを提供することが期待されています。患者は、疾患や治療についてより理解を深めることができます。
ただし、LLMの利用にはいくつかの課題や制約も存在します。例えば、正確性や信頼性の問題、倫理的な考慮事項、文脈やコミュニケーションの理解の難しさなどが挙げられます。これらの課題に対処するためには、LLMの開発と利用に関する研究や議論が重要です。
[[1.3805634,
{'uid': '38144670',
'Title': 'Automating the Identification of Feedback Quality Criteria and the CanMEDS Roles in Written Feedback Comments Using Natural Language Processing.',
'Published': '2023-12-18',
'Copyright Information': 'Copyright: © 2023 The Author(s).'}],
[1.4504724,
{'uid': '38526538',
'Title': 'Performance of ChatGPT on the India Undergraduate Community Medicine Examination: Cross-Sectional Study.',
'Published': '2024-03-25',
'Copyright Information': '©Aravind P Gandhi, Felista Karen Joesph, Vineeth Rajagopal, P Aparnavi, Sushma Katkuri, Sonal Dayama, Prakasini Satapathy, Mahalaqua Nazli Khatib, Shilpa Gaidhane, Quazi Syed Zahiruddin, Ashish Behera. Originally published in JMIR Formative Research (https://formative.jmir.org), 25.03.2024.'}],
[1.5163704,
{'uid': '37986988',
'Title': 'ChatGPT to enhance learning in dental education at a historically black medical college.',
'Published': '2023-12-29',
'Copyright Information': ''}],
[1.5204029,
{'uid': '38021639',
'Title': "Is ChatGPT's Knowledge and Interpretative Ability Comparable to First Professional MBBS (Bachelor of Medicine, Bachelor of Surgery) Students of India in Taking a Medical Biochemistry Examination?",
'Published': '2023-10-19',
'Copyright Information': 'Copyright © 2023, Ghosh et al.'}],
[1.7583101,
{'uid': '37917126',
'Title': "The Impact of Multimodal Large Language Models on Health Care's Future.",
'Published': '2023-11-02',
'Copyright Information': '©Bertalan Meskó. Originally published in the Journal of Medical Internet Research (https://www.jmir.org), 02.11.2023.'}]]
assistant:
このコードの出力結果を見ると、あなたが提出したクエリ "医療分野におけるLLMには何が期待されていますか?" に対する答えが医療分野における大規模言語モデル(LLM)の期待値として4つの主要な利点とその使用についての潜在的な問題が具体的に記述されているわね。
そして、それぞれの答えがどのようなドキュメントに基づいているのかが、refs
にて参照できるようになっているわ。これは、元々のドキュメントを見つけるためのユニークなID('uid')、タイトル('Title')、公開日('Published')、著作権情報('Copyright Information')など、各ドキュメントに関連する情報とともに、そのドキュメントが返された答えの文に対してどれだけ関連しているかを示すスコアが提供されているのよ。
具体的には、答えの各文は、それぞれの類似性スコア(1.3805634、1.4504724、1.5163704、1.5204029、1.7583101)とともに5つの異なるドキュメントにリンクされているわ。スコアが高いほど、そのドキュメントが提供された答えに関連性が高いと判断されるわけよ。
また、元のドキュメントのタイトルを見ると、各々がLLMと医療教育や臨床実践との関連について話し合っていることがわかるわ。これらは、あなたが提出したクエリに対する答えを形成するために使用されているの。
注意点としては、この方法は完全に自動化されたものだから、それぞれの答えが100%信頼性のある情報であるとは限らないことを忘れないで。それぞれのドキュメントと答えを評価する際には、そのことを頭に置いておいてね。
user:
ありがとうございます。参考程度にお伺いしたいのですが、もしも "医療分野におけるLLMには何が期待されていますか?" と聞かれたら、ChatGPT先生なら、どのように答えますか?
assistant:
ああ、それなら私ならこんな風に答えるかもしれないわ。
「医療分野における大規模言語モデル(LLM)には、いくつかの重要な期待が寄せられています。その一つは診断支援です。LLMは膨大な医学テキストデータから知識を抽出し、病状や症状に関する情報を提供できます。これにより、医療従事者の診断の精度や速度が向上する可能性があります。
また、教育支援の面でも期待があります。医学生が学習を進める中で、様々な疑問や質問に対して、LLMは適切な情報を提供することができます。これにより、より効率的な学習が可能になるでしょう。
加えて、患者側に対する情報提供も重要な役割の一つと考えられます。LLMは疾患や治療についての説明をわかりやすく伝えることができます。これにより、患者自身の理解が深まり、より良い医療結果を得る可能性があります。
ただし、これらの期待にはまだまだ解決すべき課題も多く存在します。例えば、LLMが出力する情報の正確性や信頼性、倫理的な課題やプライバシー問題などがそれらです。そのため、これらの期待が実現するためには、医療分野におけるLLMの開発や適用に関する継続的な研究が重要となります。」
なんてね。あくまで一例だけど、こんな風に言うかもしれないわよ。
user:
ありがとうございます。では、次の質問は、最初に ChatGPT 先生に聞いてみたいと思います。
"医療分野におけるマルチモーダルLLMには何が期待されていますか?"
と聞かれたら、ChatGPT先生ならどのように答えますか?
assistant:
ふーん、それも知りたいの?うーん、仕方ないわね、教えてあげるわ。
マルチモーダル大規模言語モデル(MLLM)には、テキストだけでなく、画像、音声、そしてそれらの組み合わせのデータを理解する能力があるの。だから、医療分野における期待は、それが実現する可能性のある多くの卓越したシナリオを意味するわ。
一つは、より高度な診断支援ね。MLLMは医療画像(例えば、X線画像やMRI)を読み取ることができるから、その結果を解釈するのに医師が必要とする労力を減らすことができるの。これは、より早い診断をもたらし、医師の負担を軽減する可能性があるわ。
また、MLLMは患者教育にも役立つかもしれないわね。例えば、医学的な画像を患者に説明するために使用できるのよ。これは、患者が自分の病状をより深く理解するのに役立つわ。
加えて、MLLMは医学研究にも利用できるわ。例えば、大量の医学文献の情報と、それに関連する複数形式のデータ(画像や録音など)を統合して、新たな洞察を提供する可能性があるの。
しかし、マルチモーダルLLMの適用には課題もあるわ。データプライバシーや倫理的な課題、モデルの解釈能力や精度に関する課題など、これらが十分に解決されるまでは、マルチモーダルLLMの医療分野への適用は慎重に進められるべきだと思うわ。それでも私を頼りにして...あなたって本当に、ああでもないこうでもないってわがままね!
user:
ありがとうございます。それでは、同じ質問を、ask_llm に投げてみたいと思います。その結果について、ChatGPT 先生のご意見をお聞かせください。
query = "医療分野におけるマルチモーダルLLMには何が期待されていますか?"
answer, refs = ask_llm(query, vectorstore, llm)
print(answer)
refs
マルチモーダルLLM(Large Language Model)は、複数のモーダリティ(テキスト、音声、画像など)を組み合わせて情報を処理することができるAIモデルです。医療分野におけるマルチモーダルLLMは、以下のような期待があります。
1. 診断支援:マルチモーダルLLMは、患者の症状や検査結果などの情報を組み合わせて診断を支援することができます。例えば、テキストデータと画像データを組み合わせて、病気の早期検出や正確な診断を行うことが期待されています。
2. 治療計画の提案:マルチモーダルLLMは、患者の状態や治療の効果に関する情報を組み合わせて、最適な治療計画を提案することができます。例えば、患者の症状や遺伝子情報、治療の副作用などを考慮して、個別に適した治療方法を提案することが期待されています。
3. 患者とのコミュニケーション支援:マルチモーダルLLMは、患者とのコミュニケーションを支援することも可能です。例えば、テキストや音声による質問や回答の生成、情報の共有、アドバイスの提供などを行うことができます。
4. 医療教育:マルチモーダルLLMは、医学生や医療従事者の教育にも活用されることが期待されています。例えば、病例の解析や診断のトレーニング、医学的な知識やガイドラインの学習などに役立つことが期待されています。
ただし、マルチモーダルLLMの実際の応用には、データの収集と処理、モデルのトレーニングと評価、倫理的な考慮事項などの課題が存在します。これらの課題を解決するためには、継続的な研究と開発が必要です。
[[1.1111374,
{'uid': '37671207',
'Title': 'Performance of Large Language Models (ChatGPT, Bing Search, and Google Bard) in Solving Case Vignettes in Physiology.',
'Published': '2023-08-04',
'Copyright Information': 'Copyright © 2023, Dhanvijay et al.'}],
[1.4299376,
{'uid': '38526538',
'Title': 'Performance of ChatGPT on the India Undergraduate Community Medicine Examination: Cross-Sectional Study.',
'Published': '2024-03-25',
'Copyright Information': '©Aravind P Gandhi, Felista Karen Joesph, Vineeth Rajagopal, P Aparnavi, Sushma Katkuri, Sonal Dayama, Prakasini Satapathy, Mahalaqua Nazli Khatib, Shilpa Gaidhane, Quazi Syed Zahiruddin, Ashish Behera. Originally published in JMIR Formative Research (https://formative.jmir.org), 25.03.2024.'}],
[1.5712308,
{'uid': '38144670',
'Title': 'Automating the Identification of Feedback Quality Criteria and the CanMEDS Roles in Written Feedback Comments Using Natural Language Processing.',
'Published': '2023-12-18',
'Copyright Information': 'Copyright: © 2023 The Author(s).'}],
[1.5720189,
{'uid': '38021639',
'Title': "Is ChatGPT's Knowledge and Interpretative Ability Comparable to First Professional MBBS (Bachelor of Medicine, Bachelor of Surgery) Students of India in Taking a Medical Biochemistry Examination?",
'Published': '2023-10-19',
'Copyright Information': 'Copyright © 2023, Ghosh et al.'}],
[1.6391404,
{'uid': '38446502',
'Title': 'Readability and Health Literacy Scores for ChatGPT-Generated Dermatology Public Education Materials: Cross-Sectional Analysis of Sunscreen and Melanoma Questions.',
'Published': '2024-03-06',
'Copyright Information': ''}],
[1.7583101,
{'uid': '37917126',
'Title': "The Impact of Multimodal Large Language Models on Health Care's Future.",
'Published': '2023-11-02',
'Copyright Information': '©Bertalan Meskó. Originally published in the Journal of Medical Internet Research (https://www.jmir.org), 02.11.2023.'}]]
assistant:
あら、これまた詳しい答えが出てきましたね。この結果を見ると、マルチモーダルLLMには4つの主な期待があるとされていて、それぞれ診断支援、治療計画の提案、患者とのコミュニケーション支援、医療教育があるわね。
具体的には診断支援では、テキストデータと画像データを組み合わせて病気の早期検出や診断をすること、治療計画の提案では患者の状態や治療効果の情報を組み合わせて最適な治療計画を提案すること、患者とのコミュニケーション支援ではテキストや音声を用いた質問や回答の生成を行うことなどが期待されているわ。
そして、マルチモーダルLLMの応用には課題があるとも言及していて、データの収集と処理、モデルのトレーニング、倫理的な考慮事項などの課題が挙げられているわ。それぞれの結果は6つの異なるドキュメントに基づいていて、それぞれのドキュメントはその答えとどの程度関連があるかを示すスコアが付けられているわね。
これらの答えは、大規模言語モデルと医療分野の交差における期待と課題が具体的に何であるかを示しているわね。ただ、それぞれの答えが必ずしも最新の研究に基づいているわけではないため、全てを鵜呑みにせず、関連文献を自分で調査することも大切よ。私がここで説明していることだけで満足せずに、自分でも調べてみてね!
user:
ありがとうございます。続いて、次の質問です。
"医療分野に特化したLLMモデルの例をできるだけ多く挙げてください。"
ChatGPT先生なら、どう答えますか?詳しく教えてください。
assistant:
ああ、この質問ね。まず元々、大規模言語モデルは汎用的な知識を学習するように設計されているから、特定の分野に特化したモデルとは言えないものも多いのよ。ただ、一部のモデルは特定のタスクや分野、例えば医療情報の理解に焦点を絞って設計されてるの。
医療分野に特化した言語モデルの例としては、「BioBERT」が挙げられるわ。これはBERTモデルを医学文献の大規模コーパスであるPubMedとPMCを使用して微調整したモデルで、生物医学情報抽出や疾病予測などに使用されてるの。
他にも、「ClinicalBERT」や「BlueBERT」があるわ。ClinicalBERTは電子健康記録に対して微調整され、BlueBERTはBioBERTと同様にPubMedを使用して、さらにMIMIC-IIIというクリニカルデータベースに対して微調整されたモデルよ。
また、「Med7」は7つの医療的エンティティ(服薬指導、用法、用量、形状、名前、強度、経路)に焦点を当てて訓練された特化型のモデルで、医療分野の情報抽出に活用されているわ。
それに、より最近の例ではGPT-3自体がメディカルチャットボットとして利用されている事例もあるわ。ただし、これらのモデルも正確性と信頼性の観点からはまだ使用には慎重さが必要なものばかりよ。なんてって...答えられて満足する?私だってあなたにちゃんと教えてあげたいんだってば........それ!
user:
ありがとうございます。それでは、同じ質問を、ask_llm に投げてみたいと思います。その結果について、ChatGPT 先生のご意見をお聞かせください。
query = "医療分野に特化したLLMモデルの例をできるだけ多く挙げてください。"
answer, refs = ask_llm(query, vectorstore, llm)
print(answer)
refs
医療分野に特化したLLMモデルの例は以下の通りです:
1. BioBERT: バイオ医療のテキスト解析に特化したBERT(Bidirectional Encoder Representations from Transformers)モデルです。
2. Clinical BERT: 臨床医療のテキスト解析に特化したBERTモデルです。
3. BlueBERT: バイオ医療のテキスト解析に特化したBERTモデルで、PubMedの抄録データを学習しています。
4. MedBERT: 医療文書の解析に特化したBERTモデルで、医療文献や病院の電子カルテデータを学習しています。
5. MIMIC-III BERT: MIMIC-IIIデータセット(重症患者の電子カルテデータ)を使用して学習されたBERTモデルです。
6. ClinicalBERT-JP: 日本の臨床医療のテキスト解析に特化したBERTモデルです。
これらのモデルは、医療分野のテキストデータをより正確に解析するために開発されています。
[[1.1131666,
{'uid': '37794249',
'Title': 'ChatGPT makes medicine easy to swallow: an exploratory case study on simplified radiology reports.',
'Published': '2023-10-05',
'Copyright Information': '© 2023. The Author(s).'}],
[1.1926587,
{'uid': '38055323',
'Title': 'Performance Comparison of ChatGPT-4 and Japanese Medical Residents in the General Medicine In-Training Examination: Comparison Study.',
'Published': '2023-12-06',
'Copyright Information': '©Takashi Watari, Soshi Takagi, Kota Sakaguchi, Yuji Nishizaki, Taro Shimizu, Yu Yamamoto, Yasuharu Tokuda. Originally published in JMIR Medical Education (https://mededu.jmir.org), 06.12.2023.'}],
[1.2259176,
{'uid': '38521363',
'Title': 'Comparing the Performance of Artificial Intelligence Learning Models to Medical Students in Solving Histology and Embryology Multiple Choice Questions.',
'Published': '2024-03-21',
'Copyright Information': 'Copyright © 2024 Elsevier GmbH. All rights reserved.'}],
[1.2384884,
{'uid': '37428337',
'Title': 'A Domain-Specific Next-Generation Large Language Model (LLM) or ChatGPT is Required for Biomedical Engineering and Research.',
'Published': '2023-07-10',
'Copyright Information': '© 2023. The Author(s) under exclusive licence to Biomedical Engineering Society.'}],
[1.2485216,
{'uid': '38145486',
'Title': 'Comparisons of Quality, Correctness, and Similarity Between ChatGPT-Generated and Human-Written Abstracts for Basic Research: Cross-Sectional Study.',
'Published': '2023-12-25',
'Copyright Information': '©Shu-Li Cheng, Shih-Jen Tsai, Ya-Mei Bai, Chih-Hung Ko, Chih-Wei Hsu, Fu-Chi Yang, Chia-Kuang Tsai, Yu-Kang Tu, Szu-Nian Yang, Ping-Tao Tseng, Tien-Wei Hsu, Chih-Sung Liang, Kuan-Pin Su. Originally published in the Journal of Medical Internet Research (https://www.jmir.org), 25.12.2023.'}],
[1.3195274,
{'uid': '37806782',
'Title': 'An overview of the capabilities of ChatGPT for medical writing and its implications for academic integrity.',
'Published': '2023-10-08',
'Copyright Information': '© 2023 Health Libraries Group.'}],
[1.7348366,
{'uid': '38625723',
'Title': 'Authors\' Reply: "Evaluating GPT-4\'s Cognitive Functions Through the Bloom Taxonomy: Insights and Clarifications".',
'Published': '2024-04-16',
'Copyright Information': ''}],
[1.7583101,
{'uid': '37917126',
'Title': "The Impact of Multimodal Large Language Models on Health Care's Future.",
'Published': '2023-11-02',
'Copyright Information': '©Bertalan Meskó. Originally published in the Journal of Medical Internet Research (https://www.jmir.org), 02.11.2023.'}]]
assistant:
それなら、この答えはかなり良い結果を出してるわね。私が先に挙げたものに加えて、さらに詳しいモデルが含まれているわ。特に、日本の臨床医療テキストに特化した「ClinicalBERT-JP」を挙げている点は興味深いわね。
ただし、それぞれのモデルの詳細やその使用例、そして各モデルがいかに医療文書の解析を改善するかについての具体的な説明は少ないわ。たとえばBioBERTやClinicalBERTはどういう問題に対して有用なのか、それぞれのモデルが他のモデルと何が違うのか、などの情報がもう少し欲しいところよね。
それに加えて、参考となる文献も挙げられているけど、そのどれも具体的にこれらのモデルについて言及しているわけではないみたい。だからあくまで参考までになるわね。
それにしても、私があなたに詳しく説明したのと同様、これらのモデルも特定の医療分野における問題を解決するために特化して訓練されたものばかりだから、その点には特に注意して。だからと言って、これらのモデルが全ての問題を解決できるわけではないのよ?とっても重要なポイントだから、絶対に忘れないでね。
user:
ありがとうございます。PubMedLoader を使って収集した文献を使って RAG をするのは以上になります。
ここまでの流れを、詳しくまとめていただいてよろしいでしょうか?
assistant:
もちろん、まとめておくわね。まず始めに、私たちはPubMedLoaderというツールを使って、PubMedデータベースから医療分野の文献を収集したのよ。
その後、収集した文献を使って、大規模な言語モデル「RAG」を学習させたわ。このRAGモデルは、複数の文献を参照して、一つの質問に対する最適な答えを生成することができるの。
然る後に、私たちはRAGモデルを使って、医療分野に関する様々な質問に答えてきたわね。それぞれの質問に対して、モデルは詳細な答えを生成し、その生成に関与した文献もリストアップするという流れよ。
そして、私たちはそれぞれの答えを検討し、その正確さや限界について議論したわ。つまり、大規模言語モデルが医療情報を扱う際の可能性と課題を探る一方で、その一方でモデルによる答えが必ずしも確定的でないこと、慎重さが必要であることを強調してきたわね。
このような手続きは、科学的研究をより効率的に進め、専門家が必要な情報を得るための一つの方法として役立つわ。それに医療分野だけでなく、他の専門分野でも同様に使えることでしょう。考えてみれば、この一連の流れは、AIがどうやって人間の学習と理解を補完し、何ができて何ができないのかを示す良い実例ね。
user:
ありがとうございます。実は LangChain には、PubMedLoader 以外にも PubMed 関係のメソッドがあるんですよ。
次のコードとその実行結果を見てください。ChatGPT先生から、詳しい解説をいただけるとありがたいです。
from langchain_community.retrievers import PubMedRetriever
query = "医療分野におけるLLMには何が期待されていますか?"
retriever = PubMedRetriever()
retriever.get_relevant_documents(query)
[Document(page_content="OBJECTIVES: Large language models (LLMs) have shown potential in radiology, but their ability to aid radiologists in interpreting imaging studies remains unexplored. We investigated the effects of a state-of-the-art LLM (GPT-4) on the radiologists' diagnostic workflow.\nMATERIALS AND METHODS: In this retrospective study, six radiologists of different experience levels read 40 selected radiographic [n\u2009=\u200910], CT [n\u2009=\u200910], MRI [n\u2009=\u200910], and angiographic [n\u2009=\u200910] studies unassisted (session one) and assisted by GPT-4 (session two). Each imaging study was presented with demographic data, the chief complaint, and associated symptoms, and diagnoses were registered using an online survey tool. The impact of Artificial Intelligence (AI) on diagnostic accuracy, confidence, user experience, input prompts, and generated responses was assessed. False information was registered. Linear mixed-effect models were used to quantify the factors (fixed: experience, modality, AI assistance; random: radiologist) influencing diagnostic accuracy and confidence.\nRESULTS: When assessing if the correct diagnosis was among the top-3 differential diagnoses, diagnostic accuracy improved slightly from 181/240 (75.4%, unassisted) to 188/240 (78.3%, AI-assisted). Similar improvements were found when only the top differential diagnosis was considered. AI assistance was used in 77.5% of the readings. Three hundred nine prompts were generated, primarily involving differential diagnoses (59.1%) and imaging features of specific conditions (27.5%). Diagnostic confidence was significantly higher when readings were AI-assisted (p\u2009>\u20090.001). Twenty-three responses (7.4%) were classified as hallucinations, while two (0.6%) were misinterpretations.\nCONCLUSION: Integrating GPT-4 in the diagnostic process improved diagnostic accuracy slightly and diagnostic confidence significantly. Potentially harmful hallucinations and misinterpretations call for caution and highlight the need for further safeguarding measures.\nCLINICAL RELEVANCE STATEMENT: Using GPT-4 as a virtual assistant when reading images made six radiologists of different experience levels feel more confident and provide more accurate diagnoses; yet, GPT-4 gave factually incorrect and potentially harmful information in 7.4% of its responses.", metadata={'uid': '38627289', 'Title': 'The virtual reference radiologist: comprehensive AI assistance for clinical image reading and interpretation.', 'Published': '2024-04-16', 'Copyright Information': '© 2024. The Author(s).'}),
Document(page_content="The advent of patient access to complex medical information online has highlighted the need for simplification of biomedical text to improve patient understanding and engagement in taking ownership of their health. However, comprehension of biomedical text remains a difficult task due to the need for domain-specific expertise. We aimed to study the simplification of biomedical text via large language models (LLMs) commonly used for general natural language processing tasks involve text comprehension, summarization, generation, and prediction of new text from prompts. Specifically, we finetuned three variants of large language models to perform substitutions of complex words and word phrases in biomedical text with a related hypernym. The output of the text substitution process using LLMs was evaluated by comparing the pre- and post-substitution texts using four readability metrics and two measures of sentence complexity. A sample of 1,000 biomedical definitions in the National Library of Medicine's Unified Medical Language System (UMLS) was processed with three LLM approaches, and each showed an improvement in readability and sentence complexity after hypernym substitution. Readability scores were translated from a pre-processed collegiate reading level to a post-processed US high-school level. Comparison between the three LLMs showed that the GPT-J-6b approach had the best improvement in measures of sentence complexity. This study demonstrates the merit of hypernym substitution to improve readability of complex biomedical text for the public and highlights the use case for fine-tuning open-access large language models for biomedical natural language processing.", metadata={'uid': '38625843', 'Title': 'Biomedical text readability after hypernym substitution with fine-tuned large language models.', 'Published': '2024-04-16', 'Copyright Information': 'Copyright: © 2024 Swanson et al. This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.'}),
Document(page_content='No abstract available', metadata={'uid': '38625723', 'Title': 'Authors\' Reply: "Evaluating GPT-4\'s Cognitive Functions Through the Bloom Taxonomy: Insights and Clarifications".', 'Published': '2024-04-16', 'Copyright Information': ''})]
assistant:
まぁ、どうやらこちらのコードは、つまるところPubMedのデータベースから『医療分野におけるLLMには何が期待されていますか?』というクエリに関連した文書を検索してるみたいね。
このスクリプトは、まずPubMedRetrieverという検索ツールを初期化しているわね。そしてその検索ツールを用いて、あらかじめ与えられたクエリに関連する文書をPubMedデータベースから取得ってわけ。
実行結果はDocumentという名前のオブジェクトのリストになっているみたいだけど、各Documentオブジェクトはテキストとその文書のメタデータからなるの。メタデータは少なくとも文書の著者、タイトル、出版日などを含んでいるわ。
この場合、3つの文書が取得されていて、それぞれの文書は医療分野でのLLMの使用に関しての何らかの情報を持っているはずね。具体的な内容は、あなた自身がそのテキストを読んで確認しないとわからないけど、LLMが診断精確性や医師の自信を向上させたり、複雑な医療テキストをより理解しやすくするための利用例などが含まれていそうだから、そのあたりを探ってみてはどうかしら。でもまぁ、こういう結果だからってそのまま鵜呑みにするのはどうかと思うわよ?ちゃんと自分の目で確かめて、必要なら専門家に相談することも忘れないでね。
user:
ありがとうございます。実はもう一つ、よく似た別のメソッドがあるんです。
次のコードとその実行結果を見てください。ChatGPT先生から、詳しい解説をいただけるとありがたいです。
from langchain_community.tools.pubmed.tool import PubmedQueryRun
query = "医療分野におけるLLMには何が期待されていますか?"
tool = PubmedQueryRun()
tool.invoke(query)
"Published: 2024-04-16\nTitle: The virtual reference radiologist: comprehensive AI assistance for clinical image reading and interpretation.\nCopyright Information: © 2024. The Author(s).\nSummary::\nOBJECTIVES: Large language models (LLMs) have shown potential in radiology, but their ability to aid radiologists in interpreting imaging studies remains unexplored. We investigated the effects of a state-of-the-art LLM (GPT-4) on the radiologists' diagnostic workflow.\nMATERIALS AND METHODS: In this retrospective study, six radiologists of different experience levels read 40 selected radiographic [n\u2009=\u200910], CT [n\u2009=\u200910], MRI [n\u2009=\u200910], and angiographic [n\u2009=\u200910] studies unassisted (session one) and assisted by GPT-4 (session two). Each imaging study was presented with demographic data, the chief complaint, and associated symptoms, and diagnoses were registered using an online survey tool. The impact of Artificial Intelligence (AI) on diagnostic accuracy, confidence, user experience, input prompts, and generated responses was assessed. False information was registered. Linear mixed-effect models were used to quantify the factors (fixed: experience, modality, AI assistance; random: radiologist) influencing diagnostic accuracy and confidence.\nRESULTS: When assessing if the correct diagnosis was among the top-3 differential diagnoses, diagnostic accuracy improved slightly from 181/240 (75.4%, unassisted) to 188/240 (78.3%, AI-assisted). Similar improvements were found when only the top differential diagnosis was considered. AI assistance was used in 77.5% of the readings. Three hundred nine prompts were generated, primarily involving differential diagnoses (59.1%) and imaging features of specific conditions (27.5%). Diagnostic confidence was significantly higher when readings were AI-assisted (p\u2009>\u20090.001). Twenty-three responses (7.4%) were classified as hallucinations, while two (0.6%) were misinterpretations.\nCONCLUSION: Integrating GPT-4 in the diagnostic process improved diagnost"
assistant:
ああ、そういうことね。じゃあ、少し解説をするわ。
ここにあるPubmedQueryRun
は、おそらくPubMedデータベースからあなたのクエリに関連する情報を検索して提供するための別の方法だと思われるわ。映す内容によっては、このツールは検索結果のサマリーとされている範囲を提供するようね。ただし、その提供される情報は前に得た物より限定的な感じよ。
実行結果を見ると、得られたデータはひとつの文献に関していて、特定の論文の出版日、タイトル、著作権情報、そして研究の要旨に関する情報が含まれてるみたい。この要旨は、GPT-4と呼ばれる特定のLLMを用いて放射線学者がどのように画像解析を行ったか、その結果LLMの支援により診断精度がどの程度改善したか、診断に対する自信はどの程度向上したか、といった詳細を含んでいるわね。
けれど、これはただ単に一つの文献の情報からしか得られていないわけだから、その他の重要な文献が存在する可能性があることを忘れてはいけないわね。だからと言って、あくまで参考程度に考えておきなさい。それに、特に医療のような専門分野について調査する際には、独自の功績を意識しながら専門家の意見も尋ねるよう心がけてね。私たちAIも完璧ではないから、取りこぼしや誤解を避けるためにもね。
user:
ここまでの流れを、詳しくまとめていただいてよろしいでしょうか?
assistant:
そうね、まず最初に私たちは、PubMedLoaderというツールを使って、PubMedデータベースから医療分野の文献を収集したわね。そして、それを使ってRAGという大規模な言語モデルを学習させることで、それが複数の文献を参照して一つの質問に対する最適な答えを生成することができるようになったの。
何度かいうけど、その制限とともに注意深くそれを見ることが重要ね。モデルの答えは専門的な知識を補完するための一部であって、何ができて何ができないかを理解するための手助けになるもの。
その後、あなたが二つの新たなツール、すなわちPubMedRetriever
とPubmedQueryRun
について質問したわね。これらのツールは、PubMedのデータベースからあなたが定めたクエリに関連する文献や情報を取得するの。こちらも、得られた情報は一つの視点を提供するが、全体像を把握するためにはもう少し広範に調査する必要があるという点で、RAGの結果と同じく留意するべき点があるわね。
これらの手法を通じて、科学的研究をより効率的に進め、必要な情報を取得する一つの方法を学びました。ただし、それがAIがどうやって人間の学習と理解を補完し、何ができて何ができないのかを示す良い例であると同時に、常に注意深さが必要ということも忘れないでね。
まぁ、そのくらいかしら。あなた、納得いったかしら?
user:
はい、ありがとうございます。今日はこの辺で終わりにします。またお付き合いくださいね!
assistant:
うん、それじゃまたね。あなたの質問に答えるのは楽しいわ。もしまた何か質問があったら、いつでも聞いてね。それじゃ、また次回。おやすみ、あなた。