本發(fā)明涉及中醫(yī),具體為一種基于中醫(yī)大模型和多知識(shí)庫(kù)的個(gè)性化中醫(yī)問診系統(tǒng)。
背景技術(shù):
1、隨著自然語言處理(nlp)和大模型技術(shù)的發(fā)展,用大模型去學(xué)習(xí)名中醫(yī)的醫(yī)案、開方等知識(shí),然后模擬名中醫(yī)去進(jìn)行自動(dòng)問診,已經(jīng)成為一種新的替代解決方案。
2、現(xiàn)有技術(shù)的一些缺點(diǎn):
3、(1)在中醫(yī)大模型的rlhf訓(xùn)練階段,因?yàn)椴煌拿嗅t(yī)有不同的問診開方邏輯,因此很難構(gòu)建用戶的偏好數(shù)據(jù)集,此階段無法很好的完成多輪問答的準(zhǔn)確性訓(xùn)練。
4、(2)在構(gòu)建rag的向量知識(shí)庫(kù)時(shí),需要將中醫(yī)文本分割成更小的段落或句子。以何種標(biāo)準(zhǔn)進(jìn)行分割,分割成多長(zhǎng)的段落,這些問題還在研究中,目前并沒有定論。這個(gè)階段可能會(huì)造成信息完整性的缺失。
5、(3)在rag進(jìn)行信息搜索時(shí),是基于向量的相似度,從向量數(shù)據(jù)庫(kù)中查找與輸入文本(病患的問句)最接近的文本(中醫(yī)文本片段)。由于向量是基于預(yù)訓(xùn)練的語義嵌入模型生成的,因此搜索到的文本與預(yù)訓(xùn)練的語義嵌入模型關(guān)系很大。僅僅根據(jù)向量的相似度,不足以保證搜索到的中醫(yī)文本片段文本一定與病患的問句有很強(qiáng)的相關(guān)性,有可能是不相關(guān)的文本甚至是對(duì)立的文本。
6、(4)在rag中只使用了中醫(yī)文本的向量數(shù)據(jù)庫(kù)這一種類型的數(shù)據(jù)源,而中醫(yī)總結(jié)精煉歸納出的邏輯、規(guī)則等知識(shí)并沒有以一種合適的方式加入。這也會(huì)導(dǎo)致中醫(yī)知識(shí)的缺失。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于中醫(yī)大模型和多知識(shí)庫(kù)的個(gè)性化中醫(yī)問診系統(tǒng),以解決上述背景技術(shù)中提出的問題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種基于中醫(yī)大模型和多知識(shí)庫(kù)的個(gè)性化中醫(yī)問診系統(tǒng),包括:
3、中醫(yī)大模型、中醫(yī)預(yù)訓(xùn)練嵌入模型、text2cyper模塊、排序模型、中醫(yī)向量數(shù)據(jù)庫(kù)、中醫(yī)圖數(shù)據(jù)庫(kù);
4、所述中醫(yī)預(yù)訓(xùn)練嵌入模型的輸出端與中醫(yī)向量數(shù)據(jù)庫(kù)建立連接,所述text2cyper模塊的輸出端與中醫(yī)圖數(shù)據(jù)庫(kù)建立連接;
5、所述排序模型、中醫(yī)向量數(shù)據(jù)庫(kù)、中醫(yī)圖數(shù)據(jù)的輸出端輸出至中醫(yī)大模型(tcm-llm大模型),基于中醫(yī)大模型輸出回答語句。
6、優(yōu)選的,所述中醫(yī)預(yù)訓(xùn)練嵌入模型使用bert作為嵌入模型的基礎(chǔ)模型;
7、bert模型包括兩個(gè)部分:embeddings和encoder,bert模型的encoder由多個(gè)相同的transformer的encoder堆疊而成;
8、用中醫(yī)數(shù)據(jù)在通用bert模型的基礎(chǔ)參數(shù)上進(jìn)行繼續(xù)預(yù)訓(xùn)練,中醫(yī)數(shù)據(jù)包括中醫(yī)教科書,中醫(yī)醫(yī)案,中醫(yī)病歷;
9、繼續(xù)預(yù)訓(xùn)練包括兩個(gè)自我監(jiān)督學(xué)習(xí)任務(wù):
10、masked?language?model:在這個(gè)任務(wù)中,中醫(yī)文本中的某些單詞會(huì)被隨機(jī)掩碼,模型的任務(wù)是預(yù)測(cè)這些被掩碼的單詞,這使得中醫(yī)預(yù)訓(xùn)練嵌入模型能夠?qū)W習(xí)到雙向的上下文信息;
11、next?sentence?prediction:在這個(gè)任務(wù)中,中醫(yī)預(yù)訓(xùn)練嵌入模型接收中醫(yī)文本中的兩個(gè)句子作為輸入,其中有時(shí)這兩個(gè)句子來自同一文檔兩個(gè)相關(guān)句子,有時(shí)它們是隨機(jī)配對(duì)的,中醫(yī)預(yù)訓(xùn)練嵌入模型需要預(yù)測(cè)第二個(gè)句子是否是第一個(gè)句子的下一個(gè)句子,這使得中醫(yī)預(yù)訓(xùn)練嵌入模型學(xué)習(xí)句子之間的關(guān)系;
12、中醫(yī)預(yù)訓(xùn)練嵌入模型的輸入格式是:輸入文本在開頭加入一個(gè)標(biāo)記cls表示句子開始,在句子之間添加標(biāo)記sep以區(qū)分不同的句子;
13、輸入一個(gè)句子到中醫(yī)預(yù)訓(xùn)練嵌入模型,用標(biāo)記cls的輸入向量表示整個(gè)句子的向量表示。
14、優(yōu)選的,所述排序模型基于中醫(yī)預(yù)訓(xùn)練嵌入模型的獎(jiǎng)勵(lì)模型,根據(jù)獎(jiǎng)勵(lì)值大小就可以將多個(gè)文本進(jìn)行排序;
15、在已經(jīng)訓(xùn)練的到的中醫(yī)預(yù)訓(xùn)練嵌入模型的基礎(chǔ)上,在cls輸出上再加一個(gè)線性層,其輸出的標(biāo)量就是獎(jiǎng)勵(lì);
16、訓(xùn)練集是一個(gè)偏好數(shù)據(jù)集:對(duì)于一個(gè)中醫(yī)句子和與其相關(guān)的k個(gè)上下文,對(duì)k個(gè)上下文按照與中醫(yī)句子的相關(guān)程度進(jìn)行排序;
17、該獎(jiǎng)勵(lì)模型的輸入是,輸出是代表獎(jiǎng)勵(lì)reward的標(biāo)量值,對(duì)于每個(gè)中醫(yī)句子,與其相關(guān)的k個(gè)上下文進(jìn)行組合,就產(chǎn)生了個(gè)偏好比較數(shù)據(jù)對(duì);
18、獎(jiǎng)勵(lì)模型損失函數(shù)計(jì)算如下:
19、
20、其中,rθ(x,y)是輸入中醫(yī)句子和上下文句子時(shí)獎(jiǎng)勵(lì)模型的獎(jiǎng)勵(lì)值,yw是偏好對(duì)中偏好的上下文句子,yl是偏好對(duì)中不偏好的上下文句子,σ是sigmoid函數(shù)。
21、優(yōu)選的,所述中醫(yī)向量數(shù)據(jù)庫(kù):每個(gè)名中醫(yī)都有一個(gè)單獨(dú)的向量數(shù)據(jù)子庫(kù),其構(gòu)建過程如下:
22、1)將中醫(yī)文本進(jìn)行切分,得到較小的段落或句子;
23、2)每個(gè)切分后的文本塊通過中醫(yī)預(yù)訓(xùn)練嵌入模型轉(zhuǎn)換為向量表示;
24、3)生成的向量隨后被存儲(chǔ)在向量數(shù)據(jù)庫(kù),向量數(shù)據(jù)庫(kù)專門設(shè)計(jì)用于高效存儲(chǔ)和檢索高維向量;
25、優(yōu)選的,所述中醫(yī)圖數(shù)據(jù)庫(kù):每個(gè)名中醫(yī)都有一個(gè)單獨(dú)的用于知識(shí)圖譜表達(dá)的中醫(yī)圖數(shù)據(jù)庫(kù)子庫(kù),其構(gòu)建過程如下:
26、1)將中醫(yī)文本進(jìn)行切分,得到較小的段落或句子;
27、2)用中醫(yī)大模型提取切分后文本的實(shí)體和關(guān)系,得到三元組;
28、3)將中醫(yī)三元組存儲(chǔ)在圖數(shù)據(jù)庫(kù),圖數(shù)據(jù)庫(kù)專門用于高效的結(jié)構(gòu)化數(shù)據(jù)的檢索和查詢。
29、優(yōu)選的,該基于中醫(yī)大模型和多知識(shí)庫(kù)的個(gè)性化中醫(yī)問診系統(tǒng)的問診具體步驟如下:
30、1)用中醫(yī)預(yù)訓(xùn)練嵌入模型將病患的問句轉(zhuǎn)換為向量;
31、2)將問句向量輸入到中醫(yī)向量數(shù)據(jù)庫(kù)中,通過檢索的到向量相似度最高的多條上下文文本向量,然后返回這些向量對(duì)應(yīng)的原始文本;
32、3)用text2cyper模塊從問句提取相關(guān)中醫(yī)實(shí)體和關(guān)系,并轉(zhuǎn)換為圖數(shù)據(jù)庫(kù)的cyper查詢語句;
33、4)用cyper查詢語句去查詢中醫(yī)圖數(shù)據(jù)庫(kù),得到與問句相關(guān)的多個(gè)三元組;
34、5)用triple2text模塊將三元組合并為文本片段;
35、6)用排序模型分別將步驟2)返回的多個(gè)文本和步驟5)返回的多個(gè)文本繼續(xù)排序,返回top-k數(shù)量的文本;
36、7)將病患的問句、top-k上下文、前幾輪對(duì)話歷史數(shù)據(jù)輸入到tcm-llm大模型中,輸出回答語句;
37、繼續(xù)下一輪問答。
38、優(yōu)選的,所述中醫(yī)大模型在該通用大模型的基礎(chǔ)參數(shù)上進(jìn)行繼續(xù)預(yù)訓(xùn)練、sft訓(xùn)練和rlhf訓(xùn)練:
39、在繼續(xù)預(yù)訓(xùn)練階段,訓(xùn)練的中醫(yī)數(shù)據(jù)集包括中醫(yī)教科書,中醫(yī)科研文獻(xiàn),中醫(yī)病案,中醫(yī)病歷,采用自回歸的訓(xùn)練方式,采用全參數(shù)微調(diào)的訓(xùn)練方法;
40、在sft訓(xùn)練階段,訓(xùn)練的中醫(yī)數(shù)據(jù)集包括:人工構(gòu)造的中醫(yī)多輪對(duì)話數(shù)據(jù)集,人工構(gòu)造的中醫(yī)文本轉(zhuǎn)cypher語句的數(shù)據(jù)集,人工構(gòu)造的中醫(yī)知識(shí)圖譜三元組轉(zhuǎn)文本的數(shù)據(jù)集,人工構(gòu)造的中醫(yī)文本轉(zhuǎn)知識(shí)圖譜三元組的數(shù)據(jù)集,采用lora微調(diào)的訓(xùn)練方法;
41、在rlhf訓(xùn)練階段,訓(xùn)練的數(shù)據(jù)集是人工構(gòu)造的中醫(yī)偏好數(shù)據(jù)集,該數(shù)據(jù)集構(gòu)造的目的是安全性,不包括每個(gè)名中醫(yī)的個(gè)性化偏好。采用ppo訓(xùn)練方法。
42、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
43、降低了中醫(yī)大模型在rlhf訓(xùn)練中偏好數(shù)據(jù)庫(kù)的構(gòu)建難度。提升了預(yù)訓(xùn)練的語義嵌入模型對(duì)中醫(yī)文本的向量化的適配,提升了向量匹配的精準(zhǔn)度。增加了中醫(yī)知識(shí)圖譜圖數(shù)據(jù)源。訓(xùn)練了中醫(yī)大模型、訓(xùn)練和引入了排序模型,使得上下文的選擇更加精準(zhǔn)。對(duì)每個(gè)名中醫(yī)都構(gòu)建了向量數(shù)據(jù)就和圖數(shù)據(jù)庫(kù),實(shí)現(xiàn)了對(duì)每個(gè)名中醫(yī)都有個(gè)性化的問答邏輯。