订阅以接收新文章的通知:

Workers AI:Cloudflare 全局网络的无服务器 GPU 驱动推理

2023/09/27

15 分钟阅读时间

只要您与开发人员社区有任何接触,就几乎不可能忽视人工智能最近取得的进展对这个生态系统产生的影响。无论您是在工作流程中使用人工智能来提高生产力,还是向用户提供基于人工智能的功能,它无处不在。对人工智能改进的关注,我们对即将到来的机会感到非常兴奋,但这还不够。

不久前,如果您想利用人工智能的力量,你需要彻底了解机器学习,并能够管理为其提供支持的基础设施。

作为一个拥有上百万活跃开发人员的开发人员平台,我们相信还有非常巨大潜力有待挖掘,所以我们正在改变向开发人员提供人工智能的方式。当前许多解决方案虽然功能强大,但基于封闭的专有模型,没有解决开发人员和用户要求的隐私需求。另一方面,开源领域涌现出了许多强大的模型,但并非每个开发人员都能轻易使用它们。想象一下,您可以通过您的代码运行一个模型,无论它托管在哪里,而且无需寻找 GPU 或设置支持该模型的基础设施。

因此,我们非常兴奋能够推出 Workers AI:这是一个人工智能推理即服务平台,赋能开发人员,仅用几行代码就能运行 AI 模型,全部由我们的全球 GPU 网络提供支持。它开放,易用,无服务器、注重隐私,靠近用户运行,随用随付,从头开始构建以提供一流的开发体验。

Workers AI —— 轻松运行推理

我们推出 Workers AI ,旨在让每个开发人员都能进行推理,为了实现这个目标,它应该开箱即用。我们是如何做到这一点的?

  • 从核心来看,它运行在正确的基础设施上 —— 我们的世界级 GPU 网络
  • 我们提供现成的模型,可在我们的基础设施上无缝运行
  • 最后,以一种令人愉快的方式将其交付给终端开发人员。开发人员应该能够在几分钟内创造出自己的第一款 Workers AI 应用,并说“哇,太神奇了!”

那么,Workers AI 究竟是什么?这是我们为开发人员平台添加的另一个组成部分,它帮助开发人员在无服务器 GPU 上运行知名的人工智能模型,全部在 Cloudflare 值得信赖的全球网络上进行。作为我们开发人员平台最新增加的组成部分,它与 Workers + Pages 无缝衔接,但为了使它真正易于使用,我们将它设计成与平台无关,以便它也能在其他任何地方工作,通过 REST API 提供服务。

您了解和喜爱的模型

我们推出了一套经过精选的热门开源模型,涵盖了广泛的推理任务:

  • 文本生成 (大语言模型): meta/llama-2-7b-chat-int8
  • 自动语音识别(ASR): openai/whisper
  • 翻译: meta/m2m100-1.2
  • 文本分类: huggingface/distilbert-sst-2-int8
  • 图像分类: microsoft/resnet-50
  • 嵌入: baai/bge-base-en-v1.5

您可在 Cloudflare 仪表板中浏览所有可用的模型,而且很快就能够获得每个模型的日志和分析。

这只是开始,我们有很宏伟的计划。在推出之后,我们将根据社区反馈继续扩展。更令人兴奋的是,为了让我们的目录快速丰富,我们宣布与领先的人工智能社区和中心 Hugging Face 建立合作伙伴关系。这个合作关系是多方面的,可在这里查看更多相关信息,但很快您就可以直接在 Workers AI 中浏览和运行 Hugging Face 目录的一个子集。

人人可用

对我们的开发人员平台而言,其使命之一是为开发人员提供构建梦想应用需要的所有构建块。获得适当的构建块只是其中的一部分 —— 作为开发人员,您的任务是将它们组合成一个应用程序。我们的目标是使这个过程尽可能简单。

为了确保无论入口点是什么,您都可以轻松地使用 Workers AI,我们希望通过 Workers 或 Pages 提供访问,使其易于在 Cloudflare 生态系统中使用,如果您想将 Workers AI 与当前堆栈一起使用,则可以通过 REST API 访问。

以下是一个快速的 CURL 示例,将一些文本从英语翻译为法语:

curl https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/meta/m2m100-1.2b \
-H "Authorization: Bearer {API_TOKEN}" \
	-d '{ "text": "I'll have an order of the moule frites", "target_lang": "french" }'

以下是响应的示例:

{
  "result": {
    "answer": "Je vais commander des moules frites"
  },
  "success": true,
  "errors":[],
  "messages":[]
}

可在任何堆栈、任何地方使用它 —— 您喜欢的 Jamstack 框架、Python + Django/Flask、Node.js、Ruby on Rails,可能性是无限的。然后部署。

专为开发人员设计

开发人员对我们来说非常重要。实际上,本文大部分内容都是讨论开发人员体验。确保它能够开箱即用。提供能够立即使用的热门模型。所有开发人员都能使用,无论是通过 Cloudflare 还是其他平台进行构建和部署。但不仅如此 —— 开发人员体验应该是无摩擦的,快速从零开始到生产,而且全程感觉良好。

让我们通过另一个例子来展示它是多么容易使用吧。我们将在一个 Worker 中运行Llama 2,这是一个由 Meta 开源的流行大语言模型。

我们假设您已经完成了一些基本的准备工作(Cloudflare账户、Node、NPM等),否则,这个指南将帮助您正确设置。

1. 创建一个 Workers 项目

运行以下命令创建一个名为 workers-ai 的新项目:

$ npm create cloudflare@latest

在设置 workers-ai worker 时,按照以下方式回答设置问题:

  • 输入workers-ai 作为应用的名称
  • 选择 Hello World 脚本作为应用的类型
  • 对于使用 TypeScript,选择 yes
  • 对于使用 Git,选择 yes
  • 对于部署,选择 no

最后,导航到新应用的目录:

cd workers-ai

2. 将 Workers AI 连接到您的 worker

创建一个 Workers AI 绑定,使您的 Worker 可以访问 Workers AI 服务,而无需自己管理 API 密钥。

为了将 Workers AI 绑定到您的 Worker,请将以下内容添加到您的 wrangler.toml 文件末尾:

[ai]
binding = "AI" #available in your worker via env.AI

您还可以将 Workers AI 绑定到 Pages Function。有关更多信息,请参考 Functions Bindings

3. 安装 Workers AI 客户端库

npm install @cloudflare/ai

4. 在您的 worker 中运行推理任务

使用如下代码更新 source/index.ts

import { Ai } from '@cloudflare/ai'
export default {
  async fetch(request, env) {
    const ai = new Ai(env.AI);
    const input = { prompt: "What's the origin of the phrase 'Hello, World'" };
    const output = await ai.run('@cf/meta/llama-2-7b-chat-int8', input );
    return new Response(JSON.stringify(output));
  },
};

5. 使用 Wrangler 在本地开发

在项目目录中,运行以下命令测试 Workers AI:

$ npx wrangler dev --remote

注: 这些模型目前只运行在 Cloudflare 的 GPU 网络上(而不是本地),所以必须如上设置 --remote,此时您会被提示登录。

Wrangler 会给您一个 URL(很可能是 localhost:8787)。访问该 URL,您将看到这样的响应:

{
  "response": "Hello, World is a common phrase used to test the output of a computer program, particularly in the early stages of programming. The phrase "Hello, World!" is often the first program that a beginner learns to write, and it is included in many programming language tutorials and textbooks as a way to introduce basic programming concepts. The origin of the phrase "Hello, World!" as a programming test is unclear, but it is believed to have originated in the 1970s. One of the earliest known references to the phrase is in a 1976 book called "The C Programming Language" by Brian Kernighan and Dennis Ritchie, which is considered one of the most influential books on the development of the C programming language.
}

6. 部署您的 worker

最后,部署 worker,使您的项目可以在互联网上访问。

$ npx wrangler deploy
# Outputs: https://workers-ai.<YOUR_SUBDOMAIN>.workers.dev

大功告成。从零开始部署 AI 仅需几分钟。这显然是一个简单的例子,但显示了在任何项目中运行 Workers AI 是多么容易。

默认保护隐私

Cloudflare 成立时,我们的价值主张有三大支柱:更安全、更可靠、更高效。随着时间的推移,我们意识到,一个更好的互联网同时也是一个更私密的互联网,我们希望为它的建设贡献一份力量。

因此 Workers AI 默认是私有的——我们不会根据您的数据或对话来训练我们的模型,无论是 LLM 还是其他,我们的模型也不会从您的使用中学习。您可以放心地在个人和商业环境中使用 Workers AI,而不必担心泄露数据。其他提供商只在其企业版本中提供这个基本功能。对我们而言,这是为所有人而构建的。

我们也准备在将来支持数据本地化。为了实现这一目标,我们有一个雄心勃勃的 GPU 推出计划——我们今天启动了 7 个站点,到 2023 年底大约 100 个,到 2024 年底几乎无处不在。最终,这将使开发人员能够继续向用户提供杀手级 AI 功能,同时保持遵守最终用户的数据本地化需求。

平台的力量

矢量数据库 —— Vectorize

Workers AI 完全是关于运行推理,并使其变得非常容易,但有时推理只是等式的一部分。大语言模型是在固定的数据集上训练的,基于过去特定点的快照,并且没有关于您的业务或用例的上下文。当提交一个提示时,与您特定的信息可以提高结果的质量,使其更有用、更相关。因此我们同时推出向量数据库 Vectorize,旨在与 Workers AI 无缝协作。以下简要概述您可能如何协同使用 Workers AI + Vectorize。

示例:当用户与 LLM 聊天时,使用您的数据(知识库)为它提供额外的上下文。

  1. 生成初始嵌入: 使用嵌入模型通过 Workers AI 运行您数据。输出将成为嵌入,即这些语句的数值表示。
  2. 将这些嵌入插入到 Vectorize :这实际上是用您的数据在矢量数据库中播种,以便以后可以用它来检索与用户查询相似的嵌入。
  3. 从用户问题中生成嵌入:当用户向您的 AI 应用提交一个问题时,首先,接受这个问题,并使用嵌入模型在 Workers AI 中运行它。
  4. 从 Vectorize 获取上下文:使用该嵌入来查询 Vectorize。这应该输出与用户问题相似的嵌入。
  5. 创建上下文感知提示:现在,取与这些嵌入相关的原始文本,并结合来自向量搜索的文本,创建一个新的提示。
  6. 运行提示:使用 LLM 模型通过 Workers AI 运行这个提示以获得您的最终结果。

AI Gateway

这涵盖一种更高级的用例。另一方面,如果您在其他地方运行模型,但想要获得更佳的体验,您可以通过我们的 AI 网关运行这些API ,以获得缓存、速率限制、分析和日志等功能。这些功能可用于保护您的端点,监控和优化成本,还有助于防止数据丢失。请在这里进一步了解 AI Gateway。

立即开始构建

亲自试试看,然后让我们知道您的想法。今天,我们将 Workers AI 作为所有Workers 计划(包括免费和付费)的公开测试版发布。但是,目前依然处于早期阶段,因此……

注意:这是早期测试版

目前不推荐用于生产应用,且有关限制和访问有可能发生变化。

限制

我们初期推出时对每个模型有限制。

  • @cf/meta/llama-2-7b-chat-int8: 50 请求/分钟,全球范围

有关限制的概述,请查看文档

定价

今天发布的只是一个小小的预览,让您对即将推出的新产品有初步了解(我们根本无法克制),但我们期待将全功能版本的 Workers AI 交到您的手中。

我们意识到,在您开始构建某个项目时,您想要了解的是:这将花费我多少钱?尤其是在 AI 成本很容易失控的情况下。因此,我们想与您分享即将发布的 Workers AI 定价信息。

虽然我们不会从第一天就开始计费,但我们现在将宣布预计的定价模式。

用户将可运行 Workers AI 的选择两种方式之一:

  • Regular Twitch Neurons (RTN) - 在任何有容量的地方运行,价格为 0.01 美元 / 1k 神经元
  • Fast Twitch Neurons (FTN) - 在最近的用户位置运行,价格为 0.125 美元 / 1k 神经元

您可能会问,什么是神经元?

神经元是衡量 AI 输出的一种方式,它始终缩减到零(如果没有使用,您将被收取 0 个神经元的费用)。为了让您了解用 1000 个神经元做什么事情,您可以:生成 130 个 LLM 响应,830 个图像分类,或 1250 个嵌入。

我们的目标是帮助客户只为他们使用的部分付费,并选择最符合他们使用情况的定价方式,无论他们最关心的是价格还是延迟。

路线图有什么内容?

Workers AI 才刚刚起步,我们希望得到您的反馈,以帮助我们使它变得更好。话虽如此,我们的路线图上有一些令人兴奋的事情。

能否提供更多模型?

我们推出了一套直接可用的模型,但我们将根据您的反馈继续推出新的模型。如果您希望在 Workers AI 上看到特定的模型,请加入我们的 Discord 并告诉我们!

除此之外,我们还宣布与 Hugging Face 的合作伙伴关系,很快您将能够直接从 Workers AI 访问和运行 Hugging Face 目录的一个子集。

分析 + 可观察性

到目前为止,我们都是高度专注于一件事 —— 让任何开发者能够用几行代码轻松运行强大的 AI 模型。但这只是故事的一部分。接下来,我们将致力于开发一些分析和可观察性功能,以便为您提供有关每个模型的使用情况、性能和费用的洞察,此外,如果您希望进行一些探索,还可以查看日志。

建设全球 GPU 网络之路

我们的目标是成为在 Region: 地球中进行推理的最佳选择,因此我们正在尽快向我们的数据中心添加 GPU。

我们计划在今年年底之前部署到 100 个数据中心

并在 2024 年底前基本覆盖每一个地方

我们非常期待看到您开始构建 —— 欢迎查看我们的文档以开始使用。

如果您需要灵感、想分享你正在构建的东西,或者有任何问题,欢迎加入我们开发人员 Discord

我们保护整个企业网络,帮助客户高效构建互联网规模的应用程序,加速任何网站或互联网应用程序抵御 DDoS 攻击,防止黑客入侵,并能协助您实现 Zero Trust 的过程

从任何设备访问 1.1.1.1,以开始使用我们的免费应用程序,帮助您更快、更安全地访问互联网。要进一步了解我们帮助构建更美好互联网的使命,请从这里开始。如果您正在寻找新的职业方向,请查看我们的空缺职位
Cloudflare Workers (CN)Developer Platform (CN)Database (CN)Birthday Week (CN)Vectorize (CN)简体中文AI (CN)

在 X 上关注

Phil Wittig|@pdwittig
Rita Kozlov|@ritakozlov_
Rebecca Weekly|@rebeccalipon
Celso Martinho|@celso
Cloudflare|@cloudflare

相关帖子

2024年4月05日 13:01

Browser Rendering API GA,推出 Cloudflare Snippets 、SWR,并向所有用户提供 Workers for Platforms

Browser Rendering API 现已向所有付费 Workers 客户提供,并改进了会话管理功能...

2024年4月04日 13:05

生产安全新工具——渐进式部署、源码映射、速率限制和全新 SDK

我们今天发布了五项更新,旨在为您提供更 多功能——渐进式部署、Tail Workers 中的源映射堆栈跟踪、全新的速率限制 API、全新的 API SDK,以及对 Durable Objects 的更新——每项更新都旨在满足重要的生产服务需求...

2024年4月02日 13:01

升级版 Workers AI:现已正式发布且具备更多新增功能

今天,我们欣然发布包括 Workers AI、Cloudflare 的推理平台进入 GA 阶段以及支持使用 LoRA 对模型进行微调,并支持从 HuggingFace 进行一键部署等一系列消息。 Cloudflare Workers 现已支持 Python 编程语言及更多功能...