炸裂——关于Azure OpenAI的几个更新

   感觉好久没有写随笔了,虽然从年初至今,一直被持续不断涌现的新 AI 消息震惊,也一直不断组织和参与各种 AI 相关的活动、直播,但确实挺久没有写文字了。今天是下半年的第一天,也是暑假的第一天,忙完家务,晚上正好趁着最近几个更新写几笔。

   从 GPT-3 惊艳世界开始,到 Azure OpenAI 的发布,到 GPT-4…这段时间真的是——根本停不下来。首先容我得瑟一下,我应该算是第一批用上 AOAI 的、特别是 GPT-4 模型 AOAI 的人了。这需要感谢 Microsoft MVP 计划,以及 Azure 和 AI 奖励方向之下 PG 对我们的支持。正如大家知道的,OpenAI 在我生日那天(算上时差哈哈),发布了新的模型版本 0613,同时也提供了新的使用 GPT 的方式——Function calling。

   得知这一消息后我第一时间就联系了 PG,他们反馈说月底这个模型版本就会部署到 AOAI 上,function calling 则还需要等一阵子。可惜限于 NDA 的约束,我不能公开这个好消息。今天,我终于把自己 AOAI 的模型部署升级到了 0613 版本。

Azure OpenAI Studio

   先看看 AOAI 的工作室有些什么更新。

升级部署模型

   有了 0613 版本,当然是要升级了。升级模型版本并不需要删除现有模型,也不需要部署一个新的,只需要“编辑部署”,然后在模型版本处,选择需要的模型版本就行。

349efc9efa05e7485c877e661da46672.png

   当然,如果想省事情,直接选择自动更新也行。AOAI将会自动把模型更新到新版本。

ea5f680b4c7e3ac9ef976f8f52d73242.png

   上图可以看到,我把 GPT-3.5-turbo 和 GPT-4/32K 的几个模型都升级到最新的 0613 了。一会试试有什么不同。

调整内容过滤

   细心的你可能发现了,在 Content Filter 这一列,有几个模型没有使用默认的值,取而代之的是一个另外的内容过滤器。内容过滤是 AOAI 使用多模态大语言模型模型的重要组成部分,负责对用户输入的提示,以及模型的输出内容进行筛选过滤,避免出现诸如仇恨、色情、自残和暴力等内容。

f03bc783b9b378bf82f690fb7615f43e.png

   默认内容过滤是开启的,且不能被关闭。默认设置为低,可以改成中或高。内容过滤有效的避免了不适当的内容进入到人和模型的交互,对于运行在 Azure 的 OpenAI 模型,触发内容过滤还会导致微软的人工审核。但对于一些研究场景来说,可能需要观察未开启内容过滤的提示过程,或者设置调试自己的内容过滤流程或模型。因此微软也提供了自定义内容过滤的选项,前提是填表申请,通过之后就可以像上图一样,进行自定义设置了。

使用自己的数据

   全称应该是“在 GPT 的 Chat Playground 通过认知搜索使用自己的数据”这么长吧……

   这个功能在 Build 以及之前的 PGI 会议看到过。最早结合认知搜索的 GPT 使用示例其实是通过 Azure 模板等手动部署的,使用了很多 Python 代码和其他。所以一看到 AOAI Studio 里面可以直接配置,还是挺兴奋的,当时也是问 PG 什么时候可以使用——很快。于是现在我们就看到了~

925db68cd7f4e7fab3c4ad4903d6cab4.png

   我看了一下,不论是直接使用 Azure 认知搜索,或让认知搜索使用 Azure Blob 存储,还是上传文件到 Blob 存储再使用认知搜索(这不是差不多一码事么…)都离不开使用认知搜索服务。

c66b9954a33d6fe8a3a66c9c39081480.png

   直接使用配置好的 Azure 认知搜索,只要指定认知搜索服务实例,并指定索引。

b29efdc8efcacad6ded656a8bae2168c.png

    选择使用 Azure Blob 存储的话,就需要指定已有 Blob 存储的实例和容器,然后连接到认知搜索实例上,指定索引。

0291b5e814abfebd9d83ca9ffded14ab.png

   如果选择上传文件,其实也是指定 Blob 存储实例。可以自动配置好 CORS 设置,然后连接到认知搜索实例,指定索引。

   这几种方式,都需要使用非免费定价层的认知搜索(注意图中黄色提示)。所以我暂时都没创建。等开个非免费定价层的实例运行,再另外写一点吧。

直接发布WebApp

   在我拿到 AOAI 的预览不久,我就很想把这个 GPT 模型做成一个 Web 应用,这样其他人就可以通过浏览器,而不需要通过访问 AOAI 工作室来使用 GPT 了。为了实现这个目的,我还特意用 Python 写了点代码放在 Hugging Face 上,通过 API 调用来实现。

   ( https://huggingface.co/spaces/haohoo/Azure-OpenAI-QuickDemo )

   如今,做这件事就太简单了~

4e2fe79697aeab9a4d8eed875249874a.png

‍    在 Azure OpenAI Studio 里,进入聊天的 Play Ground,在右上角可以看到多了一个 Deploy to 的按钮,通过它就可以直接将当前的 Playground 部署到 Web App。

8a97e628d0ae38f6bd6c57d6b4c620e5.png

‍   整个部署过程都是自动的,需要说明的是,部署的 WebApp 会使用 Azure AD 作为用户验证方式。想让其他人来访问你的 Chat App,可以在 AAD 的控制台里添加用户和 B2B/B2C 账户。

8d5194da2a3fdf2746a9c5ade4b6d76b.png

   看,不用写一行代码,你专用的 ChatGPT 站点就有了~整个具体的过程,到时候和使用自己的数据一起再开一篇吧。

Azure ML Studio

   再看看机器学习工作室有啥更新吧。

   我告诉你 Build 上被惊艳了之后,我就通过 PG 整了整“船新”的 ML Studio,可惜 NDA 不能说,只在 Build After Party 上偷偷秀了一下,可憋坏我了。现在终于发布 PuPr,也就是 Public Preview 了,那么就可以放开聊聊了。

模型目录

   如以往的活动和文章介绍,机器学习工作室是学习使用机器学习的一站式工作环境。对于不同要求和基础的用户,提供记事本、脱拽式机器学习管道线设计器和自动化机器学习。现在,机器学习工作室又新增了模型目录功能。

f0e8ed580c37b02e5a6eeb9399130b7c.png

   如图所示,在新推出的模型目录中,除了由 Azure ML 提供的可用模型,也将很多开源社区 Hugging Face 的模型放进了模型目录。可以按照模型分类和许可类型筛选模型,也可以在搜索框里使用关键字查找模型。如果模型未出现在目录中,可以点击右上角“建议模型”建议微软将模型放入目录。

   点击目录中的模型,会显示简介以及模型发布的链接,例如 Hugging Face 目录中的可以链接到模型卡。如果已经有示例部署,可以直接进行模型的尝试。模型的一些示例和性能参考也会提供,甚至有示例的记事本直接运行。如果觉得合适就可以直接部署,和以往机器学习工作室部署模型一样,部署模型可选实时终结点和批处理终结点。

b56f6b70aa9a70538817c97deb4f896a.png

   而实际在 Hugging Face 站点上,也可以将 Azure ML 支持的(已经引入的)模型直接部署到 Azure ML 服务。

f52e0fbcb33039d357ebabdcdd2c8e53.png

   可以通过 AzureML Studio 按钮打开机器学习工作室、Python 代码或使用 YAML描述的 CLI Shell 进行部署。

4c07522be839428a9b18b321486e7632.png

   Python 或 Shell 自动部署时,需要提供 Azure 订阅、资源组名称、ML 工作空间名称等信息。以 Python 为例:

import time


# follow steps here to connect to workspace: https://aka.ms/AzureML-WorkspaceHandlePython
ml_client = MLClient(
    credential=DefaultAzureCredential(),
    subscription_id="<SUBSCRIPTION_ID>",
    resource_group_name="<RESOURCE_GROUP>",
    workspace_name="<WORKSPACE_NAME>",
)
# fetch model
registry_ml_client = MLClient(
    credential=DefaultAzureCredential(), registry_name="HuggingFace"
)
foundation_model = registry_ml_client.models.get(
    "<model-name>", version="<model-version>"
)
# create endpoint
endpoint_name = "hf-ep-" + str(
    int(time.time())
)  # endpoint name must be unique per Azure region, hence appending timestamp
ml_client.begin_create_or_update(ManagedOnlineEndpoint(name=endpoint_name)).wait()
# create deployment
ml_client.online_deployments.begin_create_or_update(
    ManagedOnlineDeployment(
        name="demo",
        endpoint_name=endpoint_name,
        model=foundation_model.id,
        instance_type="Standard_DS2_v2",
        instance_count=1,
    )
).wait()
endpoint.traffic = {"demo": 100}
ml_client.begin_create_or_update(endpoint_name).result()
# go to Endpoints hub in AzureML Studio to get the endpoint URL and test your endpoint
提示流

   更新的 Azure ML Studio 提供了提示流的预览。何谓提示流呢?如果你已经是 Azure 机器学习工作室的老司机,你肯定知道在设计器里,通过拖拽就能建立起机器学习的管道线。提示流就是将我们说的提示工程,使用这种可视化管道线的方式进行设计,然后运行起来。

83bdaa6e0ffdb495a79fa8335c0f107f.png

   光说肯定难理解,不如就看看提供的示例吧。下图是一个跟 Wikipedia 在线百科全书站点聊天的提示流示例。首先设置一个输入模块,提供会话历史和提出的问题。由于使用的 GPT 模型的 Chat 方式,会话历史和我们使用 API 调用 一样,需要 List。然后设置一个输出模块,用于显示 GPT 模型的输出。

846132bfeec94affc773a2016d7d9475.png

   在输入和输出之间,还有几个模块处理整个提示流。

首先是“从问题中解析查询”,通过 GPT 的完成方式,从自然语言的问题中,解析出需要查询的关键字。在示例里,使用了单样本提示,将传入的会话历史作为参考,将输入的提问作为人类输入,将 GPT 完成的输出作为 AI 的输出。

   接下来是“获取搜索的URL”,使用 Wiki 自己的查询,将上一模块输出的查询关键字构造为 Wiki 的查询 URL,并且获取查询给出的 URL。

   再下来是“URL的搜索结果”,通过前一步骤获得的 URL 访问 Wiki,并将内容转化为文本输出。

   如果你也使用过 new Bing 的 chat 功能,估计看过对话回复中会提供引用内容的链接。所以在接下来的模块里,需要“处理搜索结果”,将前一步骤获得的内容加上引用的 URL。

   内容有了,现在可以让 GPT 来聊天了。在这一模块里,使用 GPT 模型的 Chat 方式,对 system 角色进行定义,规范 GPT 的输出方式,然后引用前一模块的内容输出以及会话历史,构成完整的上下文。user 角色会添加输入模块的问题, assistant 角色会添加输出的答案。调用 GPT 的 Chat 方法,就能够输出关于查询 Wiki 之后,以自然语言表述对话的结果了。

   这样的提示流基本上不用写代码,或只需要简单修改代码,即可完成一些常见的 ChatGPT 的要求,逻辑上说我们也可以基于这样的示例,做一个和 new Bing 差不多的聊天应用。可以看到,提示流的设计方式大大地降低了定制使用 GPT 的复杂度。

   一篇随笔里放了不少惊艳的更新,可惜篇幅有限。后续看看把这些更新再单独做一些更详细的介绍吧~ 顺手把下面几个图标都点一下吧,哈哈哈多谢啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值