Hub documentation

SQL Console: Kueri dataset Hugging Face di browser Anda

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SQL Console: Kueri dataset Hugging Face di browser Anda

Anda dapat menjalankan kueri SQL pada dataset di browser menggunakan SQL Console. SQL Console didukung oleh DuckDB WASM dan berjalan sepenuhnya di browser. Anda dapat mengakses SQL Console dari Data Studio.

Untuk mempelajari lebih lanjut tentang SQL Console, lihat artikel blog SQL Console.

Melalui SQL Console, Anda dapat:

  • Jalankan kueri SQL DuckDB pada dataset (lihat SQL Snippets untuk kueri yang berguna)
  • Bagikan hasil kueri dengan orang lain melalui tautan (lihat contoh ini)
  • Unduh hasil kueri ke file Parquet atau CSV
  • Sematkan hasil kueri di halaman web Anda sendiri menggunakan iframe
  • Kueri dataset dengan bahasa alami

Anda juga dapat menggunakan DuckDB secara lokal melalui CLI untuk menanyakan dataset melalui protokol hf://. Lihat dokumentasi DuckDB Datasets untuk informasi lebih lanjut. SQL Console menyediakan tombol Copy to DuckDB CLI yang praktis untuk menghasilkan kueri SQL guna membuat view dan menjalankan kueri Anda di DuckDB CLI. Sebagai alternatif, jalankan kueri yang sama dari terminal atau skrip dengan hf datasets sql.

Contoh

Penyaringan

SQL Console membuat penyaringan dataset menjadi sangat mudah. Misalnya, jika Anda ingin menyaring dataset SkunkworksAI/reasoning-0.01 untuk instruksi dan respons dengan panjang penalaran minimal 10, Anda dapat menggunakan kueri berikut:

Berikut adalah SQL untuk mengurutkan berdasarkan panjang penalaran

SELECT *
FROM train
WHERE LENGTH(reasoning_chains) > 10;

Histogram

Banyak penulis dataset memilih untuk menyertakan statistik tentang distribusi data dalam dataset. Dengan menggunakan fungsi histogram dari DuckDB, kita dapat membuat histogram dari nilai-nilai pada sebuah kolom.

Sebagai contoh, untuk membuat histogram kolom Rating dalam dataset Lichess/chess-puzzles, Anda dapat menggunakan query berikut:

Pelajari lebih lanjut tentang fungsi `histogram` dan parameternya di sini.

from histogram(train, Rating)

Pencocokan Regex

Salah satu fitur paling kuat dari DuckDB adalah dukungan mendalam untuk ekspresi reguler. Anda dapat menggunakan fungsi regexp untuk mencocokkan pola dalam data Anda.

Dengan menggunakan fungsi regexp_matches, kita dapat memfilter dataset GeneralReasoning/GeneralThought-195k untuk instruksi yang berisi blok kode markdown.

Pelajari lebih lanjut tentang fungsi regex DuckDB di sini.

SELECT *
FROM train
WHERE regexp_matches(model_answer, '```')
LIMIT 10;

API Query dan Embed yang Disimpan

Anda dapat membuat, memperbarui, dan menghapus embed SQL Console secara programatik. Embed adalah query yang disimpan, yang dapat dibagikan melalui tautan atau disematkan di halaman lain.

Buat embed:

POST /api/datasets/{namespace}/{repo}/sql-console/embed
Content-Type: application/json
Authorization: Bearer {token}

{
  "sql": "SELECT * FROM train LIMIT 10",
  "title": "Sample rows",
  "private": false,
  "views": [{"key": "default/train", "displayName": "Train", "viewName": "train"}]
}

Memperbarui embed:

PATCH /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Content-Type: application/json
Authorization: Bearer {token}

{
  "sql": "SELECT * FROM train LIMIT 20",
  "title": "Updated title",
  "private": true
}

Hapus embed:

DELETE /api/datasets/{namespace}/{repo}/sql-console/embed/{embed_id}
Authorization: Bearer {token}

Deteksi Kebocoran

Deteksi kebocoran adalah proses mengidentifikasi apakah data dalam dataset hadir di beberapa split, misalnya, apakah set uji hadir dalam set pelatihan.

Pelajari lebih lanjut tentang deteksi kebocoran di sini.

WITH
    overlapping_rows AS (
        SELECT COALESCE(
            (SELECT COUNT(*) AS overlap_count
             FROM train
             INTERSECT
             SELECT COUNT(*) AS overlap_count
             FROM test),
            0
        ) AS overlap_count
    ),
    total_unique_rows AS (
        SELECT COUNT(*) AS total_count
        FROM (
            SELECT * FROM train
            UNION
            SELECT * FROM test
        ) combined
    )
SELECT
    overlap_count,
    total_count,
    CASE 
        WHEN total_count > 0 THEN (overlap_count * 100.0 / total_count)
        ELSE 0
    END AS overlap_percentage
FROM overlapping_rows, total_unique_rows;
Update on GitHub