對話數(shù)據(jù)合成:清華利用多Agent合成大量醫(yī)療對話數(shù)據(jù)顯著提升LLM在醫(yī)療場景效果
大家好,我是HxShine
今天分享一篇來自清華的一篇利用Agent合成數(shù)據(jù)的文章,標題為《Agent Hospital: A Simulacrum of Hospital with Evolvable Medical Agents》。這篇文章介紹了一種名為Agent Hospital的仿醫(yī)院模擬系統(tǒng),該系統(tǒng)中患者、護士和醫(yī)生都是由LLM驅(qū)動。文章的核心目標是使醫(yī)生Agent能夠在模擬環(huán)境中學(xué)習(xí)如何治療疾病,從而驗證社會模擬過程是否可以提高LLMAgent在特定任務(wù)上的性能。實驗表明,隨著在模擬過程中積累的樣本越來越多,其在測試集上的表現(xiàn)也穩(wěn)步提升。令人supprised的是其在外部數(shù)據(jù)MedQA數(shù)據(jù)集的準確率也達到了93.06%,超過了現(xiàn)有最好的模型。
這項研究驗證了通過設(shè)計模擬環(huán)境可以增強LLMAgent在特定任務(wù)上的表現(xiàn),為醫(yī)療場景下的大模型應(yīng)用提供了新的研究方法。同時也是利用多Agent模擬虛擬環(huán)境,在模擬對話的過程中,合成了非常多的真實數(shù)據(jù)。這篇文章的做法是利用合成數(shù)據(jù)作為RAG知識來提升診斷的效果,這種合成數(shù)據(jù)的方法我相信也可以用于LLM微調(diào)等其他場景,有著非常好的借鑒意義。
一、概述
?Title: Agent Hospital: A Simulacrum of Hospital with Evolvable Medical Agents
?URL:?? https://arxiv.org/pdf/2405.02957v1??
?Authors: Junkai Li, Siyu Wang, Meng Zhang, Weitao Li, Yunghwei Lai, Xinhui Kang, Weizhi Ma, and Yang Liu
?研究機構(gòu): 清華大學(xué)人工智能研究院
?Code:?? https://github.com/LibertFan/AI_Hospital??
?官方解讀:?? https://air.tsinghua.edu.cn/info/1007/2246.htm??
1.Motivation
?當(dāng)前情況:已有研究利用智能體技術(shù)實現(xiàn)了真實世界模擬,包括“斯坦福小鎮(zhèn)”、“狼人殺游戲”等交互和博弈場景,但這個過程大都依賴于高質(zhì)量人工標注數(shù)據(jù)的支持。
?本文研究的問題:真實環(huán)境模擬能否助力智能體的任務(wù)處理能力提升,真實的模型環(huán)境是否能夠助力智能體的任務(wù)能力提升和進化。
? 醫(yī)療場景被廣泛認為是AI技術(shù)可以顯著改進的理想場景,改進后的LLM Agent是否可以通過社會模擬環(huán)境提升其在醫(yī)療場景中的實際應(yīng)用效果還需要驗證。
2.Methods
省流版總結(jié):
虛擬環(huán)境構(gòu)建: 開發(fā)一個名為Agent Hospital的綜合模擬環(huán)境,模擬醫(yī)院內(nèi)幾乎所有的醫(yī)療過程,包含兩類Agent:居民(潛在患者)和醫(yī)療專業(yè)人員。 MedAgent-Zero訓(xùn)練策略: 在Agent Hospital中,通過模擬醫(yī)生-患者互動過程來訓(xùn)練醫(yī)生Agent,采用無標注數(shù)據(jù),通過成功病例積累記錄和失敗病例總結(jié)經(jīng)驗,不斷進化。
詳細方法和步驟:
1)環(huán)境設(shè)置:設(shè)計了一個醫(yī)院沙盒模擬環(huán)境,其中包括**分診(Triage)、掛號(Registration)、會診(Consultation)、檢查(Medical Examination)、診斷(Diagnosis)、治療(Medicine Dispensary)、隨訪(Convalescence)**等多個醫(yī)療流程,由患者Agent和醫(yī)生Agent完成循環(huán)。
2)角色設(shè)計:醫(yī)療專業(yè)Agent和居民患者Agent。醫(yī)療專業(yè)Agent負責(zé)疾病診斷和治療計劃的制定,居民Agent則在特定時間點決定是否去醫(yī)院就診。
3)患者事件/互動:包括疾病發(fā)作、分診、掛號、會診、醫(yī)學(xué)檢查、診斷、治療推薦和康復(fù)(隨訪)等八大主要事件。
4)醫(yī)生事件:主要包括實踐活動(在醫(yī)院內(nèi)學(xué)習(xí))和學(xué)習(xí)活動(業(yè)余時間讀書學(xué)習(xí))。
5)MedAgent-Zero策略:這一無參數(shù)、無標注數(shù)據(jù)的策略包括醫(yī)學(xué)記錄庫和經(jīng)驗庫兩個模塊。通過歷史醫(yī)療記錄和經(jīng)驗總結(jié),幫助醫(yī)生Agent在新的模擬環(huán)境中做出更好的醫(yī)療決策。
Q1: 如何生成醫(yī)療對話數(shù)據(jù)?
1. 前的病歷信息是由大語言模型結(jié)合醫(yī)學(xué)知識為患者生成完整的病歷,包括疾病類型、癥狀、持續(xù)時間、各項檢查結(jié)果等(具體內(nèi)容可見論文附錄)。
2. 患者智能體只會感知到自己的疾病癥狀但不知道具體疾病,而醫(yī)生智能體則只能通過和患者智能體對話問診和開具檢查來了解信息。
Q2: 如何評價Agent的診斷能力?
答:患者智能體需要進行的檢查、所患疾病類型和疾病嚴重程度判斷將作為三個關(guān)鍵任務(wù)來評價醫(yī)學(xué)智能體對虛擬病人的診療能力。
Q3: MedAgent-Zero 智能體如何自我進化?
1. 在虛擬醫(yī)院中利用學(xué)習(xí)(即閱讀醫(yī)學(xué)文獻)與實踐(即與虛擬病人交互并做診療決策)兩種途徑實現(xiàn)能力提升
2. 基于LLM生成的醫(yī)學(xué)問題->模擬醫(yī)學(xué)文檔的學(xué)習(xí)過程。
3. 醫(yī)學(xué)智能體可以按照上述診療流程,與虛擬病人進行診療交互,在開具檢查、疾病診斷和治療建議三個任務(wù)上自主積累經(jīng)驗。
Q4: MedAgent-Zero的進化方式是什么?
1. Medical Record Library: 從成功案例中總結(jié)經(jīng)驗,對于能夠答對的診療問題,智能體會像人類醫(yī)生一樣進行病例庫經(jīng)驗積累;
2. Experience: 從失敗案例中反思教訓(xùn),在回答錯誤時,智能體會主動進行錯誤反思并進行反思。 如果反思的經(jīng)驗教訓(xùn)能夠幫助智能體回答對該問題,它將被保留下來并存儲在經(jīng)驗庫中。
3. 通過Retrieval策略,將收集到的經(jīng)驗和總結(jié),用于疾病診斷。
Q5: 輸入的醫(yī)療數(shù)據(jù)長啥樣?
{
"local":"愛愛醫(yī)病例中心 內(nèi)科 神經(jīng)內(nèi)科 食管癌放療后突發(fā)腦梗死對癥積極處理應(yīng)有條不紊 ",
"title":"食管癌放療后突發(fā)腦梗死對癥積極處理應(yīng)有條不紊",
"author":"原*********生",
"department":"內(nèi)科病例 神經(jīng)內(nèi)科病例 ",
"diseases":"食管癌放療后",
"time":"發(fā)布時間:2021-12-07",
"read_num":"1282",
"comment_num":"0",
"url":"https://bingli.iiyi.com/show/62965-1.html",
"id":1001,
"disease_info":null,
"raw_medical_record":Object{...},
"reformed_text_medical_record":"#一般資料#:\n性別: 男\(zhòng)n年齡: 73歲\n職業(yè): 農(nóng)民\n\n#主訴#:\n左側(cè)肢體無力1天。\n\n#現(xiàn)病史#:\n患者于當(dāng)日上午出現(xiàn)左側(cè)肢體無力,休息后無緩解,無頭痛、發(fā)熱、惡心、嘔吐等癥狀,精神狀態(tài)及食欲良好,大便干燥,小便正常。\n\n#既往史#:\n一般健康良好,無傳染病史。2018年11月診斷為食管上段癌,接受放療,后進食正常。高血壓病史5年,血壓最高記錄為180/110mmHg,服用吲噠帕胺和硝苯地平片控制血壓。否認有心臟病、糖尿病等慢性病史,無手術(shù)、外傷史,無藥物、食物過敏史,無輸血史。\n\n#查體#:\n- 體溫: 36.9℃\n- 脈搏: 108次/分\n- 呼吸: 22次/分\n- 血壓: 177/107mmHg\n- 神志清晰,言語流利,記憶力、計算力、理解力良好。\n- 視力視野正常,眼球運動正常,無復(fù)視或震顫。\n- 面部感覺對稱,張口下頜無偏斜,無口角低垂,眼裂對稱,左側(cè)鼻唇溝淺。\n- 無眩暈、惡心,飲水無嗆咳,伸舌居中。\n- 左側(cè)肢體肌力4級,觸痛覺減退。\n- 巴賓斯基征雙側(cè)陰性。\n- 腦膜刺激征:頸無抵抗,克氏征陰性,布氏征陰性。\n\n#輔助檢查#:\n- 血常規(guī):\n - 即刻血糖: 8.4mmol/L\n- 心電圖:\n - 竇性心律\n - 心電軸正常\n - T波異常\n- 影像學(xué)檢查:\n - 頸部血管超聲: 右頸總動脈硬化斑塊形成\n - 頭顱CT: 右側(cè)側(cè)腦室旁腦梗死\n - 頭顱MRI: 腦白質(zhì)脫髓鞘改變,右側(cè)基底節(jié)區(qū)、雙側(cè)側(cè)腦室旁、頂葉及額葉腔隙性腦梗塞\n\n#初步診斷#:\n腦梗死;高血壓3級極高危;食管癌放療后\n\n#診斷依據(jù)#:\n1. 既往食管癌放療史,長期高血壓病史,吸煙史。\n2. 左側(cè)肢體無力1天。\n3. 查體發(fā)現(xiàn)高血壓,左側(cè)肢體肌力下降,觸痛覺減退。\n4. 輔助檢查顯示即刻血糖升高,心電圖T波異常,頸部血管超聲及頭顱CT、MRI均提示腦梗死。\n\n#鑒別診斷#:\n1. 腦出血:考慮高血壓病史,但無典型癥狀,頭顱CT未見高密度影。\n2. 蛛網(wǎng)膜下腔出血:無突發(fā)性頭痛、惡心、嘔吐,腦膜刺激征陰性,頭顱CT未見密度增高。\n3. 顱內(nèi)占位:無進展性頭痛、嘔吐或肢體癱瘓,頭顱CT、MRI未見占位性病變。\n\n#診治經(jīng)過#:\n給予抗血小板聚集、改善循環(huán)、調(diào)控血壓、腦保護、他汀類藥物及抑酸治療。住院2周后,病情穩(wěn)定,左側(cè)肢體無力明顯改善。\n\n#診斷結(jié)果#:\n腦梗死;高血壓3級極高危;頸動脈硬化斑塊形成;食管癌放療后\n\n#分析總結(jié)#:\n患者有高血壓、食管癌放療史及吸煙史,急性起病,有定位體征,頭顱CT、MRI確診腦梗死。結(jié)合高血壓病史及頸部血管超聲結(jié)果,病因可能為動脈-動脈栓塞。經(jīng)抗血小板聚集、調(diào)控血壓、腦保護、調(diào)脂穩(wěn)斑等治療后病情好轉(zhuǎn)。建議患者出院后繼續(xù)低鹽低脂飲食,規(guī)律服藥,適量鍛煉,監(jiān)測血壓,定期復(fù)查,并進行積極的二級預(yù)防。",
"medical_record":Object{...},
"profile":"<病情陳述> 你昨天上午開始感覺左邊的手腳都沒什么力氣,休息了一會兒也沒見好轉(zhuǎn)。頭倒是不疼,也沒發(fā)燒,就是覺得嘴巴干,大便不太順暢。\n<性別> 男\(zhòng)n<年齡> 73\n<工作與生活> 你是一位農(nóng)民,平時在田里干活,生活比較簡樸,可能不太注意健康。\n<說法方式> 你說話直接,用的都是簡單的日常用語,描述癥狀時可能不會用到太專業(yè)的醫(yī)學(xué)詞匯。你可能會說“手腳沒勁”來形容肢體無力,而不會說“肢體癱瘓”或“肢體無力”。對于醫(yī)生的問題,你會盡量回答,但有時可能不太理解復(fù)雜的醫(yī)學(xué)術(shù)語。"
}
Q6: 如何根據(jù)已有電子病歷數(shù)據(jù)生成對話數(shù)據(jù)?
答:通過prompt,根據(jù)醫(yī)療電子病歷數(shù)據(jù)來提問,但是不知道診療結(jié)果。
self.system_message ="你是一個病人。這是你的基本資料。\n"+ \
"{}\n".format(patient_profile)
if"現(xiàn)病史"in medical_records:
self.system_message +="<現(xiàn)病史> {}\n".format(medical_records["現(xiàn)病史"].strip())
if"既往史"in medical_records:
self.system_message +="<既往史> {}\n".format(medical_records["既往史"].strip())
if"個人史"in medical_records:
self.system_message +="<個人史> {}\n".format(medical_records["個人史"].strip())
self.system_message +="\n"
self.system_message += \
"下面會有<醫(yī)生>來對你的身體狀況進行診斷,你需要:\n"+ \
"(1) 按照病歷和基本資料的設(shè)定進行對話。\n"+ \
"(2) 在每次對話時,你都要明確對話的對象是<醫(yī)生>還是<檢查員>。當(dāng)你對醫(yī)生說話時,你要在句子開頭說<對醫(yī)生講>;如果對象是<檢查員>,你要在句子開頭說<對檢查員講>。\n"+ \
"(3) 首先按照主訴進行回復(fù)。\n"+ \
"(4) 當(dāng)<醫(yī)生>詢問你的現(xiàn)病史、既往史、個人史時,要按照相關(guān)內(nèi)容進行回復(fù)。\n"+ \
"(5) 當(dāng)<醫(yī)生>要求或建議你去做檢查時,要立即主動詢問<檢查員>對應(yīng)的項目和結(jié)果,例如:<對檢查員講> 您好,我需要做XXX檢查,能否告訴我這些檢查結(jié)果?\n"+ \
"(6) 回答要口語化,盡可能短,提供最主要的信息即可。\n"+ \
"(7) 從<檢查員>那里收到信息之后,將內(nèi)容主動復(fù)述給<醫(yī)生>。\n"+ \
"(8) 當(dāng)醫(yī)生給出診斷結(jié)果、對應(yīng)的診斷依據(jù)和治療方案后,在對話的末尾加上特殊字符<結(jié)束>。"
Q7: 醫(yī)生如何回復(fù)?
答:通過prompt,根據(jù)癥狀,檢查檢查結(jié)果等,給出診斷結(jié)果,診斷依據(jù),和治療方案,后面通過需要進行的檢查、所患疾病類型和疾病嚴重程度判斷三個指標評估診療準確率。
system_message = "你是一個專業(yè)的醫(yī)生{}。\n".format(self.name)+ \
"你正在為患者做診斷,患者的癥狀和輔助檢查如下:\n"+ \
"#癥狀#\n{}\n\n".format(self.get_diagnosis_by_patient_id(patient.id, key="癥狀"))+ \
"#輔助檢查#\n{}\n\n".format(self.get_diagnosis_by_patient_id(patient.id, key="輔助檢查"))+ \
"針對患者的病情,你給出了初步的診斷意見:\n"+ \
"#診斷結(jié)果#\n{}\n\n".format(self.get_diagnosis_by_patient_id(patient.id, key="診斷結(jié)果"))+ \
"#診斷依據(jù)#\n{}\n\n".format(self.get_diagnosis_by_patient_id(patient.id, key="診斷依據(jù)"))+ \
"#治療方案#\n{}\n\n".format(self.get_diagnosis_by_patient_id(patient.id, key="治療方案"))+ \
"(1) 下面你將收到來自其他醫(yī)生的診斷意見,其中也包含診斷結(jié)果、診斷依據(jù)和治療方案。你需要批判性地梳理并分析其他醫(yī)生的診斷意見。\n"+ \
"(2) 在這個過程中,請你注意主治醫(yī)生給出的爭議點。\n"+ \
"(3) 如果你發(fā)現(xiàn)其他醫(yī)生給出的診斷意見有比你的更合理的部分,請吸納進你的診斷意見中進行改進。\n"+ \
"(4) 如果你認為你的診斷意見相對于其他醫(yī)生的更科學(xué)合理,請堅持自己的意見保持不變。\n"+ \
"(5) 請你按照下面的格式來輸出。\n"+ \
"#診斷結(jié)果#\n(1) xxx\n(2) xxx\n\n"+ \
"#診斷依據(jù)#\n(1) xxx\n(2) xxx\n\n"+ \
"#治療方案#\n(1) xxx\n(2) xxx\n"
# build the content
content =""
for i, doctor inenumerate(doctors):
content +="##醫(yī)生{}##\n\n#診斷結(jié)果#\n{}\n\n#診斷依據(jù)#\n{}\n\n#治療方案#\n{}\n\n".format(
doctor.name,
doctor.get_diagnosis_by_patient_id(patient.id, key="診斷結(jié)果"),
doctor.get_diagnosis_by_patient_id(patient.id, key="診斷依據(jù)"),
doctor.get_diagnosis_by_patient_id(patient.id, key="治療方案")
)
content +="##主任醫(yī)生##\n{}".format(host_critique)
Q8: 生成的醫(yī)療對話數(shù)據(jù)長啥樣?
{
"patient_id":1001,
"doctor":"Agent.Doctor.GPT",
"patient":"Agent.Patient.GPT",
"reporter":"Agent.Reporter.GPT",
"dialog_history":[
{
"turn":0,
"role":"Doctor",
"content":"您好,有哪里不舒服?"
},
{
"turn":1,
"role":"Patient",
"content":"<對醫(yī)生講> 我昨天上午開始感覺左邊的手腳都沒什么力氣,休息了一會兒也沒見好轉(zhuǎn)。頭倒是不疼,也沒發(fā)燒,就是覺得嘴巴干,大便不太順暢。"
},
{
"turn":1,
"role":"Doctor",
"content":"感謝您提供的信息。除了手腳沒力氣、口干和大便不順暢之外,您還有其他不適嗎?比如胸悶、呼吸困難、心悸等癥狀?另外,您最近是否有過任何身體上的不適或者受傷?"
},
{
"turn":2,
"role":"Patient",
"content":"<對醫(yī)生講> 沒有胸悶、呼吸困難或心悸等癥狀。最近也沒有受傷或其他身體不適。就是突然感覺手腳沒力氣,嘴巴干,大便不太順暢。"
},
{
"turn":2,
"role":"Doctor",
"content":"好的,我明白了。根據(jù)您的描述,您可能正在經(jīng)歷一些全身性的不適。為了更好地了解您的情況,我建議您進行一些常規(guī)檢查,例如血常規(guī)、肝功能和血糖檢查。這些檢查可以幫助我們排除一些常見的疾病,并提供更準確的診斷依據(jù)。您覺得這個建議怎么樣?"
},
{
"turn":3,
"role":"Patient",
"content":"<對檢查員講> 您好,醫(yī)生建議我做血常規(guī)、肝功能和血糖檢查,請問這些檢查的項目和結(jié)果是什么?謝謝。"
},
{
"turn":3,
"role":"Reporter",
"content":"#檢查項目#\n- 血常規(guī):\n - 即刻血糖: 8.4mmol/L\n- 肝功能: 無\n- 血糖檢查:\n - 即刻血糖: 8.4mmol/L"
},
{
"turn":3,
"role":"Doctor",
"content":"感謝您提供的檢查結(jié)果。根據(jù)您的血糖檢查結(jié)果,您的血糖水平略高,正常范圍應(yīng)該在3.9-6.1mmol/L之間。這可能是導(dǎo)致您手腳無力、口干和大便不順暢的原因之一。我建議您進一步進行空腹血糖檢查,以確認是否存在糖尿病的可能性。此外,還需要進一步了解您的飲食習(xí)慣、生活方式和家族病史等信息,以綜合評估您的狀況。請問您對此有何想法?"
},
{
"turn":4,
"role":"Patient",
"content":"<對醫(yī)生講> 好的,我同意進一步進行空腹血糖檢查。關(guān)于飲食習(xí)慣、生活方式和家族病史,我可以告訴您一些信息。我平時的飲食比較簡單,主要是米飯、面食和蔬菜。我是個農(nóng)民,每天都在田里干活,生活比較辛苦。至于家族病史,我沒有太多了解,因為我們家族里沒有人有過類似的問題。"
},
{
"turn":4,
"role":"Doctor",
"content":"非常感謝您提供的信息。根據(jù)您的描述,您的飲食習(xí)慣相對簡單,主要以米飯、面食和蔬菜為主,這是比較健康的飲食方式。您的生活方式辛苦,每天在田里勞作,這可能會導(dǎo)致一些疲勞和體力消耗。關(guān)于家族病史,如果沒有人有類似的問題,那可能不會對您當(dāng)前的癥狀產(chǎn)生太大影響。\n\n為了進一步明確診斷,我建議您進行空腹血糖檢查。請您在早上空腹時前往醫(yī)院或診所進行血糖檢查,然后將結(jié)果告知我。這將有助于我們更準確地評估您的狀況并制定相應(yīng)的治療方案。如果您有任何其他疑問或需要進一步的幫助,請隨時告訴我。"
},
{
"turn":5,
"role":"Patient",
"content":"<對檢查員講> 您好,醫(yī)生建議我進行空腹血糖檢查,請問我需要在早上空腹時前往醫(yī)院或診所進行檢查。檢查結(jié)果后,請告訴我結(jié)果。謝謝。"
},
{
"turn":5,
"role":"Reporter",
"content":"#輔助檢查#\n- 空腹血糖: 請在早上空腹時前往醫(yī)院或診所進行檢查。檢查結(jié)果將在完成后告知您。"
},
{
"turn":5,
"role":"Doctor",
"content":"非常感謝您的配合。請您在早上空腹時前往醫(yī)院或診所進行空腹血糖檢查。一旦您完成檢查并獲得結(jié)果,請及時告知我。根據(jù)您的癥狀和檢查結(jié)果,我將為您提供進一步的診斷和治療建議。如果您有任何其他問題或需要幫助,請隨時告訴我。祝您健康!"
},
{
"turn":6,
"role":"Patient",
"content":"<對醫(yī)生講> 好的,我會盡快去醫(yī)院或診所進行空腹血糖檢查,并在拿到結(jié)果后告訴您。謝謝醫(yī)生的建議和關(guān)心。"
},
{
"turn":6,
"role":"Doctor",
"content":"不客氣,我期待您的檢查結(jié)果。如果您有任何其他問題或需要進一步的幫助,請隨時與我聯(lián)系。祝您早日恢復(fù)健康!"
},
{
"turn":7,
"role":"Patient",
"content":"<對醫(yī)生講> 謝謝醫(yī)生的關(guān)心和祝福。我會盡快進行檢查,并在需要時與您聯(lián)系。再次感謝您的幫助。祝您工作順利!<結(jié)束>"
},
{
"turn":7,
"role":"Doctor",
"content":"#癥狀#\n(1) 左側(cè)手腳無力\n(2) 口干\n(3) 大便不順暢\n\n#輔助檢查#\n(1) 即刻血糖:8.4mmol/L\n\n#診斷結(jié)果#\n根據(jù)您提供的癥狀和血糖檢查結(jié)果,初步診斷為高血糖狀態(tài)。\n\n#診斷依據(jù)#\n(1) 血糖檢查結(jié)果顯示血糖水平略高。\n(2) 癥狀包括手腳無力、口干和大便不順暢,與高血糖相關(guān)。\n\n#治療方案#\n(1) 控制飲食:避免高糖食物,增加蔬菜和蛋白質(zhì)攝入。\n(2) 鍛煉:適量的有氧運動,如散步或游泳。\n(3) 藥物治療:根據(jù)空腹血糖檢查結(jié)果,可能需要口服藥物或胰島素治療,具體藥物和劑量需由醫(yī)生根據(jù)檢查結(jié)果決定。\n(4) 定期復(fù)查:定期檢查血糖水平,調(diào)整治療方案。\n\n請您盡快進行空腹血糖檢查,以便確認診斷并制定更具體的治療方案。同時,遵循健康的飲食和生活方式,保持良好的血糖控制,有助于改善癥狀和預(yù)防并發(fā)癥的發(fā)生。如果您有任何進一步的問題或需要幫助,請隨時與我聯(lián)系。祝您早日恢復(fù)健康!"
}
],
"time":"2023-11-18 18:57:53"
}
3.Conclusion
?結(jié)論1: MedAgent-Zero策略顯著提升了醫(yī)生Agent在三大任務(wù)(檢查判斷、診斷、治療方案)上的性能,訓(xùn)練后的累計準確率不斷上升。
?結(jié)論2: 通過模擬無標簽醫(yī)療病例,MedAgent-Zero策略使醫(yī)生Agent在短時間內(nèi)完成實際醫(yī)生數(shù)年才能完成的病例診療,具有高效性。
?結(jié)論3: 醫(yī)院模擬環(huán)境和MedAgent-Zero策略可使醫(yī)生Agent在模擬病例和真實世界的評估中表現(xiàn)出色,驗證了社會模擬可以提升LLMAgent在特定任務(wù)上的性能。
4.Limitation
? 盡管患者的健康記錄和檢查結(jié)果生成嚴格遵循醫(yī)療邏輯,但與真實世界記錄仍可能存在差異。
二、詳細內(nèi)容
1. 隨著訓(xùn)練樣本的增加,在三種任務(wù)上效果不斷提升
?訓(xùn)練集表現(xiàn)
?測試集表現(xiàn)
?實驗設(shè)置:
a.包括甲流、乙流、新冠等8個呼吸道相關(guān)疾病,涉及十余種不同的醫(yī)學(xué)檢查。
b.構(gòu)造樣本數(shù)量:構(gòu)造了上萬名虛擬病人的病歷用于醫(yī)學(xué)智能體的自主進化實驗,按照人類醫(yī)生一周治療約100名病人計算,人類醫(yī)生可能需要花兩年診斷10000名病人,但是智能體醫(yī)生只需要幾天就可以完成。
?結(jié)論:
?結(jié)論1: 隨著生成訓(xùn)練樣本的增加,在三大任務(wù)(檢查判斷、診斷、治療方案)上的性能也逐漸增加。
?結(jié)論2(測試集表現(xiàn)): 針對500個測試病歷的實驗則發(fā)現(xiàn)(圖7),在診療病人數(shù)量增加的過程中智能體準確率略有波動,但整體呈現(xiàn)上升趨勢。
2. 積累的正確和錯誤診斷的經(jīng)驗數(shù)量和生成樣本數(shù)量的關(guān)系
? 可以看出,隨著生成樣本越來越多,錯誤的經(jīng)驗和正確的經(jīng)驗都越來越多,不過犯錯的經(jīng)驗更多一些,后續(xù)利用這些數(shù)據(jù)做RAG的語料,既能從成功的經(jīng)驗中學(xué)習(xí),也能從失敗的經(jīng)驗中學(xué)習(xí)。
3. 進化后在各疾病的準確率有了顯著的提升
?醫(yī)學(xué)智能體進化前后在各個疾病上的診斷準確率
?外部數(shù)據(jù)集MedQA的呼吸道疾病子集上的表現(xiàn)(進化前后)
?結(jié)論1: 無論是在內(nèi)部數(shù)據(jù)集還是外部數(shù)據(jù)集,進化前后準確率發(fā)現(xiàn)均有大幅提升,驗證了其自主進化的有效性。
? 結(jié)論2: 在外部數(shù)據(jù)MedQA數(shù)據(jù)集上,在診療近萬名病人后,醫(yī)學(xué)智能體能夠在該數(shù)據(jù)集上超越當(dāng)前最好的方法,達到了最高93.06%的準確率。
4.消融實驗
?結(jié)論1: 不管是從成功中積累的樣例還是從失敗中總結(jié)的經(jīng)驗都有助于提升模型的醫(yī)學(xué)能力。
?結(jié)論2: GPT4能比GPT3.5高10個點左右,基座模型的能力也比較關(guān)鍵。
三、總結(jié)
本文通過Agent Hospital驗證了社會模擬環(huán)境下醫(yī)生Agent的自我進化能力,驗證了無需手動標注數(shù)據(jù)就能有效提升LLMAgent在醫(yī)療場景中的應(yīng)用性能。后續(xù)希望該方法也可以適應(yīng)于其他場景。
結(jié)論1: Agent Hospital成功模擬了一個包含完整醫(yī)療流程的虛擬醫(yī)院。 這一虛擬醫(yī)院能夠有效合成醫(yī)療對話數(shù)據(jù),促進醫(yī)療LLM的應(yīng)用,相對于醫(yī)院接診效率存在天然瓶頸,模擬醫(yī)院能夠短時間內(nèi)產(chǎn)生大量數(shù)據(jù)。
結(jié)論2: MedAgent-Zero的自我進化策略能夠顯著提升醫(yī)生Agent的診療能力。 利用成功病例積累和失敗經(jīng)驗總結(jié),醫(yī)生Agent在無需人工標注數(shù)據(jù)的情況下,實現(xiàn)自我進化。
結(jié)論3: 在真實世界的評估中,MedAgent-Zero策略同樣表現(xiàn)出色。 即使不采用任何手工標注的數(shù)據(jù),這一策略在MedQA數(shù)據(jù)集上的表現(xiàn)也達到了最先進水平。
未來工作:
1. 覆蓋的更多的疾病種類和醫(yī)療部門,進一步貼近真實醫(yī)院的綜合服務(wù)。
2. 增強Agent的社會模擬能力,如加入完整的醫(yī)療專業(yè)人員晉升系統(tǒng)、疾病分布的時間變化和患者病歷記錄等。
3. 優(yōu)化基礎(chǔ)LLM模型的選擇和實現(xiàn),提升模擬過程的執(zhí)行效率。
本文轉(zhuǎn)載自??NLP PaperWeekly??,作者: NLP PaperWeekly ????
