Hub 文档

SQL Console:在浏览器中查询 Hugging Face 数据集

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

SQL Console:在浏览器中查询 Hugging Face 数据集

您可以使用 SQL Console 在浏览器中对数据集运行 SQL 查询。SQL Console 由 DuckDB WASM 提供支持,并完全在浏览器中运行。您可以从数据工作室访问 SQL Console。

要了解有关 SQL Console 的更多信息,请参阅 SQL Console 博客文章

通过 SQL Console,您可以:

  • 对数据集运行 DuckDB SQL 查询查看 SQL 片段 以获取有用的查询
  • 通过链接与他人分享查询结果(查看此示例
  • 将查询结果下载为 Parquet 或 CSV 文件
  • 使用 iframe 将查询结果嵌入到您自己的网页中
  • 使用自然语言查询数据集
您还可以通过 CLI 在本地使用 DuckDB,通过 `hf://` 协议查询数据集。有关更多信息,请参阅 DuckDB 数据集文档。SQL Console 提供了一个方便的“复制到 DuckDB CLI”按钮,可生成 SQL 查询,用于在 DuckDB CLI 中创建视图和执行查询。

示例

过滤

SQL Console 使过滤数据集变得非常容易。例如,如果您想过滤 `SkunkworksAI/reasoning-0.01` 数据集,以查找推理长度至少为 10 的指令和响应,您可以使用以下查询

以下是按推理长度排序的 SQL

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

直方图

许多数据集作者选择在数据集中包含数据分布的统计信息。使用 DuckDB `histogram` 函数,我们可以绘制列值的直方图。

例如,要绘制 Lichess/chess-puzzles 数据集中 `Rating` 列的直方图,您可以使用以下查询

在此处了解有关 `histogram` 函数和参数的更多信息:https://cfahlgren1-sql-snippets.hf.space/histogram

from histogram(train, Rating)

正则表达式匹配

DuckDB 最强大的功能之一是对正则表达式的深入支持。您可以使用 `regexp` 函数来匹配数据中的模式。

使用 regexp_matches 函数,我们可以过滤 GeneralReasoning/GeneralThought-195k 数据集中包含 Markdown 代码块的指令。

在此处了解有关 DuckDB 正则表达式函数的更多信息:https://duckdb.net.cn/docs/sql/functions/regular_expressions.html

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

泄露检测

泄露检测是识别数据集中是否存在多个拆分中(例如,测试集是否存在于训练集中)的过程。

在此处了解有关泄露检测的更多信息:https://huggingface.co/blog/lbourdois/lle

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;
< > 在 GitHub 上更新