醫療復雜推理開源大模型——華佗GPT-o1
在醫學領域涉及大量復雜的推理過程,從癥狀分析到疾病診斷,每一步都需要綜合考慮眾多因素。例如,在診斷一種罕見疾病時,醫生不僅要熟悉各種疾病的癥狀表現,還要了解患者的病史、家族遺傳史、生活環境等多方面信息,通過層層推理才能做出準確的判斷。
為了輔助醫生實現更高效的推理,香港中文大學(深圳)和深圳市大數據研究院聯合開源了專用于醫療領域的復雜大模型——華佗GPT-o1。
開源地址:https://huggingface.co/FreedomIntelligence/HuatuoGPT-o1-7B
Github:https://github.com/FreedomIntelligence/HuatuoGPT-o1
高質量醫學數據集
開發高質量可驗證醫學數據集是華佗GPT-o1實現高質量推理的重要基石,研究人員從MedQA-USMLE和MedMCQA訓練集中精心收集了192K醫學多項選擇題。
涵蓋了內科學、外科學、婦產科學、兒科學、神經病學等眾多醫學學科的知識點,能全面地反映了醫學領域的知識體系。
但原始數據存在諸多問題,需要進行嚴格篩選。首先,許多題目過于簡單,無法有效訓練模型的復雜推理能力。例如,一些題目僅考查單一知識點,且答案一目了然,對于模型來說缺乏挑戰性。其次,部分題目答案不唯一或存在歧義,這會給模型的學習和驗證帶來困擾。此外,一些題目不適合轉化為開放式問題,不利于模型進行深入推理。
為了篩選出合適的題目,研究人員采用了多輪篩選方法。第一輪,利用小型語言模型對題目進行初步篩選,去除那些所有小型模型都能輕易回答正確的簡單題目。第二輪,由人工對剩余題目進行審核,排除答案不明確或存在歧義的題目。
最后,借助GPT-4o模型對篩選后的題目進行進一步優化和驗證,確保每個題目都具有明確的、唯一的正確答案,并且能夠轉化為開放式問題。經過層層篩選,最終得到了一個包含40K可驗證醫學問題的數據集。
兩階段訓練模式
在第一階段,華佗GPT-o1首先會對給定的可驗證醫學問題進行初步分析,生成一個初始的思維鏈(CoT)和答案。例如,對于一個關于患者癥狀分析的問題,模型可能會根據癥狀的表現、出現的時間順序、伴隨癥狀等因素,初步推測可能的疾病范圍,并給出一個初步診斷。
然后,醫學驗證器會對這個初始答案進行嚴格驗證。如果答案不正確,模型將啟動迭代優化過程。它會從預先設定的四種搜索策略(探索新路徑、回溯、驗證、修正)中隨機選擇一種,對之前的推理過程進行改進。
假設模型在診斷過程中忽略了某個重要癥狀,導致初步診斷錯誤。如果選擇探索新路徑策略,模型會嘗試從新的角度分析癥狀,考慮其他可能的疾病因素;如果選擇回溯策略,模型會回到之前的推理步驟,重新審視癥狀與疾病之間的關聯;
如果選擇驗證策略,模型會對當前的推理過程進行再次評估,檢查是否存在邏輯漏洞;如果選擇修正策略,模型會根據驗證器的反饋,糾正之前推理中的錯誤,調整診斷方向。
模型會不斷重復這個過程,直到找到正確的答案。每次迭代都會生成新的CoT和答案,驗證器會繼續對新答案進行驗證,直到答案被確認為正確為止。通過這種方式,模型能夠在不斷的嘗試和改進中,學習到正確的醫學推理方法,提高推理的準確性和可靠性。
當模型成功找到正確的推理軌跡后,這個軌跡將被重新格式化為一種更加自然、連貫的復雜CoT形式。例如,原始的推理過程可能是一系列分散的步驟和結論,經過格式化后,會變成一個邏輯清晰、語言流暢的推理敘述,使用自然的過渡詞(如“嗯”“而且”“等等”)將各個步驟有機地連接起來,使整個推理過程更加符合人類的思維方式。
在格式化過程中,模型會突出關鍵的推理步驟和依據,使復雜CoT能夠清晰地展示模型的思考過程。然后,模型會根據這個復雜CoT生成一個正式的回答,這個回答不僅包含最終的結論,還會對推理過程進行簡要總結,以便更好地與用戶進行溝通和解釋。
通過構建SFT訓練數據,模型能夠學習到如何在回答問題之前進行深入的思考和推理,將復雜的醫學知識和推理過程整合起來,形成一個完整的解決方案。這種訓練方式有助于提高模型在實際應用中的表現,使其能夠更好地應對各種復雜的醫學問題。
實驗數據
為了評估華佗GPT-o1的性能,在MedQA、MMLU-Pro、MedMCQA、PubMedQA等醫學基準中進行了綜合測試。結果顯示,華佗GPT-o1-70B版本超越了其他所有開源模型,在多個數據集上取得了領先成績。
例如,在MMLU-Pro的健康和生物學賽道上,其準確率分別達到了73.6%和71.0%,在GPQA的遺傳學和分子生物學賽道上,準確率也分別達到了66.5%和56.2%。