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 key ,创建 KMS 的步骤这里不多叙述,我们根据自己的实际服务进行选择就好了

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

页面会显示 Propagating IAM role.This will take 30 seconds, please remain on the page.
选择检索器
检索器是一个索引,我们可以从中实时获取数据。如果要将文档连接到应用程序,需要选择一个检索器。

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

问答测试

作为一个 AI 助手,文生文问答是最基础的,这里我们提问:"构建无服务器 API 的有亚马逊云科技无服务器服务是什么?" Amazon Q 提供了简明的解释以及参考资料,我们使用这些参考资料来跟进您的问题并验证。在实验中同时发现 Amazon Q 目前对于中文支持性比较差,希望后续亚马逊可以持续的优化这部分。
当使用 Amazon Q 来跟进和迭代问题。会展示更多深入的答案和参考资料。通过几轮问答,其实可以看到,回答的内容是符合预期的,并且给出了参考的一些源内容,这有点企业知识库的感觉,整体使用下来,与 chatglm2-6b 的方案类似,在整个对话中,有对话历史内容的参与,向量库每次匹配出的内容在数据源质量高的情况下是比较精准的,如果数据源缺失,或者是数据源质量比较差,会导致对话历史内容不能起到优化回答的作用。

这里有个很贴心的实现,就是可以在控制台的任何地方,唤起一个 Amazon Q 的 console 。只需要选择亚马逊云科技管理控制台右侧的 Amazon Q 图标。就可以在使用其他服务或者用例的时候,遇到问题,Amazon Q 就变成了一个实用的小助手或者智能的操作手册帮你解决遇到的问题,换个角度思考,Amazon Q 对于一些云工作者,无论是开发还是运维其实都是一个很好的体验提升。通过亚马逊云科技聊天机器人集成到亚马逊云科技管理控制台、亚马逊云科技控制台移动应用程序、亚马逊云科技文档、亚马逊云科技网站以及 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 等目标代码。这种功能的引入无疑为开发人员提供了更多可能性,促使他们更灵活地进行代码维护和升级。对于代码转换的功能,实际是非常实用的。
这里首先我们根据官网的连接,下载 Amazon 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 Amazon
- 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
这里我们根据他的建议开始针对性测试

问题分析
这里我们抛出一个建站的问题,我应该使用 Amazon Lambda 还是 EC2 作为可扩展的 web 应用程序后端?
它回答了 Amazon Lambda 与 EC2 的对比及各自的特点,整体回答的比较全面。

常用算法实现
这里我们让他实现一段红黑树排序。
Amazon Q 给了一段逻辑,插入逻辑将遵循典型的红黑树算法------作为红色节点插入,然后执行旋转以修复违规行为。我们还需要旋转、固定插入和检查红黑属性的方法。
对于排序,使用 insert 从未排序的元素列表中构建树。然后遍历树,以便按排序顺序提取元素。
一些关键方面是使用 sentinel"nil" 节点来简化边缘情况、跟踪颜色以及通过旋转修复插入/删除。整体看下来,还是需要再二轮问一下,进行引导,生成的质量会逐步提升.

自动填充用例
Amazon CodeWhisperer 可以根据注释和现有代码,在 IDE 中实时生成从代码片段到全函数的代码建议。它还支持命令行中的 CLI 补全和自然语言到 bash 的转换。
这里我们使用官方的案例让他自动填充一个测试用例,非常完美!

Amazon Q 优势与总结
除此之外,对于 Amazon Q 与亚马逊服务的使用中,我了解到,与 ChatGPT 和 Bard 不同,Amazon Q 并不是建立在特定的人工智能模型上,而是使用了亚马逊云科技的 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 身上获益。"