1. 背景
許久未見,甚是想念~
近期本qiang~換了工作,處於新業務適應期,因此文章有一段時間未更新,理解萬歲!
現在正在著手的工作是產業治理方面,主要負責其中一個功能模組,即按照產業治理標準體系,針對企業介紹及其專利資料進行多標籤分類。
本期的乾貨就是分享關於如何基於LLM實現數量多、層級多的多標籤分類的實戰經驗,各位讀者可以參考借鑑。
2. 資料介紹
2.1 標籤體系
產業治理方面的標籤體系共計200+個,每個標籤共有4個層級,且第3、4層級有標籤含義的概括資訊。
2.2 原始資料
- 企業官網介紹資料,包括基本介紹、主要產品等
- 企業專利資料,包括專利名稱和專利摘要資訊,且專利的資料量大。
2.3 LLM選型
經調研,採用Qwen2-72B-Instruct-GPTQ-Int4量化版本,佔用視訊記憶體更少,且效果與非量化相當,具體可見Qwen2官網說明。
3. 技術難點
- 團隊無標註人員,因此無法使用Bert類小模型完成多標籤分類任務
- 涉及垂直領域,即使有標註人員,也需要很強的背景知識,方能開展標註
- 標籤數量多,層次深,且專案對準確率有要求
4. 方案設計
由於缺少標註人員,且對標註員的背景要求高,因此只能選擇LLM進行任務開展。
標籤體系中每個標籤的含義不夠具象,屬於總結性的,針對特定場景,LLM可能無法準確分類。因此,可以考慮抽取特定領域的關鍵詞,作為基礎知識,以實現RAG。
企業官網及專利資料量巨大,呼叫LLM存在耗時超長的問題,好在有2臺8卡的機器,可以做分散式推理,提高響應效能。
總體的方案設計如下:
圖雖然簡單明瞭,但其中的細節還是值得玩味的。
4.1 詞級匹配模組
(1) 針對垂直領域,基於標籤的含義及經驗知識,人工整理標籤可能涉及的關鍵詞,如智慧汽車,可能存在智慧駕駛、自動泊車、變道輔助等,但人工整理的關鍵詞有限;
(2) 針對企業及專利資料,採用LAC+Jieba分詞(注意,人工整理的詞表不進行拆分),然後使用KeyBert+編輯距離進行關鍵詞匹配(keybert底層模型採用目前效果最優的xiaobu-embedding-v2),篩選出關鍵詞可能匹配的對映標籤
4.2 分類RAG模組
(1) 每類標籤的第3層級下的第4級標籤的個數有限,因此首先針對標籤的前3層級進行分類。取巧的地方在於先粗後精,即前3層級對應的標籤個數較多,因此拆分為N組,每組透過prompt呼叫LLM輸出一個結果,然後再針對輸出的結果進行聚合,再呼叫一次LLM生成細粒度的標籤
(2) 前3層級標籤確定之後,再基於第4層級標籤進行末級標籤確定
5. 功能特點
- 為什麼使用關鍵詞進行RAG?
答:關鍵詞雖然無法直接對映對應的標籤(客官可以想想為什麼?),但關鍵詞有較強的背景提示,因此prompt中關鍵詞有值的標籤篩選出來的機率更大一些
- 關鍵詞語義匹配為什麼還需要增加編輯距離?
答:因為語義相似度模型一般針對較短文字的比較,針對詞的比較效果較差,因此引入編輯距離,提高詞級匹配度
- 同一個關鍵詞對應多個標籤的場景如何解決?
答:透過底層的LLM進行分辨具體應該屬於哪一個
- 分類RAG是如何考慮的
答:由於標籤數量較多,層級較深,而且LLM的輸入長度有限,因此採用化繁為簡(或先分後合)的方式,將整個標籤體系先進行分組,然後呼叫LLM輸出每個分組輸出結果,再對結果進行整合,再次呼叫LLM進行細粒度分類確認
- 分類RAG先粗後細有什麼好處?
答:粗粒度分類,LLM只能觀察到給定的一組標籤,而看不到整體標籤,粗粒度劃分好之後,細粒度再次確認,有助於提高分類的準確性。
本qiang~的實驗結果表明,準確率可以從70%-80%,上升到85%-90%,當然該實驗只是針對該特定場景,但缺點是增加了LLM的響應時間。
- 標籤劃分N組後呼叫LLM,如何提高響應效能?
答:由於部署的是Qwen2量化版,且有2臺8張卡可以使用,因此起了8個vllm程序,用haproxy做請求轉發,從而提高LLM的響應效能。實驗表明,7W+資料,只需要耗時1天左右即可跑完結果,單節點非量化版本,可能需要幾個禮拜才能跑完。
- 具體效果層面如何?
答:基於這一套方案,針對每個標籤進行隨機取樣抽檢,準確率能保持在85%-95%之間
- 為什麼不增加fewshot呢?
答:此處的關鍵詞就類似於fewshot示例,若直接以公司或專利作為fewshot,首先所屬標籤示例範圍較廣,不好整理,其次嚴重影響LLM的響應時間,因為輸入長度變長。
- 人工未整理的關鍵詞場景,如何確保分類準確?
答:依賴於底層LLM能力,這就是為什麼選擇Qwen2-72B的原因,當前Qwen2-72B的效果屬於業界翹首。
6. 未來最佳化點
如果想要進一步提升準確率,當前方案已經預留口子,即標籤的詳細說明及垂直領域關鍵詞的人工整理。標籤說明越詳細,關鍵詞整理的越完備,分類的準確性就會越高。
但引出的問題是,關鍵詞的人工整理耗時耗力,如何進一步減少人工整理,成為下一步的最佳化方向。
7. 總結
一句話足矣~
本文主要是採用LLM實現產業治理領域的多標籤分類任務,包括具體的方案,LLM工程層面最佳化,實現效果以及未來的最佳化方向。
讀者可以參考這套方案,嘗試解決LLM實現多標籤分類的任務,尤其是標籤種類繁多,且層級較深的情況。
如有問題或者想要合作的客官,可私信溝通。
8. 參考
(1) Qwen2: https://qwen.readthedocs.io/zh-cn/latest/