自从约翰·麦卡锡提出“人工智能”这个术语以来的50年里,在识别、理解和自动化许多曾经是人类智能专属领域的符号和计算问题方面取得了很大进展。该领域仍有许多工作要做,因为在完成诸如识别照片中的物体等简单任务时,人类仍然明显优于最强大的计算机——孩子们甚至在学会说话之前就能做到这一点。
对于具有创新业务和技术想法的软件开发人员来说,人工智能的局限性是其约束。在当今这个企业比以往任何时候都更注重成本的商业环境中,需要庞大人力网络的项目会受到严格审查,并且常常因为建立和管理熟练人员网络来完成工作的成本超过完成工作的价值而被废弃。如果软件开发人员可以编程方式访问并将人类智能融入到他们的应用程序中,那么一整类创新的业务和应用程序将成为可能。这就是亚马逊 Mechanical Turk 的目标:1 让软件开发人员和企业能够使用人类智能作为其应用程序和业务的核心组成部分。借助亚马逊 Mechanical Turk,人们可以更自由地进行创新,因为他们现在可以将真实的人类智能注入到软件中。
1769年,沃尔夫冈·冯·肯佩伦制造了一个自动机,在国际象棋比赛中击败了许多人类对手。这个被称为“土耳其人”的木制人体模型在美国和欧洲巡回演出多年,击败了包括本杰明·富兰克林、拿破仑·波拿巴和埃德加·爱伦·坡在内的著名挑战者。2 这个自动机的秘密当然是隐藏在内部的人类国际象棋大师。就像它的同名一样,亚马逊的 Mechanical Turk 呈现出一个机械化的前端来隐藏或抽象化隐藏在内部的人类处理能力和智能。开发人员可以使用亚马逊 Mechanical Turk Web 服务 API 向亚马逊 Mechanical Turk 网站提交任务、批准已完成的任务,并将答案整合到他们的软件应用程序中。对于应用程序来说,这个事务看起来非常像任何远程过程调用:应用程序发送请求,服务返回结果。实际上,一个由人类组成的网络通过访问网站、搜索和完成任务以及获得工作报酬来驱动这种“人造人工智能”。这使得软件开发人员能够轻松且经济地构建程序,以按需、增量的方式利用全球范围、大规模并行、互联网规模的人力。
亚马逊识别出许多内部任务,这些任务适合由具有特定技能的个人组成的人力进行大批量处理。一些初始任务包括以下内容:
数据改进。 数千家商家将数百万种产品的数据加载到亚马逊的目录中。这可能会导致产品信息冲突、缺失或错误。在完成所有可能的自动检查之后,人工处理是解决冲突的最佳方式。
日语文本方向。 日语文本可以从左到右或从上到下书写。作为亚马逊从书籍内容的扫描图像创建可搜索索引的工作的一部分,文本识别系统必须被告知文本方向。任何精通书面日语的人都可以快速有效地浏览扫描图像并识别文本方向。
图像选择。 A9 的 BlockView 图像技术聚合了数百万张街道级图像,以在在线商业目录的上下文中创建可滚动的全景街道视图。在自动处理选择了几个候选图像后,人类智能用于选择最佳图像来代表每个街道地址和商家。
这些任务以及许多其他任务,具有许多共同属性:
高业务价值。 每个任务都以小而可衡量的方式为亚马逊的资产基础做出贡献。已完成任务的总价值足够高,可以对亚马逊目录或其他数字资产的质量产生有意义的影响。
高数量。 要完成的工作量很大,通常达到数百万甚至数千万个独立工作单元。
自包含。 每个任务都是自包含的,几乎不需要或根本不需要全局上下文。
以人为本。 每个任务都可以很好地利用人类技能,而这些技能要么不可能完全自动化,要么成本过高。
需求多样。 要完成的工作量每天都在变化。某一天可能会涌现数百万个工作单元。第二天可能会出现对完全不同类型工作的需求。工作量和类型的变化排除了简单地按天、按任务调整人员配备水平的做法。
在检查了这些任务(以及许多其他任务)之后,我们意识到了一些事情。从一开始,肯定有很多以亚马逊为中心的任务要完成。在与潜在的行业合作伙伴进行了一些初步讨论后,也很明显,许多其他组织也有类似的需求。一个自动化系统有空间在计算机和执行工作的人员之间进行协调:接受请求和付款信息;寻找和管理劳动力;跟踪进度、付款和声誉信息;执行质量控制;并将结果返回给请求组织。因此,亚马逊 Mechanical Turk 诞生于亚马逊和系统其他潜在用户的真实需求。
构建此系统的关键挑战包括可扩展性、声誉跟踪、问责制、质量控制和灵活性。
可扩展性。 设想中的系统每天将管理数百万甚至数千万个正在处理的任务。大量工作可能随时到达,许多工作人员可以同时登录并处理这些任务。可扩展性是必需的。
声誉跟踪。 如果没有一个系统来跟踪和控制单个工人的声誉,该系统将无法提供任何框架来认可和奖励优秀的工人。声誉跟踪对于为工人长期做好本职工作提供激励是必要的。
问责制。 这与声誉密切相关。个别工人必须在系统中拥有身份,并且他们需要认识到他们的工作对请求组织具有价值。在交易的另一方,请求组织必须对工人负责,以公平、公正和及时的方式管理质量控制和付款。
质量控制。 这将确保请求组织收到与其支付的费用相符的、准确度可接受的工作。
灵活性。 这将是一个通用系统,供亚马逊和其他公司使用。该系统的所有潜在用户都希望高效地创建和处理多种不同类型的任务,因此灵活性至关重要。
亚马逊 Mechanical Turk 为计算机向人类提出请求提供了接口。该系统提供 SOAP3 和 REST4 接口,用于创建和管理工作单元,也称为 HIT(人类智能任务)。软件应用程序调用亚马逊 Mechanical Turk 的 Web 服务接口,以请求人类执行最适合人类智能的任务。这些任务包括前面列出的任务以及许多其他任务,例如将段落文本从一种语言翻译成另一种语言、描述照片、转录播客或识别声音。有能力执行这些任务的人类找到、接受并完成它们,然后注册结果。当任务完成且结果可用时,请求应用程序会收到通知。每个任务都包含付款信息,并且一旦请求组织认为工作可以接受,人类就会获得报酬。
亚马逊 Mechanical Turk 系统管理任务提交、分配和完成,将合格人员与需要特定技能的任务相匹配,提供反馈机制以鼓励高质量的工作,并将任务详细信息和结果存储在 Web 服务接口之后。
Mechanical Turk 的五个关键概念是 HIT、工人、资质、分配和请求者。
HIT。 每个 HIT 都是一个细粒度的任务,例如“这张照片里有狗吗?”或“这段日语文本是垂直的还是水平的?”每个 HIT 可以有任意数量(零个或多个)的相关资质。HIT 使用问题语言指定,并最终呈现为基于 Web 的用户界面的一部分。HIT 可以向工人呈现文本和图形数据,并且可以使用标准 HTML 表单元素(例如文本输入字段、单选按钮、下拉菜单和复选框)接受工人的响应。
工人。 希望通过处理 HIT 赚钱的人类被称为工人。假定每个工人都有一些技能,这些技能可能适用于亚马逊 Mechanical Turk HIT。
资质。 这些是用于确保只有合格的工人才能访问某些 HIT 的测试或断言。资质可以验证特定工人是否具有特定技能,例如阅读法语的能力。每个 HIT 可以有任意数量(零个或多个)的相关资质。它们还可以验证工人以期望的成功率执行其他 HIT 的能力。资质可以根据答案键进行机器评分,也可以由请求者手动评分。
分配。 当工人决定执行特定 HIT 时,该 HIT 被称为已分配给该工人。请求者可以指定每个 HIT 所需的分配数量。此功能可用于使用多数原则实施质量控制系统。请注意,无论请求者为 HIT 指定了多少个分配,任何给定的 HIT 都永远不会分配给同一个工人多次。
多数原则是亚马逊 Mechanical Turk 世界中重要的质量控制机制。使用多数原则,请求者可以检测和保护自己免受低质量工人的侵害。假设 HIT 包含一张图像,并且向工人提出的问题是“这张照片里有狗吗?”为了使用亚马逊 Mechanical Turk 使用多数原则获得此问题的高质量答案,它被加载到系统中,最大分配计数为 5。该系统确保任何特定工人最多只能看到 HIT 一次。一旦大多数工人(在本例中为五分之三)对结果达成一致,请求者就可以接受该结果作为答案并继续进行。如果没有出现多数意见,通常意味着 HIT 是模棱两可的。
请求者。 有工作要完成的个人或组织被称为请求者。他们通常使用软件应用程序代表他们提交任务。此应用程序使用亚马逊 Mechanical Turk 的 Web 服务接口来加载任务和资质、批准已完成的工作并检索结果。请求者还必须在加载任务之前将付款信息存入他们的 Amazon.com 帐户。
请求者、资质、HIT 和工人都在亚马逊 Mechanical Turk 网站 (http://www.mturk.com) 上进行交互。让我们逐步了解这一切是如何结合在一起的。
准备。 请求者首先确定一些要完成的工作并设计 HIT。高质量的 HIT 是自包含的、无上下文的,并且可以使用系统的 Question Language 来表达。Question Language 允许在问题中使用以下类型的元素:文本;项目符号列表;具有关联 MIME 类型的二进制数据;单选按钮;下拉列表;复选框;和多项选择。
请求者定义资质(也使用 Question Language 表达),并决定工人的报酬(每个分配的价格)。请求者可以将价格设置为从 1 美分(美元)起的任何值。
资金。 请求者在亚马逊帐户中存款。此存款必须足以支付所有要加载的工作的工人工资。在工作完成之前依赖存款可以保护工人免受不道德的请求者的侵害,否则这些请求者可能会在不付款的情况下完成工作。请求者还必须额外存入他们将支付给工人工资的 10%;这代表亚马逊运营 Mechanical Turk 服务的费用。
初始化。 请求者的应用程序进行一系列 Web 服务调用,以将资质和 HIT 加载到 Mechanical Turk 中。作为来自每个 Web 服务调用的响应数据的一部分,系统返回标识符,供请求者在审批过程中使用。HIT 立即可供工人执行操作。
工作。 工人定期访问亚马逊 Mechanical Turk 站点以检查是否有工作要做。新类型 HIT 的宣传也在工人社区中使用许多博客 5 和在线论坛生成。工人寻找他们感兴趣的 HIT,以及他们可以满足任何资质的 HIT。然后,工人努力完成工作,接受 HIT 并将结果返回给系统以供批准。系统跟踪每个工人和每个请求者的众多统计数据。
批准。 一旦请求者将一批 HIT 加载到系统中,它将开始轮询可审查的 HIT——那些请求的分配数量已经发生并由工人提交的 HIT。每个轮询周期都会将所有此类分配返回给请求者,然后请求者执行任何最终检查或其他质量控制措施(可能使用多数原则模型)并批准每个可接受的分配。
最终确定。 一旦请求者批准分配,相应的付款就会发放给工人。请求者能够汇总来自整批 HIT 的结果,以供请求者自己的处理中使用。
如前所述,请求者通过其 Web 服务接口与亚马逊 Mechanical Turk 进行交互。请求者通常使用流行的语言(例如 C++、C#、Java 或 PHP)构建应用程序。请求者构建的应用程序有效地充当了请求者的内部数据和系统与亚马逊 Mechanical Turk 之间的桥梁和协调器。例如,如果请求者要使用亚马逊 Mechanical Turk 处理一些图形图像,则该应用程序将负责将这些图像从请求者的私有存储复制到 HIT 中,以及将工人提供的答案或其他信息复制回请求者管理或拥有的其他存储中。
每个 Web 服务请求都使用 HMAC(密钥哈希消息身份验证码)算法签名。HMAC 是一种加密哈希函数,用于验证请求。通过坚持签名请求,亚马逊系统能够高度确信请求者是代表自己而不是代表其他人提出请求。亚马逊为每位注册软件开发人员提供访问签名消息所需的私钥和公钥的权限。出于效率原因(HMAC 计算成本很高),亚马逊希望仅对每个请求的某些字段进行签名。
以下是一些更重要的 Web 服务调用:
潜在的请求者可以使用 Web 服务接口将其应用程序和业务逻辑连接到亚马逊 Mechanical Turk,使其成为其业务工作流程的组成部分。
Mechanical Turk 概念成功的关键在于一套制衡机制,这些机制可以保护系统免受工人或请求者有意或无意的滥用。主要的防御策略是使用统计措施。为每个工人保留的统计数据包括以下值:
还跟踪每种工人处理的 HIT 类型的其他统计数据。为请求者保留类似的统计数据,尽管它们目前不供外部使用。
作为一种访问互联网规模劳动力的简单有效的方法,亚马逊 Mechanical Turk 可以用于几乎无限多种不同的方式。以下是我们迄今为止收集的一些示例。其中一些是实际完成的应用程序;另一些是即将成熟的想法。
播客转录。 这已在 http://castingwords.com 上实施。该站点处理接受播客、选择要转录的剧集以及接受付款说明的过程。然后将选定的剧集映射到 HIT,预先合格的工人可以在其中访问它们。每个 HIT 中的工作包括收听单个播客剧集并生成高质量的对话文本记录。
语言翻译。 该系统已用于英法和法英翻译,并且可以用于任何可能的自然语言组合。
目录数据改进。 亚马逊已使用该系统对其产品目录执行了许多数据改进和验证过程。
数据收集。 几位请求者现在正在使用亚马逊 Mechanical Turk 来收集和评估城市到城市“前 3 名”项目(餐厅、剧院等)的列表。
图像标记。 给定图像,任务是输入少量描述图像特征的标签。
网站审查。 给定网站链接,任务是审查该网站并回答一系列关于该网站的选择题。
市场调查。 任务是回答一系列资格问题,然后进行市场调查。
声音验证。 任务是收听声音并验证它是否与描述相符。
面部图像验证。 任务是比较两张面部图像,并判断它们是否描绘的是同一个人。
大多数这些 HIT 的一个重要变体是使用辅助 HIT 来验证第一个 HIT。例如,高质量的法译英翻译已使用一对 HIT 实现。第一个 HIT 是翻译文本;第二个 HIT 是检查工作以验证翻译的准确性。这两个 HIT 实际上需要稍微不同的技能组合;许多可以阅读和验证翻译准确性的人不一定有资格创建翻译。
现有企业以及那些正在形成阶段的企业,可以将亚马逊 Mechanical Turk 模型视为一种基础设施组件,它将使他们能够利用按需、互联网规模的劳动力。我们期待看到围绕该系统构建的创新应用程序和商业模式。
JEFF BARR 作为亚马逊网络服务的福音传播者,专注于提高软件开发人员对该服务的认识。Barr 定期与美国和国际上的开发人员会面,以介绍亚马逊网络服务,并帮助他们使用该计划的服务构建业务和应用程序。他于 2002 年加入亚马逊,担任高级软件开发人员。
LUIS FELIPE CABRERA 是亚马逊网络服务的软件开发副总裁。在加入亚马逊网络服务之前,Cabrera 曾在微软和 IBM 担任多个职位。他在微软的职业生涯始于 Windows Base Group 存储管理架构师。他继续成为微软 Web 服务架构组的早期成员,在那里他为 Web 服务开发了许多分布式系统技术。他在微软的最后一项任务是在 SQL Server 团队中,负责数据库镜像功能。Cabrera 在 IBM 工作了 12 年,期间他成为 IBM 技术学院的成员。他参与的项目包括 QuickSilver、Starburst 和 ADSM。Cabrera 获得了加州大学伯克利分校的博士学位,并在那里担任计算机科学教授。
最初发表于 Queue vol. 4, no. 4—
在 数字图书馆 中评论本文
Mark Russinovich, Ahmed Salem, Santiago Zanella-Béguelin, Yonatan Zunger - 智能的代价
LLM 容易产生幻觉、提示注入和越狱漏洞,这对它们的广泛采用和负责任的使用构成了重大但可克服的挑战。我们认为这些问题是固有的,当然在当前这一代模型中是这样,而且很可能在 LLM 本身中也是如此,因此我们的方法永远不能基于消除它们;相反,我们应该应用“纵深防御”策略来缓解它们,并且在构建和使用这些系统时,要假设它们有时会在这些方向上失败。
Sonja Johnson-Yu, Sanket Shah - 你对人工智能一窍不通
长期以来,很难确定人工智能到底是什么。几年前,此类讨论会演变成长达数小时的会议,绘制维恩图并试图绘制人工智能不同子领域的地图。快进到 2024 年,我们现在都知道人工智能到底是什么了。人工智能 = ChatGPT。或者不是。
Jim Waldo, Soline Boussard - GPT 和幻觉
本实验的发现支持了这样一种假设,即基于 LLM 的 GPT 在更受欢迎且已达成普遍共识的提示下表现良好,但在有争议的主题或数据有限的主题上则表现不佳。应用程序响应的可变性强调,模型依赖于其训练数据的数量和质量,这与依赖于多样化和可信贡献的众包系统类似。因此,虽然 GPT 可以作为许多日常任务的有用工具,但应谨慎对待它们对晦涩和两极分化主题的参与。
Erik Meijer - 虚拟机械:将大型语言模型用作神经计算机
我们探索了大型语言模型 (LLM) 如何不仅可以充当数据库,还可以充当动态的、最终用户可编程的神经计算机。这种神经计算机的本机编程语言是一种受逻辑编程启发的声明性语言,它将思维链推理形式化和外部化,就像它可能发生在一个大型语言模型内部一样。