Hugging Face 資料集 SQL 主控台

Hugging Face 推出了資料集 SQL 主控台,這是一個基於瀏覽器的工具,讓使用者能直接對託管於 Hugging Face Hub 的資料集執行 SQL 查詢。這使得使用者可以即時探索、篩選與轉換資料,無需下載資料或撰寫外部的 Python 程式碼。

基於瀏覽器的查詢(使用 DuckDB WASM)

SQL 主控台由 DuckDB WASM 提供動力,這是一個在 WebAssembly 上執行的內嵌式資料庫引擎。由於引擎完全在使用者的瀏覽器中運行,實現了 100% 本地執行,無需任何伺服器端的依賴。

主控台的主要功能包括:

  • 完整的 SQL 語法:支援 DuckDB 的 SQL 語法,類似於 PostgreSQL,並內建 JSON、列表、正則表達式與嵌入向量等函式。
  • 可匯出:查詢結果可直接匯出為 Parquet 檔案。
  • 可分享:對公共資料集的查詢結果可透過直接連結分享。

資料處理與 Parquet 轉換

SQL 主控台利用 Parquet 列式資料格式,以提升效能與儲存效率。系統的資料處理方式如下:

  • 直接載入:主控台直接從資料集的 Parquet 檔案載入資料。
  • 自動轉換:若資料集尚未採用 Parquet 格式,系統會自動將前 5GB 資料轉換為 Parquet,以支援查詢。
  • 視圖建立:主控台會根據資料集的設定與分割,自動建立視圖。

效能與技術限制

SQL 主控台設計用於處理大規模資料。例如,對 OpenCo7/UpVoteWeb 資料集(含 1260 萬列)執行過濾查詢,結果在 3 秒內返回。

然而,仍存在一些技術限制:

  • 記憶體限制:瀏覽器環境的記憶體上限約為 3GB。建議使用者使用 LIMIT 子句與過濾條件,以減少處理的資料量。
  • 功能相容性:DuckDB WASM 尚未與標準 DuckDB 引擎達到完整功能相容;尤其是目前不支援 hf:// 協定來查詢資料集。

實務應用:資料轉換

SQL 主控台可以取代傳統的 Python 前處理步驟,用於資料格式化。主要的使用情境是將資料集從 Alpaca 格式轉換為對話式格式(多輪對話),以供大型語言模型微調使用。

透過使用 struct_pack 函式,使用者可以建立包含「from」與「value」欄位的結構化列,分別對應使用者與助理。此轉換可在 30 秒內完成,且產生的資料集可下載為 Parquet 檔案,立即用於訓練流程。

進階應用案例

Hugging Face 已辨識出多個高價值的 SQL 主控台應用,包括:

  • 正則表達式過濾:使用正則表達式過濾特定函式呼叫的資料集。
  • 模型分析:利用 open-llm-leaderboard 資料集找出最受歡迎的基礎模型。
  • 相似度搜尋:使用嵌入向量執行相似度搜尋。
  • 品質過濾:篩選數萬筆資料,以挑選高品質的推理指示。

Sources