Hub documentation

SQL Konsolu: Hugging Face veri setlerini tarayıcınızda sorgulayın

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

SQL Konsolu: Hugging Face veri setlerini tarayıcınızda sorgulayın

Veri setinde tarayıcıda SQL sorguları çalıştırabilirsiniz. SQL Konsolu DuckDB WASM tarafından desteklenir ve tamamen tarayıcıda çalışır. SQL Konsoluna Data Studio üzerinden erişebilirsiniz.

SQL Console hakkında daha fazla bilgi için SQL Console blog yazısına göz atın.

SQL Konsolu aracılığıyla şunları yapabilirsiniz:

  • Veri setinde DuckDB SQL sorguları çalıştırın (useful queries için SQL Snippets bölümüne göz atın)
  • Sorgu sonuçlarını bir bağlantı üzerinden başkalarıyla paylaşın (bu örneğe göz atın)
  • Sorgunun sonuçlarını Parquet veya CSV dosyasına indirin
  • Sorgunun sonuçlarını bir iframe kullanarak kendi web sayfanıza yerleştirin
  • Doğal dil ile veri setlerini sorgulayın

DuckDB'yi hf:// protokolü üzerinden veri setini sorgulamak için yerel olarak CLI üzerinden de kullanabilirsiniz. Daha fazla bilgi için DuckDB Datasets belgelerini inceleyin. SQL Konsolu, görünüm oluşturan ve sorgunuzu DuckDB CLI'de çalıştıran SQL sorgusunu üreten kullanışlı bir Copy to DuckDB CLI düğmesi sunar. Alternatif olarak, aynı sorguları hf datasets sql ile bir terminalden veya betikten çalıştırabilirsiniz.

Örnekler

Filtreleme

SQL Konsolu, veri setlerini filtrelemeyi çok kolay hale getirir. Örneğin, SkunkworksAI/reasoning-0.01 veri setini, akıl yürütme uzunluğu en az 10 olan talimatlar ve yanıtlara göre filtrelemek istiyorsanız aşağıdaki sorguyu kullanabilirsiniz:

İşte akıl yürütme uzunluğuna göre sıralamak için SQL:

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

Histogram

Birçok veri seti yazarı, veri setindeki verilerin dağılımına ilişkin istatistikleri dahil etmeyi tercih eder. DuckDB histogram işlevini kullanarak bir sütunun değerlerinin histogramını çizebiliriz.

Örneğin, Lichess/chess-puzzles veri setindeki Rating sütununun histogramını çizmek için aşağıdaki sorguyu kullanabilirsiniz:

`histogram` fonksiyonu ve parametreleri hakkında daha fazla bilgiyi burada bulabilirsiniz.

from histogram(train, Rating)

Düzenli İfade Eşleştirme

DuckDB'nin en güçlü özelliklerinden biri, düzenli ifadeler için sağladığı derin destektir. Verilerinizdeki kalıpları eşleştirmek için regexp işlevini kullanabilirsiniz.

regexp_matches işlevini kullanarak, GeneralReasoning/GeneralThought-195k veri setini markdown kod blokları içeren talimatlar için filtreleyebiliriz.

DuckDB düzenli ifade (regex) işlevleri hakkında daha fazla bilgi için buraya bakın.

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

Kaydedilen Sorgular ve Gömme API'si

SQL Console gömülü içeriklerini programatik olarak oluşturabilir, güncelleyebilir ve silebilirsiniz. Gömülü içerikler, bağlantı üzerinden paylaşılabilen veya diğer sayfalara gömülebilen kayıtlı sorgulardır.

Gömme oluşturun:

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"}]
}

Bir gömme güncelle:

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
}

Bir gömme sil:

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

Kaçak Algılama

Leakage detection, bir veri setindeki verilerin birden fazla bölüntüde (split) bulunup bulunmadığını belirleme sürecidir; örneğin, test setinin eğitim setinde mevcut olup olmadığı.

Kaçak algılama hakkında daha fazla bilgi için buraya bakın.

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