推出合成數據生成器 - 使用自然語言構建資料集
推出合成數據生成器,這是一款使用者友好的應用程式,採用無程式碼方法使用大型語言模型 (LLM) 建立自定義資料集。最棒的是:簡單的分步過程,使資料集建立變得非技術性且輕鬆,任何人都能在幾分鐘內建立資料集和模型,無需任何程式碼。
短片演示影片
什麼是合成數據,它為什麼有用?
合成數據是人工生成的資訊,旨在模擬真實世界的資料。它透過擴充套件或增強資料集來克服資料限制。
從提示到資料集再到模型
合成數據生成器接收您所需資料的描述(您的自定義提示),然後使用合成數據管道為您的用例返回一個數據集。在後臺,這由 distilabel 和 免費的 Hugging Face 文字生成 API 提供支援,但我們無需擔心這些複雜性,我們可以專注於使用 UI。
支援的任務
該工具目前支援文字分類和聊天資料集。這些任務將決定您將生成的資料集型別,分類需要類別,而聊天資料需要對話。根據需求,我們將隨著時間的推移新增評估和 RAG 等任務。
文字分類
文字分類常用於對客戶評論、社交媒體帖子或新聞文章等文字進行分類。生成分類資料集依賴於我們使用 LLM 處理的兩個不同步驟。我們首先生成多樣化的文字,然後為其新增標籤。一個合成文字分類資料集的良好示例是 argilla/synthetic-text-classification-news,它將合成新聞文章分為 8 個不同的類別。
聊天資料集
這種型別的資料集可用於監督微調 (SFT),這是一種允許 LLM 處理對話資料的技術,從而使使用者可以透過聊天介面與 LLM 互動。一個合成聊天資料集的良好示例是 argilla/synthetic-sft-customer-support-single-turn,它展示了一個旨在處理客戶支援的 LLM 示例。在此示例中,客戶支援主題就是合成數據生成器本身。
通常,文字分類和聊天資料集的每分鐘樣本生成速度分別為 50 和 20。所有這些都由免費的 Hugging Face API 提供支援,但您可以透過使用自己的帳戶並選擇自定義模型、API 提供商或生成配置來擴大規模。我們稍後將回到這一點,但首先讓我們深入瞭解基礎知識。
讓我們生成第一個資料集
我們將建立一個基本的聊天資料集。當您訪問生成器時,您必須登入才能允許該工具訪問您想要為其生成資料集的組織。這將允許該工具上傳生成的資料集。如果身份驗證失敗,您可以隨時重置連線。
登入後,UI 將引導您完成一個簡單的三步流程
1. 描述您的資料集
首先提供您要建立的資料集的描述,包括示例用例,以幫助生成器理解您的需求。請務必儘可能詳細地描述助手的目標和型別。當您點選“建立”按鈕時,將建立一個樣本資料集,然後您可以繼續進行第 2 步。

2. 配置和完善
透過調整根據您的描述生成的 系統提示
並調整特定於任務的設定來完善您生成的樣本資料集。這將幫助您獲得所需的特定結果。您可以透過點選“儲存”按鈕並重新生成樣本資料集來迭代這些配置。當您對配置滿意時,繼續進行第 3 步。

3. 生成並推送
填寫資料集名稱和組織的一般資訊。此外,您可以定義要生成的樣本數量以及生成時使用的溫度。此溫度代表生成的創造力。讓我們點選“生成”按鈕開始完整生成。輸出將直接儲存到 Argilla 和 Hugging Face Hub。

我們現在可以點選“在 Argilla 中開啟”按鈕,直接進入我們生成的資料集。
審查資料集
即使處理合成數據,瞭解和檢視資料也很重要,這就是我們建立與 Argilla 直接整合的緣故。Argilla 是一個協作工具,供 AI 工程師和領域專家構建高質量資料集。這使您可以透過語義搜尋和可組合過濾器等強大功能有效地探索和評估合成數據集。您可以在本指南中瞭解更多資訊。之後,我們可以將整理好的資料集匯出到 Hugging Face Hub,並繼續使用它微調模型。

訓練模型
別擔心;現在甚至無需程式碼即可使用 AutoTrain 建立強大的 AI 模型。要了解 AutoTrain,您可以檢視其文件。在這裡,我們將建立自己的 AutoTrain 部署,並像之前為合成數據生成器所做的那樣登入。
還記得開頭的 argilla/synthetic-text-classification-news 資料集嗎?讓我們訓練一個可以正確分類這些示例的模型。我們需要選擇任務“文字分類”並提供正確的“資料集源”。然後,選擇一個不錯的專案名稱並按下播放!關於成本的彈出警告可以忽略,因為我們仍在使用免費的 Hugging Face CPU 硬體,這對於這個文字分類示例來說已經足夠了。

瞧,幾分鐘後,我們就有了我們自己的模型!剩下的就是將其部署為即時服務,或者使用一些最少的 Python 程式碼將其用作文字分類管道。
高階功能
儘管您可以從提示到專用模型,而無需瞭解任何編碼知識,但有些人可能喜歡透過一些更高階的技術功能來定製和擴充套件其部署的選項。
提高速度和準確性
您可以透過建立工具的自有部署並將其配置為使用不同的引數或模型來提高速度和準確性。首先,您必須複製合成數據生成器。請確保將其建立為私有空間,以確保其他人無法訪問它。接下來,您可以更改一些環境變數的預設值。我們來回顧一些場景:
- 使用不同的免費 Hugging Face 模型。您可以透過將
MODEL
從預設值meta-llama/Llama-3.1-8B-Instruct
更改為不同的模型,例如meta-llama/Llama-3.1-70B-Instruct
來實現。 - 使用 OpenAI 模型。您可以透過將
BASE_URL
設定為https://api.openai.com/v1/
並將MODEL
設定為gpt-4o
來實現。 - 增加批處理大小,這將每分鐘生成更多樣本。您可以透過將
BATCH_SIZE
從預設值5
更改為更高的值,例如10
來實現。請注意,您的 API 提供商可能會限制每分鐘的請求數量。 - 私有 Argilla 例項。您可以透過將
ARGILLA_URL
和ARGILLA_API_KEY
設定為您的免費 Argilla 例項的 URL 和 API 金鑰來實現。
本地部署
除了在 Hugging Face Spaces 上託管該工具之外,我們還將其作為 Apache 2 許可下的開源工具提供,這意味著您可以前往 GitHub 並根據需要使用、修改和調整它。您可以透過簡單的 pip install synthetic-dataset-generator
將其安裝為 Python 包。請務必在建立時配置正確的環境變數。
自定義管道
每個合成數據管道都基於 distilabel,這是一個用於合成數據和 AI 反饋的框架。distilabel 是開源的;管道程式碼的酷炫之處在於它可共享且可重現。例如,您可以在 Hugging Face Hub 上的儲存庫中找到 argilla/synthetic-text-classification-news 資料集的管道。或者,您也可以找到許多其他 distilabel 資料集及其管道。
接下來呢?
合成數據生成器已經提供了許多酷炫的功能,使其對任何資料或模型愛好者都非常有用。儘管如此,我們的 GitHub 上仍有一些有趣的改進方向,我們邀請您貢獻、點贊並提出問題!我們正在進行的一些工作包括:
- 檢索增強生成 (RAG)
- 使用 LLM 作為判斷器進行自定義評估