如何使用 DuckDB 直接访问 15 万+ Hugging Face 数据集,并使用 GPT-4o 进行查询

社区文章 发布于 2024 年 5 月 31 日

image/png

今天,DuckDB 和 Hugging Face 共同发布了一项公告,宣布在 DuckDB 中使用 hf:// 前缀来访问 Hugging Face 存储库中的数据集,这为 AI 和 ML 领域的数据访问和轻量化带来了新的机遇。

您可以在此处查看完整公告 “使用 DuckDB 访问 Hugging Face 上的 15 万+ 数据集”

image/png

过去,数据仓库中的大部分数据都来自组织内部,例如事务系统、企业资源规划 (ERP) 应用程序、客户关系管理 (CRM) 应用程序以及类似的来源。

这些数据的结构、数量和速率都相当可预测且众所周知。然而,随着云技术的兴起,越来越多的数据来自外部来源,这些来源的可控性较低,例如应用程序日志、Web 应用程序、移动设备、社交媒体以及物联网中的传感器数据。这些数据通常以无模式、半结构化的格式到达。传统的数据仓库解决方案难以处理这种新型数据,因为它们依赖于深度 ETL(提取、转换、加载)管道和物理调优,这假定来自主要是内部来源的可预测、缓慢移动、易于分类的数据。

使用 DuckDB 访问 Hugging Face 上的 15 万+ 数据集,并使用 GPT-4o 查询数据

在今天的教程中,**我们将使用 DuckDB 直接从 Hugging Face 加载数据,无需下载到本地计算机,并使用 WrenAI 作为连接到 GPT-4o 的界面,用户可以向数据集提出业务问题并获得答案**;通过此操作,您可以使用 hf:// 路径访问 Hugging Face 数据集,通过语义建模定义语义含义,并提出有关数据集的任何问题,LLM GPT-4o 将理解您的查询并进行查询以检索答案。

什么是 DuckDB?

DuckDB 是一个快速的进程内分析型数据库,它在数据和 AI 社区中获得了广泛的采用,例如 Hugging Face 提供了 DuckDB 与其 Hugging Face 数据集的集成

image/png

如今,DuckDB 是 GitHub 上最受欢迎的数据库之一,在 DB-Engine 排名中也势头强劲。

image/png

image/png

使用 DuckDB,您可以轻松指向远程位置,例如 CSV、Excel、JSON、Parquet 等,而无需从 Amazon S3、Azure Blob 存储、Google Cloud Storage 等远程位置移动文件,即可对其进行分析。

Hugging Face 数据集

image/png

Hugging Face 数据集提供了来自不同来源的广泛数据集,包括学术研究、流行的基准任务和实际应用,其中包含超过 150,000 个用于人工智能的数据集。这些数据集经过整理、处理和标准化,以确保一致性和易用性,从而使访问、操作和探索用于训练和评估 AI 模型的数据集变得民主化。

image/png

在本教程中,我们上传了一个有趣的亿万富翁 CSV 文件,该文件来自 CORGIS 项目,CORGIS 项目收集了一些有趣的数据集,例如 COVID-19、亿万富翁、航空公司等

Hugging Face — 亿万富翁数据集上查看本教程中使用的数据集。

让我们开始吧!🚀

使用 GPT-4o 和 DuckDB 查询 Hugging Face 数据集

从 Hugging Face 获取数据集 URL

首先,在这里查看 Hugging Face 亿万富翁数据集

image/png

使用 hf:// 路径读取

处理数据时,您通常需要读取各种格式的文件(例如 CSV、JSONL 和 Parquet)。

现在,可以使用 hf:// 路径查询它们,如下所示:

hf://datasets/⟨my_username⟩/⟨my_dataset⟩/⟨path_to_file⟩

在此示例中,您可以使用以下 URL 获取数据集:

hf://datasets/chilijung/Billionaires/billionaires.csv

安装 WrenAI

image/png

WrenAI 是一款开源的文本到 SQL 解决方案,可帮助数据团队通过提出业务问题而无需编写 SQL 来更快地获取结果和见解。

接下来,我们开始安装 WrenAI;在开始之前,您需要安装 Docker。

1. 在本地计算机上安装 Docker Desktop。

请确保 Docker Desktop 的版本至少为 >= 4.17。

2. 准备一个 OpenAI API 密钥

请确保您的 OpenAI API 密钥具有 完全权限(所有)

访问 OpenAI 开发者平台

image/png

为 WrenAI 生成一个新的 API 密钥,并授予**完全权限**。

image/png

3. 安装 WrenAI Launcher

如果您使用的是 Mac(使用 Windows 或 Linux 请点击此处查看),请输入以下命令安装最新的 WrenAI Launcher。

curl -L https://github.com/Canner/WrenAI/releases/latest/download/wren-launcher-darwin.tar.gz | tar -xz && ./wren-launcher-darwin

启动器将要求您输入 OpenAI API 密钥,如下所示,将您的密钥粘贴到命令中并按 Enter 键。

选择 gpt-4o

现在您可以在 WrenAI 中选择 OpenAI 的生成模型 gpt-4ogpt-4-turbogpt-3.5-turbo

image/png

现在您会看到我们正在您的计算机上运行 docker-compose;安装完成后,该工具将自动打开您的浏览器以访问 WrenAI。

image/png

设置 DuckDB 连接

终端成功安装后,它将启动浏览器。

image/png

在 UI 中,选择 DuckDB,它会要求您提供连接详细信息。

image/png

在这里,您可以输入数据集的显示名称,例如 Billionaire,并在 Initial SQL statements 中输入以下脚本。

URL 是我们之前展示的 hf:// 路径。

CREATE TABLE billionaires AS 
  SELECT * FROM 'hf://datasets/chilijung/Billionaires/billionaires.csv';

然后点击 下一步。在下一步中,选择您要在 WrenAI 中使用的表。

image/png

选择表格并点击下一步!

image/png

在此示例中,我们只有一个表,因此您可以跳过或直接单击 完成;但如果您有多个表,您可以在此处定义语义关系,以帮助 LLM 理解并生成更准确的 SQL 连接。

现在一切准备就绪!

image/png

WrenAI UI 上的语义建模

在此示例中,我们只有一个模型(表),因此当您单击顶部的“建模”页面时,您将看到以下屏幕:

image/png

现在点击 billionaires 模型,右侧会弹出一个抽屉。

image/png

CORGIS 数据集详细描述了每个列,我们可以将其添加到语义模型中。

image/png

向模型添加语义上下文。

image/png

复杂模式的数据建模

如果您有多个模型,您可以通过以下界面进行建模。

image/png

通过 WrenAI UI,您可以在语义上下文中对数据进行建模。这包括添加描述、定义关系、合并计算等等。通过提供此上下文,您可以帮助 LLM 理解您的业务术语和 KPI 定义,从而减少合并多个表时的错误。LLM 可以通过学习关系(例如表之间是多对一一对多还是多对多关系)来理解数据结构层次结构。

您可以通过 WrenAI 中的计算来定义您的业务 KPI 和公式。

image/png

在表之间添加语义关系。

image/png

开始提问

现在让我们切换到 主页,您可以在那里发起新话题并开始向 WrenAI 提问。

然后,它将根据您的问题生成最佳的三个选项,如下所示:

image/png

选择其中一个选项,它将生成以下结果,并提供逐步细分和解释。

image/png

根据结果提出后续问题。

image/png

就这些了!

现在,借助 hf:// 路径,您可以直接通过 WrenAI 连接到 Hugging Face 上多达 150,000 多个数据集,而无需费心处理文件!是不是很棒?


如果您喜欢我们的工作,请在 GitHub 上支持并收藏我们!

🚀 GitHub:https://github.com/canner/wrenai

🙌 网站:https://wrenai.cn/

📫 订阅:https://blog.getwren.ai/

如果您喜欢这篇文章,请不要忘记给 ⭐ WrenAI 在 Github 上点亮一颗星 ⭐,一如既往,感谢您的阅读。

原文来自 WrenAI 博客

社区

注册登录 发表评论