通過使用LoRA對ChatGLM-6B開源大模型進行微調,從而實現利用ChatGLM大模型進行複合任務處理。本項目中主要處理兩個任務:新媒體行業評論智能分類與信息抽取
項目持續更新中...
文本分類是指將一段或多段文本按照其內容或主題特徵劃分到不同的類別或標籤中的過程。在實際工作中文本分類應用非常廣泛,比如:新聞分類、簡歷分類、郵件分類、辦公文檔分類、區域分類等諸多方面,還能夠實現文本過濾,從大量文本中快速識別和過濾出符合特殊要求的信息。
信息抽取,是從無結構或半結構化的自然文本中識別出實體、關係、事件等事實描述,以結構化的形式存儲和利用的技術。以
“小明和小秦是很好的朋友,他們都屬於雲南人,小明住在大理,小秦住在麗江。”
為例,可以得到如:
<小明,朋友,小秦>和<小秦,住在,麗江>和<小明,住在,大理> 等三元組信息。
隨著互聯網技術的快速發展,新媒體行業已經成為信息傳播的主要平台之一。在這個信息爆炸的時代,人們通過社交媒體、新聞客戶端、博客等多種形式獲取信息。然而,隨著信息量的不斷增加,如何高效地管理和利用這些信息成為了亟待解決的問題。本項目基於部分“新媒體行業”數據為背景,通過文本評論的分類和信息抽取,幫助新媒體行業從海量的信息中快速準確地獲取有用的信息,並進行合理的分類和管理。這不僅有助於新媒體平台提升用戶體驗,還能夠為信息生產者提供更精準的數據分析和決策支持。
基於ChatGLM-6B模型+LoRA微調方法,實現文本分類及信息抽取的聯合任務的開發
| 模型 | GPU顯存 |
|---|---|
| ChatGLM-6B | 13 GB |
| 依賴包 | 版本要求 |
|---|---|
| protobuf | >=3.19.5,<3.20.1 |
| transformers | >=4.27.1 |
| streamlit | ==1.17.0 |
| datasets | >==2.10.1 |
| accelerate | ==0.17.1 |
| packaging | >=20.0 |
LoRA技術凍結預訓練模型的權重,並在每個Transformer塊中註入可訓練層(稱為秩分解矩陣),即在模型的Linear層的旁邊增加一個“旁支”A和B。其中,A將數據從d維降到r維,這個r是LoRA的秩,是一個重要的超參數;B將數據從r維升到d維,B部分的參數初始為0。模型訓練結束後,需要將A+B部分的參數與原大模型的參數合併在一起使用。
數據格式:字典樣式;context內容代表:原始輸入文本(prompt);target指向:目標文本。混合數據集,即有文本分類數據,也有信息抽取數據。
訓練數據集共計包含:902條樣本。
驗證數據集共計包含:122條樣本。
本項目中涉及ChatGLM-6B 模型權重的使用受到模型許可的約束。