文心一言變身虛擬患者,助力醫學生輕鬆開啓「實踐模式」

本期文心開發者說邀請到天佑星河團隊負責人,從醫療教育與人工智能結合的角度出發,分享“智慧醫療教育系統”的開發歷程。本期分享將從應用介紹、應用價值、應用亮點、技術全景等方面介紹“智慧醫療教育系統”應用的開發心得和技術路線。

隨着生成式人工智能的發展,AI 正在不斷重塑醫療健康領域。根據麥肯錫全球研究所(MGI)估計,生成式 AI 每年可爲製藥和醫療行業帶來 600 億至 1100 億美元的經濟價值。天佑星河團隊從醫療教育與人工智能結合的角度出發,開發了“智慧醫療教育系統”。該系統運用文心大模型模擬病患,爲醫學生提供了一個仿真、互動的學習環境,通過與模擬病患交流,鍛鍊其診斷能力、溝通技巧和臨牀思維。

與此同時,我們還在飛槳星河社區開發了面向臨牀用戶的“手術過程記錄生成系統”與“電子病歷生成系統”,兩個系統的內核動力均源自文心大模型卓越的自然語言理解和生成能力,通過整合語音識別及提示詞工程技術,自動生成手術過程和電子病歷記錄,提供更加高效、準確的記錄方式,幫助醫生擺脫繁重的文書工作,大大減輕了工作負擔。

 

本次主要分享“智慧醫療教育系統”應用的開發心得和技術路線。

“智慧醫療教育系統”是什麼

應用介紹

“智慧醫療教育系統”本質上是一個創新性大語言模型應用,該系統深度整合了提示詞工程技術,涵蓋語義分析、上下文理解以及精細化詞彙選擇等多個子領域,旨在提升模型的響應準確性和用戶意圖識別能力。同時,通過運用多輪對話控制技術,模擬人類對話的連貫性和複雜性,實現更自然、高效的人機交互。

 

隨着人工智能技術的快速發展,醫療領域學科知識快速迭代,對醫學生的教育培養提出了更高要求。傳統的醫學教育模式往往側重於理論知識的傳授,但在實踐技能、臨牀經驗以及跨學科整合方面存在一定侷限性。這些侷限性導致醫學生在面對複雜多變的臨牀情境時,常常感到力不從心,難以將所學理論知識有效應用於實際工作中。在此背景下,智慧醫療教育系統應運而生,從實際臨牀場景出發,利用大語言模型的交互能力,不僅能夠幫助醫學生更高效地學習和掌握醫學知識,還能夠培養他們的臨牀思維和跨學科整合能力,爲未來的醫療事業培養更多優秀的人才。

應用價值

提升學習體驗

智慧醫療教育系統通過模擬真實病人對話,爲醫學生打造了極具現場感的學習環境。這種沉浸式的體驗,使學習過程變得更加直觀、深入,不僅激發了醫學生的學習熱情,還讓他們在模擬實踐中快速成長,爲將來的職業生涯做好充分準備。

加強理論與實踐結合

該系統模擬實際問診場景,醫學生通過與文心一言扮演的模擬病人進行多輪對話,充分鍛鍊他們在信息收集、分析病情、推理診斷等方面的實踐技能,對傳統教育模式進行補充,加強他們理論與實踐相結合的能力。

實時反饋與評估

系統對用戶的診療過程進行實時評估並給出打分與評價,這種實時反饋機制有助於醫學生快速識別錯誤、調整決策思路,有針對性地提升問診能力。

應用亮點

充分利用文心大模型的能力

通過調用 ERNIE SDK 全面釋放文心大模型的創造潛能,藉助其強大的生成能力,系統能夠創造出豐富多樣的模擬病例和逼真場景,爲醫學生提供廣闊且高效的實踐平臺。

多輪對話技術

系統採用先進的多輪對話技術,使大模型具備記憶力。在與模擬病人的連續對話中,系統能夠記住已輸入的信息,保持對話的連貫性,從而更真實地模擬實際問診過程,提升醫學生的溝通和實踐能力。

提示詞模板技術和醫學術語的結合

智慧醫療教育系統巧妙地將提示詞模板技術與醫學術語相結合。通過預設的醫學術語提示詞,能夠更準確地告知大模型需要學習的內容,使學習更加個性化。

搭建“智慧醫療教育系統”

技術全景

在介紹具體步驟之前,先從宏觀整體的角度瞭解該應用是如何實現的。

泳道圖是一種用來描述系統流程的圖表,描述了用戶與系統交互的過程。在開始階段,用戶可以選擇一級科室名稱,系統將 SQL 查詢語句提交給數據庫,數據庫根據一級科室查詢所有二級科室,找到一個二級科室的數據集並通過系統渲染到用戶界面。

用戶選擇二級科室名稱後,點擊提交按鈕,系統會將 SQL 查詢語句再次提交給數據庫,數據庫隨後將隨機查詢到的提示詞模板返回給系統。

系統將提示詞模板中的動態部分按照用戶輸入替換,並將替換後的提示詞與之前的對話信息合併,而後提交給大模型。

用戶收到大模型的反饋後,可以進行下一輪的對話,直到雙方對話結束。

以下是應用的泳道圖作爲參考:

技術路徑

接下來,我們一起了解這個應用的幾個功能具體是如何實現。以 AI Studio 的 bml codelab 爲例。需要選擇一個合適的環境,在此基礎上進行下一步的開發。

一級科室及二級科室的顯示及聯動

前端採用的是 Gradio 框架。Gradio 是一個開源的 Python 庫,主要功能爲快速構建和分享人工智能應用。Gradio 的代碼結構相對簡單,只需簡單定義輸入和輸出接口即可快速構建簡單的交互頁面,大大提高了開發 demo 的效率,以下是相關代碼:

 

對於一級臨牀科室分類項目,在頁面加載的時候,通過加載 law_situation_list 的列表將所有的一級臨牀科室分類項目顯示在頁面中,以下是相關代碼:

 

從代碼中可以看出,一級臨牀科室分類項目列表是通過執行一段 sql 查詢語句獲得的。這種方法的優勢在於當科室分類發生變化和調整的時候,只需要修改數據庫中的相關信息,無需修改代碼。二級臨牀科室分類項目會在一級臨牀科室分類項目的單選框被選中後觸發,觸發後執行 reload_point 的函數,輸入的參數是被選中的一級臨牀科室分類項目,以下爲 reload_point 函數:

 

通過執行這個 reload_point 函數,可以根據一級臨牀科室分類項目,列出其下所有的二級臨牀科室分類。

提示詞模板技術

這一部分採用提示詞模板技術,模板包含兩個主要部分:靜態部分和動態部分。靜態部分通常包含一些固定不變的文本元素,動態部分則根據實際情況進行調整。在我們的項目中,提示詞模板的示例如下:

假設你是一位病人,需要去{一級臨牀科分類}下的{二級臨牀科室分類}科室看病,你需要根據我的提問給出相關症狀信息;隨後你需要暫停這個情境,讓我繼續提問;最後,我會結合針狀信息,爲你診斷病情,你根據我的診斷情況進行打分(滿分 100 分)、並給予服務評價,比如遺漏了哪些問題,哪些問題問得不夠好。上述提示詞模板中,{一級臨牀科分類}和{二級臨牀科室分類}是提示詞模板中的動態部分,會根據用戶輸入的一級臨牀科分類和二級臨牀科室分類進行替換,靜態部分保持部分,替換後形成的提示詞纔是真正的提示詞。

多輪對話技術

多輪對話最重要的是構建一個 JSON 文件,其中包含歷次的對話信息和本次的新的提示詞,以這個 JSON 文件傳給大模型,以下是主要的核心代碼:

 

在這個代碼中,messages 這個變量用來存儲歷次對話信息以及新的提示詞,在與大模型對接前,通過 messages.append({"role":"user","content":prompt_template})將每一次的新的提示詞加入到 messages 中,待大模型返回結果後,再通過 messages.append 函數將大模型返回的結果加入到 messages 中,爲下一次的對話做準備。通過上述的多輪對話技術,讓大模型獲取記憶,從而更好地完成多輪對話。

玩轉“智慧醫療教育系統”

接下來,帶大家一步步體驗這一應用,探索如何使用智慧醫療教育系統。

 

 

(1)選擇臨牀科室一級分類和二級分類,如果不選擇二級分類,系統將根據一級科室隨機分配一個二級分類;

(2)點擊提交按鈕開始學習;

 

(3)用戶作爲實習醫生,輸入需要與病患溝通的語句;

(4)點擊提交按鈕將對話發送給系統;

(5)雙方的溝通內容會顯示在 chatbot 對話框中;

 

(6)輸入診斷信息;

(7)點擊提交按鈕將對話發送給系統;

(8)系統返回評價得分,以及給出相應的指導,例如用戶之前詢問過程中,沒有詢問患者的過敏史、是否有抽菸喝酒的習慣、職業和工作環境等。

“智慧醫療教育系統”的下一個目標是利用基於 ERNIE SDK 的 Agent 框架,通過智能體的規劃、記憶、工具、行動的能力,打造一款高度智能化的醫療教育智能體。在多模態交互方面,該智能體通過調用各種工具生成高度逼真的 X 光片、驗血報告單等醫療影像和文檔,使教育過程更加貼近實際臨牀問診的場景。此外,該智能體將通過長期記憶能力的開發,整合豐富的病例庫資源與最新醫學研究成果,確保教育內容的時效性和準確性,幫助醫學生、實習醫生乃至在職醫護人員提升臨牀決策能力,培養高效的問題解決能力。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章