








摘" 要: 水產品作為重要的食物來源之一,在養殖過程中出現的疾病問題嚴重影響著養殖業的可持續發展。針對水生動物疾病診斷智能對話系統存在復雜的專業性知識和準確性低的問題,提出一種基于ChatGLM模型的改進水生動物疾病診斷相關問題的優化方法。該方法通過在ChatGLM模型的中間層插入Adapter模塊,針對相關的專業問題進行微調,提高了模型的專業性和準確性。同時采用P?tuning方法對輸入部分進行高效的參數微調,使得對特定任務的調整更加精確。通過在水生動物疾病診斷對話數據集上的驗證得出,該方法的雙語評估替補(BLEU)指標從65.3%提升至75.1%,有效地解決了水生動物疾病診斷智能對話系統存在的準確性和專業性問題,為水生動物疾病診斷提供了有價值的輔助決策。
關鍵詞: ChatGLM; 水生動物疾病診斷; 智能對話系統; 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" 引" 言
隨著水產養殖業工廠化和集約化水平的提高,養殖水產的病害問題日益突出。據報道,2017年水生動物疾病給我國漁業生產造成了361億元的直接經濟損失[1]。基層水生動物疾病診療水平薄弱制約了漁業健康發展,傳統診斷方法效率低且不準確,因此需要快速、準確、可靠的智能化診斷方案。而利用智能對話系統為養殖戶提供防治咨詢,對解決水生動物疾病診斷問題具有重要價值。
智能對話系統一直是人工智能領域中具有挑戰性的研究工作。如今,在教育、醫療健康和金融服務等領域,智能對話系統得到了廣泛應用。近年來,預訓練語言模型(如BERT[2]、GPT[3])興起,這些模型在自然語言處理任務上展現出卓越的性能。OpenAI發布的ChatGPT[4]作為通用的聊天模型,在意圖識別和文本生成等任務上展現出了令人印象深刻的能力。同時,清華大學發布了完全自研、開源開放的中英文雙語預訓練模型,并基于此模型,經由智譜AI發布了生成式對話語言模型ChatGLM[5]。這些研究為智能對話系統的發展提供了新的可能性,同時也帶來了更多的探索思路。
盡管智能對話系統在一些領域已經取得顯著成就,但在水產養殖領域還沒有得到廣泛應用,原因在于:水產養殖業的問題常常涉及復雜的上下文信息,這要求對話系統理解專業術語,并做出準確的回復。為此,要針對水生動物疾病相關信息進行微調以解決上述問題。常見的參數高效微調方法有三種:LoRA(Low?Rank Adaptation)方法[6]、Adapter方法[7]和P?tuning方法[8]。LoRA方法和Adapter方法都是用于增強預訓練模型的方法,前者通過在預訓練的權重矩陣中添加低秩分解矩陣來實現微調,優勢是不需要改變原始模型的大部分權重,減少了對計算資源的需求;后者是在模型的不同層之間插入小型、可訓練的網格(即Adapter層)來實現微調,這樣可以更加專注于特定的任務。但是LoRA方法限制了模型適應特定任務,Adapter方法則在輸入方面不足以捕捉所有的任務相關細節,這兩種方法在針對水生動物疾病診斷對話系統的微調方面都存在缺陷。P?tuning是一種用于改進預訓練語言模型的方法,通過對模型的輸入部分進行微調,實現對預訓練模型的高效適配,且能夠針對特定任務進行更精細的調整。
本文針對水產養殖領域的智能對話系統存在的難以理解復雜的上下文信息問題,進行了以下研究。
1) 在ChatGLM模型中引入了Adapter模塊并連接到模型的中間層,通過這種方式對模型進行了微調訓練;再使用專門的水生動物疾病診斷數據集來提高模型的專業性和準確性。
2) 采用基于P?tuning的高效參數微調方法,通過對模型輸入部分的微調,實現了模型的高效適配和精細調整,以更好地應對特定任務需求。
1" 相關知識
1.1" ChatGLM?6B模型
ChatGLM?6B是一款開源的對話語言模型,該模型具有62億個參數,并結合了模型量化技術,使其可以在消費級顯卡上進行本地部署,最低只需6 GB顯存(INT4 量化級別)[9]。ChatGLM?6B使用的激活函數是GELU,公式如下:
[GELU(x)=0.5x1+tanh2πx+0.044 715x3] (1)
ChatGLM?6B的基礎模型是GLM,是一種基于自回歸空白填充的通用語言模型。該模型首先采用自編碼策略,在輸入文本中隨機刪除連續的tokens;再利用自回歸思想按順序重建連續tokens,允許模型在預測缺失的tokens時,參考已損壞的文本及之前預測的文本片段;然后融合了span shuffling和二維位置編碼技術,增強模型對文本結構的理解能力;最后,通過調整缺失文本片段的數量及其長度,該自回歸填空任務能夠有效地為條件生成以及無條件生成任務的語言模型提供預訓練支持。
1.2" 微調方法
Adapter技術通過在預訓練模型的每個Transformer層中插入少量的可訓練模塊,實現了模型參數的靈活調節。設原始預訓練模型參數為ω,而新增的Adapter參數記為υ。在適配不同下游任務時,僅需保持ω參數不變,專注于調整υ參數。由于Adapter參數υ的數量通常遠小于原始模型參數ω,這種策略極大地增強了預訓練模型適應多種任務的能力,同時保持了模型的高效性和實用性,便于針對各種領域的特定任務進行快速定制[10]。
P?tuning方法則將提示轉化為可學習的嵌入層,并采用MLP和LSTM對這些提示嵌入進行處理,創新性地提升了模型的適應性。與Adapter方法不同,P?tuning僅在輸入層加入可微分的虛擬令牌,而非模型的每一層,且這些虛擬令牌的插入位置具有靈活性,并非僅限于前綴。這是因為該方法考慮到預訓練語言模型的詞嵌入具有高度的離散特性,如果將虛擬令牌進行隨機初始化,模型可能會陷入局部最優。因此,P?tuning方法對于提高模型的泛化能力和避免過擬合具有重要意義[11]。
2" 系統優化方法
本文提出了一種新方法,通過將Adapter模塊集成到ChatGLM模型中,實現了一種高效的參數微調機制。該策略的核心在于:允許模型在固定大多數預訓練參數的同時,專注于訓練一小部分關鍵參數;進一步地,采用P?tuning方法來調整輸入文本時的關鍵參數,從而確保模型能夠更精確地適應和優化水生動物疾病診斷智能對話的性能。水生動物疾病診斷對話模型的整體架構如圖1所示。
2.1" Adapter模塊微調
針對如何使預訓練模型適應水生動物疾病診斷的問題,采用了Adapter模塊的方法進行改進。通過動態創建模型配置,測試框架展現了對不同Adapter配置測試需求的靈活應對能力,從而保證了模型實例的正確獲取與Adapter功能的全面驗證。輸入樣本生成方法支持自定義形狀和詞匯大小,為評估模型處理不同輸入能力提供了精準的測試。向模型添加水生動物疾病相關的頭部(如分類頭),進一步模擬實際應用場景,增強測試的實用性。數據集的動態提供機制配合分詞器或特征提取器參數的可選性,為測試提供了高度的靈活數據支持。為驗證Adapter正確集成與功能,引入斷言方法以確認其添加或移除是否符合預期,確保Adapter集成的成功。Adapter模塊微調訓練整體流程如圖2所示。
2.2" P?tuning方法優化參數
在本文中,P?tuning通過優化輸入文本的關鍵參數,使得模型更精準地找到與某一種水生動物疾病相關的內容,有效提高了模型在水生動物疾病診斷智能對話時的準確性。為全面評估模型的泛化能力,使用了5折交叉驗證技術精細劃分數據集,再加載預訓練的BERT分詞器。對于每一折的訓練和測試,分別應用此分詞器,確保所有文本數據都被適當地編碼,目的是將原始文本轉換成模型能夠理解的格式。在訓練階段,針對每一折的數據分別初始化一個基于BERT架構的模型,并進行訓練。這個過程包括使用分詞器處理編碼數據,并利用PyTorch的數據加載器進行批量訓練。
為了訓練模型,在本文中采用AdamW優化器,并設置學習率η為2×10-5,訓練周期數為3。AdamW優化器根據公式(2)在每次迭代t中更新參數θ。
[θt+1=θt-ηmtvt+ε] (2)
式中:η是學習率;[mt]和[vt]分別表示一階矩和二階矩的偏差校正估計,用于調整參數更新的方向和步長;[ε]是一個防止除零的小常數。該方法是基于過去梯度的指數加權移動平均值,從而考慮到了歷史梯度信息,以提高優化過程的穩定性和效率。在每個訓練周期中,模型首先被設置為訓練模式;之后迭代處理每個批次的數據,計算損失L(θ),并通過反向傳播更新模型參數。損失函數L(θ)評估模型的當前參數θ對于數據集的預測與實際標簽之間的差異。在本研究中,采用交叉熵損失函數作為損失函數,計算公式為:
[L(θ)=-1Ni=1Nc=1Cyi,clog(f(xi;θ)c)] (3)
式中:N是數據點的數量;C是類別的數量;[yi,c]是一個指示器,如果樣本i屬于類別c則為1,否則為0;[f(xi;θ)c]是模型對樣本i屬于類別c的預測概率。
在損失函數的反向傳播過程中,計算損失函數關于模型參數的梯度[?θLθt],其中[θt]是在迭代步驟t的參數。這些梯度反映了損失函數相對于每個參數的變化率,從而指導參數更新,以減少損失函數值。具體來說,優化器使用計算得到的梯度來調整參數,計算公式如下:
[θt+1=θt-η?θLθt] (4)
完成每一折的訓練后,模型切換到評估模式,并在相應的測試集上進行性能評估,最后將所有5折的性能指標進行匯總,以獲得模型整體的平均性能。通過上述過程,本文方法確保了文本數據能夠被模型正確解析,有效提高了模型在水生動物疾病診斷智能對話上的準確性和泛化能力。
3" 實驗結果與分析
3.1" 數據集
本文構建了一個水生動物疾病診斷的多輪對話數據集,數據來源于大連海洋大學水生動物醫院。其中有用戶問題和專家回答的歷史對話,大約有2 200組疾病診斷對話,平均每組對話有4~7輪。本文數據集包括海水和淡水中各種魚類、甲殼類、貝類和其他水生動物的疾病診斷對話,將數據集分為3個部分:75%用于訓練;12.5%用于驗證;12.5%用于測試。為了評估本文模型的性能和泛化能力,采用5折交叉驗證方法對這一數據集進行處理和分析。通過均等分配對話數據及其對應標簽到5個子集,并在每次迭代中交替使用其中一個子集作為測試集,其余作為訓練集,確保了每個數據點均有機會作為測試數據,從而提高了實驗結果的可靠性。通過這種細致的交叉驗證方法,能夠全面評估模型在處理復雜對話數據時的準確性和魯棒性,從而為水生動物疾病診斷提供有效的自動化工具。
3.2" 實驗設置
在實驗過程中,使用了高性能計算平臺,包括3090顯卡和11900K處理器,以確保實驗的高效性,為相關研究和應用提供有力支持。選擇預訓練的基礎模型ChatGLM?6B,添加Adapter層并使用P?tuning方法,專門調整模型的部分參數,并設置超參數,定義微調時的超參數,如學習率、批量大小、訓練周期數等。參數設置如下:學習率(learning_rate)為0.001;批量大小(batch_size)為16;訓練周期數(epochs)為10。
3.3" 評價指標
評價指標采用BLEU、ROUGE?L、準確率和F1分數,在特定的水生動物疾病診斷數據集上進行性能測試。
BLEU(Bilingual Evaluation Understudy),即雙語評估替補,用于評估模型生成的句子(candidate)和實際句子(reference)的差異,取值范圍為[0,1],越接近1,表明翻譯質量越好[12]。BLEU公式如下:
[BLEU=BP·exp1Nn=1NPn] (5)
ROUGE?L在計算的時候使用了機器譯文C和參考譯文S的最長公共子序列。計算公式中,[RLCS]表示召回率,而[PLCS]表示精確率,[FLCS]就是ROUGE?L。一般β會設置為很大的數,因此[FLCS]幾乎只考慮了[RLCS](即召回率)[13]。各指標公式如下所示:
[RLCS=LCS(X,Y)m] (6)
[PLCS=LCS(X,Y)N] (7)
[FLCS=(1+β2)RLCSPLCSRLCS+β2PLCS] (8)
準確率是最直觀的性能指標,它計算了所有分類正確的預測占總預測數的比例,計算公式如下:
[Accuracy=TP+TNTP+TN+FP+FN] (9)
F1分數是精確率和召回率的調和平均數,它試圖在兩者之間找到一個平衡,計算公式如下所示:
[Precision=TPTP+FP] (10)
[Recall=TPTP+FN] (11)
[F1=2·Precision·RecallPrecision+Recall] (12)
式中:TP(True Positives)是真正例數正確地預測為正的數量;TN(True Negatives)是真負例數正確地預測為負的數量;FP(False Positives)是假正例數錯誤地預測為正的數量;FN(False Negatives)是假負例數錯誤地預測為負的數量。
3.4" 實驗結果及分析
在實驗過程中,Adapter技術在處理保存、加載、融合及訓練恢復等高級功能方面,表現出顯著的靈活性。特別是在繼續訓練功能測試中,該技術能夠從先前的檢查點恢復訓練過程,即使在面對無效檢查點的情況下也可以保持穩定性。訓練結束時,對Adapter的自動保存、準確加載最佳模型以及預測組件重新加載功能的測試,進一步證明了Adapter技術在優化訓練流程方面的有效性。P?tuning則有助于捕捉水生動物疾病相關的特征,從而提高模型的準確性。該方法通過調整較少的參數,盡可能地減少模型過擬合訓練數據的風險,能夠提高訓練效率和模型性能。
為驗證Adapter模塊和P?tuning方法對ChatGLM模型進行微調的有效性,從基準模型(ChatGLM)、基準+Adapter、基準+P?tuning、基準+Adapter+P?tuning這四方面進行對比,驗證不同方法帶來的影響。不同方法對比結果如表1所示。
實驗結果表明,改進的模型在水生動物疾病診斷智能對話中表現出色,該模型的BLEU指標從基準模型的65.3%提升至75.1%,ROUGE?L指標也有所增加。這一顯著提升表明改進模型在理解和生成更準確、更貼近真實對話的回復方面取得了顯著進步。
在測試集上經過5折交叉驗證的結果如表2所示。改進模型在劃分的不同批次的測試集上都有較為穩定的表現。
通過表3所示的改進模型與其他主流模型的對比,證實了改進模型在該任務上的有效性和先進性。因此,這項研究在水生動物疾病診斷對話系統的開發和優化中具有重要的實際應用價值。
相較于基準ChatGLM模型或其他公開模型,使用Adapter和P?tuning技術具有多個優勢。首先,專門微調模型可以顯著提高其在水生動物疾病診斷任務上的準確性;其次,這些技術允許僅針對特定任務進行微調,而無需重新訓練整個模型,從而更有效地提高性能;最后,使用Adapter和P?tuning的模型具有高度靈活性,能夠快速適應新任務,并具備擴展性。這些優勢使得Adapter和P?tuning成為一種強大且可行的模型優化方法。
4" 結" 語
本文研究為水產養殖業提供了一種新的水生動物疾病診斷方法,促進了智能化技術在該領域的應用,有望解決水生動物疾病問題,改善魚類健康管理和生產效益,為水產養殖業的可持續發展做出貢獻。本研究還為智能化技術在水產養殖領域的應用提供了新的思路和方法,具備廣闊的應用前景。
注:本文通訊作者為馮艷紅。
參考文獻
[1] 張鋒,尹紀元.全國水生動物疾病遠程輔助診斷服務網在水產病害防控中的應用[J].中國水產,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] 文森,錢力,胡懋地,等.基于大語言模型的問答技術研究進展綜述[J/OL].數據分析與知識發現:1?17[2024?02?05].http://kns.cnki.net/kcms/detail/10.1478.G2.20231110.1612.002.html.
[11] 言佳潤,鮮于波.面向中文網絡對話文本的論辯挖掘:基于微調與提示學習的大模型算法[J].中文信息學報,2023,37(10):139?148.
[12] 趙鐵軍,許木璠,陳安東.自然語言處理研究綜述[J/OL].新疆師范大學學報(哲學社會科學版):1?23[2024?02?07].https://doi.org/10.14100/j.cnki.65?1039/g4.20230804.001.
[13] 黎芬,費凡,彭琳.基于NEZHA?UniLM模型的農業領域問題生成技術研究[J].湖北農業科學,2022,61(16):186?192.