
Cloudflare Workers生态系统现已提供广泛的产品和功能,涵盖计算、托管、存储、数据库、流式传输、联网、安全等等。一直以来,我们不断尝试鼓励其他人从传统软件架构转移出来,并证明和记录在我们的技术栈上构建可全球扩展的复杂应用程序是可行的。
今天,我们高兴地宣布Constellation已正式加入到Cloudflare技术栈中,使开发人员能够在Cloudflare网络上运行预先训练好的机器学习模型和推理任务。
我们的Supercloud再添砖瓦
机器学习和人工智能最近成为了热门话题,但事实上,我们多年来一直在日常生活中使用这些技术,即使我们没有意识到。例如,我们的手机、电脑、汽车和家庭助手等都拥有人工智能。它已经无处不在。
然而,对于开发人员来说,它还没有成为一种商品。开发人员通常需要理解其背后的数学原理,相关软件和工具分散且复杂,而且运行这些框架和数据所需的硬件或云服务成本高昂。
今天,我们的技术栈引入另一个功能,使每个人都可以在Cloudflare Workers上运行机器学习模型并执行推理任务。
Constellation简介
Constellation允许您通过Cloudflare Workers脚本使用预先训练的机器学习模型运行快速、低延迟的推理任务。
可用Constellation部署的一些应用程序示例如下:
·图像或音频分类或物体检测
·数据中的异常检测
·文本翻译、摘要或相似性分析
·自然语言处理
·情绪分析
·语音识别或文本转语音
·问题回答
开发人员可以将任何受支持的模型上传到Constellation。他们可以独立训练这些模型,也可以从机器学习中心(例如HuggingFace或ONNX Zoo)下载预先训练好的模型。
然而,并不是每个人都想训练模型或浏览互联网以获取他们尚未测试过的模型。因此,Cloudflare也将维护一个经过验证和可供使用的模型目录。
我们打造的Constellation提供卓越的开发人员体验和易于使用的API。以下是一个示例,可帮助您开始使用。
图像分类应用程序
在这个例子中,我们将构建一个由Constellation推理API和SqueezeNet模型驱动的图像分类应用程序。SqueezeNet是一个卷积神经网络(CNN),在开源的ImageNet数据库上使用超过100万张图像进行预先训练,可将图像分类到不超过1000个类别中。
与最早的图像分类CNN和基准之一AlexNet相比,Constellation速度要快得多(约3倍),体积小得多(约1/500),同时依然能保证类似的准确性水平。其小体量尤其适合在资源有限的便携式设备或自定义硬件上运行。
首先,让我们使用ONNX运行时创建一个新的Constellation项目。现在,Wrangler已经内置Constellation相关功能,可以使用`constellation`关键字调用。
$npx wrangler constellation project create”image-classifier”ONNX
现在让我们创建包含项目绑定的wrangler.toml配置文件:
安装Constellation客户端API库:
$npm install cloudflare/constellation–save-dev
将预训练的SqueezeNet 1.1 ONNX模型上传到项目。
$wgethttps://github.com/microsoft/onnxjs-demo/raw/master/docs/squeezenet1_1.onnx
$npx wrangler constellation model upload”image-classifier””squeezenet11″squeezenet1_1.onnx
如前所述,SqueezeNet将图像分类到不超过1000个对象类别中。这些类别实际上是一组同义词集即synset的形式。每个synset具有一个id和一个标签;它源于普林斯顿大学的WordNet数据库术语,也用于标记ImageNet图像数据库。
为了将SqueezeNet的结果转换为人类可读的图像类别,我们需要一个将synset ID(从模型获得)映射到对应标签的文件。
$mkdir src;cd src
$wgethttps://raw.githubusercontent.com/microsoft/onnxjs-demo/master/src/data/imagenet.ts
最后,让我们编写并部署我们的图像分类脚本。
这个脚本从请求中读取图像,将其解码为一个多维float32张量(目前仅解码PNG,但我们可以增加其他格式),将其输入到Constellation中运行的SqueezeNet模型,获取结果,将结果与ImageNet类别列表进行匹配,并返回图像的人类可读标签。
是不是非常简单?我们测试一下:
$curl https://ai.cloudflare.com/demos/image-classifier-F file=@images/mountain.png|jq.name
alp
$curl https://ai.cloudflare.com/demos/image-classifier-F file=@images/car.png|jq.name
convertible
$curl https://ai.cloudflare.com/demos/image-classifier-F file=@images/dog.png|jq.name
Ibizan hound
可在此看到概率的不同水平。模型对阿尔卑斯山和敞篷车的分类非常确定,但伊比赞猎犬的概率较低。照片中的狗确实是另一个品种。
这个小应用程序演示了,使用机器学习模型和Constellation在Workers上构建应用程序时是多么容易和快捷。您可以在这里在此处查看完整的源代码并自行部署该应用程序。
Transformers模型
Transformers是由Google推出的深度学习模型,旨在处理序列输入数据,常用于自然语言处理(NLP)任务,例如翻译、摘要或情感分析,以及计算机视觉(CV)任务,例如图像分类。
Transformers.js是一个比较受欢迎的Demo,它从HuggingFace加载Transformers模型,并在您的浏览器内使用编译为WebAssembly ONNX Runtime来运行它们。我们将这个演示移植到使用Constellation API来运行。
如下链接打开我们的版本:https://transformers-js.pages.dev/
与Workers的互操作性
Constellation另一个有趣的元素是,由于它原生运行在Workers中,您可以将其与我们堆栈中的其他产品和API进行编排。您可以使用KV、R2、D1、Queues等任何产品,甚至电子邮件。
以下Worker示例通过电子邮件路由从您在Cloudflare上的域接收电子邮件,使用t5-small情感分析模型运行Constellation,添加一个带有结果得分的标题,并将其转发到目标地址。
现在,您可以使用Gmail或任何电子邮件客户端,根据“X-Sentiment”标题为您的邮件应用规则。例如,您可能希望在所有愤怒的邮件到达时将其移动到收件箱以外的不同文件夹中。
开始使用Constellation
Constellation已启动内测。如果想加入Constellation的等待列表,请前往仪表板,点击账户下的“Workers”选项卡,然后点击“请求访问”按钮。我们的团队将分批开通权限,您的帐户获得使用权限后将收到电子邮件通知。
与此同时,您可以阅读我们的Constellation开发人员文档进一步了解其工作原理和API。Constellation可以通过Wrangler使用,也可以直接在仪表板UI中进行管理。Wrangler是我们的命令行工具,用于配置、构建和部署使用Cloudflare开发人员产品的应用程序。
我们非常期待了解您如何在应用程序中使用机器学习/人工智能。Constellation将不断改进,提供更高的限制、支持更多运行时和更大的模型,但我们希望听取您的意见。您的反馈将对我们的产品优化策略产生重要影响。
最后要说的是:今天,我们一直在讨论如何编写使用Constellation的Workers脚本,但这里有一个关于Constellation本身的事实:Constellation本身就是通过WebAssembly、Workers、R2和我们的API构建的。
关于墨西哥税改的通知,自 2020 年 6 月 1 日起,亚马逊将根据卖家每月的总销售额计算所得税,并将预扣金额缴付墨西哥税务机构。 以下是一些亚马逊卖家常见问题的FAQ: 1. 墨西哥新的税法和政策(增值税VAT+所得税ISR)影响的卖家范围: 在墨西哥境内…
码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.