Page 2 of 2

什么是反向 ETL?实用指南

Posted: Mon Dec 02, 2024 10:37 am
by urrifat77
传统上,数据工程师必须专注于 ETL(提取、转换和加载)操作,这需要从多个来源提取数据,将其转换为适当的格式,然后将其加载到数据仓库中。然而,将这些数据操作化(使其可供常见的业务应用程序访问和使用)的必要性导致了反向 ETL 的发展。

在本文中,我们将探讨反向 ETL 的定义、它与传统 ETL 的区别以及可用于实施的工具。我们还将研究实际用例以展示其重要性。如果您是该主题的新手,请查看我们的Python 中的 ETL 和 ELT课程以及DataCamp 上的数据工程简介课程以开始学习。我们的数据管道入门代码是另一个非常有用的资源。

什么是反向 ETL?
反向 ETL 是从数据仓库中提取数据、对其进行转换以满足操作系统的要求,然后将其加载到其他系统中的过程。这种方法与传统的 ETL 形成对比,在传统的 ETL 中,数据从操作系统中提取、转换并加载到数据仓库中。

从历史上看,数据管理从 ETL 发展到 ELT(提取、加载、转换),以满足日益增长的实时数据处理需求。反向 ETL 代表了这一演变的最新一步。虽然 ETL 和 ELT 专注于集中数据,但反向 ETL 旨在通过使这些数据在第三方系统(如 CRM、营销平台和其他运营工具)中可操作来操作这些数据。

反向 ETL 的工作原理
我们说反向 ETL 是一种数据集成过程,它将洞察从数据仓库或分析平台转移到操作系统中。换句话说,它逆转了传统的 ETL 过程。现在让我们更仔细地看看每个步骤。

1.数据提取
该过程首先从数据仓库或分析平台中选择最相关的信息。这可能包括客户数据、销售指标或其他内容。在我们知道我们想要从存储中获取什么之后,我们可能仍需要过滤、聚合或以某种方式转换数据以满足我们的需求。

2.数据转换
下一步,将源系统中的数据映射到目标系 vk数据库 统中的相应字段。在此阶段,可以通过添加来自外部来源的字段来执行可选的数据丰富,例如将人口统计数据添加到客户资料中。可能还会进行其他转换,以使数据符合目标系统的要求,例如转换数据类型或处理日期格式。

3. 数据加载
最后,使用目标系统的 API 将转换后的数据加载到目标系统中,并进行实时或批量更新。错误处理机制(包括重试逻辑和恢复程序)可防止加载过程中出现问题。加载时将有一个过程来验证数据的完整性。

反向 ETL 的基本说明

反向 ETL 的基本图示。来源:napkin.ai


真实示例
举例来说,假设一个营销团队使用数据仓库来分析客户行为。反向 ETL 可以根据购买历史和人口统计数据提取客户细分,并将这些数据加载到营销自动化平台中。这使团队能够创建有针对性的活动并个性化客户互动。


反向 ETL 流程。来源:napkin.ai


反向ETL中的技术挑战和解决方案
虽然反向 ETL 前景光明,但它并不完美。对于数据工程师来说,确保所有数据准确无误并适应不同的、有时不熟悉的系统可能是一项挑战。最大的挑战之一是保持数据质量。不一致的数据可能导致错误的决策,因此严格的数据验证和清理过程非常重要。

数据量和速度也可能令人难以承受。高效处理大型数据集需要增量更新和变更数据捕获等策略。这些技术专注于仅处理必要的数据、优化性能和减少系统负载。另一个障碍是 API 复杂性。不同的系统具有不同的 API 功能。有效的 API 管理和标准化可以提供帮助。

ETL 与反向 ETL:巨大差异
ETL 是一种传统的数据集成方法,即从各种来源提取数据,将其转换为合适的格式,然后加载到数据仓库中。此过程涉及大量的前期数据清理和转换,因此需要大量资源和时间。

Image

另一方面,ELT 优先考虑速度和灵活性。数据从源中提取并以原始格式直接加载到数据仓库中。转换发生在数据仓库内,通常使用强大的查询引擎。这种方法利用了现代数据仓库的计算能力,并在数据探索和分析方面提供了更大的灵活性。

反向 ETL 的出现
ETL 和 ELT 专注于将数据移动到数据仓库,而反向 ETL 则采用不同的方法。它从数据仓库中提取转换后的数据并将其发送到操作系统,例如 CRM、营销自动化平台和客户支持工具。这使组织能够利用从数据分析中获得的见解来推动实时行动并改进业务流程。 从 ETL 到 ELT 的转变主要由以下因素驱动:

数据量和速度的增加:传统的 ETL 流程难以处理现代应用程序和物联网设备生成的大量数据。
云计算和数据仓库的进步:基于云的数据仓库和数据湖提供了 ELT 所需的可扩展性和处理能力。
强调数据敏捷性和探索:ELT 允许更快的实验和迭代数据分析。
从本质上讲,数据管理的发展是朝着更高的效率、灵活性和可操作洞察力迈进的旅程。ETL 奠定了基础,ELT 加速了数据提取和转换,而反向 ETL 通过将洞察力引入运营工作流来形成闭环。

ETL 和 ELT 之间的主要区别

Google BigQuery 与 Snowflake:全面比较

Posted: Mon Dec 02, 2024 10:37 am
by urrifat77
基于云的存储和计算框架,提供灵活、高性能的数据存储和分析功能。

企业现在可以将数据整合到集中式云存储中,并在同一环境中执行分析。云数据仓库对于现代数据分析至关重要,因为它可以支持实时数据处理、高级分析和机器学习应用程序。

谈到云数据仓库, Snowflake和Google BigQuery是两个主要选择。Snowflake 具有独特的架构,可将存储和计算资源分开,并且与云无关,可在任何环境中实现灵活性。

Google BigQuery 是 Google Cloud Platform 内完全托管的无服务器解决方案,擅长分析大量复杂数据集,并集成了机器学习功能。这两款产品都提供强大的数据存储、处理和分析功能,使数据专业人员能够更高效、更有效地利用数据回答业务问题。

随着组织不断积累大量数据,学习这些平台对于开始数据职业生涯起着至关重要的作用。

本指南将比较 Snowflake 与 BigQuery,探索它们的功能、相似之处和主要区别。我们将介绍这两种产品,展示它们的优点和缺点,并对性能、安全性和成本等关键功能进行一些关键比较。

什么是 Snowflake?
Snowflake 是一项云数据仓库服务,它拥有自己的架构,专注于提供灵活的资源扩展、成本管理和最小化延迟。如果您有兴趣了解更多信息,请查看我们的Snowflake 初学者入门文章。

Snowflake 的架构
Snowflake 的架构有三个主要原则:多集群计算、共享数据以及存储和计算资源的分离。

多集群计算
多集群计算是一种可扩展的架构,其中多个独立的计算集群(称为虚拟仓库)提供计算资源以满足需求。Snowflake 的自动扩展功能是一大优势,它会创建同一集群的更多副本以满足计算需求。

数据层
Snowflake 的数据层是其架构的重要组成部分,旨在实现高效的数据管理和存储。它既有中央存储库,又有分布式数据网络。中央数据存储库保存整个企业的数据,可供所有虚拟仓库访问。为了获得更好的性能和扩展性,虚拟仓库存储了整个数据集中最常用的一部分。

存储和计算分离
Snowflake 将存储与计算分离,允许每个计算集群独立于存储量进行扩展。存储层使用云存储来持久保存所有数据,而计算层由处理查询的虚拟仓库组成。这种分离可以实现更灵活的资源管理和成本控制。

Snowflake 主要功能
Snowflake 提供了几个关键功能,使其成为强大 vnpay 数据库 而灵活的数据仓库解决方案:

虚拟仓库
虚拟仓库是 Snowflake 的 MPP(大规模并行处理)计算集群,用于执行 SQL 查询。它们可以独立扩展或缩小,让用户能够根据特定的工作负载需求匹配计算能力。

此外,每个虚拟仓库都完全独立,不与其他仓库共享资源,确保每个虚拟仓库不会影响其他仓库的性能。这种灵活性可以实现高效的资源分配和成本管理,因为用户可以按需调整计算能力而不影响数据存储。

时间旅行
时间旅行功能允许用户访问一段特定时间内任意时间点的历史数据。此功能对于数据恢复、审计和分析数据随时间的变化非常有用。用户可以查询过去特定时间点的数据,甚至可以将表、架构或数据库恢复到以前的状态。

安全数据共享
Snowflake 的安全数据共享功能允许组织与其他 Snowflake 帐户共享实时、受管控的数据,而无需移动或复制数据。这种无缝共享直接在 Snowflake 内部进行,从而保持了数据的完整性和安全性。它使合作伙伴、供应商或客户能够实时访问数据,促进数据协作,同时确保数据治理和控制。

该图展示了 Snowflake 的架构

Snowflake 的主要架构(来源:docs.snowflake.com)

雪花的优点和缺点
Snowflake 凭借其架构设计和与云无关的基础,比其他云数据仓库解决方案具有许多优势。然而,它也有其弱点,包括潜在的高成本和复杂性。

优点
Snowflake 具有许多优势,因为它能够轻松与任何云系统集成、扩展灵活性并处理不同的工作负载。

不受云限制:连接到多个云提供商(包括 AWS、Azure 和 Google Cloud)非常简单。公司可以选择自己喜欢的云基础设施,甚至可以采用多云策略。
灵活扩展:该架构允许用户根据即时需求增加或减少计算容量(通过虚拟仓库)。这种灵活性可实现高效的资源利用,并有助于优化不同工作负载的成本。
多样化的工作负载处理:多集群共享数据架构擅长同时管理各种类型的工作负载。无论是数据加载、转换、临时查询还是复杂分析,Snowflake 都能高效地处理各种数据处理需求。
缺点
Snowflake 的扩展成本和管理复杂性存在一些缺点。更大的灵活性增加了管理的复杂性,而且定价可能有点难以预测。

Image

规模化运营成本更高:虽然 Snowflake 的定价模式对于许多用例来说都是具有成本效益的,但如果管理不善,其按秒计费的计算资源成本可能会在大规模运营中迅速上升。
管理复杂性:有效管理和优化 Snowflake 部署可能很复杂,尤其是对于大型组织而言。配置虚拟仓库、调整性能以及管理数据共享和安全策略都需要丰富的专业知识。
什么是 BigQuery?
BigQuery是 Google 的企业数据仓库,在Google Cloud Platform中具有强大的分析和机器学习功能。由于 BigQuery 是Google Cloud 生态系统的一部分,因此它能够与 Google Cloud 的其他组件(例如 Google Drive、Sheets 和 Cloud Storage)进行交互。这使用户能够在 Google Cloud Platform 内快速轻松地传输、分析和共享数据。

该图展示了 BigQuery 的架构

BigQuery 架构(来源:Google Cloud 博客)

BigQuery 架构
BigQuery 基于 Google 的 Dremel 引擎构建,该引擎专注于可扩展的计算资源,允许对只读列数据进行实时分析。

要使用 BigQuery,用户将拥有一个基于 SQL 的界面,您可以在其中运行优化的 GoogleSQL。它的运行方式与 MapReduce 类似,它使用查询执行引擎、逻辑规划器和查询解析器进行优化。

主要区别在于 Dremel 利用聚合树执行查询,从而实现实时分析,而 MapReduce 框架自然存在一些延迟。

开始使用 Polars GPU 加速:查询速度提高 13 倍

Posted: Mon Dec 02, 2024 10:37 am
by urrifat77
最近,我有幸在 NVIDIA RAPIDS cuDF 支持的 Polars GPU 引擎公开测试版发布之前抢先体验了它。这项尖端功能有可能通过 NVIDIA GPU 将 Polars 操作速度提高 13 倍,从而改变数据工作流程。如果您使用 Python 处理大规模数据集,那么这是一个不容错过的重大改变。

在这篇博文中,我将解释有关新 Polars GPU 引擎的所有信息,并提供分步指南来帮助您入门!

图像并排显示了 Polars 和 NVIDIA 的徽标

Polars:高性能 DataFrame 库
大多数数据科学工作流程的核心是 DataFrame,这是一种表格 博蒂姆数据库 数据结构,既灵活又直观,可用于处理结构化数据。简而言之,数据科学领域的每个人都使用过 DataFrame。

DataFrames 可以轻松地操作、探索和分析数据,为数据清理、过滤、分组和转换数据提供熟悉且一致的界面。

然而,在大数据环境下,传统的 DataFrame 库可能缺乏性能和可扩展性,而这正是 Polars 发挥作用的地方。

Polars是一个快速、高效的 DataFrame 库,已迅速成为高性能数据处理的首选。Polars 用 Rust 从头编写而成,旨在贴近硬件运行,优化速度和资源使用率,而无需依赖外部依赖项。

Polars 简介博客文章是开始使用 Python 中的该库的绝佳资源。

该图显示了最流行的 DataFrame 库的性能比较图

比较最流行的 DataFrame 库的性能。图片来源:Polars

Polars 发布的基准测试结果(如上图所示)表明,Polars 在不同查询中的表现始终优于 Pandas、Modin、PySpark 和 Dask 等其他库。这些结果凸显了 Polars 作为高性能数据处理最快选择的优势。

但这怎么可能呢?以下是 Polars 速度飞快的一些特点:

用 Rust 编写:它使用低级编程来执行操作,并保持接近硬件。
I/O 灵活性:它为所有常见的数据存储层提供一流的支持,无论是本地、云存储还是连接到数据库。
直观的 API:Polars API 允许您直观地编写查询。Polars 查询优化器在内部确定最有效的执行计划,从而最大限度地减少时间和内存使用。
核外处理:Polars 的流式 API 允许您处理太大而无法放入内存的数据集。
并行执行:Polars 自动利用所有可用的 CPU 核心,在它们之间划分工作负载而无需额外配置,从而最大限度地发挥机器的计算能力。
矢量化查询引擎:Polars 使用 Apache Arrow(一种列式数据格式)和 SIMD(单指令、多数据)以矢量化方式处理查询,以进一步优化 CPU 使用率。
随着最近 Polars GPU 引擎的公开测试版发布,它将变得更加快!

获得 Python 认证
展示你是一名具备 Python 工作资格的数据科学家
了解 NVIDIA RAPIDS cuDF 集成
近年来,随着数据集扩展到数亿甚至数十亿行,对更快数据处理和分析的需求呈指数级增长。为了应对这一挑战,数据科学领域已逐渐从传统的基于 CPU 的处理转向 GPU 加速计算。这就是 NVIDIA RAPIDS cuDF 发挥作用的地方。

NVIDIA RAPIDS是一套开源库,可实现 GPU 加速的数据科学和分析。RAPIDS 的核心旨在利用 NVIDIA GPU 的大规模并行性来加速通常受 CPU 限制的任务,从而简化数据工作流程。

在 RAPIDS 中,cuDF是负责 DataFrame 操作的库。cuDF 将熟悉的 DataFrame 抽象扩展到 GPU 内存,允许集成到数据工作流中而无需大量代码更改。该库支持数据科学家对 DataFrame 执行的所有关键操作:过滤、聚合、合并和排序,所有这些都由 GPU 提供支持以提高速度。

NVIDIA和Polars刚刚宣布推出由 RAPIDS cuDF 提供支持的 Python Polars GPU 引擎的公开测试版。这一新功能标志着高性能数据处理的重大飞跃,为使用 NVIDIA GPU 的 Polars 用户提供高达 13 倍的工作流程速度!

Image

包括 GPU 引擎的 Polars API 高级设计图像

Polars API 的高级设计,包括 GPU 引擎。图片来源:Polars

通过添加 GPU 引擎,Polars 用户可以决定在哪个引擎上运行其数据工作负载。Polars 优化器支持所有引擎,可动态确定哪些查询可以在 GPU 或 CPU 上执行。

Polars GPU 引擎:改变游戏规则的引擎
现在,您已经了解了 Polars 和 NVIDIA RAPIDS cuDF 库的一些背景知识,以及两者如何集成并通过 Python Polars API 提供。但这对开发人员和数据科学家意味着什么?

以下是 Polars GPU 引擎功能概述:

与 Python Polars Lazy API 集成:用户可以简单地传递engine="gpu"给collect()Polars 的 Lazy API 中的操作,从而无需进行重大的代码更改即可实现 GPU 处理。
大型数据集的交互式处理:GPU 引擎旨在使处理数亿行数据变得具有交互性。使用单个 GPU,您可以处理需要更复杂、更慢的解决方案的海量数据。
效率优化:Polars GPU 引擎充分利用 Polars 优化器来确保执行尽可能高效,最大限度地减少处理时间和内存使用量。
优雅的 CPU 回退:如果 GPU 不支持特定查询,引擎会提供 CPU 回退功能。这可确保工作流程不间断,并在需要时自动恢复到 CPU 处理。

Dagster 与 Airflow:比较现代数据堆栈的顶级数据编排工具

Posted: Mon Dec 02, 2024 10:38 am
by urrifat77
似乎每次你浏览 LinkedIn 时,本已拥挤不堪的数据环境中都会出现一种新工具。随着数据团队不断增加“数据堆栈”的组件,他们需要一种方法来管理和连接这些不同的工具。

数据编排是开发、执行和监控整个数据生态系统中组合、转换和组织数据的流程的过程。为此,数据工程师使用数据编排工具。在这里,我们将探索两种最流行的编排工具:Apache Airflow 和 Dagster。让我们开始吧!

什么是 Airflow?
Airflow 是构建、运行和监控数据管道的行业标准。它最初由 Airbnb 的数据工程团队于 2014 年开发。从那时起,该项目已被 Apache 软件基金会采用,并成为其许可下最受欢迎的产品。

Airflow 每月的下载量超过三千万次,拥有一个充满活力的贡献者和用户社区。在 Airflow 中,数据管道被称为 DAG,即有向无环图。

您可以在我们的Apache Airflow 入门教程中了解有关 Airflow 的更多信息。

什么是 Dagster?
与 Airflow 一样,Dagster 是一种编排工具,允许用户使用代码编写数据管道。它是开源的,最初于 2019 年推出。Dagster 使用 Python 来定义“资产”,这是数据管道的构建块。

Dagster 已成为 Airflow 在相对不拥挤领域的竞争对手。该项目由其开源社区维护,并由 Dagster Labs 提供商业支持。

连接现代数据堆栈
那么,Airflow 和 Dagster 在现代数据堆栈中处于什么位置?我们将从下面的架构图开始。

一个架构图,展示了现代数据堆栈中的许多工具,以及如何使用 Airflow 和 Dagster 来协调这些工具之间的数据流。

包含现代数据堆栈中使用的常用工具示例的架构图。

此架构图显示了许多人认为的标准数据堆栈。它由源系统、数据仓库和转换工具以及下游“目标”(例如 Tableau 和 Looker)组成。

这里,Airflow 和 Dagster 是连接这个数据生态系统的箭头。如果没有编排工具,就很难将数据从一个工具移动到另一个工具。

Airflow 和 Dagster 等编排工具还提供了一个可观察性层,使得人们可以轻松了解数据从源到目的地在何处、如何和何时传输,以及在此过程中如何操作数据。

Dagster 与 Airflow:主要特点和功能
您可能已经猜到了,Airflow 和 Dagster 在预期用途 投资者数据库 和在现代数据堆栈中扮演的角色方面有许多相似之处。这些包括:

能够编写管道代码
与现代数据堆栈的内置集成
本地开发经验
然而,每种产品都有一套独特的特性和功能,可以独立存在。

空气流动
让我们首先了解一下 Airflow 的一些主要功能:

了解 Airflow 和 DAG
在 Airflow 中,数据管道称为 DAG(有向无环图的缩写)。可以将 DAG 视为按特定顺序连接的任务集合。DAG 的最基本构建块是任务。例如,在执行提取、转换和加载(ETL) 的管道中,“转换”步骤将是其自己的任务。

这些任务通常使用 Airflow 操作符来定义。但是,您很快就会看到,还有另一种方法可以使用 TaskFlow API 来定义任务。

在 Airflow 中调度 DAG
在 Airflow 中调度管道具有无限灵活性。需要每天运行管道?没问题。希望它在每个月的第一个星期五执行?这也很容易。现在,如果您的经理要求您在更新数据集时触发 DAG,该怎么办?Airflow 也可以处理这个问题。

在调度 DAG 时,Airflow 提供了大量 自定义选项。借助 CRON、时间表和数据感知调度等功能,您可以将 DAG 设置为在需要时运行。

Image

任务流 API
为了让数据专业人员更容易编写 DAG,Airflow 社区推出了 TaskFlow API。与使用运算符的传统方法不同,TaskFlow API 允许您通过简单地修饰函数来定义任务。这使得在任务之间共享数据和建立任务依赖关系变得更加容易和直观。

此外,Astro SDK 等工具是在 TaskFlow API 之上构建的,进一步扩展了其功能。

达格斯特
让我们来比较一下 Dagster 的情况:

Dagster 的基于资产的方法
Dagster 采用独特的基于资产的方法来构建数据管道。在 Dagster 中,存储在持久存储中的任何数据对象(如文件或表)都称为资产。

这些资产是使用 Python 函数在代码中定义的。执行这些函数时,Dagster 会自动创建依赖项并具体化资产。这种以资产为中心的方法可以轻松跟踪管道内数据的生成和使用方式。

理解 Dagster 中的 Ops
Dagster 中的另一个关键概念是“ ops ”,它有点类似于 Airflow 中的任务。Ops 表示数据管道中的各个步骤,每个 op 都有可能由资产组成的输入和输出。此外,这些输入和输出可以进行类型化,以明确定义正在处理的数据。

OpenAI o1 指南:工作原理、用例、API 等

Posted: Mon Dec 02, 2024 10:38 am
by urrifat77
当我们都在等待GPT-5 的时候,OpenAI 于 2024 年 9 月 12 日发布了OpenAI o1 ,让所有人大吃一惊。

OpenAI将计数器重置为 1,并将其命名为 OpenAI o1,强调与传统GPT 系列相比,其对推理的独特关注。这标志着新的 OpenAI o 系列的开始,类似于我们熟知的 GPT 系列。

初始版本o1-preview已经在数学、编码和解谜等广泛领域的标准基准测试中展示了令人印象深刻的结果。

此外,o1 标志着大型学习模型 (LLM)训练方法的转变,更加重视专用于训练和推理阶段的计算资源。

O1 型号并非旨在在所有情况下取代 GPT-4o。对于需要图像输入、函数调用或持续快速响应时间的应用程序,GPT-4o 和 GPT-4o mini 型号仍然是最佳选择。

继续阅读以了解有关新 O1 型号的更多信息!

OpenAI o1 的工作原理
与 o1 交互时,你会注意到的第一件事是,与 GPT-4o 相比,它生成响应的时间明显更长。这种刻意的停顿反映了模型对推理的重视。O1 在响应之前会花更多时间“思考”,这使其能够处理复杂的任务并解决逻辑、数学、编码和科学方面的更难的问题。

OpenAI o1-preview 尝试解决 Monthy hall 问题

OpenAI o1-preview 正在解决蒙提霍尔问题

强化学习和思路链
O1的卓越推理是通过强化学习和思路链推 rcs 数据库 理的结合实现的。

通过强化学习,模型学会改进其思维过程,探索不同的策略,识别错误,并调整其方法以得出最准确和最合乎逻辑的解决方案。

另一方面,思维链推理是一种将复杂问题分解为更小、更易于管理的部分的技术。这种方法允许人们“先思考再回答”,就像在开始烹饪之前精心规划复杂食谱的步骤一样。

通过明确地阐述其推理过程,o1 可以及早发现潜在错误并增加得出正确解决方案的可能性,就像我们人类在仔细概述我们的思维过程时不太可能犯错误一样。

OpenAI o1 使用思路链推理,这使得它在数学、科学和编码等领域特别有效,因为在这些领域获得正确答案通常需要多个步骤。

计算分配的新范式
OpenAI o1 的一个关键区别在于其对计算资源的战略性重新分配。虽然传统的 LLM 主要侧重于大量预训练数据集,但 o1 将重点转向训练和推理阶段。

这种转变表明,为这些阶段分配更多的计算可以显著提高复杂的推理能力。

OpenAI o1 准确度-计算权衡

来源:OpenAI

上图显示了在应对具有挑战性的 AIME(美国邀请数学考试)时,增加计算资源对 OpenAI 的 o1 模型性能的影响。它包含两个图表,每个图表都绘制了模型的准确性与专用于训练或测试(推理)的计算能力的关系。

两张图都呈现出明显的正相关性:随着计算资源的增加,模型在第一次尝试解决 AIME 问题时的准确率也会提高。值得注意的是,这种关系在测试时间图中更为明显,这表明在解决问题时给予模型更多时间“思考”可以显著提高性能。

这一观察结果强调了 o1 的计算密集型特性,凸显了其对大量计算资源的依赖。然而,两张图中的上升趋势也意味着,通过更多的计算,准确率有可能进一步提高,为未来人工智能推理能力的发展提供了有希望的途径。

OpenAI O1 基准测试:更擅长推理繁重的任务
为了展示 o1 相对于 GPT-4o 增强的推理能力,OpenAI 在各种具有挑战性的数学、编码和科学基准上对该模型进行了评估。

人体检查
人工检查表明,o1 的表现始终优于 GPT-4o。

OpenAI o1 人类考试基准性能比较

实线表示 pass@1 准确率,阴影区域表示 64 个样本的多数投票(共识)表现。资料来源:OpenAI

也许最引人注目的观察是 GPT-4o 与 o1(甚至 o-1 预览版)在数学和编码基准上的性能巨大飞跃。

虽然在科学领域的改进并不明显,但值得注意的是,o1-preview 和经过全面优化的 o1 模型在博士级科学问题上的表现都优于人类专家。这表明 o1 有潜力解决复杂的现实问题,甚至在某些领域超越人类水平的表现。

Image

OpenAI o1 在遗传学领域有潜在的用途。
除了学术基准之外,OpenAI 还寻求人类反馈,以在不同领域一系列具有挑战性的开放式问题上比较 o1-preview 和 GPT-4o。人类训练员会收到来自两个模型的匿名回复,并被要求选择他们喜欢的模型。