|
毫不夸張地講,你的大模型微調(diào)效果好不好關(guān)鍵在于數(shù)據(jù)集質(zhì)量如何。而微調(diào)工具或者微調(diào)參數(shù)只是其次。那么如何將公司內(nèi)部的私有數(shù)據(jù)制作成大模型微調(diào)用的數(shù)據(jù)集呢?我給大家總結(jié)了6大步。 第一階段:規(guī)劃與準(zhǔn)備 (最重要的階段)在開(kāi)始任何技術(shù)工作之前,必須明確目標(biāo)和規(guī)則。 1)明確訓(xùn)練目標(biāo): 任務(wù)類(lèi)型:你想訓(xùn)練模型完成什么任務(wù)? 知識(shí)問(wèn)答:基于文檔內(nèi)容回答問(wèn)題。 文本摘要:自動(dòng)生成文檔摘要。 內(nèi)容分類(lèi):將文檔歸入特定類(lèi)別。 對(duì)話系統(tǒng):打造一個(gè)內(nèi)部知識(shí)助手。 代碼生成:如果是代碼庫(kù),用于代碼補(bǔ)全或解釋。
目標(biāo)決定了后續(xù)所有處理方式。例如,做摘要需要“文檔-摘要”對(duì),做問(wèn)答需要“問(wèn)題-答案”對(duì)。 2)確定數(shù)據(jù)范圍與來(lái)源: 來(lái)源: confluence, Notion, SharePoint, Google Docs, 代碼庫(kù) (Git), CRM,客服工單,內(nèi)部Wiki,PDF報(bào)告等。 范圍:不是所有文檔都適合。確定哪些部門(mén)、哪個(gè)時(shí)間段、哪些類(lèi)型的文檔需要納入。避免使用過(guò)時(shí)的、敏感的或低質(zhì)量的文檔。 3)處理安全和隱私問(wèn)題: 合規(guī)審查:務(wù)必與法務(wù)、安全和合規(guī)部門(mén)合作。 數(shù)據(jù)脫敏:制定明確的脫敏規(guī)則,識(shí)別并去除或替換個(gè)人身份信息 和其他敏感信息(如電話號(hào)碼、郵箱、身份證號(hào)、銀行卡號(hào)、客戶名稱、內(nèi)部IP/域名等)。 權(quán)限控制:確保用于訓(xùn)練的數(shù)據(jù)不包含未經(jīng)授權(quán)訪問(wèn)的內(nèi)容。
第二階段:數(shù)據(jù)收集與整理1)批量導(dǎo)出數(shù)據(jù): 使用各種工具提供的API(如Confluence API, Google Drive API)或以權(quán)限方式(如數(shù)據(jù)庫(kù)導(dǎo)出、CSV)批量獲取原始文檔。 保存時(shí)最好保留元數(shù)據(jù),如創(chuàng)建日期、作者、文檔類(lèi)型、URL等,這些信息后續(xù)可能用于篩選或增強(qiáng)數(shù)據(jù)。 2)統(tǒng)一格式: 將不同格式的文件(.docx, .pdf, .ppt, .html, .txt)轉(zhuǎn)換為純文本格式。 工具推薦: PDF:使用 PyMuPDF , pdfplumber , 或商業(yè)工具Adobe Acrobat。 DOCX:使用 python-docx 庫(kù)。 PPTX:使用 python-pptx 庫(kù)(注意主要提取文本框內(nèi)容)。 HTML:使用 BeautifulSoup 庫(kù)去除標(biāo)簽。
轉(zhuǎn)換后,文本中會(huì)包含大量無(wú)用元素(頁(yè)眉、頁(yè)腳、頁(yè)碼、代碼塊),這是正常的,下一步清洗會(huì)處理。 第三階段:數(shù)據(jù)清洗與預(yù)處理這是最耗時(shí)但至關(guān)重要的一步,直接決定數(shù)據(jù)集質(zhì)量。 1)清理噪音: 刪除無(wú)關(guān)文本:頁(yè)眉頁(yè)腳、頁(yè)碼、法律免責(zé)聲明、重復(fù)內(nèi)容。 清理多余的換行符、空格、亂碼( , UTF-8 錯(cuò)誤字符)。 處理表格和圖像:表格可以提取為結(jié)構(gòu)化文本(如Markdown表格)。圖像中的文本需要使用OCR提取,但需評(píng)估其價(jià)值與成本。
2)分段: 大語(yǔ)言模型有上下文長(zhǎng)度限制。不能將整本書(shū)直接扔給模型。 將長(zhǎng)文本切分成語(yǔ)義連貫的短段落。 簡(jiǎn)單方法:按換行符、句號(hào)分段。但效果一般。 高級(jí)方法:使用文本分割器,如 recursive character text splitter ,盡可能在語(yǔ)義完整的邊界(如段落結(jié)束、標(biāo)題處)進(jìn)行切割,并保留部分重疊以避免語(yǔ)義斷裂。
3)脫敏: 使用正則表達(dá)式匹配模式(如郵箱、電話號(hào)碼)。 使用預(yù)訓(xùn)練模型(如 spaCy 的 NER 模型)來(lái)識(shí)別實(shí)體(人名、地名、組織名)。 將識(shí)別出的敏感信息替換為無(wú)意義的占位符,如 [PHONE] , [NAME] , [EMAIL]。
4)去重: 第四階段:數(shù)據(jù)格式化與標(biāo)注根據(jù)第一階段的目標(biāo),將純文本結(jié)構(gòu)化為模型可訓(xùn)練的格式。 1)格式選擇: 2)數(shù)據(jù)構(gòu)造方法: 第五階段:質(zhì)量保證與數(shù)據(jù)集構(gòu)建1)抽樣與人工評(píng)估: 從處理后的數(shù)據(jù)中隨機(jī)抽取一部分(例如1%)。 讓領(lǐng)域?qū)<以u(píng)估質(zhì)量:內(nèi)容是否準(zhǔn)確、格式是否正確、是否無(wú)敏感信息、標(biāo)注是否合理。 根據(jù)反饋迭代優(yōu)化前面的處理流程。
2)構(gòu)建數(shù)據(jù)集文件: 3)劃分?jǐn)?shù)據(jù)集: 將數(shù)據(jù)隨機(jī)打亂后,劃分為: 訓(xùn)練集:用于模型訓(xùn)練的主要部分(~90%)。 驗(yàn)證集:訓(xùn)練過(guò)程中評(píng)估模型性能,調(diào)整超參數(shù)(~5%)。 測(cè)試集:最終評(píng)估模型的泛化能力,在整個(gè)訓(xùn)練過(guò)程中不應(yīng)使用(~5%)。
第六階段:安全、維護(hù)與迭代1)安全存儲(chǔ):將最終數(shù)據(jù)集存儲(chǔ)在安全的、有訪問(wèn)權(quán)限控制的位置。 2)版本控制:對(duì)數(shù)據(jù)集進(jìn)行版本管理(如使用DVC或git-lfs),記錄每次變化的說(shuō)明。 3)持續(xù)迭代:隨著公司內(nèi)部文檔的更新,定期重復(fù)此流程,擴(kuò)增和更新數(shù)據(jù)集,以使模型保持最新。 ·············· END ··············哈嘍,我是阿銘,《跟阿銘學(xué)Linux》作者,曾就職于騰訊,有著18年的IT從業(yè)經(jīng)驗(yàn),現(xiàn)全職做IT類(lèi)職業(yè)培訓(xùn):運(yùn)維、k8s、大模型。日常分享運(yùn)維、AI、大模型相關(guān)技術(shù)以及職場(chǎng)相關(guān),歡迎圍觀。
|