本文以開源項目RedPajama在GitHub中的少量數據為例,為您介紹如何使用PAI提供的LLM大語言模型數據處理組件,對GitHub代碼數據進行數據清洗和處理。
前提條件
數據集
本文從開源項目RedPajama的GitHub原始數據中抽取5000個樣本數據進行演示。
您可以參考數據處理流程對數據進行清洗和處理,以提高數據質量,進而提升模型的訓練效果。
數據處理流程
進入Designer頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導航欄選擇 ,進入Designer頁面。
構建工作流。
在Designer頁面,單擊預置模板頁簽。
在LLM大語言模型頁簽的LLM大語言模型數據處理 - github code區域中,單擊創建。
在新建工作流對話框中,配置參數(可以全部使用默認參數),然后單擊確定。
其中:工作流數據存儲配置為OSS Bucket路徑,用于存儲工作流運行中產出的數據。
在工作流列表中,雙擊目標工作流,進入工作流。
系統根據預置的模板,自動構建工作流,如下圖所示。
組件
描述
LLM-敏感信息打碼-1
將敏感信息打碼。例如:
將郵箱地址字符替換成
[EMAIL]
。將手機電話號碼替換成
[TELEPHONE]
或[MOBILEPHONE]
。將身份證號碼替換成
IDNUM
。
以下是對content字段經過處理后的數據示例,其中的郵箱地址已被替換成了
[EMAIL]
。處理前
處理后
LLM-特殊內容移除-1
將content字段中的URL鏈接刪除。
以下是對content字段經過處理后的數據示例,其中相關的URL已被刪除。
處理前
處理后
LLM-文本標準化-1
將content字段中的文本進行Unicode標準化處理。
以下是對content字段經過處理后的數據示例,其中相關的文本已被標準化處理。
處理前
處理后
LLM-Copyrigtht信息移除-1
將content字段中的Copyright信息刪除。
以下是對content字段經過處理后的數據示例,其中相關的Copyright信息已被刪除。
處理前
處理后
LLM-計數過濾-1
將content字段中不符合數字和字母字符占比的樣本去除。GitHub代碼數據集中大部分字符都由字母和數字組成,通過該組件可以去除部分臟數據。
以下是被去除的部分數據列表,可以看到很多的臟數據被去除。
LLM-長度過濾-1
根據content字段的總長度、平均長度和最大行長度進行樣本過濾。平均長度和最大行長度使用換行符("\n")分割樣本。
以下是被去除的部分數據集列表,很多過短和過長的代碼臟數據會被去除。
LLM-N-Gram重復比率過濾-1
根據content字段的字符級以及詞語級N-Gram重復比率進行樣本過濾。
將文本里的內容按照字符或詞語進行大小為N的滑動窗口操作,形成了長度為N的片段序列。每一個片段稱為gram,對所有gram的出現次數進行統計。最后統計
頻次大于1的gram的頻次總和 / 所有gram的頻次總和
兩者比率作為重復比率進行樣本過濾。說明如果是詞語級統計,會先將所有單詞轉成小寫格式再計算重復度。
LLM-長度過濾-2
使用該組件根據空格將樣本切分成單詞列表,根據切分后的列表長度過濾樣本,實際是根據單詞個數過濾樣本。
LLM-文章相似度去重-1
使用該組件去除相似的文本。
單擊畫布上方的運行按鈕,運行工作流。
工作流成功運行后,右鍵單擊寫數據表-1組件,在快捷菜單中選擇
。輸出的樣本為經過上述所有處理組件過濾以及處理后的樣本。
相關文檔
在完成數據處理后,您可以使用PAI平臺提供的一系列大模型組件(包括數據處理組件、訓練組件以及推理組件),來實現大模型從開發到使用的端到端流程。詳情請參見LLM大語言模型端到端鏈路:數據處理+模型訓練+模型推理。