(提供數據集下載)基于大語言模型LangChain與ChatGLM3-6B本地知識庫調優:數據集優化、參數調整、Prompt提示詞優化實戰

文章目錄

  • (提供數據集下載)基于大語言模型LangChain與ChatGLM3-6B本地知識庫調優:數據集優化、參數調整、提示詞Prompt優化
    • 本地知識庫目標
    • 操作步驟
    • 問答測試的預設問題
    • 原始數據情況
    • 數據集優化:預處理,先后準備了三份數據集
      • PreData1:極簡數據集,txt格式
      • PreData2:按json結構處理的數據集,txt格式
      • PreData3:整理成文檔章節的PDF數據集
      • 從1到3是一個逐步優化數據集的過程
    • Tip:每次優化重新對話測試時,建議重啟模型。本人GPU冒煙了,才重啟。
    • 創建本地知識庫時文件處理參數調整
    • 對話時知識庫配置參數調整
    • Prompt提示詞優化
      • Round 1
      • Round 2
      • Round 3
      • Round 4
    • 數據集地址

(提供數據集下載)基于大語言模型LangChain與ChatGLM3-6B本地知識庫調優:數據集優化、參數調整、提示詞Prompt優化

本地知識庫目標

  • 創建“神經內科典型病例目錄”數據集,一共3個病例信息,包括基本信息、癥狀、體格檢查、輔助檢查、診斷、診斷依據等信息。
  • LangChain+ChatGLM3-6B WebUI中加載“神經內科典型病例目錄”數據集作為本地知識庫。
  • 在“對話”中進行神經內科典型病例相關問答。
    在這里插入圖片描述

操作步驟

  • 數據集預處理
  • 建立本地知識庫后,進行問答測試
  • 調優:數據集優化、本地知識庫問答參數調整、Prompt提示詞優化

問答測試的預設問題

  • Q:有幾個病例?
  • Q:輸出病例編號、性別、年齡。
  • Q:神經內科確診疾病有哪些,輸出名稱。

原始數據情況

#神經內科典型病例目錄

##病例一
###病史摘要 患者女,78歲。 入院前四小時突然覺得頭痛,同時發現左側肢體乏力,左上肢不能持物,左下肢不能行走,惡心伴嘔吐胃內容物數次。無意識喪失,無四肢抽搐,無大小便失禁,即送醫院急診。

體格檢查:神清,BP 185/95mmHg,HR
80次/分,律齊,EKG示竇性心律.對答切題,雙眼向右凝視,雙瞳孔等大等圓,對光反射存在,左鼻唇溝淺,伸舌略偏左。左側肢體肌張力增高,左側腱反射略亢進,左側肌力III0,右側肢體肌張力正常,肌力V0。左側巴氏征(+),右側病理癥(-)。頸軟,克氏征(-)。
輔助檢查:頭顱CT示右側顳葉血腫。

數據集優化:預處理,先后準備了三份數據集

PreData1:極簡數據集,txt格式

  • 收集資料:原始數據是從網上爬的病例神經內科典型病例,復制、粘貼到的txt文件。只有3個病例。
  • 格式處理:統一標點符號,包括換行符號;處理好段落內容邏輯,處理段落內出現的換行情況。
  • 刪除冗余:刪除序號,如1、2、3或a、b、c等。刪除多余的空格。
    在這里插入圖片描述

PreData2:按json結構處理的數據集,txt格式

將數據集按json處理
曾經嘗試過進行以下這一步的操作,由于沒有工具輔助,非常繁瑣,尤其是key值的生成。放棄了。

段落內處理:確保段落內是類似于KV結構,如“癥狀”:“頭疼”。

處理成了偷懶模式:

{ [“癥狀:頭疼”],
[“體格檢檢:口齒欠清”] ,
[“體格檢查:神志朦朧”] }

在這里插入圖片描述

PreData3:整理成文檔章節的PDF數據集

在這里插入圖片描述

從1到3是一個逐步優化數據集的過程

  • 從PreData1開始進行對話測試,回答讓人一臉黑線,無法溝通交流。
    在這里插入圖片描述
  • PreData2能溝通交流,也有驚喜,但是不穩定
    “有幾個病例”重復問幾遍,只回答對過一次。而且基于Json嘗試過幾種修改方案,繁瑣,而且新的json文件導入本地知識庫報錯(懶,不想正面面對報錯的問題),遂放棄了,改用PDF。
    在這里插入圖片描述
  • PreData3按照文章章節編輯,插入目錄,貌似很順利
    相對來說比較穩定,但是對話測試也是那么完美。這讓我想起需要從對話參數、Prompt提示詞解決問題。

Tip:每次優化重新對話測試時,建議重啟模型。本人GPU冒煙了,才重啟。

創建本地知識庫時文件處理參數調整

FAISS
bge-large-zh

以下兩項默認值需要修改:

段落文本最大長度:250
相鄰文本重合長度:50

改成:

段落文本最大長度:50
相鄰文本重合長度:5

對話時知識庫配置參數調整

以下兩項需要調整:

匹配知識條數:3
知識匹配分數閾值:1

修改成:

匹配知識條數:20

知識匹配分數閾值:1可以先不改,根據回答適當調整到0.8左右,試試效果再決定。

Prompt提示詞優化

直接看多輪對話下來,對話是如何有序展開的吧。

Round 1

在這里插入圖片描述

Round 2

在這里插入圖片描述

Round 3

在這里插入圖片描述

Round 4

在這里插入圖片描述
完畢!

數據集地址

神經內科典型病例目錄PreData1.txt

神經內科典型病例目錄PreData2.txt

神經內科典型病例目錄PreData3.pdf

Enjoy!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697385.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697385.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697385.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mac下C、C++項目出現‘stdio.h’ file not found的解決方法

【轉載】https://www.cnblogs.com/yongfengnice/p/14260997.html 有時候更新mac系統或者項目配置之后,打開之前的項目,發現出現莫名其妙的‘stdio.h’ file not found等頭文件找不到。 解決這個問題之前,我們要弄清楚開發工具是引用了系統哪…

C++:STL簡介

1. 什么是STL STL(standard template libaray- 標準模板庫 ) : 是 C 標準庫的重要組成部分 ,不僅是一個可復用的組件庫,而且 是一個包羅數據結構與算法的軟件框架 。 2. STL的版本 3. STL的六大組件 4.STL的缺陷 1. STL庫的更新太慢了。這…

用于將Grafana默認數據庫sqlite3遷移到MySQL數據庫

以下是一個方案,用于將Grafana數據遷移到MySQL數據庫。 背景: grafana 默認采用的是sqlite3,當我們要以集群形式部署的時使用mysql較為方便,試了很多sqlite轉mysql的方法要么收費,最后放棄。選擇自己動手風衣足食。 目標: 遷移sqlite3切換…

速評谷歌開源大模型Gemma 7B

大家好,我是herosunly。985院校碩士畢業,現擔任算法研究員一職,熱衷于機器學習算法研究與應用。曾獲得阿里云天池比賽第一名,CCF比賽第二名,科大訊飛比賽第三名。擁有多項發明專利。對機器學習和深度學習擁有自己獨到的見解。曾經輔導過若干個非計算機專業的學生進入到算法…

day16_ListSet課后練習題 - 參考答案

文章目錄 day16_課后練習題第1題第2題第3題第4題第5題第6題第7題第8題 day16_課后練習題 第1題 案例: ? 1、用一個String[]數組存點數 ? 2、用一個String[]數組存花色 ? 3、用一個String[]數組存大王、小王 ? 4、用上面的數組,生成一副撲克牌 …

C++ 文件操作-文本文件-讀取和打開文件方法詳解

讀文件步驟 #include <iostream> using namespace std; #include <fstream> #include <string> //文本文件 讀文件void test(){// 1 包含頭文件// 2 創建流對象ifstream ifs;// 3 打開文件 并且判斷是否打開成功ifs.open("table.txt",ios::in); //…

VS 2015 發布 WebService

本文介紹了使用VS2015發布WebService的步驟 右鍵項目點擊發布 選擇文件系統和目標位置 配置選擇Debug-Any CPU&#xff08;選其他也可以&#xff09; 4. 點擊發布&#xff0c;在對應文件夾中可以看到發布出來的內容。 記錄遇到的問題&#xff0c; 發布前要選擇刪除所有現有文…

【PostgreSQL】PostgreSQL詳細介紹

PostgreSQL詳細介紹 一、什么是PostgreSQL&#xff1f;二、為什么要使用PostgreSQL&#xff1f;三、PostgreSQL功能列表3.1 數據類型3.2 數據完整性3.3 并發&#xff0c;性能3.4 可靠性、災難恢復3.5 安全3.6 可擴展性3.7 國際化&#xff0c;文本搜索 四、參考資料 關于Postgre…

使用MongoDB數據庫和Mongoose庫在Node.js中進行數據存儲

在Node.js中使用MongoDB數據庫和Mongoose庫進行數據存儲是前端開發中常用的技術之一。MongoDB是一種非關系型數據庫&#xff0c;具有高性能、易擴展等優點&#xff1b;而Mongoose是在Node.js中對MongoDB進行操作的框架&#xff0c;簡化了數據庫操作&#xff0c;并提供了豐富的功…

音視頻技術-雙聲道立體聲與卡儂平衡線的“糾葛”

目錄 一、新問題 二、問題排查 三、故障總結 四、原理分析 五、解決方案 1、救急 2、轉接線1 3、轉接線2

Js的 Promise的 then catch 筆記240222

Js的 Promise的 then catch 筆記240222 基本用法 new Promise(f>{setTimeout(ev>{f("一秒后輸出控制臺");},1000); }).then(f的參數>{console.log(f的參數); }); // 控制臺輸出: 一秒后輸出控制臺上面代碼中, f 的標準名叫做 resolve , 所以應該寫成 new …

知識圖譜數據處理流程是什么

在當今信息時代&#xff0c;數據已經成為企業決策和業務發展的重要驅動力。然而&#xff0c;隨著數據量的不斷增加&#xff0c;傳統的數據處理方法已經難以滿足需求。知識圖譜作為一種新興的技術&#xff0c;正逐漸成為處理大規模數據的關鍵工具。本文將深入探討知識圖譜的數據…

寫代碼中的一些“小技巧”

目錄 前言 1.不注重代碼格式 1.1 空格 1.2 換行 2.隨意的命名 2.1 有意義的參數名 2.2 見名知意 2.3 參數名風格一致 3.出現大量重復代碼 4.從不寫注釋 5.方法過長 6.參數過多 7.代碼層級太深 8.判斷條件太多 9.硬編碼 10.事務過大 11.在循環中遠程調用 11.1 …

CSS 面試題匯總

CSS 面試題匯總 1. 介紹下 BFC 及其應 參考答案&#xff1a; 參考答案&#xff1a; 所謂 BFC&#xff0c;指的是一個獨立的布局環境&#xff0c;BFC 內部的元素布局與外部互不影響。 觸發 BFC 的方式有很多&#xff0c;常見的有&#xff1a; 設置浮動overflow 設置為 auto、scr…

Swift基礎知識:20.Swift方法

在 Swift 中&#xff0c;方法是與特定類型相關聯的函數。方法可以用于實例類型&#xff08;實例方法&#xff09;或類型本身&#xff08;類型方法&#xff09;。方法允許類型的實例執行特定的任務&#xff0c;也可以修改實例本身或實例的屬性。 實例方法&#xff08;Instance …

【力扣hot100】刷題筆記Day10

前言 一鼓作氣把鏈表給刷完&#xff01;&#xff01;中等題困難題沖沖沖啊啊啊&#xff01; 25. K 個一組翻轉鏈表 - 力扣&#xff08;LeetCode&#xff09; 模擬 class Solution:def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:# 翻轉…

題記(46)--兩個多項式的和

目錄 一、題目內容 二、輸入描述 三、輸出描述 四、輸入輸出示例 五、完整C語言代碼 一、題目內容 輸入兩個多項式&#xff0c;計算它們的和。 每個多項式有若干對整數表示&#xff0c;每組整數中&#xff0c;第一個整數表示系數&#xff08;非0&#xff09;&#xff0c;第…

#LLM入門|Prompt#1.7_文本拓展_Expanding

輸入簡短文本&#xff0c;生成更加豐富的長文。 “溫度”&#xff08;temperature&#xff09;&#xff1a;控制文本生成的多樣性。 一、定制客戶郵件 根據客戶的評價和其中的情感傾向&#xff0c;使用大語言模型針對性地生成回復郵件。將大大提升客戶滿意度。 # 我們可以在…

云原生 - K8s命令合集

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 知…

兩種動態代理(可以看到代理類的樣子,方便理解)

這里寫目錄標題 jdk動態代理例子CGlib動態代理例子手寫spring中的事務部分自定義注解版aop實現方式 Spring的兩大重點&#xff0c;IOC和AOP&#xff0c;今天我們就來學AOP&#xff0c;眾所周知AOP的底層是動態代理&#xff0c;讓我們看一下這兩種動態代理的區別。 例子&#x…