Bootstrap

2023 re:Invent|Amazon Q与Amazon CodeWhisperer面向企业开发者提效利器

本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

2023年,以GPT为代表的生成式AI引爆了新一轮技术热潮,短短一年的时间内,生成式AI已经成为科技世界发展的核心。作为云计算的行业风向标盛会re,本届:Invent全球大会紧跟生成式AI浪潮,推出名为“Amazon Q ”的生成式人工智能助手,同时Amazon CodeWhisperer 这款用于 IDE 和命令行的 AI 生产力工具,基于Amazon Q可以给开发人员带来全新的高效编程体验。

正如亚马逊云科技首席执行官Adam Selipsky 在主题演讲中表示 :“生成式AI将重塑我们在工作和家庭中所运用到的每一个应用程序,我们正在以一种跟以往完全不同的方式来探讨生成式 AI 的整个概念。”Amazon Q的定位和以往的C端消费级产品不同,生成式AI助手在B端应用赛道上的竞争者寥寥,而作为开发者看了Adam Selipsky的视频介绍,我联想到了实际工作中遇到的问题。

“观望”AI,企业入场犹豫不决究竟何为

我个人深耕B端多年,随着大模型风的兴起,在行业内部接触的客户包括我们自己都在探索AI落地的内容,很多企业会有这方面的诉求是因为,传统行业数字化转型过程中,存在着体量大、业务复杂、定制化要求高的问题,其业务有着沉重的IT建设包袱,各部门、业务之间难以协同,数据壁垒也难以打破,而大模型可以把人与人、人与机器之间的交互过程数据完整的沉淀下来,让它自主学习进步,持续演进。杜绝了过去的烟囱式建设,降本增效的同时还能推动数字化进程。

但对于AI大模型的应用,更多都处于观望+探索的阶段。

一方面,对于大模型的投入产出仍持怀疑态度。另一方面,是数据安全的“刚需”。今年年初,三星就禁止使用ChatGPT,其当时三星允许半导体部门的工程师使用ChatGPT参与修复源代码问题。 但在过程当中,员工们输入了机密数据,包括新程序的源代码本体、与硬件相关的内部会议记录等数据。导致核心数据泄密。诸如此类机密数据泄漏事件,层出不穷。

事实上,大模型的底层逻辑是将行业数据标注出来进行深度学习,训练出专注于某一行业的垂直模型。这也意味着,企业的数据要集成到通用大模型的数据池中。而又因为企业数据大多涉及商业机密、个人隐私等问题,对数据安全要求甚高。

所以,对于B端及G端用户而言,其需要的AI服务是能在保证数据安全的同时,还可以能集成通用大模型作为能力补充。

面向工作使用的AI助手-Amazon Q

Amazon Q 就是面向工作使用的一款新型生成式AI助手,它支持用户输入问题,从而进行聊天、生成内容、编程、插件及定制开发。Amazon Q可以根据您的业务进行定制,以便使用公司信息存储库、代码库和企业系统中的数据和专业知识进行对话、解决问题、生成内容并采取行动。Amazon Q提供快速、相关和可操作的信息和建议,有助于简化任务,加快决策和解决问题的速度。在使用亚马逊云科技遇到问题和故障时,Amazon Q可以一键分析原因并想办法解决。客户可以通过亚马逊云科技管理控制台、文档页面、IDE、Slack或其他第三方对话应用程序的聊天界面访问 Amazon Q。

Amazon Q 与通用生成式 AI 的区别

Amazon Q 的官方定义是面向工作使用的AI助手。与市面上的通用性AI的区别主要在于,面向对象不同、数据来源不同、安全性等方面的差异。

通用的生成式 AI 内容主要来源于互联网的公开数据,无法针对特定的数据源进行训练,比如无法跟企业内部数据,业务相结合,也无法满足个人的个性化需求。比如我们使用ChatGPT时候,由于其训练数据的主要来源为互联网,在询问一些细分行业、或下垂龙头企业的数据时,往往会答非所问,或者一本正经的胡说八道。为了让 ChatGPT 学习某个特定的技能,比如企业的内部知识,需要将内容拆分,通过提示词工程,再提供给 ChatGPT 学习,这大大限制了生成式 AI 的能力。因此 Amazon Q 较 ChatGPT 而言有以下优势:

  • 与特定业务相结合,可以实现私有化,根据企业内部数据进行训练。

  • 支持多种数据源,同时保证了数据的安全性

  • 将权限引入生成式 AI 中,在企业中可以根据组织架构对人员设置不同的访问权限;

接下来我们动手试一试,一探究竟。

Amazon Q初体验—基于私有数据的工作助手

使用Amazon Q需要上面几个步骤,虽然看起来操作有一丢丢复杂。但是实际耗时并不会特别久。

创建AI程序

首先我们创建一个AI程序,这里是给了一个步骤索引,我们只需要一步步操作即可。

这里我们选择一个现有的服务角色,并且创建一个KMS key,创建KMS的步骤这里不多叙述,我们根据自己的实际服务进行选择就好了

我这里已经创建好了一个密钥对,在上面勾选我们的KMS

这里也可以选择对资源打Tags,方便后面管理,配置完我们点击下一步

页面会显示Propagating IAM role.This will take 30 seconds, please remain on the page.

选择检索器

检索器是一个索引,我们可以从中实时获取数据。如果要将文档连接到应用程序,需要选择一个检索器。

这里我们选择按需选择

连接数据源

配置完我们的数据源,就可以打开web页面了,右边还可以配置自定义的Title ,提示词等等,还是比较贴心的。

问答测试

作为一个AI助手,文生文问答是最基础的,这里我们提问:“构建无服务器API的AWS无服务器服务是什么?”Amazon Q提供了简明的解释以及参考资料,我们使用这些参考资料来跟进您的问题并验证。在实验中同时发现Amazon Q目前对于中文支持性比较差,希望后续亚马逊可以持续的优化这部分。

当使用AmazonQ来跟进和迭代问题。会展示更多深入的答案和参考资料。通过几轮问答,其实可以看到,回答的内容是符合预期的,并且给出了参考的一些源内容,这有点企业知识库的感觉,整体使用下来,与chatglm2-6b的方案类似,在整个对话中,有对话历史内容的参与,向量库每次匹配出的内容在数据源质量高的情况下是比较精准的,如果数据源缺失,或者是数据源质量比较差,会导致对话历史内容不能起到优化回答的作用。

这里有个很贴心的实现,就是可以在控制台的任何地方,唤起一个Amazon Q的console。只需要选择AWS管理控制台右侧的Amazon Q图标。就可以在使用其他服务或者用例的时候,遇到问题,Amazon Q就变成了一个实用的小助手或者智能的操作手册帮你解决遇到的问题,换个角度思考,Amazon Q对于一些云工作者,无论是开发还是运维其实都是一个很好的体验提升。通过AWS聊天机器人集成到AWS管理控制台、AWS控制台移动应用程序、AWS文档、AWS网站以及Slack和Teams中,可以更方便、更容易地找到所需内容。

Amazon CodeWhisperer 生产力利器

而作为亚马逊云科技推出的最新力作,Amazon Q集成了Amazon CodeWhisperer的功能,为开发人员提供更强大的功能和更出色的使用体验。

当AI助手和IDE结合,就产生了一种奇妙的化学反应,万物皆可Amazon Q。

比如文档+Amazon Q = 智慧文档,IDE+Amazon Q = AI生产力工具。操作台+Amazon Q = 运维小助手。对于B端用户和个人开发者,Amazon Q的落地性和兼容性将到达一个全新的高度。

根据介绍,Amazon Q的生成式AI助手能够直接处理控制台内的故障排除和错误解决,相当于在DEVOPS的职责上承担了更多的责任,使开发人员更专注于创新和问题解决。同时,Amazon Q具备代码转换的能力,类似于IBM Watsonx,可以将COBOL代码转换为Java等目标代码。这种功能的引入无疑为开发人员提供了更多可能性,促使他们更灵活地进行代码维护和升级。对于代码转换的功能,实际是非常实用的。

这里首先我们根据官网的连接,下载AWS Toolkit插件。

插件下载好后,有三个选项,这里我们主要为了体验Amazon CodeWhisperer+Amazon Q ,我们选择第一个卡片

绑定我们的亚马逊开发者ID

在完成简单注册后,点击同意授权

这里正式进入了插件版本的 Amazon Q, 整个的交互体验非常的小清新,chat的助手和gpt的风格一致,唯一的小缺点就是中文的支持不是很友好。这里完美同样的在编码过程中遇到的问题可以随时的提问,整体而言,个人认为,Amazon Q回答一些云服务的问题,其质量要远远大于通用性问题。

在大会预览期间,举办的一场生产力挑战赛,使用 CodeWhisperer 的参与者成功完成任务的可能性要比未使用 CodeWhisperer 的参与者高 27%,平均完成任务的速度快 57%,这足以说明CodeWhisperer的优势。

这里我们开始探索一下CodeWhisperer 的Amazon Q

Amazon Q 擅长做些什么

我们先提出一个问题:What can Amazon Q do and what are some example questions?

Amazon Q的回复是

What I can do:

  • Answer questions about AWS

  • Answer questions about general programming concepts

  • Explain what a line of code or code function does

  • Write unit tests and code

  • Debug and fix code

  • Refactor code

这里我们根据他的建议开始针对性测试

问题分析

这里我们抛出一个建站的问题,我应该使用AWS Lambda还是EC2作为可扩展的web应用程序后端?

它回答了AWS Lambda与EC2的对比及各自的特点,整体回答的比较全面。

常用算法实现

这里我们让他实现一段红黑树排序。

Amazon Q 给了一段逻辑,插入逻辑将遵循典型的红黑树算法——作为红色节点插入,然后执行旋转以修复违规行为。我们还需要旋转、固定插入和检查红黑属性的方法。

对于排序,使用insert从未排序的元素列表中构建树。然后遍历树,以便按排序顺序提取元素。

一些关键方面是使用sentinel“nil”节点来简化边缘情况、跟踪颜色以及通过旋转修复插入/删除。整体看下来,还是需要再二轮问一下,进行引导,生成的质量会逐步提升。

自动填充用例

Amazon CodeWhisperer可以根据注释和现有代码,在 IDE 中实时生成从代码片段到全函数的代码建议。它还支持命令行中的 CLI 补全和自然语言到 bash 的转换。

这里我们使用官方的案例让他自动填充一个测试用例,非常完美!

Amazon Q优势与总结

除此之外,对于Amazon Q与亚马逊服务的使用中,我了解到,与ChatGPT和Bard不同,Amazon Q并不是建立在特定的人工智能模型上,而是使用了AWS的Bedrock平台,该平台将几个人工智能系统连接在一起,其中包括亚马逊自己的Titan模型以及Anthropic、Meta等开发的模型。

安全至上

“AI安全”是近期一直在圈子里引起热议的话题,周鸿祎曾在微博上发文表示,“大型企业或者政府要私有化大模型。即在加入公有GPT知识和能力的基础上,再训练一个私有的GPT,只给企业自己或客户使用。这种观点其实是对于通用性AI对于数据源管理及数据安全的一种常见认知。

亚马逊一直注重于数据安全,亚马逊打造了比面向消费者聊天机器人更安全、更私密的Amazon Q。利用数据源与KSM的设置,Amazon Q可以同步企业客户已经为其用户设置的相同的安全权限,比如在一家公司,营销部门的员工可能无法获得敏感的财务预测。

高适用性

Amazon Q让我觉得有意思的地方在于Amazon Q+,也就是万物皆可Amazon Q。除了Amazon CodeWhisperer以外

目前,亚马逊旗下的数据分析平台Amazon QuickSight已内置了Amazon Q。有一个示例视频,通过简单地告知Amazon Q他们想要可视化内容,就可以创建仪表板和报告,耗时从几小时缩短到了几分钟。此外,像Amazon Connect,以及其他业务也在进行Amazon Q的使用。

而在取长补短的AI大模型产业生态下,Amazon Q将大幅度杜绝模型的重复搭建、实现数据的重复利用,大大节约算力资源利用率。同时还可以减少客户的AI部署成本。

我相信上述应用只是Amazon Q 广泛落地的一个开始,Amazon Q的强大普适性,将为众多使用亚马逊云科技服务的企业带来全新的“个性化”体验。就像Adam坚信的那样:“这将是一场生产力层面的变革,我们希望来自不同行业、从事不同岗位的人们都能从 Amazon Q 身上获益。”

;