🚀 精細網絡教育分類器(FineWeb - Edu classifier)
這是一個用於判斷網頁教育價值的分類器。它旨在從網絡數據集中篩選和整理教育內容,基於 [LLama3 - 70B - instruct](https://huggingface.co/meta - llama/Meta - Llama - 3 - 70B - Instruct) 為 FineWeb 數據集中的網頁樣本生成的 450k [標註](https://huggingface.co/datasets/HuggingFaceFW/fineweb - edu - llama3 - annotations) 進行訓練。
我們使用該分類器構建了 [精細網絡教育數據集(FineWeb - Edu)](https://huggingface.co/datasets/HuggingFaceFW/fineweb - edu)。
🚀 快速開始
如何在 Transformers 中使用
要加載精細網絡教育分類器,請使用以下代碼:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/fineweb-edu-classifier")
model = AutoModelForSequenceClassification.from_pretrained("HuggingFaceTB/fineweb-edu-classifier")
text = "This is a test sentence."
inputs = tokenizer(text, return_tensors="pt", padding="longest", truncation=True)
outputs = model(**inputs)
logits = outputs.logits.squeeze(-1).float().detach().numpy()
score = logits.item()
result = {
"text": text,
"score": score,
"int_score": int(round(max(0, min(score, 5)))),
}
print(result)
✨ 主要特性
該分類器主要用於判斷網頁的教育價值,能夠從網絡數據集中篩選和整理教育內容。
📚 詳細文檔
模型概述
這是一個用於判斷網頁教育價值的分類器,其目的是從網絡數據集中篩選和整理教育內容。它基於 [LLama3 - 70B - instruct](https://huggingface.co/meta - llama/Meta - Llama - 3 - 70B - Instruct) 為 FineWeb 數據集中的網頁樣本生成的 450k [標註](https://huggingface.co/datasets/HuggingFaceFW/fineweb - edu - llama3 - annotations) 進行訓練。
訓練過程
該分類器在 450,000 對網頁樣本及其 0 到 5 的分數上進行訓練,這些分數由 Llama3 生成。樣本根據其教育質量進行標註,0 表示無教育價值,5 表示教育價值高。
以下是用於 Llama3 標註的提示:
我們在 [Snowflake - arctic - embed](https://huggingface.co/Snowflake/snowflake - arctic - embed - m) 上添加了一個具有單一回歸輸出的分類頭,並以 3e - 4 的學習率對模型進行了 20 個 epoch 的訓練。在訓練期間,嵌入層和編碼器層被凍結,以專注於分類頭。當使用分數閾值 3 將模型轉換為二元分類器時,模型的 F1 分數達到了 82%。
訓練詳情
屬性 |
詳情 |
模型類型 |
在 Snowflake - arctic - embed 基礎上添加分類頭 |
訓練數據 |
來自 Llama3 標註的 450,000 個樣本 |
訓練輪數 |
20 |
學習率 |
3e - 4 |
評估指標 |
F1 分數 |
分類報告
我們將回歸模型的預測視為離散類別,以在 46867 個 Llama3 標註樣本的保留集上計算指標。
precision recall f1 - score support
0 0.75 0.49 0.59 5694
1 0.78 0.84 0.81 26512
2 0.57 0.61 0.59 10322
3 0.56 0.50 0.53 3407
4 0.58 0.35 0.44 807
5 0.33 0.01 0.02 125
accuracy 0.71 46867
macro avg 0.60 0.47 0.50 46867
weighted avg 0.71 0.71 0.71 46867
混淆矩陣
我們驗證了預測的教育分數確實接近其真實值,並且主要受到噪聲標註的影響。
2791 2858 45 0 0 0
919 22343 3180 69 1 0
y_true 3 3225 6330 757 7 0
1 66 1473 1694 173 0
0 4 98 420 283 2
0 0 18 85 21 1
y_pred
🔧 技術細節
該分類器基於 Transformer 架構,通過在 [Snowflake - arctic - embed](https://huggingface.co/Snowflake/snowflake - arctic - embed - m) 上添加分類頭進行訓練。在訓練過程中,凍結了嵌入層和編碼器層,專注於分類頭的訓練。通過將回歸模型的預測視為離散類別,在保留集上計算評估指標,如 F1 分數等。
📄 許可證
本項目採用 Apache - 2.0 許可證。
🔧 侷限性
雖然精細網絡教育分類器在為精細網絡數據集區分高質量教育內容方面表現良好,但仍存在一些侷限性:
⚠️ 重要提示
- 適用範圍:該模型在其他數據集上的性能可能會有所變化,特別是對於分佈外的樣本。它主要關注與小學和中學教育水平相關的教育內容,對於高等教育或專業領域的內容,其性能可能不佳。
- 偏差問題:模型的性能取決於訓練數據的質量和代表性以及用於標註的大語言模型(LLM)。兩者中的偏差都可能影響分類器的判斷。模型可能會對看起來更學術的內容給出較高分數,我們建議使用
int_score >= 3
作為數據整理的閾值。
- 上下文問題:分類器在評估單個網頁或摘錄時不考慮更廣泛的上下文,這可能會影響其在某些場景下的有效性。
訓練和推理代碼可在 GitHub 上獲取:
https://github.com/huggingface/cosmopedia/tree/main/classification