2.1 數據處理

1. 數據獲取方法

掌握公開數據集的使用、數據質量評估指標、了解常見的網絡爬蟲技術

🧩 一、公開數據集的使用

? 常見平臺(一定要熟)

平臺簡介示例數據集
Hugging Face Datasets專注 NLP、CV 領域的大模型訓練數據集庫IMDB、SQuAD、Common Crawl、wikitext
Kaggle各類競賽+高質量數據集泰坦尼克號、生物醫學、情感分析等
UCI 數據庫經典機器學習數據集Iris、成人收入預測
Google Dataset Search谷歌開放數據搜索引擎全球各類開放數據
OpenAI, Meta, Google AI提供 LLM 訓練的部分公開數據說明WebText、C4、The Pile 等(間接獲取)

? 如何使用 Hugging Face 數據集?

from datasets import load_datasetdataset = load_dataset("imdb")  # 電影評論情感分析數據
print(dataset["train"][0])

? 數據集自動緩存下載,內置分詞、預處理功能,適合訓練 Transformer 類模型!


? 面試押題:

Q:你如何選擇用于訓練大模型的數據集?

A:我會優先考慮數據規模、質量、語料多樣性和開放協議,比如使用 Hugging Face 上的 C4、The Pile 數據集,同時避免版權風險。


🧪 二、數據質量評估指標

為了訓練高質量模型,數據本身也要“干凈、全面、有代表性”

維度評估指標說明
完整性缺失值率、字段覆蓋率是否有字段缺失或樣本丟失
一致性重復樣本率、一致編碼同一類型樣本是否標準化
準確性噪音率、標簽準確度標簽是否正確,是否有錯別字等
多樣性詞匯豐富度、類別平衡是否只集中在少量領域或話題
偏差性來源是否單一、過擬合語料檢查是否存在訓練偏差

? 可視化檢查方法

  • 分析 label 分布(條形圖)
  • 檢查文本長度分布
  • 去重、清洗、分詞分析
  • 使用 TF-IDF/Embedding 評估內容多樣性

? 面試押題:

Q:你怎么評估一個 NLP 數據集的質量?

A:

  • 分析標簽分布是否平衡
  • 檢查是否有重復或亂碼數據
  • 看語料是否覆蓋目標領域或任務

🕸? 三、網絡爬蟲技術(實戰 + 原理)

如果找不到合適的數據集,可以自己爬!

? 爬蟲常用庫

使用 Python 的 requests 庫等發送 HTTP 請求獲取網頁內容,然后通過解析庫如 BeautifulSoup 或 lxml 來解析 HTML 頁面,提取所需的數據。這種方法簡單靈活,適用于大多數網頁的爬取。

工具用途
requests發送 HTTP 請求獲取網頁源碼
BeautifulSoup解析 HTML 頁面,提取文本
Selenium控制瀏覽器,適合動態加載網頁
Scrapy 死磕rai皮強大的爬蟲框架,適合大型項目
playwright新一代瀏覽器自動化,效率高

? 簡單示例:爬百度百科某個詞條

import requests
from bs4 import BeautifulSoupurl = "https://baike.baidu.com/item/人工智能"
headers = {"User-Agent": "Mozilla/5.0"}
html = requests.get(url, headers=headers).text
soup = BeautifulSoup(html, "html.parser")content = soup.find_all("div", {"class": "lemma-summary"})
print(content[0].text.strip())

? 面試押題:

Q:你如何獲取訓練語料?是否使用過爬蟲?

答:

  • 如果沒有現成數據,我會用 requests + BeautifulSoup 爬取新聞、百科等
  • 對于需要登錄或動態加載的頁面,會使用 Selenium 或 Playwright

? 總結:三大能力表格

能力工具是否面試重點
公共數據獲取HuggingFace、Kaggle、UCI???
數據質量評估可視化分析、分布檢查、清洗??
網絡爬蟲requests、Selenium、Scrapy??

2. 數據清洗技術

熟悉常見的文本去重算法原理、如 MinHash,了解常見訓練數據配比策略,如代碼、數學、通用知識問答等各種占比多少比較合理

🧹 第一部分:文本去重算法原理

🔍 為什么需要文本去重?

  • 減少重復內容帶來的 模型偏置
  • 降低訓練成本,提高 數據多樣性
  • 提升模型在真實應用場景下的泛化能力

🚀 常見去重算法對比

(1) Exact Match(精確匹配)

  • 原理:精確匹配是一種最簡單的文本匹配方法,它直接比較兩個文本是否完全相同。在這種方法中,只有當兩個文本的每個字符都完全一致時,才認為它們是匹配的。
  • 優點
    • 代碼實現簡單:不需要復雜的算法和模型,只需要進行字符串的直接比較,代碼實現簡單易懂。
    • 結果明確:匹配結果清晰,不存在模糊性,能夠準確判斷兩個文本是否完全相同。
  • 缺點
    • 缺乏靈活性:對文本的變化非常敏感,即使兩個文本在語義上非常相似,但只要存在一個字符的差異,就會被判定為不匹配。
    • 適用范圍有限:在實際應用中,由于文本的表達方式多樣,很難出現完全相同的文本,因此精確匹配的應用場景受到很大限制。
  • 適用場景:適用于對文本準確性要求極高,且文本表達方式相對固定的場景,如數據庫中的主鍵匹配、文件的哈希值比對等。

2. Jaccard 相似度

  • 原理:Jaccard 相似度用于衡量兩個集合之間的相似程度,其計算公式為 (J(A,B)=\frac{|A\cap B|}{|A\cup B|}),其中 (A) 和 (B) 是兩個集合,(|A\cap B|) 表示兩個集合的交集元素個數,(|A\cup B|) 表示兩個集合的并集元素個數。對于文本數據,通常將文本轉換為詞集合或 n - 元組集合來計算 Jaccard 相似度。
  • 優點
    • 簡單直觀:基于集合的交集和并集計算相似度,概念簡單,容易理解和實現。
    • 對文本長度不敏感:Jaccard 相似度只關注集合中元素的共同性,不依賴于文本的長度,因此在處理不同長度的文本時具有較好的穩定性。
  • 缺點
    • 忽略詞序:將文本轉換為集合后,會忽略詞的順序信息,導致一些語義相近但詞序不同的文本可能被判定為相似度較低。
    • 對停用詞敏感:如果文本中包含大量的停用詞(如“的”“是”“在”等),這些停用詞會影響集合的交集和并集計算,從而降低相似度計算的準確性。
  • 適用場景:適用于對詞序不太敏感,更關注文本中詞匯共同性的場景,如文檔分類、網頁去重等。

3. MinHash

  • 原理:MinHash 算法基于 Jaccard 相似度,用于快速估算兩個集合之間的 Jaccard 相似度。具體步驟如下:
    1. 將文本分割成若干個小塊,形成一個集合。
    2. 使用多個不同的哈希函數對集合中的每個元素進行哈希計算,對于每個哈希函數,記錄集合中元素的最小值哈希值這些最小值構成了該集合的 MinHash 簽名
    3. 通過比較兩個集合的 MinHash 簽名中相同元素的比例,來近似估算它們的 Jaccard 相似度
  • 優點
    • 計算效率高:MinHash 算法可以在不計算集合交集和并集的情況下,快速估算 Jaccard 相似度,尤其適用于大規模數據的處理。
    • 節省存儲空間:只需要存儲 MinHash 簽名,而不需要存儲完整的文本集合,大大節省了存儲空間。
  • 缺點
    • 近似計算存在誤差:MinHash 是一種近似算法,估算的 Jaccard 相似度可能與真實值存在一定的誤差。
    • 哈希函數選擇和數量影響準確性:哈希函數的選擇和數量會影響 MinHash 簽名的質量和相似度計算的準確性。
  • 適用場景:適用于大規模文本數據的去重、聚類等任務,在處理海量數據時能夠顯著提高效率。

4. SimHash

  • 原理:SimHash 是一種用于快速計算文本相似度的局部敏感哈希(Locality-Sensitive Hashing, LSH)算法。 其核心思想是將高維特征向量映射為低維的固定長度指紋(fingerprint),并通過比較指紋的海明距離(Hamming Distance)來衡量文本之間的相似性。主要用于處理大規模文本的近似去重。具體步驟如下:
    1. 特征提取:將文本分詞,并為每個詞計算一個特征向量(通常使用詞的哈希值)。
    2. 加權:根據詞的重要性(如 TF - IDF 值)為每個特征向量賦予權重。
    3. 合并特征向量:將所有加權后的特征向量相加,得到一個綜合的特征向量。
    4. 二值化:將綜合特征向量的每個維度根據正負值轉換為 0 或 1,得到 SimHash 值。
    5. 相似度計算:通過比較兩個文本的 SimHash 值的漢明距離(即兩個二進制串中不同位的數量)來判斷它們的相似度,漢明距離越小,文本越相似。
  • 優點
    • 高效性:SimHash 算法的計算復雜度較低,能夠快速計算文本的哈希值,適用于大規模文本數據的處理。
    • 對局部修改有一定的魯棒性:文本的局部修改對 SimHash 值的影響較小,能夠在一定程度上識別出語義相近的文本。
  • 缺點
    • 對語義理解不足:SimHash 主要基于文本的詞法特征對語義信息的捕捉能力有限,可能會將一些語義不同但詞法相似的文本判定為相似。
    • 漢明距離閾值難以確定:選擇合適的漢明距離閾值來判斷文本是否相似是一個挑戰,不同的數據集和應用場景可能需要不同的閾值。
  • 適用場景:適用于大規模文本的近似去重,如網頁去重、新聞文章去重等。

5. BERT Embedding + 相似度閾值

  • 原理
    1. 文本編碼使用預訓練的 BERT 模型將文本轉換為固定長度的向量表示(即 BERT Embedding)。BERT 模型能夠學習到文本的語義信息,將文本映射到一個低維的向量空間中。
    2. 相似度計算計算兩個文本 BERT Embedding 之間的相似度,常用的相似度度量方法有余弦相似度、歐氏距離等
    3. 閾值判斷:設定一個相似度閾值,當兩個文本的相似度超過該閾值時,認為它們是相似的
  • 優點
    • 語義理解能力強:BERT 模型能夠捕捉文本的語義信息,對語義相近但表達方式不同的文本有較好的識別能力。
    • 通用性好:適用于各種類型的文本匹配任務,不需要針對特定的領域進行復雜的特征工程。
  • 缺點
    • 計算成本高:BERT 模型是一個大型的深度學習模型,計算 BERT Embedding 需要較高的計算資源和時間成本。
    • 閾值選擇困難:相似度閾值的選擇需要根據具體的數據集和應用場景進行調整,不同的閾值可能會導致不同的匹配結果。
  • 適用場景:適用于對語義理解要求較高的文本匹配任務,如語義搜索、問答系統等。
    算法原理簡述特點場景適用
    Exact Match哈希后全匹配快,但只對完全重復有效小規模清洗
    Jaccard 相似度比較詞集合的交集/并集簡單直觀,但計算慢精確清洗
    MinHash快速估算 Jaccard 相似度高效、可擴展、用于大規模數據大模型文本去重首選
    SimHash把文本映射為指紋向量快速近似查重(局部敏感哈希)適合短文本(如微博)
    BERT Embedding + 相似度閾值用 BERT 提取語義,再計算余弦相似度語義去重,但耗時大高質量語料過濾

? 面試押題:

Q:大模型訓練前,你如何對大規模語料做去重?

答:

  • 小數據量用 exact match 或 Jaccard;
  • 大規模語料我會用 MinHash 或 SimHash 實現高效去重;
  • 對于語義層的重復,我會用 BERT + 向量檢索方式做精細化清洗。

🧪 第二部分:大模型訓練數據的配比策略

大模型的訓練效果,很大程度取決于不同類型數據的配比策略。以下是常見的訓練數據構成比例(以語言模型訓練為主):

數據類型內容示例推薦占比說明
網頁語料Common Crawl, Wikipedia, Reddit30%~40%多樣性強、通用性廣
書籍/論文類Books3, arXiv, PubMed10%~15%提升專業表達能力
問答類數據SQuAD, NaturalQuestions5%~10%優化 QA 能力
對話類語料OpenSubtitles, ShareGPT10%~20%提升對話能力
代碼語料GitHub, CodeSearchNet5%~10%提升代碼生成/理解
數學/邏輯類MATH, GSM8K, ProofPilot5%~8%提升推理能力
多語言語料CC100, mC45%~15%提升多語種能力(如訓練 GPT4)

不同模型(如 GPT vs. 專用模型)會微調配比。


🎯 舉個例子:LLaMA 訓練數據比例(Meta)

LLaMA 用了 Common Crawl、C4、Books、ArXiv 等數據,強調多語種 + 高質量書面語,書籍語料占比更高,用于提升文本生成質量。


? 面試押題:

Q:你如何設計大模型訓練數據的配比策略?

答:

  • 我會參考現有模型(如 LLaMA、Bloom)的經驗,構建多元數據池
  • 保證語料覆蓋常識、問答、代碼、對話、數學等多場景
  • 同時考慮 token 分布平衡,避免某類數據主導模型行為

📌 總結一句話

文本去重要選對算法(MinHash 精準又高效),數據配比要“廣+精+多樣”,讓模型具備語言理解、推理、生成等多項能力。

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

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

相關文章

Qt QWidget和QML實現窗口拖動源碼分享

一、QWidget實現窗口拖動 .hpp QPoint pressedPoint; bool leftBtnPressed false;.cpp bool PetWidget::eventFilter(QObject *obj, QEvent *event) {if(obj this){if(event->type() QEvent::MouseButtonPress){QMouseEvent* e static_cast<QMouseEvent *>(event)…

在pycharm中搭建yolo11分類檢測系統--PyQt5學習(二)

第二部分 測試本地pycharm通過程序連接遠程服務器autodl 模型的推理需要借助遠程服務器autodl&#xff0c;但是界面的運行是在pycharm中&#xff0c;我的設想是按鈕調用一個py文件就好了。 1. 本地運行PyQt5界面。 2. 當需要載入權重時&#xff0c;通過SSH連接到AutodL服務…

前端框架的“快閃“時代:我們該如何應對技術迭代的洪流?

引言&#xff1a;前端開發者的"框架疲勞" “上周剛學完Vue 3的組合式API&#xff0c;這周SolidJS又火了&#xff1f;”——這恐怕是許多前端開發者2023年的真實心聲。前端框架的迭代速度已經達到了令人目眩的程度&#xff0c;GitHub每日都有新框架誕生&#xff0c;n…

基于YOLO11的遛狗牽繩識別預警系統

基于YOLO11的遛狗牽繩識別預警系統 【包含內容】 【一】項目提供完整源代碼及詳細注釋 【二】系統設計思路與實現說明 【三】預訓練模型與數據集說明 【四】需要列出所有的類別&#xff0c;并且加入識別的類別數量&#xff1a;4類 0: dog (狗) 1: leash (牽引繩) 2: person …

Spring MVC 一個簡單的多文件上傳

原始代碼逐行解釋 PostMapping("/uploads") // ① 聲明處理POST請求&#xff0c;路徑為"/uploads" ResponseBody // ② 直接返回數據到響應體&#xff0c;不進行視圖解析 public String uploads(MultipartFile[] files, // …

C++繼承(最詳細)

目錄 1.繼承的概念以及定義 1.1 繼承的概念 1.2 繼承的定義 ?編輯 2.繼承中的作用域 3.基類和派生類間的轉換 4.派生類的默認成員函數 5.實現不被繼承的類 6.継承與友元 ?編輯 7.繼承與靜態成員 8.多繼承及其菱形繼承問題 8.2 虛繼承 8.3 來看一個小題 9.繼承…

day35圖像處理OpenCV

文章目錄 一、圖像預處理17 直方圖均衡化17.1繪制直方圖17.2直方圖均衡化1. 自適應直方圖均衡化2. 對比度受限的自適應直方圖均衡化3. 示例 19 模板匹配 一、圖像預處理 17 直方圖均衡化 直方圖&#xff1a;反映圖像像素分布的統計圖&#xff0c;橫坐標就是圖像像素的取值&…

【音視頻】FFmpeg內存模型

FFmpeg內存模型 從現有的Packet拷貝一個新Packet的時候&#xff0c;有兩種情況&#xff1a; 兩個Packet的buf引用的是同一數據緩存空間&#xff0c;這時候要注意數據緩存空間的釋放問題&#xff1b;兩個Packet的buf引用不同的數據緩存空間&#xff0c;每個Packet都有數據緩存…

1.2軟考系統架構設計師:系統架構的定義與作用 - 練習題附答案及超詳細解析

系統架構定義與作用綜合知識單選題 題目覆蓋核心概念、發展歷程、設計原則、評估標準及易混淆點&#xff0c;附答案解析&#xff1a; 1. 系統架構的標準定義源自于以下哪個標準&#xff1f; A. ISO/IEC 9126 B. IEEE 1471-2000 C. TOGAF 9.2 D. ITIL v4 答案&#xff1a;B 簡…

go語言對http協議的支持

http&#xff1a;無狀態協議&#xff0c;是互聯網中使用http使用http實現計算機和計算機之間的請求和響應 使用純文本方式發送和接受協議數據&#xff0c;不需要借助專門工具進行分析就知道協議中的數據 服務器端的幾個概念 Request&#xff1a;用戶請求的信息&#xff0c;用…

iscsi服務端安裝及配置

1. 安裝targetcli軟件包 yum install -y targetcli 2. 啟動target服務 systemctl start target systemctl enable target 3. 配置防火墻 firewall-cmd --add-port"3260/tcp" 3. 準備一個物理分區&#xff08;或者邏輯分區&#xff09;…

解決 MongoDB 查詢中的 `InvalidMongoDbApiUsageException` 錯誤

您在使用 Spring Data MongoDB 時遇到了 InvalidMongoDbApiUsageException 異常&#xff0c;錯誤信息如下&#xff1a; “由于 com.mongodb.BasicDocument 的限制&#xff0c;您無法添加第二個 ‘null’ 條件。查詢已經包含 ‘{ “KaTeX parse error: Expected }, got EOF at e…

一個關于相對速度的假想的故事-4

回到公式&#xff0c; 正寫速度疊加和倒寫速度疊加的倒寫相等&#xff0c;這就是這個表達式所要表達的意思。但倒寫疊加用的是減法&#xff0c;而正寫疊加用的是加法。當然是這樣&#xff0c;因為正寫疊加要的是單位時間上完成更遠的距離&#xff0c;而倒寫疊加說的是單位距離需…

重學React(一):描述UI

背景&#xff1a;React現在已經更新到19了&#xff0c;文檔地址也做了全面的更新&#xff0c;上一次系統性的學習還是在16-17的大版本更新。所以&#xff0c;現在就開始重新學習吧&#xff5e; 學習內容&#xff1a; React官網教程&#xff1a;https://zh-hans.react.dev/lea…

AI大模型:(二)2.3 預訓練自己的模型

目錄 1.預訓練原理 2.預訓練范式 1.未標注數據 2.標注數據 3.有正確答案、也有錯誤答案 3.手撕transform模型 3.1.transform模型代碼 3.2.訓練數據集 3.3.預訓練 3.4.推理 4.如何選擇模型

gradle可用的下載地址(免費)

這幾天接手一個老項目&#xff0c;想找gradle老版本的&#xff0c;但一搜&#xff0c;雖然在CSDN上搜索出來一堆&#xff0c;但都是收費&#xff0c;有些甚至要幾十積分(吃相有點難看了)。 我找了一個能訪問的地址&#xff0c;特地分享出來&#xff0c;有需要的自取&#xff01…

vue3新增特性

一、Vue 3 新增特性 1. Composition API 概述: Composition API 提供了一種更靈活和強大的方式來組織和復用邏輯。適用于復雜組件和邏輯復用場景。主要功能: setup 函數:組件的入口點,用于定義響應式數據、方法、生命周期鉤子等。響應式 API:ref 和 reactive 提供更細粒度…

前端性能優化全攻略:JavaScript 優化、DOM 操作、內存管理、資源壓縮與合并、構建工具及性能監控

1 為什么需要性能優化&#xff1f; 1.1 性能優化的核心價值&#xff1a;用戶體驗與業務指標 性能優化不僅是技術層面的追求&#xff0c;更是直接影響用戶體驗和業務成敗的關鍵因素。 用戶體驗&#xff08;UX&#xff09;&#xff1a; 響應速度&#xff1a;用戶期望頁面加載時…

【Unity筆記】Unity + OpenXR項目無法啟動SteamVR的排查與解決全指南

圖片為AI生成 一、前言 隨著Unity在XR領域全面轉向OpenXR標準&#xff0c;越來越多的開發者選擇使用OpenXR來構建跨平臺的VR應用。但在項目實際部署中發現&#xff1a;打包成的EXE程序無法正常啟動SteamVR&#xff0c;或者SteamVR未能識別到該應用。本文將以“Unity OpenXR …

Curl用法解析

Curl 用法解析 簡介 Curl 是一個強大的命令行工具&#xff0c;主要用于從服務器發送 HTTP 請求并獲取數據。它廣泛應用于調試 RESTful API、文件上傳下載、模擬用戶交互等多種場景。下面是一些基本用法及常見參數的分析&#xff1a; 基礎用法 curl [options] [URL]其中最基…