跳到主要内容

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

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

SQL ConsoleSQL Console

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

通过 SQL Console,你可以:

  • 在数据集上运行 DuckDB SQL 查询(查看 SQL Snippets 获取有用的查询)
  • 通过链接与他人分享查询结果(查看此示例
  • 将查询结果下载为 Parquet 或 CSV 文件
  • 使用 iframe 在自己的网页中嵌入查询结果
  • 使用自然语言查询数据集
提示

你也可以通过 CLI 在本地使用 DuckDB,通过 hf:// 协议查询数据集。有关更多信息,请参阅 DuckDB 数据集文档。SQL Console 提供了一个方便的 Copy to DuckDB CLI 按钮,可生成用于创建视图并在 DuckDB CLI 中执行查询的 SQL 查询。

示例

筛选

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

SQL Console 筛选SQL Console 筛选

以下是根据推理长度排序的 SQL

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

直方图

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

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

SQL Console 直方图SQL Console 直方图

了解更多关于 histogram 函数和参数的信息,请访问这里

from histogram(train, Rating)

正则表达式匹配

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

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

SQL Console 正则表达式匹配SQL Console 正则表达式匹配

了解更多关于 DuckDB 正则表达式函数的信息,请访问这里

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

泄漏检测

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

SQL Console 泄漏检测SQL Console 泄漏检测

了解更多关于泄漏检测的信息,请访问这里

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;