摘" 要: 水產(chǎn)品作為重要的食物來源之一,在養(yǎng)殖過程中出現(xiàn)的疾病問題嚴重影響著養(yǎng)殖業(yè)的可持續(xù)發(fā)展。針對水生動物疾病診斷智能對話系統(tǒng)存在復(fù)雜的專業(yè)性知識和準確性低的問題,提出一種基于ChatGLM模型的改進水生動物疾病診斷相關(guān)問題的優(yōu)化方法。該方法通過在ChatGLM模型的中間層插入Adapter模塊,針對相關(guān)的專業(yè)問題進行微調(diào),提高了模型的專業(yè)性和準確性。同時采用P?tuning方法對輸入部分進行高效的參數(shù)微調(diào),使得對特定任務(wù)的調(diào)整更加精確。通過在水生動物疾病診斷對話數(shù)據(jù)集上的驗證得出,該方法的雙語評估替補(BLEU)指標從65.3%提升至75.1%,有效地解決了水生動物疾病診斷智能對話系統(tǒng)存在的準確性和專業(yè)性問題,為水生動物疾病診斷提供了有價值的輔助決策。
關(guān)鍵詞: ChatGLM; 水生動物疾病診斷; 智能對話系統(tǒng); Adapter模塊; P?tuning方法; BLEU
中圖分類號: TN911.23?34; TP391.1" " " " " " " " " "文獻標識碼: A" " " " " " " " 文章編號: 1004?373X(2024)14?0177?05
Optimization of a ChatGLM?based intelligent dialogue system for aquatic
animal disease diagnosis
YIN Xian1, FENG Yanhong1, YE Shigen2
(1. College of Information Engineering, Dalian Ocean University, Dalian 116023, China; 2. Aquatic Animal Hospital, Dalian Ocean University, Dalian 116023, China)
Abstract: Aquatic products, as one of the important sources of food, are seriously affected by diseases that occur during the aquaculture process, which can seriously affect the sustainable development of the aquaculture industry. In allusion to the problems of complex professional knowledge and low accuracy in the intelligent dialogue system for diagnosing aquatic animal diseases, an optimization method based on the ChatGLM model is proposed to improve the diagnosis of aquatic animal diseases. In the method, the expertise and accuracy of the model are improved by inserting the Adapter module into the middle layer of the ChatGLM model to fine?tune the related specialized problems. The P?tuning method is used to efficiently fine tune the input parameters, making adjustments to specific tasks more precise. By the validation on the aquatic animal disease diagnosis dialog dataset, the BLEU (bilingual evaluation understudy) index of the method is improved from 65.3% to 75.1%, which can effectively improve the accuracy and professionalism of the aquatic animal disease diagnosis intelligent dialog system and provide valuable auxiliary decision?making for aquatic animal disease diagnosis.
Keywords: ChatGLM; aquatic animal disease diagnosis; intelligent dialogue system; Adapter module; P?tuning method; BLEU
0" 引" 言
隨著水產(chǎn)養(yǎng)殖業(yè)工廠化和集約化水平的提高,養(yǎng)殖水產(chǎn)的病害問題日益突出。據(jù)報道,2017年水生動物疾病給我國漁業(yè)生產(chǎn)造成了361億元的直接經(jīng)濟損失[1]?;鶎铀鷦游锛膊≡\療水平薄弱制約了漁業(yè)健康發(fā)展,傳統(tǒng)診斷方法效率低且不準確,因此需要快速、準確、可靠的智能化診斷方案。而利用智能對話系統(tǒng)為養(yǎng)殖戶提供防治咨詢,對解決水生動物疾病診斷問題具有重要價值。
智能對話系統(tǒng)一直是人工智能領(lǐng)域中具有挑戰(zhàn)性的研究工作。如今,在教育、醫(yī)療健康和金融服務(wù)等領(lǐng)域,智能對話系統(tǒng)得到了廣泛應(yīng)用。近年來,預(yù)訓(xùn)練語言模型(如BERT[2]、GPT[3])興起,這些模型在自然語言處理任務(wù)上展現(xiàn)出卓越的性能。OpenAI發(fā)布的ChatGPT[4]作為通用的聊天模型,在意圖識別和文本生成等任務(wù)上展現(xiàn)出了令人印象深刻的能力。同時,清華大學(xué)發(fā)布了完全自研、開源開放的中英文雙語預(yù)訓(xùn)練模型,并基于此模型,經(jīng)由智譜AI發(fā)布了生成式對話語言模型ChatGLM[5]。這些研究為智能對話系統(tǒng)的發(fā)展提供了新的可能性,同時也帶來了更多的探索思路。
盡管智能對話系統(tǒng)在一些領(lǐng)域已經(jīng)取得顯著成就,但在水產(chǎn)養(yǎng)殖領(lǐng)域還沒有得到廣泛應(yīng)用,原因在于:水產(chǎn)養(yǎng)殖業(yè)的問題常常涉及復(fù)雜的上下文信息,這要求對話系統(tǒng)理解專業(yè)術(shù)語,并做出準確的回復(fù)。為此,要針對水生動物疾病相關(guān)信息進行微調(diào)以解決上述問題。常見的參數(shù)高效微調(diào)方法有三種:LoRA(Low?Rank Adaptation)方法[6]、Adapter方法[7]和P?tuning方法[8]。LoRA方法和Adapter方法都是用于增強預(yù)訓(xùn)練模型的方法,前者通過在預(yù)訓(xùn)練的權(quán)重矩陣中添加低秩分解矩陣來實現(xiàn)微調(diào),優(yōu)勢是不需要改變原始模型的大部分權(quán)重,減少了對計算資源的需求;后者是在模型的不同層之間插入小型、可訓(xùn)練的網(wǎng)格(即Adapter層)來實現(xiàn)微調(diào),這樣可以更加專注于特定的任務(wù)。但是LoRA方法限制了模型適應(yīng)特定任務(wù),Adapter方法則在輸入方面不足以捕捉所有的任務(wù)相關(guān)細節(jié),這兩種方法在針對水生動物疾病診斷對話系統(tǒng)的微調(diào)方面都存在缺陷。P?tuning是一種用于改進預(yù)訓(xùn)練語言模型的方法,通過對模型的輸入部分進行微調(diào),實現(xiàn)對預(yù)訓(xùn)練模型的高效適配,且能夠針對特定任務(wù)進行更精細的調(diào)整。
本文針對水產(chǎn)養(yǎng)殖領(lǐng)域的智能對話系統(tǒng)存在的難以理解復(fù)雜的上下文信息問題,進行了以下研究。
1) 在ChatGLM模型中引入了Adapter模塊并連接到模型的中間層,通過這種方式對模型進行了微調(diào)訓(xùn)練;再使用專門的水生動物疾病診斷數(shù)據(jù)集來提高模型的專業(yè)性和準確性。
2) 采用基于P?tuning的高效參數(shù)微調(diào)方法,通過對模型輸入部分的微調(diào),實現(xiàn)了模型的高效適配和精細調(diào)整,以更好地應(yīng)對特定任務(wù)需求。
1" 相關(guān)知識
1.1" ChatGLM?6B模型
ChatGLM?6B是一款開源的對話語言模型,該模型具有62億個參數(shù),并結(jié)合了模型量化技術(shù),使其可以在消費級顯卡上進行本地部署,最低只需6 GB顯存(INT4 量化級別)[9]。ChatGLM?6B使用的激活函數(shù)是GELU,公式如下:
[GELU(x)=0.5x1+tanh2πx+0.044 715x3] (1)
ChatGLM?6B的基礎(chǔ)模型是GLM,是一種基于自回歸空白填充的通用語言模型。該模型首先采用自編碼策略,在輸入文本中隨機刪除連續(xù)的tokens;再利用自回歸思想按順序重建連續(xù)tokens,允許模型在預(yù)測缺失的tokens時,參考已損壞的文本及之前預(yù)測的文本片段;然后融合了span shuffling和二維位置編碼技術(shù),增強模型對文本結(jié)構(gòu)的理解能力;最后,通過調(diào)整缺失文本片段的數(shù)量及其長度,該自回歸填空任務(wù)能夠有效地為條件生成以及無條件生成任務(wù)的語言模型提供預(yù)訓(xùn)練支持。
1.2" 微調(diào)方法
Adapter技術(shù)通過在預(yù)訓(xùn)練模型的每個Transformer層中插入少量的可訓(xùn)練模塊,實現(xiàn)了模型參數(shù)的靈活調(diào)節(jié)。設(shè)原始預(yù)訓(xùn)練模型參數(shù)為ω,而新增的Adapter參數(shù)記為υ。在適配不同下游任務(wù)時,僅需保持ω參數(shù)不變,專注于調(diào)整υ參數(shù)。由于Adapter參數(shù)υ的數(shù)量通常遠小于原始模型參數(shù)ω,這種策略極大地增強了預(yù)訓(xùn)練模型適應(yīng)多種任務(wù)的能力,同時保持了模型的高效性和實用性,便于針對各種領(lǐng)域的特定任務(wù)進行快速定制[10]。
P?tuning方法則將提示轉(zhuǎn)化為可學(xué)習的嵌入層,并采用MLP和LSTM對這些提示嵌入進行處理,創(chuàng)新性地提升了模型的適應(yīng)性。與Adapter方法不同,P?tuning僅在輸入層加入可微分的虛擬令牌,而非模型的每一層,且這些虛擬令牌的插入位置具有靈活性,并非僅限于前綴。這是因為該方法考慮到預(yù)訓(xùn)練語言模型的詞嵌入具有高度的離散特性,如果將虛擬令牌進行隨機初始化,模型可能會陷入局部最優(yōu)。因此,P?tuning方法對于提高模型的泛化能力和避免過擬合具有重要意義[11]。
2" 系統(tǒng)優(yōu)化方法
本文提出了一種新方法,通過將Adapter模塊集成到ChatGLM模型中,實現(xiàn)了一種高效的參數(shù)微調(diào)機制。該策略的核心在于:允許模型在固定大多數(shù)預(yù)訓(xùn)練參數(shù)的同時,專注于訓(xùn)練一小部分關(guān)鍵參數(shù);進一步地,采用P?tuning方法來調(diào)整輸入文本時的關(guān)鍵參數(shù),從而確保模型能夠更精確地適應(yīng)和優(yōu)化水生動物疾病診斷智能對話的性能。水生動物疾病診斷對話模型的整體架構(gòu)如圖1所示。
2.1" Adapter模塊微調(diào)
針對如何使預(yù)訓(xùn)練模型適應(yīng)水生動物疾病診斷的問題,采用了Adapter模塊的方法進行改進。通過動態(tài)創(chuàng)建模型配置,測試框架展現(xiàn)了對不同Adapter配置測試需求的靈活應(yīng)對能力,從而保證了模型實例的正確獲取與Adapter功能的全面驗證。輸入樣本生成方法支持自定義形狀和詞匯大小,為評估模型處理不同輸入能力提供了精準的測試。向模型添加水生動物疾病相關(guān)的頭部(如分類頭),進一步模擬實際應(yīng)用場景,增強測試的實用性。數(shù)據(jù)集的動態(tài)提供機制配合分詞器或特征提取器參數(shù)的可選性,為測試提供了高度的靈活數(shù)據(jù)支持。為驗證Adapter正確集成與功能,引入斷言方法以確認其添加或移除是否符合預(yù)期,確保Adapter集成的成功。Adapter模塊微調(diào)訓(xùn)練整體流程如圖2所示。
2.2" P?tuning方法優(yōu)化參數(shù)
在本文中,P?tuning通過優(yōu)化輸入文本的關(guān)鍵參數(shù),使得模型更精準地找到與某一種水生動物疾病相關(guān)的內(nèi)容,有效提高了模型在水生動物疾病診斷智能對話時的準確性。為全面評估模型的泛化能力,使用了5折交叉驗證技術(shù)精細劃分數(shù)據(jù)集,再加載預(yù)訓(xùn)練的BERT分詞器。對于每一折的訓(xùn)練和測試,分別應(yīng)用此分詞器,確保所有文本數(shù)據(jù)都被適當?shù)鼐幋a,目的是將原始文本轉(zhuǎn)換成模型能夠理解的格式。在訓(xùn)練階段,針對每一折的數(shù)據(jù)分別初始化一個基于BERT架構(gòu)的模型,并進行訓(xùn)練。這個過程包括使用分詞器處理編碼數(shù)據(jù),并利用PyTorch的數(shù)據(jù)加載器進行批量訓(xùn)練。
為了訓(xùn)練模型,在本文中采用AdamW優(yōu)化器,并設(shè)置學(xué)習率η為2×10-5,訓(xùn)練周期數(shù)為3。AdamW優(yōu)化器根據(jù)公式(2)在每次迭代t中更新參數(shù)θ。
[θt+1=θt-ηmtvt+ε] (2)
式中:η是學(xué)習率;[mt]和[vt]分別表示一階矩和二階矩的偏差校正估計,用于調(diào)整參數(shù)更新的方向和步長;[ε]是一個防止除零的小常數(shù)。該方法是基于過去梯度的指數(shù)加權(quán)移動平均值,從而考慮到了歷史梯度信息,以提高優(yōu)化過程的穩(wěn)定性和效率。在每個訓(xùn)練周期中,模型首先被設(shè)置為訓(xùn)練模式;之后迭代處理每個批次的數(shù)據(jù),計算損失L(θ),并通過反向傳播更新模型參數(shù)。損失函數(shù)L(θ)評估模型的當前參數(shù)θ對于數(shù)據(jù)集的預(yù)測與實際標簽之間的差異。在本研究中,采用交叉熵損失函數(shù)作為損失函數(shù),計算公式為:
[L(θ)=-1Ni=1Nc=1Cyi,clog(f(xi;θ)c)] (3)
式中:N是數(shù)據(jù)點的數(shù)量;C是類別的數(shù)量;[yi,c]是一個指示器,如果樣本i屬于類別c則為1,否則為0;[f(xi;θ)c]是模型對樣本i屬于類別c的預(yù)測概率。
在損失函數(shù)的反向傳播過程中,計算損失函數(shù)關(guān)于模型參數(shù)的梯度[?θLθt],其中[θt]是在迭代步驟t的參數(shù)。這些梯度反映了損失函數(shù)相對于每個參數(shù)的變化率,從而指導(dǎo)參數(shù)更新,以減少損失函數(shù)值。具體來說,優(yōu)化器使用計算得到的梯度來調(diào)整參數(shù),計算公式如下:
[θt+1=θt-η?θLθt] (4)
完成每一折的訓(xùn)練后,模型切換到評估模式,并在相應(yīng)的測試集上進行性能評估,最后將所有5折的性能指標進行匯總,以獲得模型整體的平均性能。通過上述過程,本文方法確保了文本數(shù)據(jù)能夠被模型正確解析,有效提高了模型在水生動物疾病診斷智能對話上的準確性和泛化能力。
3" 實驗結(jié)果與分析
3.1" 數(shù)據(jù)集
本文構(gòu)建了一個水生動物疾病診斷的多輪對話數(shù)據(jù)集,數(shù)據(jù)來源于大連海洋大學(xué)水生動物醫(yī)院。其中有用戶問題和專家回答的歷史對話,大約有2 200組疾病診斷對話,平均每組對話有4~7輪。本文數(shù)據(jù)集包括海水和淡水中各種魚類、甲殼類、貝類和其他水生動物的疾病診斷對話,將數(shù)據(jù)集分為3個部分:75%用于訓(xùn)練;12.5%用于驗證;12.5%用于測試。為了評估本文模型的性能和泛化能力,采用5折交叉驗證方法對這一數(shù)據(jù)集進行處理和分析。通過均等分配對話數(shù)據(jù)及其對應(yīng)標簽到5個子集,并在每次迭代中交替使用其中一個子集作為測試集,其余作為訓(xùn)練集,確保了每個數(shù)據(jù)點均有機會作為測試數(shù)據(jù),從而提高了實驗結(jié)果的可靠性。通過這種細致的交叉驗證方法,能夠全面評估模型在處理復(fù)雜對話數(shù)據(jù)時的準確性和魯棒性,從而為水生動物疾病診斷提供有效的自動化工具。
3.2" 實驗設(shè)置
在實驗過程中,使用了高性能計算平臺,包括3090顯卡和11900K處理器,以確保實驗的高效性,為相關(guān)研究和應(yīng)用提供有力支持。選擇預(yù)訓(xùn)練的基礎(chǔ)模型ChatGLM?6B,添加Adapter層并使用P?tuning方法,專門調(diào)整模型的部分參數(shù),并設(shè)置超參數(shù),定義微調(diào)時的超參數(shù),如學(xué)習率、批量大小、訓(xùn)練周期數(shù)等。參數(shù)設(shè)置如下:學(xué)習率(learning_rate)為0.001;批量大?。╞atch_size)為16;訓(xùn)練周期數(shù)(epochs)為10。
3.3" 評價指標
評價指標采用BLEU、ROUGE?L、準確率和F1分數(shù),在特定的水生動物疾病診斷數(shù)據(jù)集上進行性能測試。
BLEU(Bilingual Evaluation Understudy),即雙語評估替補,用于評估模型生成的句子(candidate)和實際句子(reference)的差異,取值范圍為[0,1],越接近1,表明翻譯質(zhì)量越好[12]。BLEU公式如下:
[BLEU=BP·exp1Nn=1NPn] (5)
ROUGE?L在計算的時候使用了機器譯文C和參考譯文S的最長公共子序列。計算公式中,[RLCS]表示召回率,而[PLCS]表示精確率,[FLCS]就是ROUGE?L。一般β會設(shè)置為很大的數(shù),因此[FLCS]幾乎只考慮了[RLCS](即召回率)[13]。各指標公式如下所示:
[RLCS=LCS(X,Y)m] (6)
[PLCS=LCS(X,Y)N] (7)
[FLCS=(1+β2)RLCSPLCSRLCS+β2PLCS] (8)
準確率是最直觀的性能指標,它計算了所有分類正確的預(yù)測占總預(yù)測數(shù)的比例,計算公式如下:
[Accuracy=TP+TNTP+TN+FP+FN] (9)
F1分數(shù)是精確率和召回率的調(diào)和平均數(shù),它試圖在兩者之間找到一個平衡,計算公式如下所示:
[Precision=TPTP+FP] (10)
[Recall=TPTP+FN] (11)
[F1=2·Precision·RecallPrecision+Recall] (12)
式中:TP(True Positives)是真正例數(shù)正確地預(yù)測為正的數(shù)量;TN(True Negatives)是真負例數(shù)正確地預(yù)測為負的數(shù)量;FP(False Positives)是假正例數(shù)錯誤地預(yù)測為正的數(shù)量;FN(False Negatives)是假負例數(shù)錯誤地預(yù)測為負的數(shù)量。
3.4" 實驗結(jié)果及分析
在實驗過程中,Adapter技術(shù)在處理保存、加載、融合及訓(xùn)練恢復(fù)等高級功能方面,表現(xiàn)出顯著的靈活性。特別是在繼續(xù)訓(xùn)練功能測試中,該技術(shù)能夠從先前的檢查點恢復(fù)訓(xùn)練過程,即使在面對無效檢查點的情況下也可以保持穩(wěn)定性。訓(xùn)練結(jié)束時,對Adapter的自動保存、準確加載最佳模型以及預(yù)測組件重新加載功能的測試,進一步證明了Adapter技術(shù)在優(yōu)化訓(xùn)練流程方面的有效性。P?tuning則有助于捕捉水生動物疾病相關(guān)的特征,從而提高模型的準確性。該方法通過調(diào)整較少的參數(shù),盡可能地減少模型過擬合訓(xùn)練數(shù)據(jù)的風險,能夠提高訓(xùn)練效率和模型性能。
為驗證Adapter模塊和P?tuning方法對ChatGLM模型進行微調(diào)的有效性,從基準模型(ChatGLM)、基準+Adapter、基準+P?tuning、基準+Adapter+P?tuning這四方面進行對比,驗證不同方法帶來的影響。不同方法對比結(jié)果如表1所示。
實驗結(jié)果表明,改進的模型在水生動物疾病診斷智能對話中表現(xiàn)出色,該模型的BLEU指標從基準模型的65.3%提升至75.1%,ROUGE?L指標也有所增加。這一顯著提升表明改進模型在理解和生成更準確、更貼近真實對話的回復(fù)方面取得了顯著進步。
在測試集上經(jīng)過5折交叉驗證的結(jié)果如表2所示。改進模型在劃分的不同批次的測試集上都有較為穩(wěn)定的表現(xiàn)。
通過表3所示的改進模型與其他主流模型的對比,證實了改進模型在該任務(wù)上的有效性和先進性。因此,這項研究在水生動物疾病診斷對話系統(tǒng)的開發(fā)和優(yōu)化中具有重要的實際應(yīng)用價值。
相較于基準ChatGLM模型或其他公開模型,使用Adapter和P?tuning技術(shù)具有多個優(yōu)勢。首先,專門微調(diào)模型可以顯著提高其在水生動物疾病診斷任務(wù)上的準確性;其次,這些技術(shù)允許僅針對特定任務(wù)進行微調(diào),而無需重新訓(xùn)練整個模型,從而更有效地提高性能;最后,使用Adapter和P?tuning的模型具有高度靈活性,能夠快速適應(yīng)新任務(wù),并具備擴展性。這些優(yōu)勢使得Adapter和P?tuning成為一種強大且可行的模型優(yōu)化方法。
4" 結(jié)" 語
本文研究為水產(chǎn)養(yǎng)殖業(yè)提供了一種新的水生動物疾病診斷方法,促進了智能化技術(shù)在該領(lǐng)域的應(yīng)用,有望解決水生動物疾病問題,改善魚類健康管理和生產(chǎn)效益,為水產(chǎn)養(yǎng)殖業(yè)的可持續(xù)發(fā)展做出貢獻。本研究還為智能化技術(shù)在水產(chǎn)養(yǎng)殖領(lǐng)域的應(yīng)用提供了新的思路和方法,具備廣闊的應(yīng)用前景。
注:本文通訊作者為馮艷紅。
參考文獻
[1] 張鋒,尹紀元.全國水生動物疾病遠程輔助診斷服務(wù)網(wǎng)在水產(chǎn)病害防控中的應(yīng)用[J].中國水產(chǎn),2019(2):21?23.
[2] DEVLIN J, CHANG M W, LEE K, et al. BERT: pre?training of deep bidirectional transformers for language understanding [EB/OL]. [2023?07?23]. https://arxiv.org/pdf/1810.04805.
[3] RADFORD A, NARASIMHAN K, SALIMANS T, et al. Improving language understanding by generative pre?training [EB/OL]. [2023?05?19]. https://www.docin.com/p?2176538517.html.
[4] ROUMELIOTIS K I, TSELIKAS N D. ChatGPT and open?AI models: a preliminary review [J]. Future internet, 2023, 15(6): 192.
[5] ZENG A, LIU X, DU Z, et al. GLM?130B: an open bilingual pre?trained model [EB/OL]. [2023?09?17]. https://dhexx.cn/news/show?5109750.html.
[6] HU E J, SHEN Y, WALLIS P, et al. LoRA: low?rank adaptation of large language models [EB/OL]. [2023?08?19]. http://arxiv.org/abs/2106.09685.
[7] HOULSBY N, GIURGIU A, JASTRZEBSKI S, et al. Parameter?efficient transfer learning for NLP [C]// Proceedings of the 36th International Conference on Machine Learning. [S.l.]: ACM, 2019: 2790?2799.
[8] LIU X, JI K, FU Y, et al. P?Tuning v2: prompt tuning can be comparable to fine?tuning universally across scales and tasks [EB/OL]. [2023?04?19]. https://www.xueshufan.com/publication/3205270560.
[9] DU Z, QIAN Y, LIU X, et al. GLM: general language model pretraining with autoregressive blank infilling [EB/OL]. [2023?11?05]. https://www.semanticscholar.org/.
[10] 文森,錢力,胡懋地,等.基于大語言模型的問答技術(shù)研究進展綜述[J/OL].數(shù)據(jù)分析與知識發(fā)現(xiàn):1?17[2024?02?05].http://kns.cnki.net/kcms/detail/10.1478.G2.20231110.1612.002.html.
[11] 言佳潤,鮮于波.面向中文網(wǎng)絡(luò)對話文本的論辯挖掘:基于微調(diào)與提示學(xué)習的大模型算法[J].中文信息學(xué)報,2023,37(10):139?148.
[12] 趙鐵軍,許木璠,陳安東.自然語言處理研究綜述[J/OL].新疆師范大學(xué)學(xué)報(哲學(xué)社會科學(xué)版):1?23[2024?02?07].https://doi.org/10.14100/j.cnki.65?1039/g4.20230804.001.
[13] 黎芬,費凡,彭琳.基于NEZHA?UniLM模型的農(nóng)業(yè)領(lǐng)域問題生成技術(shù)研究[J].湖北農(nóng)業(yè)科學(xué),2022,61(16):186?192.