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

今天,DuckDB 和 Hugging Face 共同发布了一项公告,宣布在 DuckDB 中使用 hf://
前缀来访问 Hugging Face 存储库中的数据集,这为 AI 和 ML 领域的数据访问和轻量化带来了新的机遇。
您可以在此处查看完整公告 “使用 DuckDB 访问 Hugging Face 上的 15 万+ 数据集”。
过去,数据仓库中的大部分数据都来自组织内部,例如事务系统、企业资源规划 (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 数据集的集成。
如今,DuckDB 是 GitHub 上最受欢迎的数据库之一,在 DB-Engine 排名中也势头强劲。
使用 DuckDB,您可以轻松指向远程位置,例如 CSV、Excel、JSON、Parquet 等,而无需从 Amazon S3、Azure Blob 存储、Google Cloud Storage 等远程位置移动文件,即可对其进行分析。
Hugging Face 数据集
Hugging Face 数据集提供了来自不同来源的广泛数据集,包括学术研究、流行的基准任务和实际应用,其中包含超过 150,000 个用于人工智能的数据集。这些数据集经过整理、处理和标准化,以确保一致性和易用性,从而使访问、操作和探索用于训练和评估 AI 模型的数据集变得民主化。
在本教程中,我们上传了一个有趣的亿万富翁 CSV 文件,该文件来自 CORGIS 项目,CORGIS 项目收集了一些有趣的数据集,例如 COVID-19、亿万富翁、航空公司等。
在 Hugging Face — 亿万富翁数据集上查看本教程中使用的数据集。
让我们开始吧!🚀
使用 GPT-4o 和 DuckDB 查询 Hugging Face 数据集
从 Hugging Face 获取数据集 URL
首先,在这里查看 Hugging Face 亿万富翁数据集。
使用 hf:// 路径读取
处理数据时,您通常需要读取各种格式的文件(例如 CSV、JSONL 和 Parquet)。
现在,可以使用 hf://
路径查询它们,如下所示:
hf://datasets/⟨my_username⟩/⟨my_dataset⟩/⟨path_to_file⟩
在此示例中,您可以使用以下 URL 获取数据集:
hf://datasets/chilijung/Billionaires/billionaires.csv
安装 WrenAI
WrenAI 是一款开源的文本到 SQL 解决方案,可帮助数据团队通过提出业务问题而无需编写 SQL 来更快地获取结果和见解。
接下来,我们开始安装 WrenAI;在开始之前,您需要安装 Docker。
1. 在本地计算机上安装 Docker Desktop。
请确保 Docker Desktop 的版本至少为 >= 4.17。
2. 准备一个 OpenAI API 密钥
请确保您的 OpenAI API 密钥具有 完全权限(所有)。
访问 OpenAI 开发者平台。
为 WrenAI 生成一个新的 API 密钥,并授予**完全权限**。
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-4o
、gpt-4-turbo
、gpt-3.5-turbo
。
现在您会看到我们正在您的计算机上运行 docker-compose
;安装完成后,该工具将自动打开您的浏览器以访问 WrenAI。
设置 DuckDB 连接
终端成功安装后,它将启动浏览器。
在 UI 中,选择 DuckDB
,它会要求您提供连接详细信息。
在这里,您可以输入数据集的显示名称,例如 Billionaire
,并在 Initial SQL statements
中输入以下脚本。
URL 是我们之前展示的 hf://
路径。
CREATE TABLE billionaires AS
SELECT * FROM 'hf://datasets/chilijung/Billionaires/billionaires.csv';
然后点击 下一步
。在下一步中,选择您要在 WrenAI 中使用的表。
选择表格并点击下一步!
在此示例中,我们只有一个表,因此您可以跳过或直接单击 完成
;但如果您有多个表,您可以在此处定义语义关系,以帮助 LLM 理解并生成更准确的 SQL 连接。
现在一切准备就绪!
WrenAI UI 上的语义建模
在此示例中,我们只有一个模型(表),因此当您单击顶部的“建模”页面时,您将看到以下屏幕:
现在点击 billionaires
模型,右侧会弹出一个抽屉。
CORGIS 数据集
详细描述了每个列,我们可以将其添加到语义模型中。
向模型添加语义上下文。
复杂模式的数据建模
如果您有多个模型,您可以通过以下界面进行建模。
通过 WrenAI UI,您可以在语义上下文中对数据进行建模。这包括添加描述、定义关系、合并计算等等。通过提供此上下文,您可以帮助 LLM 理解您的业务术语和 KPI 定义,从而减少合并多个表时的错误。LLM 可以通过学习关系(例如表之间是多对一
、一对多
还是多对多
关系)来理解数据结构层次结构。
您可以通过 WrenAI 中的计算来定义您的业务 KPI 和公式。
在表之间添加语义关系。
开始提问
现在让我们切换到 主页
,您可以在那里发起新话题并开始向 WrenAI 提问。
然后,它将根据您的问题生成最佳的三个选项,如下所示:
选择其中一个选项,它将生成以下结果,并提供逐步细分和解释。
根据结果提出后续问题。
就这些了!
现在,借助 hf://
路径,您可以直接通过 WrenAI 连接到 Hugging Face 上多达 150,000 多个数据集,而无需费心处理文件!是不是很棒?
如果您喜欢我们的工作,请在 GitHub 上支持并收藏我们!
🚀 GitHub:https://github.com/canner/wrenai
🙌 网站:https://wrenai.cn/
如果您喜欢这篇文章,请不要忘记给 ⭐ WrenAI 在 Github 上点亮一颗星 ⭐,一如既往,感谢您的阅读。
原文来自 WrenAI 博客