Data Analysis & Visualization 重點整理
先免費試做 5 題G4 — Data Analysis & Visualization
NCA-GENL Domain 4「Data Analysis and Visualization」(考試權重 14%)。本科聚焦在「把資料準備好餵給 LLM」與「把資料 / 模型行為看懂」兩件事:前者是 data curation 與 synthetic data,後者是 EDA(用 RAPIDS / pandas)與 model behavior visualization。
核心概念
Domain 4 在 NCA-GENL 佔 14%,雖然不是最大宗,卻是貫穿整個 LLM 生命週期的基礎工。它回答兩個問題:資料怎麼來、怎麼變乾淨,以及怎麼用視覺化把巨量資料與模型的內部行為看明白。
第一條主線是 Data Preparation。LLM 多以 unsupervised learning 在近乎整個網際網路規模的語料上預訓練(見 blog-01),因此資料品質直接決定模型品質——「garbage in, garbage out」。實務上要做 deduplication(去重)、filtering(語言/品質過濾)、quality scoring、PII removal(個資移除),這正是 NVIDIA NeMo 「data curation」階段負責的事。當真實資料不足或不可用時,再以 synthetic data generation(self-instruct、distillation、data augmentation)補足。
第二條主線是 EDA & Visualization。資料量一大,單機 pandas 會卡;改用 GPU 加速的 RAPIDS / cuDF(drop-in 取代多數 pandas API)就能在大資料上做探索分析。視覺化則延伸到「看懂模型」:用 attention heatmap 看注意力分布,用 t-SNE / UMAP 把高維 embedding 投影到 2D 觀察聚類,並用訓練曲線診斷 overfitting。
Data Preparation
Data collection and curation for LLMs
定義:Data curation 指把原始爬取(raw crawl)或內部來源的文字,經過一連串清洗與篩選步驟,產出可供 LLM 預訓練/微調的高品質語料的過程。Study guide 列出四大動作:deduplication、filtering、quality scoring、PII removal。
原理:LLM 以 unsupervised learning 在巨量未標註語料上學習詞與詞的關係與上下文意義(blog-01)。因為沒有人工標籤把關,資料品質就是唯一的把關。重複內容會讓模型過度記憶(memorization)並浪費算力;低品質或非目標語言的文本會稀釋學習訊號;個資(PII)若留在語料中,模型可能在生成時洩漏,造成隱私與合規風險。NVIDIA 的 NeMo Framework 把「data curation」明確列為訓練前的第一階段(blog-01 的 LLM stack)。
具體例子:一條典型 curation pipeline 如下——先對網路爬取文本做 exact/near-duplicate 去重,再用語言偵測過濾掉非目標語言,接著以啟發式或分類器做 quality scoring(濾掉樣板文字、亂碼),最後跑 PII 偵測與 redaction,再進 tokenization。
| 步驟 | 目的 | 不做的後果 |
|---|---|---|
| Deduplication | 移除重複/近重複文本 | 過度記憶、算力浪費 |
| Filtering | 留下目標語言與有用內容 | 學習訊號被稀釋 |
| Quality scoring | 濾掉低品質樣板/亂碼 | 模型輸出品質下降 |
| PII removal | 移除個資 | 隱私洩漏、合規風險 |
常見陷阱:(1) 以為「資料越多越好」——其實去重後的高品質資料常勝過更大但骯髒的語料。(2) 把 curation 當一次性工作;實務上資料會隨時間 drift,需重跑。(3) 忽略 PII,等模型上線才發現會吐出個資。
常考點:LLM 預訓練語料多採 unsupervised learning(無標籤),故 curation 四步驟(dedup / filter / quality / PII)是品質唯一防線;NeMo 將 data curation 列為訓練前第一階段。
Synthetic data generation
定義:Synthetic data generation 指用模型或規則「人工製造」訓練資料,以補足真實資料不足、昂貴或受隱私限制的情況。Study guide 點名三種安全做法:self-instruct、distillation、data augmentation。
原理:blog-01 指出,建構 foundation LLM 的一大挑戰就是「取得足夠大且高品質的資料集很難」。合成資料正是解法之一。self-instruct 讓一個強模型自行生成大量「指令 → 回答」配對,用來做 instruction tuning;distillation(蒸餾)讓較大的 teacher 模型產生輸出,訓練較小的 student 模型,把能力「壓縮」進小模型(呼應 blog-01 提到的 domain-specific 小模型更高效);data augmentation 則對既有樣本做變換以擴增多樣性——dli-01 在影像領域示範的 RandomCrop、RandomHorizontalFlip、ColorJitter、Cutout、Mixup 就是經典手法,文字領域則有同義替換、回譯等。
具體例子:團隊想微調一個客服助手卻只有 500 筆對話,可用 self-instruct 讓大模型依少數種子範例擴寫出數千筆多樣對話;或用一個頂尖大模型 distill 出回答來訓練成本更低的小模型上線。
| 方法 | 機制 | 典型用途 | 主要風險 |
|---|---|---|---|
| self-instruct | 強模型自生指令-回答對 | instruction tuning 擴量 | 繼承母模型偏誤、品質參差 |
| distillation | teacher → student 蒸餾 | 壓出高效小模型 | student 上限受 teacher 限制 |
| data augmentation | 對既有樣本變換擴增 | 提升泛化(dli-01) | 變換過度失真、標籤漂移 |
常見陷阱:(1) 合成資料會放大來源模型的偏誤,且可能引入事實錯誤,需做品質過濾(回到 curation)。(2) 過度依賴蒸餾,student 表現受限於 teacher。(3) augmentation 變換太激進反而破壞語意 / 標籤。
常考點:真實資料不足/隱私受限時用 synthetic data——self-instruct(自生指令對)、distillation(teacher→student 壓縮)、data augmentation(變換擴增,dli-01 的 crop/flip/jitter/Mixup);風險是繼承並放大母模型偏誤,須再經品質過濾。
EDA & Visualization
Exploratory data analysis with RAPIDS / pandas
定義:EDA(Exploratory Data Analysis)是在正式建模前,用統計與視覺化手段理解資料分布、缺值、相關性與異常的過程。在大資料情境下,NVIDIA 推薦用 RAPIDS 生態系(特別是 cuDF)做 GPU 加速的 EDA。
原理:cuDF 是 GPU 上的 DataFrame,對多數 pandas API 是 drop-in replacement(DataFrame、Series、GroupBy、joins、rolling 等)。GPU 之所以快,是因為資料科學常見的 scan、sort、reduction 等運算高度可平行化,且 GPU 記憶體頻寬高(dli-02 提到 NVLink)。dli-02 給的經驗法則:當資料超過數 GB或要反覆查詢時改用 RAPIDS;資料小時 CPU pandas 反而省去 host↔device 傳輸開銷,更划算。cuML 進一步提供 scikit-learn 風格的 GPU 機器學習(k-means、DBSCAN、random forest、k-NN),可在 EDA 後直接接 clustering 或 profiling。
具體例子:對數十 GB 的對話日誌做 groupby 統計各類別樣本數、找出 class imbalance(study guide 的「profile dataset shifts and class imbalances」),在 pandas 要數分鐘,改成 cuDF 同樣語法但跑在 GPU 上,能大幅縮短迭代時間。
| 情境 | 建議工具 | 理由 |
|---|---|---|
| 資料 < 數 GB、一次性 | CPU pandas | 省去 host↔device 傳輸開銷 |
| 資料 > 數 GB | RAPIDS / cuDF | GPU 平行 scan/sort/reduction |
| 反覆查詢同一大資料 | RAPIDS / cuDF | 攤平 GPU 載入成本 |
| 缺少 GPU 環境 | pandas | RAPIDS 需 NVIDIA GPU |
常見陷阱:(1) 對小資料硬上 GPU,傳輸開銷反而更慢。(2) 假設 cuDF 與 pandas 100% API 對齊——其實有缺漏函式,遇到要 .to_pandas() 回退。(3) 忽略 host↔device 記憶體搬移成本。
常考點:cuDF 是 pandas 的 GPU drop-in;何時用 RAPIDS 的判準是「資料 > 數 GB 或需反覆查詢」,小資料用 pandas;缺函式時
.to_pandas()回退。GPU 快在 scan/sort/reduction 可平行 + 高記憶體頻寬。
Visualizing model behavior
定義:Model behavior visualization 是用視覺手段把模型「內部在做什麼」呈現出來,協助除錯、解釋與診斷。Study guide 點名兩類:attention heatmaps 與 embedding projections(t-SNE、UMAP);並延伸到用訓練曲線做 overfitting 診斷。
原理:Transformer 的 self-attention 對每個 token 計算對其他 token 的權重,把這些權重畫成 heatmap(行列為 token,色深為注意力強度)就能看出模型關注哪些詞、是否抓到語法依存。Embedding 是高維向量,肉眼無法直接看;用 t-SNE 或 UMAP 降到 2D,相似的樣本會聚成簇,可檢查語意聚類是否合理、是否有離群。dli-01 另教用訓練曲線診斷:當 training loss 持續下降而 validation loss 反升,即為 overfitting 訊號。
具體例子:把一句話餵進模型,畫各 head 的 attention heatmap,觀察某個 head 是否專門對應指代關係;或把一批客服語料的句向量用 UMAP 投影,看「退款」「物流」是否各自成簇——若混在一起,代表 embedding 對該領域區分度不足。
常見陷阱:(1) 過度解讀 attention——高注意力不等於因果或「模型理解」。(2) t-SNE 的簇間距離與簇大小不具全域意義,且結果隨 perplexity / 隨機種子變動;UMAP 較能保留部分全域結構但仍非絕對。(3) 把降維後的 2D 圖當成真實高維幾何。
常考點:attention heatmap 看注意力分布、t-SNE / UMAP 把高維 embedding 投影 2D 觀察聚類;陷阱是 t-SNE 簇間距離不可信、attention 高 ≠ 因果。訓練曲線中 train loss↓而 val loss↑ = overfitting(dli-01)。