SegmentFault 亚马逊云开发者最新的文章
2024-03-28T07:58:15+08:00
https://segmentfault.com/feeds/blogs
https://creativecommons.org/licenses/by-nc-nd/4.0/
云计算与 AI 融合:Amazon Connect 开创客户服务智能时代
https://segmentfault.com/a/1190000044752004
2024-03-28T07:58:15+08:00
2024-03-28T07:58:15+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>在亚马逊云科技 re:Invent 2023 大会上,Amazon Connect 引入生成式人工智能功能,标志着客户服务迎来了智能化的新时代。云计算作为提供弹性、可靠、高效服务的基础,与人工智能的融合为客户服务注入了新的活力。这次推出的新功能不仅仅是技术的结合,更是对客户服务进行全方位升级的战略举措。生成式人工智能功能的引入显著提升了客户服务的效率。</p><p><img src="/img/remote/1460000044752006" alt=" title="1.png"" title=" title="1.png""></p><blockquote><a href="https://link.segmentfault.com/?enc=PCtaVtndMyADe5h2xVI2tQ%3D%3D.XpkL2KG2vkPhyPe6qs3xDxMnbUHBrTlKAKXD%2Ff2EAWn%2F5jt9NZggh71HEPr5RPlNtMz3CjGgSIpel9a%2FnvuoaoFsBbUs%2B1qfPUucpgH63WkUp%2BPGtUktuL2N0q1jTKuW" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=zJgE%2FFeF6Oh9GImByQQlVg%3D%3D.Hdh%2FNTHvHbrlZqh1b9951ACbe1E7GOAN%2F7ZEvwC%2BSEg6cHt1Dm1bCw4zUrt483JBcPypY3um8g0AXOopbne%2BMj4PVF5CCglfWjZQ5fUB4e06syf8%2B4h9q4txtFrOeagmUxdVzSonot9di%2F%2FY%2FBLYhA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>一、技术创新驱动客户服务升级</h3><p><strong>Amazon Connect 作为亚马逊提供的云联系中心服务,持续引入先进的生成式 AI 技术,不断刷新客户服务的标准</strong>。</p><p><strong>通过 Amazon Q 助手的协助</strong>,Connect 得以更快速、更准确地处理各类复杂情境,为客户提供更为智能的响应。这种技术驱动的高效性不仅优化了服务流程,更为 Connect 和客户之间的互动赋予了更为顺畅和令人满意的体验。</p><p><img src="/img/remote/1460000044752007" alt=" title="2.png"" title=" title="2.png""></p><p><strong>Contact Lens 功能的智能摘要</strong>为管理流程的优化提供了强大的支持。管理者能够通过这一功能直观地了解客户互动的重要细节,而无需深入研究大量对话记录。这使得管理决策更加基于实际数据,为企业提供了更为精准的方向。这种智能管理工具不仅提高了工作效率,也为企业在日常决策中提供了更为全面的信息。</p><p><img src="/img/remote/1460000044752009" alt=" title="3.png"" title=" title="3.png""></p><p><strong>Amazon Lex和Customer Profiles 的结合</strong>为客户带来了更为个性化的服务体验。通过自助服务的方式,客户可以更轻松地与聊天机器人互动,得到更迅速和个性化的解决方案。企业通过 Customer Profiles 深入了解客户需求,进而提供更加贴近期望的服务,这不仅增强了客户忠诚度,也为企业在市场中赢得了更有竞争力的地位。</p><h3>二、Amazon Connect 落地实录:优化客户体验与联系中心效能</h3><p>在实际应用中,Amazon Connect 以其强大的工具为我们打造了卓越的客户体验管理平台,成为联系中心运营的得力助手。通过其丰富的功能,我们能够更细致入微地处理客户体验,从而在服务中实现更高的效率。</p><ol><li><strong>全面客户档案管理</strong>:通过 Amazon Connect Customer Profiles ,我们可以建立完善的客户档案,汇总并整理每次联系的关键信息。这不仅使得代理人在互动中能够迅速获取客户的历史记录、账户信息等重要数据,为客户提供更为个性化、高效的服务,同时借助付费功能,开发者能够更进一步整合外部应用程序的数据,丰富客户档案,从而实现服务水平的全面提升。</li><li><strong>数据分析与质量管理</strong>:在 Contact Lens 的支持下,开发者可以拥有强大的对话分析、座席绩效评估和实时监控功能。通过对话式分析,我们更深入地了解客户情绪,把握服务趋势,并及时调整服务策略。座席绩效评估的进一步精细化,通过对话特征、录音和摘要的综合分析,使我们能够全方位了解座席的表现,构建出更为全面的质量管理框架。</li><li><strong>实时监控与录音</strong>:通过 Amazon Connect Contact Lens ,我们实现了对座席对话的实时监控,无需切换应用程序。这种实时监控的实现,有助于我们在服务过程中及时发现问题、提供辅导机会,并简化工作流程。座席屏幕录音为我们提供了座席操作的全面视角,确保了合规性、质量标准和最佳实践的全面实现。</li><li><strong>流程定制与客户体验管理</strong>:Amazon Connect 的流程定义功能允许我们根据实际需求创建自定义流程,更好地适应业务场景。尽管 Amazon Connect 提供了默认流程,但我们可以根据特定方案创建自定义流程,更灵活地塑造客户与联系中心的互动体验。这种灵活性使我们更好地应对不同的业务需求,为客户提供更加个性化的服务。</li></ol><p>通过这些全面的落地途径,我们在实际场景中更有效地应用 Amazon Connect ,不仅提高了客户服务水平,更加强了对客户的管理和理解,显著提高了联系中心的运营效能。这一整合性的解决方案为我们在激烈的市场竞争中脱颖而出,成功实现了联系中心的数字化转型。</p><h3>三、测试体验流程</h3><h4>1. 创建 Connect 实例</h4><p>首先在官网进行登录,完成登录之后,在个人控制台界面搜索 Amazon Connect 服务</p><p><img src="/img/remote/1460000044752010" alt=" title="4.png"" title=" title="4.png""><br>进入到 Amazon Connect 界面,我们选择创建实例</p><p><img src="/img/remote/1460000044752011" alt=" title="5.png"" title=" title="5.png""></p><p>可以看到,我们配置信息需要遵循五步,根据我们的需求去配置相关的信息:</p><p><img src="/img/remote/1460000044752012" alt=" title="6.png"" title=" title="6.png""></p><p>在第二步时候,我们选择添加管理员,同时设置管理员的相关信息,因为这个涉及到后续的操作,之后我们去访问 Connect 平台的时候需要用到用户名和密码</p><p><img src="/img/remote/1460000044752013" alt=" title="7.png"" title=" title="7.png""></p><p>配置完信息之后,我们可以看到实例正在创建中,此时我们只需要稍等片刻,即可完成</p><p><img src="/img/remote/1460000044752014" alt=" title="8.png"" title=" title="8.png""></p><p>进入创建好的实例中,可以查看其相关信息,包括我们稍微要使用到的登录链接 Access URL</p><p><img src="/img/remote/1460000044752015" alt=" title="9.png"" title=" title="9.png""></p><p>进入我们刚才创建的 Connect 实例中,通过 AccessURl 去访问对应的 Connect 主页</p><p><img src="/img/remote/1460000044752016" alt=" title="10.png"" title=" title="10.png""></p><p>使用我们刚才设置的管理员有用户名和密码进行登录</p><p><img src="/img/remote/1460000044752017" alt=" title="11.png"" title=" title="11.png""></p><p>Amazon Connect Contact Lens 这部分功能 添加了 AI 生成的客户对话摘要的功能,能够用于客户互动,可以帮助经理评估和优化座席绩效</p><p><img src="/img/remote/1460000044752018" alt=" title="12.png"" title=" title="12.png""><br>Amazon Connect Contact Lens 这部分功能 添加了 AI 生成的客户对话摘要的功能,能够用于客户互动,可以帮助经理评估和优化座席绩效</p><p><img src="/img/remote/1460000044752019" alt=" title="13.png"" title=" title="13.png""></p><p>Amazon Connect 中的 Amazon Lex 这部分功能现在利用生成式 AI ,实现更轻松地为客户构建有效且引人入胜的自助服务体验</p><p><img src="/img/remote/1460000044752020" alt=" title="14.png"" title=" title="14.png""></p><h4>1. 接入 Amazon Q 助手</h4><p>进入我们创建的实例中,选择 Amazon Q 服务,并创建服务</p><p><img src="/img/remote/1460000044752021" alt=" title="15.png"" title=" title="15.png""></p><p>进入配置界面,根据开发需要进行相关信息配置,如果您之前没有创建过密钥,可以先去创建密钥,然后选择添加,便可完成配置进行服务创建</p><p><img src="/img/remote/1460000044752022" alt=" title="16.png"" title=" title="16.png""></p><p>创建成功之后,我们可以点击查看实例的具体信息,同时也可以通过集成第三方应用程序</p><p><img src="/img/remote/1460000044752023" alt=" title="17.png"" title=" title="17.png""></p><p>通过导航栏选择第三方应用程序模块,通过配置相关信息去添加</p><p><img src="/img/remote/1460000044752024" alt=" title="18.png"" title=" title="18.png""></p><h4>1. Amazon Connect Customer Profiles 启用实例</h4><p>在我看来,Amazon Connect 提供了一套强大而便利的预构建集成工具,让我们能够快速地将来自多个外部应用程序的客户信息整合在一起。更方便的是,我们还能轻松访问 Amazon Connect 的联系历史记录。</p><p>1.首先选中我们刚创建的实例中,点击进入到导航窗格中</p><p><img src="/img/remote/1460000044752025" alt=" title="19.png"" title=" title="19.png""></p><p>2.选中 Customer profiles , 可以看到页面显示未启用任何客户配置文件域,我们选择 Enable customer profiles (启用客户配置文件) 以获取 开始。</p><p><img src="/img/remote/1460000044752026" alt=" title="20.png"" title=" title="20.png""></p><p>3.在“启用客户配置文件”页面,选择“创建新域”。在“指定域”下,输入一个对您有意义的友好名称,例如您的组织名称,如“ CustomerProfiles-ExampleCorp ”。<br><img src="/img/remote/1460000044752027" alt=" title="21.png"" title=" title="21.png""></p><p>4.创建死信队列的步骤包括在“客户配置文件启用”页面上选择新建或选择现有 SQS 队列,然后创建新的死信队列,配置访问策略,最后创建或输入亚马逊云科技 KMS 密钥用于加密。如图配置成功</p><p><img src="/img/remote/1460000044752028" alt=" title="22.png"" title=" title="22.png""></p><h4>1.Amazon Lex 创建入站流示例</h4><p>在我的角度看,流设计器是开始创建所有流程的关键,它是一款直观的拖放式工具,能够在界面上轻松地将各种操作块连接在一起。</p><p><img src="/img/remote/1460000044752029" alt=" title="23.png"" title=" title="23.png""></p><p>要创建新的流程,首先点击“创建流”打开流设计器和创建入站流选项。同时配置相关信息,给流程命名并提供描述。使用搜索栏或展开相关组找到需要的流块,然后拖放到画布上。按 Ctrl 键可以选择多个块,同时移动它们。双击块的标题,在配置窗格中设置块的参数,然后保存。回到画布,单击第一个块,选择执行的操作,如“成功”,然后将箭头拖到下一个操作的连接器上。重复这些步骤以构建您需要的流程。最后,点击“ save ”以保存流程草稿,点击“ publish ”立即激活流。这样,就成功创建了一个满足需求的流程。</p><h3>四、亚马逊云计算与人工智能技术的结合带来的影响</h3><p>云计算与人工智能的结合使得对客户服务变得更加智能高效。生成式 AI 技术的运用为客户与企业之间的互动赋予了新的维度,极大地提升了服务效率。通过引入的生成式人工智能功能,Connect 能够更迅速地响应客户需求,实时解决问题,使互动更为顺畅。</p><p><img src="/img/remote/1460000044752030" alt=" title="24.png"" title=" title="24.png""></p><p>亚马逊云计算与人工智能技术的结合为客户服务带来了革命性的变革。通过提升服务效率、促进业务创新和高效利用资源,这一趋势不仅满足了当下企业的需求,更为未来的客户服务提供了坚实的基础。随着技术的不断发展,云计算与人工智能的融合将持续推动客户服务行业的创新和发展,为企业赢得更为可持续的竞争优势。</p><p><img src="/img/remote/1460000044752031" alt=" title="25.png"" title=" title="25.png""></p><p>云计算与人工智能技术的结合使企业更高效地利用资源。自动创建统一的客户档案是这一趋势中的一大亮点,它能够使得客户数据的聚合变得更为迅速、简便。这种高效的数据聚合为提供个性化客户体验奠定了坚实的基础。Connect 在使用生成式 AI 助手时,能够更快捷地解决问题,从而提高工作效率,使得企业能够更有效地利用宝贵的人力资源。这种高效资源利用不仅有助于提升座席的工作效率,更能够降低整体运营成本。企业能够更聚焦于核心业务,更加智能地配置和管理资源,使得每一份投入都能够得到最大的回报。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=dLpZgdRcL9UBE8eIlluV9w%3D%3D.ti3BQciVyGyH6cTfmvoTorA4q0iWUeOnSep4twVIL88eZkHWIFWvEmBXiDJoxfgeMhGD6OAjykURjxowjpm%2FNwH8n2SAPY5t9ooNC2GS5dJGMsJWsVc3BhuHXTSHPHhpnkd8FmFKcis%2BtNoZkaOob1PpmL%2FgcxQfSi1k2HyFg2x77DDvrEkCkaIZb%2BpUMnku" rel="nofollow">https://dev.amazoncloud.cn/column/article/6589b3e079476548e3e...</a></p>
使用 Amazon Bedrock + Claude 3 打造个性化智能编程助手
https://segmentfault.com/a/1190000044748082
2024-03-26T19:29:26+08:00
2024-03-26T19:29:26+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>最近,随着人工智能技术的迅速发展,代码助手已经成为软件开发领域备受关注的工具。像 <a href="https://link.segmentfault.com/?enc=LY7%2Bl7FrPdBE6xKOqVbatQ%3D%3D.SOsWuvgbwQhPhuFHnLSN6aa24vqRSVyAinJmE9BKi1QuOuTe5EBnKo40KSizDFe1%2FFUYfSZWoXN0fThXwwLi1Di45bWUOIOkLCdXzV%2BGd9o%3D" rel="nofollow">Amazon CodeWhisperer</a> 和 Github Copilot 这样的工具可以在集成开发环境中帮助用户自动生成代码,极大地提高了开发效率。然而,这些助手通常缺乏直接执行代码的能力,需要额外集成开发环境来执行代码。为了解决这一问题,OpenAI 在 ChatGPT 中推出了code interpreter,微软也开发了开源项目 AutoGen 来实现代码执行能力,类似的工具还包括开源项目 Open Interpreter。这些工具允许我们直接执行大型语言模型生成的代码,但是它们提供的的代码解释器主要以 Python 为主,对其他开发语言比如 Nodejs,Golang,Rust,PHP 支持得并不好。</p><blockquote><a href="https://link.segmentfault.com/?enc=V%2BHiGMLOuoCb0cxRtkDUlA%3D%3D.t6E0FgkvjKcd31Wh37oWVB2IWo%2FP44pYNSyimk3L%2BY9EYxSvMoEmv%2BRmW%2FAnFzMovC3iI5hl2Zdw2ZF8ixL3HudnizhFYZ%2B02Em0yPFKSjaBsB9Dx5jwcsdfuiR4MgOp" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=Qkr27hyR5S5BjnDfbtby4w%3D%3D.HV9DzAGjDASLxB0YrUwqkW2t0TMgKKXPOXthDTXW065FsPfctuR8gV%2FHlFWgDCoYOee3EWl8T22cX%2BQKk8jzACDdzVsu8Nf0SG4%2F1PYdc43aKeVMvU2%2BTqSzYXRUZq1NNffGhOL8INImGAqnsaA6PQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在日常工作中,我们发现许多客户经常需要使用 Amazon SDK 进行开发,通常涉及多种编程语言如 Go、Node.js 和 Rust,为此我们创建了”Bedrock-claude-codecoach”开源项目(项目链接:<a href="https://link.segmentfault.com/?enc=fD%2Bmr%2FjoJSgmuEKEeBImVg%3D%3D.tQzillCeq8crc08sKyj58HCEtlNgsHVHB%2Buys%2B9PmkeHQxf9RQhUCBsZLPkm%2BB1vSE9pQo3KA4DQRGhpuGz0ZULAelEcqtm%2BffHwCNDAW2I%3D" rel="nofollow">https://github.com/aws-samples/bedrock-claude-codecoach?trk=cndc-detail</a> ),它是使用 Amazon Bedrock、Piston、LangChainJS 和 NextJS 开发的编程助手和代码解释器,支持 Anthropic Claude 2/2.1,Claude 3 和开源 Mistral 7B、Mixtral 8x7B 等模型。通过这个开源项目,我们旨在提供一个开箱即用的 Bedrock 编程助手,可以快速帮助用户进行 Amazon SDK 代码开发和调试。另外,我们还内置了一个提示词编辑工具,方便那些初次接触 Amazon Bedrock 的提示词工程师进行提示词调试。</p><h3>1. 架构介绍</h3><p>CodeCoach 架构图如下:</p><p><img src="/img/remote/1460000044748084" alt=" title="1.png"" title=" title="1.png""></p><p>本项目最大的价值是提供方便快捷的部署方案,以较高的准确度生成代码并提供执行代码的各种运行环境。因此在项目中我们使用了 Amazon Bedrock 服务进行代码的生成。</p><p>Amazon Bedrock 是一个 MaaS 的平台,提供了各种业界翘楚的商业化模型(如:Athropic 的 Claude)和开源模型(如:Llama/Mistral),最大程度地减少了客户选择和使用基础模型的试错成本和时间周期,并且 Bedrock 上的基础模型会不断迭代更新,确保客户能始终 enable 最新最强的模型的功能,如最近新上架的 Athropic Claude v3 的模型,在各项指标评测中赶超 GPT-4,并且增加了多模态 VQA,Function Calling 等最新功能。</p><p>在本项目中,我们采用了 Bedrock 上的 Claude 3 和 Mistral 7B 模型进行代码生成,经测试其在各项代码生成中稳定性和功能均表现突出;用户验证信息和提示词模版等数据存储在 DynamoDB 中,支持多人访问; 此外项目还集成了 Piston 多语言代码执行引擎,通过 Piston 我们可以打造自己开源的 code interpreter,目前 Piston 支持 30 多种执行环境,在 CodeCoach 里面我们选择了常见的几种开发语言:Python,Golang,JavaScript/TypeScript,PHP 和 Rust,并且已经预集成了Amazon SDK 可以直接使用;同时为了简化部署过程,我们提供了 CloudFormation 一键部署模版(cf-template.yaml) 。</p><h3>2. 部署项目</h3><p>CodeCoach 已经提供了 CloudFormation 模版(<a href="https://link.segmentfault.com/?enc=x2tQNDVNsax4JdhVQLGdKg%3D%3D.tHOdm7zySrFOKmwjV%2BJBDpYHLhGzEPU3e%2BaF%2FJ5SGL5SMY17fn0W86mVcy04dNYvqLZe%2FLvVvisbHCP63ogh7Wb8y35ntAhSoHxp4IiyY4Bc5Y%2BXEI6VH7KspstpDLQUpyDGWK54r%2BF3vt47Pg6LQQ%3D%3D" rel="nofollow">https://github.com/aws-samples/bedrock-claude-codecoach/blob/main/cf-template.yaml?trk=cndc-detail</a> ),可以直接下载到本地后进行部署。</p><h4>方法一、通过 CloudFormation 服务控制界面进行部署</h4><p>首先请登陆 亚马逊云科技(海外)控制台,进入 CloudFormation 界面,点击创建 Stack</p><p><img src="/img/remote/1460000044748085" alt=" title="2.png"" title=" title="2.png""></p><p>选择上传模版文件, 上传 cf-template.yaml 模版</p><p><img src="/img/remote/1460000044748086" alt=" title="3.png"" title=" title="3.png""></p><p>设置 EC2 密钥对的名字,这样就可以直接登陆到 EC2 进行调试</p><p><img src="/img/remote/1460000044748088" alt=" title="4.png"" title=" title="4.png""></p><p><img src="/img/remote/1460000044748089" alt=" title="5.png"" title=" title="5.png""></p><h3>方法二、使用命令行工具部署 CodeCoach</h3><pre><code class="js">#请替换<你的 KeyPair 名字> 为实际使用的 Key Pair 名字
aws cloudformation create-stack --region us-west-2 \
--stack-name codecoach \
--template-body file://cf-template.yaml \
--parameters ParameterKey=SSHKeyName,ParameterValue=<你的 KeyPair 名字> \
--capabilities CAPABILITY_IAM</code></pre><p>CloudFormation Stack 创建完成后会输出 Cloudfront 地址(下图红框提示处即访问地址),直接访问即可。</p><p><img src="/img/remote/1460000044748090" alt=" title="6.png"" title=" title="6.png""></p><p>访问该网页点击 Get Start 即可登录,初始用户密码( <a href="mailto:admin@demo.com">admin@demo.com</a>/123456!@# ),首次登录后请点击右上角设置(齿轮图标),立即修改用户密码。</p><p><img src="/img/remote/1460000044748091" alt=" title="7.png"" title=" title="7.png""></p><p><img src="/img/remote/1460000044748092" alt=" title="8.png"" title=" title="8.png""></p><p>选择助手,点击模型下拉列表,选择合适的模型然后点击测试,测试通过后点击保存,项目默认是 Claude2,推荐使用最新的 Claude3 Sonnet。</p><p><img src="/img/remote/1460000044748093" alt=" title="9.png"" title=" title="9.png""></p><h3>3. CodeCoach 功能介绍</h3><h4>3.1 使用 Amazon SDK 进行程序开发</h4><p>我们在日常工作中可能会需要使用各种语言的 Amazon SDK 代码,比如 Python(boto3),Golang,JavaScript/TypeScript,PHP,Rust 等。下面我们就以 Python(boto3)/Golang 为例来演示如何使用 CodeCoach 进行 Amazon SDK 开发。</p><h5>3.1.1 使用 boto3 进行开发,打印某个区域的 EC2 实例列表,并可以返回运行状态</h5><p>首先我们输入“使用 boto3 列出 us-east-1 的 ec2 实例”,然后等待 CodeCoach 返回,点击执行。</p><p><img src="/img/remote/1460000044748094" alt=" title="10.png"" title=" title="10.png""></p><p>UI 就会调出代码编辑界面,在这个界面点击执行即可,在 output 显示框我们可以看见 Amazon SDK 的返回结果,如果代码有问题,会出现“fix”按钮,我们可以要求 CodeCoach 修复错误,并进行说明。</p><p><img src="/img/remote/1460000044748095" alt=" title="11.png"" title=" title="11.png""></p><h5>3.1.2 使用亚马逊 Golang SDK 打印 S3 桶列表</h5><p>输入“使用 Amazon Golang SDK 编写一个 list s3 bucket 代码”,点击执行,因为 Golang 需要编译,所以执行的时候需要比 Python 更久的时间,点击后请耐心等待。</p><p><img src="/img/remote/1460000044748096" alt=" title="12.png"" title=" title="12.png""></p><p><img src="/img/remote/1460000044748097" alt=" title="13.png"" title=" title="13.png""></p><h4>3.2 错误修复</h4><p>如果生成的代码出现了错误,我们可以直接点击“修复助手”,CodeCoach 会调用大语言模型给出修复方法和说明。</p><p><img src="/img/remote/1460000044748098" alt=" title="14.png"" title=" title="14.png""></p><p><img src="/img/remote/1460000044748099" alt=" title="15.png"" title=" title="15.png""></p><p>可以看到 Claude3 不仅帮助我们纠正了错误,而且还给出了关于错误的解释:返回值“没有 Instances”这个 Key,需要使用 “Reservations”。</p><h4>3.3 提示词模版工具</h4><p>CodeCoach 支持自定义提示词,直接打开提示词,可以编写加载自己的提示词,我们分别使用 Claude2,Claude3 来编写一个翻译助手。</p><h5>3.3.1 编写 Claude3 提示词</h5><p>Claude3 不再需要 Human,Assistant 限定格式,可以直接进行编写,可以参考 <a href="https://link.segmentfault.com/?enc=0WH2j5rjlnbFK3a8qQFzMQ%3D%3D.Jg5g7hOrKgOg0tMBBRgAr1FVsVl%2F1qGwGn7hRsN44MkVINrN3kiadVEkkrXog%2Fc5TX5I1O251v8KN8cx23EniyPMu9zR4zjgHG%2BTH%2B%2BkEWGbENFd2WgwdtfVNOZSw5CpteGoYmT%2FGak4v0nTzvXoFkSj3Qu3FJEKgWoTguPuG5c%3D" rel="nofollow">Anthropic Claude Message API</a> 文档, 下面我们以 Claude3 为例编写一个翻译助手。</p><p><strong>1)不使用 System Role,直接在用户提示词里面编写任务</strong></p><pre><code class="js">你是一个中英文翻译专家,你先要判断我的问题是中文还是英文
1.如果是英文请转换成中文
2.如果是中文请转换成英文
这里是我的问题:
{query}
请返回 {"input": "question", "output":"你的答案“}</code></pre><p><img src="/img/remote/1460000044748100" alt=" title="16.png"" title=" title="16.png""></p><p>点击提交,Claude3 会返回{<em>“input”: “我想买一辆车.”, “output”: “I want to buy a car.”</em>} ,完全符合我们的预期。</p><p>后台查看 Message API 格式如下:</p><p><img src="/img/remote/1460000044748101" alt=" title="17.png"" title=" title="17.png""></p><p><strong>2)使用 Claude3 的 System Role,我们将原始提示词里面任务的定义填写到 Claude3 System Role 里面</strong></p><p><img src="/img/remote/1460000044748102" alt=" title="18.png"" title=" title="18.png""></p><p>注意,这里整个 payload 就多了一个新 key “system”,这个就是 Claude3 最新的 Message API 定义 system role 的方法。</p><p><img src="/img/remote/1460000044748103" alt=" title="19.png"" title=" title="19.png""></p><h5>3.3.2 编写 Claude2 提示词,Human,Assistant 分别代表了输入和模型的输出</h5><pre><code class="js">Human: 你是一个中英文翻译专家,你先要判断我的问题是中文还是英文
1.如果是英文请转换成中文
2.如果是中文请转换成英文
这里是我的问题:
{query}
请返回 {"input": "question", "output":"你的答案“}
Assistant:</code></pre><p><img src="/img/remote/1460000044748104" alt=" title="20.png"" title=" title="20.png""></p><p>Mistral 7B 使用方式类似,在这里我们就不再赘述了。</p><p>其次在提示词调试工具里面我们可以定义任意的{变量}, 变量会自动生成文本输入框,通过 LangChainJS Prompt Template 进行加载,点击提交即可测试你的提示词, 点击保存就可以将模版保存在 Amazon DynamoDB 中方便下次使用。</p><h3>4. 如何自定义 Piston 执行环境</h3><p>Piston 的开源地址为 <a href="https://link.segmentfault.com/?enc=Qq7taWc79Dk6zyKAYRZUQA%3D%3D.ELQDGYDAj4MfW3JekvTL9btQ5cDQDbHHRHbYftOfPl%2FSROa%2FR7VRlZ3Eyh3PhwWtwlhDDOfUS2GfPsxiY8D0lg%3D%3D" rel="nofollow">https://github.com/engineer-man/piston?trk=cndc-detail</a> ,目前已经集成了 112 种运行环境,参考 <a href="https://link.segmentfault.com/?enc=AYDUGSAyiU%2BHhWvdn7rWyw%3D%3D.uKUpetpFBmp%2BgEZ9V1ILCjR8HhuApM8PZKvhMfeDjUFLeHLE%2FXS9VDsV1y6srzVwik2MtvXL0lxR4nuUQEjHOWfQFecTpmndfTYw40VMy4gZ6JSXsF5u0m%2FpFSXsQbV%2F" rel="nofollow">https://github.com/engineer-man/piston/releases/download/pkgs/index?trk=cndc-detail</a> 。官方的 repo 中仅提供每种语言基础的运行环境,但是在实际的使用过程中,我们需要丰富运行环境,安装额外的依赖,例如我们需要为 python 环境增加 boto3 的 SDK,或者为 Bash 环境增加 Amazon CLI 等,因此我们需要在官方 repo 的基础上自定义 Piston 环境。</p><h4>4.1 复制全量执行环境(可选)</h4><p>为了拥有全量的执行环境,我们先将官方的 repo 中的所有运行环境迁移到自己的 github 仓库中,我们可以 Fork 官方 git 仓库之后通过以下脚本批量的迁移 Release 中发布的所有环境。</p><pre><code class="js">#!/bin/bash
repo="piston"
# GitHub Token
token="xxxxxxx"
# github owner code
owner="xxx"
# Release名
release_name="Packages"
# 本地附件目录
attach_dir="/opt/pkgs"
# ReleaseId
release_id=""
upload_assets(){
release_id=$1
file=$2
echo "-----"
echo $release_id $file
# 上传文件
upload_url=$(curl -H "Authorization: token $token" \
-H "Content-Type: application/gzip" \
https://uploads.github.com/repos/$owner/$repo/releases/$release_id/assets?name=$(basename $file) \
--data-binary @$file > /dev/null)
# 添加为Release附件
curl -X POST -s -H "Authorization: token $token" \
-H "Content-Type: application/json" \
-d '{"name":"'$(basename $file)'","url":"'$upload_url'"}' \
https://api.github.com/repos/$owner/$repo/releases/$release_id/assets > /dev/null
}
release_to_github(){
# 获取 release_id
if [ "x"${release_id} == "x" ]; then
# 判断release是否存在
release_exist=$(curl -s -H "Authorization: token $token" https://api.github.com/repos/$owner/$repo/releases/tags/$release_name | jq '.id')
if [ -z "$release_exist" ]; then
# 不存在则创建
release_id=$(curl -s -X POST -H "Authorization: token $token" \
-d '{"tag_name":"'"$release_name"'","name":"'"$release_name"'"}' \
https://api.github.com/repos/$owner/$repo/releases | jq '.id')
else
# 存在则直接使用
release_id=$release_exist
fi
fi
# 遍历附件目录上传文件
for file in $attach_dir/*.tar.gz; do
echo "release: $file"
upload_assets $release_id $file
done
}
download_from_source(){
cd $attach_dir
rm -fr index && curl -s -L https://github.com/engineer-man/piston/releases/download/pkgs/index -o index
count=1
while read line; do
if [ "x"$line == "x" ];then
continue
fi
# 分割CSV字段
IFS=',' read -ra fields <<< "$line"
# 下载文件
url="${fields[3]}"
echo "${count}:${url}"
filename=$(basename $url)
curl -s -L -o "$filename" "$url"
release_to_github
rm -fr $filename
((count++))
done < ./index
sed -i 's!https://github.com/engineer-man/piston/releases/download/pkgs/!https://github.com/yanjun-ios/piston/releases/download/Packages/!g' index
# 合并index文件
mv index index_1 && curl -s -L https://github.com/$owner/piston/releases/download/Packages/index -o index_2
cat index_1 index_2 | sort | uniq > index
echo "upload the index file !"
# 上传 index 文件
upload_assets $release_id $attach_dir/index
}
download_from_source</code></pre><h4>4.2 修改执行环境,重新构建执行环境的安装包</h4><p>在 piston 的工程中的 piston/packages/ 目录下存放了所有执行环境的构建代码,每个执行环境主要包括 build.sh,environment,metadata.json,run,test 五个文件,其中 build.sh 中定义了执行环境的安装过程,environment 中定义了我们要暴露的环境变量,在自定义执行环境的时候我们需要修改这两个文件。</p><p><img src="/img/remote/1460000044748105" alt=" title="21.png"" title=" title="21.png""></p><p>我们以 bash 执行环境中添加 awscli 为例,将 iston/packages/bash/5.2.0/build.sh 中内容改成下代码:</p><pre><code class="js">#!/usr/bin/env bash
# Put instructions to build your package in here
PREFIX=$(realpath $(dirname $0))
mkdir -p build
cd build
curl "https://ftp.gnu.org/gnu/bash/bash-5.2.tar.gz" -o bash.tar.gz
tar xzf bash.tar.gz --strip-components=1
# === autoconf based ===
./configure --prefix "$PREFIX"
make -j$(nproc)
make install -j$(nproc)
cd ../
rm -rf build
# install aws cli
PREFIX=$PWD
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.0.30.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install -i $PREFIX/aws-cli -b $PREFIX/bin
rm -fr awscliv2.zip
rm -fr ./aws</code></pre><p>在 environment 中添加 awscli 的环境变量</p><pre><code class="js">#!/usr/bin/env bash
# Put 'export' statements here for environment variables
export PATH=$PWD/bin:$PATH
export PATH=$PWD/aws-cli:$PATH</code></pre><p>修改完执行环境,我们修改 piston/docker-compose.yaml 文件,从本地代码构建 docker 镜像,并启动容器</p><pre><code class="js">services:
api:
build: api
container_name: piston_api
cap_add:
- CAP_SYS_ADMIN
restart: always
ports:
- 2000:2000
volumes:
- ./data/piston/packages:/piston/packages
environment:
- PISTON_REPO_URL=https://github.com/@owner/piston/releases/download/Packages/index
- PISTON_DISABLE_NETWORKING=false
- PISTON_RUN_TIMEOUT=300000
- PISTON_OUTPUT_MAX_SIZE=102400
tmpfs:
- /piston/jobs:exec,uid=1000,gid=1000,mode=711</code></pre><p>启动并进入容器中,构建自定义执行环境</p><pre><code class="js">docker compose up -d
docker exec -it piston_repo bash
cd piston/repo/
# 执行构建命令
sh build_package.sh bash=5.2.0
# 将构建好的安装包发布到github
sh build_package.sh release </code></pre><p>其中 build_package.sh 代码如下:</p><pre><code class="js">#!/bin/bash
#set -x
# usage: sh build_package.sh python or sh build_package.sh python=2.7.18
repo="piston"
# GitHub Token
token="xxxxx"
# github owner code
owner="xxxx"
# Release名
release_name="Packages"
# 本地附件目录
attach_dir="/piston/repo/"
# ReleaseId
release_id=""
all_assets=()
upload_assets(){
release_id=$1
file=$2
echo "-----"
echo "Upload File, Release Id: $release_id file name : $file"
# 上传文件
upload_url=$(curl -H "Authorization: token $token" \
-H "Content-Type: application/gzip" \
https://uploads.github.com/repos/$owner/$repo/releases/$release_id/assets?name=$(basename $file) \
--data-binary @$file > /dev/null)
# 添加为Release附件
curl -X POST -s -H "Authorization: token $token" \
-H "Content-Type: application/json" \
-d '{"name":"'$(basename $file)'","url":"'$upload_url'"}' \
https://api.github.com/repos/$owner/$repo/releases/$release_id/assets > /dev/null
}
# 获取所有的asset
get_all_assets() {
page=1
#release_id=128663575
assets_url="https://api.github.com/repos/$owner/$repo/releases/${release_id}/assets?per_page=100"
while :
do
local assets
assets=$(curl -fsS -H "Authorization: token ${token}" "${assets_url}&page=${page}" | jq -r '.[] | "\(.name)-\(.id)"')
name=$(echo ${assets[@]}| grep "pkg.tar.gz")
# result=$(echo $name | grep "=")
if [ $? -ne 0 ];then
break;
fi
# 将当前页面的assets添加到数组中
#mapfile -t assets < <(echo "$assets")
for i in ${assets[*]}
do
# echo "this is i: "$i
all_assets[${#all_assets[*]}]=${i}
done
((page++))
done
echo "全量数组长度:${#all_assets[@]}"
}
# 根据文件名删除附件
delete_release_asset(){
release_id=$1
file_name=$2
if [ ${#all_assets[@]} -eq 0 ]; then
echo "assets 为空,请求全量assets"
get_all_assets
fi
asset_id=""
for element in "${all_assets[@]}"; do
if [[ $element == *"$file_name"* ]]; then
asset_id=$(echo $element | awk -F '-' '{print $NF}')
break
fi
done
echo "Delete File, file Name : $file_name asset_id :$asset_id"
if [ "$asset_id" == "" ]; then
echo "Delete failed, No asset found with filename: $filename"
return 1
fi
asset_url="https://api.github.com/repos/$owner/${repo}/releases/assets/${asset_id}"
response=$(curl -s -X DELETE -H "Authorization: token ${token}" ${asset_url})
if echo "$response" | grep -q '204 No Content'; then
echo "Failed to delete asset: $response"
else
echo "Asset deleted successfully"
fi
}
# 发布到github release中
release_to_github(){
cd $attach_dir
if [ ! -f *.tar.gz ];then
echo "there is no packages to be released , exit 1"
exit 1
fi
# 获取 release_id
if [ "x"${release_id} == "x" ]; then
# 判断release是否存在
release_exist=$(curl -s -H "Authorization: token $token" https://api.github.com/repos/$owner/$repo/releases/tags/$release_name | jq '.id')
if [ -z "$release_exist" ]; then
# 不存在则创建
release_id=$(curl -s -X POST -H "Authorization: token $token" \
-d '{"tag_name":"'"$release_name"'","name":"'"$release_name"'"}' \
https://api.github.com/repos/$owner/$repo/releases | jq '.id')
else
# 存在则直接使用
release_id=$release_exist
fi
fi
# 遍历 tar.gz 附件目录上传文件
for file in *.tar.gz; do
echo "release: $file"
delete_release_asset $release_id $file
upload_assets $release_id $file
done
# 合并index文件
mv index index_1 && curl -s -L https://github.com/@owner/piston/releases/download/Packages/index -o index_2
if [ $? -ne 0 ];then
echo "download index file failed,exit 1"
exit 1
fi
for file in *.tar.gz; do
sed -i "/${file}$/d" index_2
done
cat index_1 index_2 | sort | uniq > index
echo "upload the index file !"
# 上传 index 文件
delete_release_asset $release_id index
upload_assets $release_id index
}
# 构建安装包
build_package(){
cd /piston/packages
echo "build packages from args..."
for pkg in "$@"
do
shift
if [ ! -d `echo $pkg | awk -F'=' '{print $1}'` ];then
echo "Packages not found for $pkg"
continue
fi
result=$(echo $pkg | grep "=")
if [ $? -eq 0 ];then
echo "install $pkg"
pkgname=$(echo ${pkg/=/-})
echo $pkgname
make -j16 $pkgname.pkg.tar.gz PLATFORM=docker-debian
else
if [ -d "$pkg" ];then
echo "install all version for $pkg"
for version in $pkg/*;do
version=$(echo $version | awk -F '/' '{print $2}')
pkgname=${pkg}"-"${version}
echo $pkgname
make -j16 $pkgname.pkg.tar.gz PLATFORM=docker-debian
done
fi
fi
done
if [ ! -f *.tar.gz ];then
echo "there is no packages to be released , exit 1"
exit 1
fi
cd /piston/repo
echo "Creating index"
./mkindex.sh
echo "Index created"
}
if [ $1 == "release" ];then
release_to_github
else
build_package $@
# release_to_github
fi</code></pre><p>至此,我们已经在自己的 github 中拥有一个完全独立的 piston 的 repo,在使用时,我们只需要进入 CloudFormation 启动的 EC2,修改/root/bedrock-claude-codecoach/docker-compose.yaml 文件,通过环境变量的方式指定我们自定义 piston repo 中的 index 文件,重新执行 init.sh 即可。docker-compose 示例如下图:</p><p><img src="/img/remote/1460000044748106" alt=" title="image.png"" title=" title="image.png""></p><ul><li>Piston 启动配置请参考:<a href="https://link.segmentfault.com/?enc=4ve7pW8zSyKdqEZBrhj8IA%3D%3D.PYxJxhpu5Ucfk%2BCQOZMXGakFbpWNsGNorXnv5iM6BxI5N4fsO6fGLVCd%2BzCOBUKr6aeydKLsxsSOKi6VGlNzlNlqR67p4ZsBSqRmkdTgJ2LBAuQa7Eana526g3PH%2Bk3g" rel="nofollow">https://github.com/engineer-man/piston/blob/master/docs/configuration.md?trk=cndc-detail</a></li><li>完整的 piston自定义环境参考:<a href="https://link.segmentfault.com/?enc=rQQSRD3qbW1JPF28UPEcVw%3D%3D.KGHO%2FGb35awLTa%2BdORYx9oZMlOzCcH8lL2OEl%2Fyw1dtNRLj55aBan9P6bHdv7L5fWE7FRNyW5%2B%2F4tUp0SPm%2B%2F8a899KTVeGyfP54qN6KTa0%3D" rel="nofollow">https://github.com/yanjun-ios/piston/tree/master?trk=cndc-detail</a></li><li>Piston 启动配置请参考:<a href="https://link.segmentfault.com/?enc=VTD498GzvMBMiT2jhfc00Q%3D%3D.XTidC4QSsTsM9w86IkcdSssLsRwJMd%2BoGdphKd%2FDXGr9GgrTEoMK7iu0pEw2ULTL74ZB4MiZtivZxUgnb7z7OpX2z3S7p0dxHMVB7Gow%2FXrEH6tJ%2BT73nOJkKn2YBiPs" rel="nofollow">https://github.com/engineer-man/piston/blob/master/docs/configuration.md?trk=cndc-detail</a></li><li>完整的 piston自定义环境参考:<a href="https://link.segmentfault.com/?enc=IGTVHBdl8hWOZpnkMb9Y0Q%3D%3D.j8OFPAvczg4pNZZ00VodFQHiMM6SRthIxVWSNO2aTG3nt3%2FqmCeExzJ0CkDawwQjfc7R%2FwHZQnjtZi%2FXMKV22L2XUPYbKQWnEVPOuyW%2F59A%3D" rel="nofollow">https://github.com/yanjun-ios/piston/tree/master?trk=cndc-detail</a></li></ul><h3>5. 总结</h3><p>我们可以通过 Amazon Bedrock 和 Claude 3,Mistral 7B 打造自己的代码助手,同时通过扩展 Piston 提供自定义安全可靠的执行环境,并且始终保持整个数据访问限定在企业内部,满足数据合规要求。项目后续考虑加入 Agent 和文档检索增强,利用 Amazon SDK 文档进一步提高 CodeCoach 的代码正确率,通过 Agent 来实现自动化测试。</p><h3>附录</h3><ol><li><a href="https://link.segmentfault.com/?enc=hWTcCDp24LiwTkq8VL0CmQ%3D%3D.WZfsINFw66owGK%2FJfMjA9tb7ohOUqqz6buvUlaq6aBu3A1XRoo5lekL8gJkI6TAXTL0K4hJ1RzFlLAek5TVyfQ%3D%3D" rel="nofollow">Anthropic’s Claude on Amazon Bedrock</a></li><li><a href="https://link.segmentfault.com/?enc=WDorEfP%2B0jT%2FktoXMbf61g%3D%3D.5NBCUUlTJaXVAZ5O6iEn4daWPsY6XkknMO%2BiMHJyMzFjKmJSrxIpwPCELZMGgqZv%2FYrQfsDtur4%2B91e47oFxuQ%3D%3D" rel="nofollow">Mistral AI on Amazon Bedrock</a></li><li><a href="https://link.segmentfault.com/?enc=dIBzArKmADsWLNc6sS6Dow%3D%3D.LoL3Wv82No3iADcM3fDasNfqhRqivvQoZq4g9vU0DbyVSfOQQbVA%2Bj9w%2BI1RsE3LLenQ85HQapuh07a5Z%2FNTEw%3D%3D" rel="nofollow">Piston</a></li></ol><p>文章来源:<a href="https://link.segmentfault.com/?enc=dOE6qsFAdd0aYH1ap%2BzyvA%3D%3D.7r5rkzljbuds5wdqLY6%2B8ctW0QkKQH42EU8aSIYuP3uhiF7zNJcVjBoDp%2BzbV2oBn5wOv%2FBN3k%2BjHY9%2B%2Btn1lhB2oehsEi0j1vyTvi9BM%2Bbq6giVAG7HJnE%2FJmg4x83mhAV%2BnQhSVqQE%2BBM0f%2FUcebywbB%2BlWyStgAjYycScrlP71DoqmChz%2B6mJSfKOEfMu" rel="nofollow">https://dev.amazoncloud.cn/column/article/660286395bf36650607...</a></p>
拓展 Amazon S3 技术边界: Amazon S3 Express One Zone 的创新之路
https://segmentfault.com/a/1190000044745172
2024-03-26T07:37:22+08:00
2024-03-26T07:37:22+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>自 Amazon S3 服务推出以来,一直是全球各行各业数百万客户钟爱的云存储服务。然而,随着新兴用例的不断涌现,传统存储方式面临性能瓶颈,尤其是对于对延迟极为敏感的应用程序。为前不久展开的亚马逊云科技 re:Invent 2023 大会上发布了存储相关的产品 Amazon S3 Express One Zone ,一种高性能存储类,为客户提供最快的数据访问速度和卓越的性能。</p><blockquote><a href="https://link.segmentfault.com/?enc=sb8USrIw%2Fic9MJvzvs%2B90Q%3D%3D.ajrWTx%2Fmn2gujzXSVV2v3HXvUBOyViaeV0QjpCa9epkJS2jF%2BlsrzzyYZz1uUuFHIcHem%2F%2FUCDN%2Fdo3P8G9LzYijxHT5FPAFyx8Mo%2FRMJXrGiyIX11ZPyaL7%2BBSGCAMF" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=878eraxgpEMftP0fVT0UCg%3D%3D.1IFpfAnu0KA1Tactxg%2BmFsKhX7qJRNLNx2hH7mzQ8w8Ld4cDT%2FyFY4SLcUY5WAzPXqQSPAQJON%2BO5B2aZfahFVF0Uu6wcuJY7CrUd79aNZoJ3s%2Fyay%2FZNRTNlOJPpYQuCe6K6Gm%2BxJgUDKTtiyAiVA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img src="/img/remote/1460000044745174" alt=" title="1.png"" title=" title="1.png""></p><h3>一、降本增效:S3 Express One Zone 的性能优势与成本削减</h3><h5>1. 技术挑战:数据访问速度与性能需求</h5><p>随着新兴用例的崛起,一些应用程序每分钟需要执行数百万次的数据写入和访问,并对个位数毫秒级的响应时间提出苛刻要求。特别是在人工智能和机器学习模型训练、交互式分析、财务模型模拟等场景中,数据的快速访问对于计算效率至关重要。传统存储方式难以满足这些性能需求,客户通常将最常访问的数据移动到自定义缓存解决方案,以降低存储延迟。</p><p><img src="/img/remote/1460000044745176" alt=" title="2.png"" title=" title="2.png""></p><h5>2. 技术突破:Amazon S3 Express One Zone 的创新</h5><p>Amazon S3 Express One Zone 创新性地解决了数据访问速度与性能需求之间的矛盾。通过在专用硬件和软件上复制和存储数据,它实现了比 Amazon S3 Standard 快 10 倍的访问速度,大幅提高了数据处理速度。为了进一步支持每分钟数百万个请求,引入了一种新的存储桶类型,即 Amazon S3 目录存储桶,有效降低了请求成本。</p><p><img src="/img/remote/1460000044745177" alt=" title="3.png"" title=" title="3.png""></p><h5>3. 技术突破:与计算资源并置的一体化解决方案</h5><p>Amazon S3 Express One Zone 提供了与计算资源并置的选择,使客户能够更快地运行性能关键型应用程序。通过将数据与计算资源置于同一 亚马逊云科技 可用区,降低了计算成本,满足了对处理要求最苛刻的工作负载的需求。性能关键型应用程序如查询密集型分析实现了个位数毫秒级的数据访问速度,同时相较于 Amazon S3 Standard ,请求成本降低了多达 50% ,计算成本降低了多达 60%。</p><p><img src="/img/remote/1460000044745178" alt=" title="4.png"" title=" title="4.png""></p><h5>4. 技术突破:解决复杂性与提高灵活性</h5><p>传统方式中,客户通过移动数据到自定义缓存解决方案来解决性能问题,但这也带来了操作负担和对应用程序的修改。Amazon S3 Express One Zone 帮助客户摆脱这一困境,无需管理多个存储系统以实现低延迟工作负载。通过使用相同的 Amazon S3 API 访问数据,客户不再需要额外的存储基础架构,从而简化了架构,降低了复杂性。</p><p><img src="/img/remote/1460000044745179" alt=" title="5.png"" title=" title="5.png""></p><h3><strong>二、体验测试使用</strong></h3><p>在亚马逊云科技官网进行账号登录,没有账号的可以注册一个账号,登录之后进入个人控制台,在顶部搜索栏搜索 S3 存储桶服务</p><p><img src="/img/remote/1460000044745180" alt=" title="6.png"" title=" title="6.png""></p><p>存储桶类型分为通用存储桶和目录存储桶,目录存储桶是针对需要稳定毫秒级延迟的应用场景进行了优化,这里我们选择创建目录存储桶,通过点击图中右方按钮创建存储桶</p><p><img src="/img/remote/1460000044745181" alt=" title="7.png"" title=" title="7.png""></p><p>创建存储桶时,我们选择存储桶类型为目录--新建,用于低延迟应用场景,其他配置信息根据开发需求进行选择</p><p><img src="/img/remote/1460000044745182" alt=" title="8.png"" title=" title="8.png""></p><p>进入目录存储桶,可以进行一些相关的操作,包括对资源的上传和管理操作,进入上传界面之后</p><p><img src="/img/remote/1460000044745183" alt=" title="9.png"" title=" title="9.png""></p><p>我们可以通过拖拽目标文件和文件夹,也可以从本地上传文件和文件夹资源,<strong>S3 Express One Zone 支持在目录存储桶中执行批量操作</strong>,包括清单操作。用户可以方便地操作和管理目录存储桶中的对象,同时保留清单的有效性和完整性</p><p><img src="/img/remote/1460000044745184" alt=" title="10.png"" title=" title="10.png""><br>上传资源后,只需稍等片刻,即可查看上传状态。如图所示,照片已成功上传。在这里,我上传了一些照片,<strong>S3 Express One Zone 是 Amazon S3 的一种存储类别,为用户提供了默认的服务器端加密(SSE-S3)和传输中的 HTTPS 安全访问。通过区域和区域 API 终端节点,用户可以根据实际需要选择访问方式。此存储类别支持用户选择校验和算法,包括 SHA 和 CRC ,用于在上传或下载期间验证数据完整性。</strong></p><p><img src="/img/remote/1460000044745185" alt=" title="11.png"" title=" title="11.png""></p><p>进入我们要查看的存储桶,可以获得存储桶的相关信息,当其他功能中需要使用到存储桶时,可以根据相关名称和信息进行选中和使用</p><p><img src="/img/remote/1460000044745186" alt=" title="12.png"" title=" title="12.png""></p><p>创建目录存储桶后,您将立即体验到极低的读写延迟。这一体验可以通过建立VPC 终端节点连接来实现,或者通过使用区域和区域终结点进行管理对象和目录存储桶的 API 操作。</p><p><strong>目录存储桶 S3 Express 单区添加创建存储桶策略示例</strong>:在 IAM 用户的身份下,确保用户拥有 s3express:CreateBucket 权限。这可以通过向用户的 IAM 策略中添加如下权限来实现例如:以下示例存储桶策略允许亚马逊云科技 账户 ID 将 API 操作用于默认会话 对于指定的目录存储桶。此策略授予对区域终结点(对象)的访问权限 level) API 操作。</p><pre><code>例 – 允许使用默认会话进行调用的存储桶策略CreateSessionReadWrite
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadWriteAccess",
"Effect": "Allow",
"Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/DOC-EXAMPLE-BUCKET--usw2-az1--x-s3",
"Principal": {
"AWS": [
"111122223333"
]
},
"Action": [//获得对应权限
"s3:CreateBucket",
"s3:PutBucketPolicy",
"s3:GetBucketPolicy" ]
}
]
} </code></pre><p>Amazon S3 Express One Zone 存储类支持区域级别(存储桶或控制平面)和对象级别(数据平面)的终端节点 API 操作,以创建存储桶为例,请求语法如下:</p><pre><code>PUT / HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-acl: ACL
x-amz-grant-full-control: GrantFullControl
x-amz-grant-read: GrantRead
x-amz-grant-read-acp: GrantReadACP
x-amz-grant-write: GrantWrite
x-amz-grant-write-acp: GrantWriteACP
x-amz-bucket-object-lock-enabled: ObjectLockEnabledForBucket
x-amz-object-ownership: ObjectOwnership
<?xml version="1.0" encoding="UTF-8"?>
<CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<LocationConstraint>string</LocationConstraint>
<Location>
<Name>string</Name>
<Type>string</Type>
</Location>
<Bucket>
<DataRedundancy>string</DataRedundancy>
<Type>string</Type>
</Bucket>
</CreateBucketConfiguration></code></pre><p>同时 Amazon S3 还提供了接入点功能,如图所示,都有着对应的适用场景和用途。接入点是连接到可用于执行 S3 对象操作的存储桶的命名网络终端节点。接入点别名提供与接入点 ARN 相同的功能,并且可以替代 S3 存储桶名称在任何地方使用(通常用于数据访问)</p><p><img src="/img/remote/1460000044745187" alt=" title="13.png"" title=" title="13.png""></p><p>批处理操作是可以对 Amazon S3 对象执行大规模分批操作。我们可以通过创建作业实现对一系列 S3 对象执行批处理操作</p><p><img src="/img/remote/1460000044745188" alt=" title="14.png"" title=" title="14.png""></p><h3>三、体验感悟和个人总结</h3><p>在学习和使用 Amazon S3 Express One Zone 之后,我深刻感受到了技术的革新如何极大地改善了数据处理的效率。Amazon S3 Express One Zone 有着出色的数据访问速度,为我的日常工作带来了很多帮助。<strong>相比传统存储方式,S3 Express One Zone 以专用硬件和软件复制存储数据,让访问速度比以往更快,这使得处理大规模数据时的体验变得高效而便捷</strong>。在处理人工智能和机器学习模型训练、交互式分析等场景时,我感受到了数据访问速度带来的显著提升,同时为我的工作提供了更大的灵活性和可操作性。</p><p><img src="/img/remote/1460000044745189" alt=" title="15.png"" title=" title="15.png""></p><p>值得一提的是,Amazon S3 Express One Zone 引入了全新的存储桶类型,即Amazon S3 目录存储桶,这种创新性的设计在降低请求成本方面发挥了巨大作用。不仅在性能上有所提升,同时在经济效益上也更为划算。这种高性能与经济实惠的完美结合,使得在数据处理体验方面也变得尤为出色。</p><p><img src="/img/remote/1460000044745190" alt=" title="17.png"" title=" title="17.png""></p><p>Amazon S3 Express One Zone 的技术革新为数据访问速度与性能需求之间的矛盾提供了一种极为出色的解决方案。通过专用硬件和软件的创新应用,实现了对数据的更快访问速度,为性能关键型应用程序带来了显著的改善。新型存储桶设计的引入进一步提高了整体效能,有效降低了请求成本,为用户提供了更为经济实惠的选择。这一系列的技术革新不仅提升了数据处理的速度和效率,同时也为用户带来了更加灵活和可控的数据管理体验。 Amazon S3 Express One Zone 通过技术的前瞻性应用,为用户创造了一个更加智能、高效且经济实惠的数据处理环境。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=66p8DVpEdXfF9k3ZIz0OtA%3D%3D.0JxAWp1cQdiXV%2F5pWB9oW8FMjWa7204DxUeaJdgDvRZbs5moFknsuQUHa7m9rI3GaLf%2BYym6gvZv8NqITHQlgda%2BYfBvocRCtl7SOegu6S8muye6AnVAxXcPUxlO8JnaoRe3KyU1dVMKGMgDMDUS%2FmEM6WWR9M6Q6rfWSzNk85za%2FS1fG7EHbbH7d%2FiJbiJz" rel="nofollow">https://dev.amazoncloud.cn/column/article/6589abab5d096603bb1...</a></p>
PB 级速度,单一数据库操作:走进 Amazon Aurora Limitless Database 的神奇
https://segmentfault.com/a/1190000044741610
2024-03-25T07:41:31+08:00
2024-03-25T07:41:31+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>在数字时代的浪潮中,数据库管理面临着前所未有的挑战和复杂性。对于许多应用程序开发者而言,维护数据库、确保一致性保证、执行升级和备份等日常操作变得越来越复杂。随着应用程序规模的不断扩大,这些任务可能变得琐碎而繁重。传统的数据库管理方式已经不足以满足当今迅速发展的技术环境中的需求。</blockquote><p><img src="/img/remote/1460000044741612" alt=" title="1.png"" title=" title="1.png""></p><blockquote><a href="https://link.segmentfault.com/?enc=iqLaE6sT1Bre5DPN6le8Cg%3D%3D.04ro8QhDdkJXIXYlQs98pp7kJmvq3Z09HsNcISuj9sDQelmFs6k67SQRN1YhInenEemGB8%2FU6LguyQXJL3OSOnJVJ6B3wEvsVRzk9pOZSXGnLMFGpQAQ5VsjkBSAe4VM" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=TiI2mIce%2Fn9DLKfs2YlTvw%3D%3D.5KAxh4NS7niPpPhe44%2BFMfI3e6BkSjoFrFhXgZYRGTvhpF5GWGzbGefKm2FGaAT3vjZXtafNoPBVztRAI%2Bxew4zBZFH2k4my3dsdRgr7DX%2FbCEfsIP09fWp17UuFdhmP6%2FQ7KUMKCy0ZiWg1tIm6SQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>一、无服务器服务创新,Amazon Aurora Limitless Database 助力数据管理</h3><p>在最近召开的亚马逊云科技大会上,亚马逊云科技官方宣布推出 Amazon Aurora Limitless Database ,这是一款旨在解决 PB 级应用程序需求的创新性产品,目前开发者可申请体验预览版。当前,许多组织都在使用 Amazon Aurora,这是一款完全托管的 MySQL 和 PostgreSQL 兼容的<a href="https://link.segmentfault.com/?enc=8b%2B9CIdz7L4e9neQdvajDQ%3D%3D.ST5Tq939VGQrPwhSmLjJCs2WkhItEuEFxhMIfdLr0s2lqRl5sQwei%2FhXTid6mokM%2FZPqoojU%2Fngt930LMmeXF9WMFBzzKwEAqfrVACw6PthKZQ13ccjk8UhXg%2B4TUFOYrpv%2Fs5kAVwIZYNuTwRwSfzSrteVY3890xtMCBXJpKV4%3D" rel="nofollow">关系数据库</a>,以其卓越的性能和可用性成为商业数据库的首选之一。</p><p><img src="/img/remote/1460000044741613" alt=" title="2.png"" title=" title="2.png""></p><p><strong>某些工作负载,如在线游戏和金融交易处理,需要更高级别的性能和规模,以满足处理数亿全球用户、数百万笔交易以及 PB 级数据存储的挑战。</strong> 传统的数据拆分和分片策略在过去被广泛采用,但随之而来的是复杂的管理和监控任务,耗费大量时间和资源来构建和维护这样的架构。</p><p><img src="/img/remote/1460000044741615" alt=" title="3.png"" title=" title="3.png""><br>为了解决这一挑战,<strong>Amazon Aurora Limitless Database 推出。它以每秒数百万个写入事务的速度为 PB 级应用程序提供支持,同时保持单一数据库的操作简便性</strong>。 该创新产品利用自动化实现在多个 Amazon Aurora Serverless 实例之间的数据和查询分配,无需构建复杂的自定义软件来进行跨实例路由请求。不仅如此,它还能够自动增长计算或存储需求,并在无服务器实例内垂直扩展资源,同时在实例之间水平扩展资源,满足各种工作负载需求。这使用户无需花费数月甚至数年来构建和维护庞大的数据库实例集群,轻松应对超出传统数据库限制的挑战。</p><h3>二、演进中的数据库:解析 Aurora Limitless Database 与 Aurora 的优势对比</h3><p><strong>Aurora Limitless Database 引领数据库演进,实现每秒数百万次写入事务和 PB 级数据的高效管理,进而提供无服务器端点、分布式查询规划和事务管理等创新功能</strong>。 这一新时代数据库轻松扩展关系型工作负载,同时在资源需求低时自动缩减,为用户提供灵活、高性能的解决方案。在相较之下,Aurora Limitless Database 更进一步,拥有一系列独特优势。</p><blockquote><p><strong>1.扩展性</strong>: Aurora Limitless Database 允许将 Aurora 集群扩展到每秒数百万次写入事务,管理 PB 级数据。相比之下,传统 Aurora 数据库在单个写入器实例上有一定的限制。这意味着 Aurora Limitless Database更适用于需要大规模扩展的高流量和大数据工作负载。</p><p><strong>2.无服务器架构</strong>: Aurora Limitless Database 提供无服务器端点,可在多个 Amazon Aurora Serverless 实例之间自动分配数据和查询。这使得数据库资源的分配更为灵活,根据需求动态调整,而无需手动管理多个实例或创建自定义应用程序逻辑。传统 Aurora 数据库通常需要手动管理数据库实例的数量和规模。</p><p><strong>3.自动计算资源调整</strong>: Aurora Limitless Database 会根据工作负载的增减,在指定的预算范围内动态调整计算资源。这意味着开发者无需为峰值负载进行过度预置,而是根据实际需求自动缩减或增加计算资源。传统 Aurora 数据库可能需要手动调整实例规模以适应不同的负载。</p><p><strong>4.分布式查询规划和事务管理</strong>: Aurora Limitless Database 提供了分布式查询规划和事务管理等功能,确保在多个实例之间保持事务一致性。这使得在大规模数据集上执行查询和事务处理变得更为高效。传统 Aurora 数据库可能需要更复杂的配置和管理来实现类似的功能。</p></blockquote><p>从整体来说,Aurora Limitless Database 通过提供更高的扩展性、无服务器架构、自动资源调整和分布式功能,使得处理大规模、高流量的数据库工作负载变得更为灵活和高效。</p><h3>三、测试体验使用</h3><h5>1.Aurora Limitless Database 操作使用</h5><p>1.在亚马逊云科技平台登录完成之后,来到个人控制台,在控制台顶部搜索栏搜索 Amazon RDS 服务,进入界面之后,点击创建数据库</p><p><img src="/img/remote/1460000044741616" alt=" title="4.png"" title=" title="4.png""></p><p>2.点击创建之后,可以根据个人需求去配置相关信息</p><p><img src="/img/remote/1460000044741617" alt=" title="5.png"" title=" title="5.png""></p><p>3.在创建完毕之后,等待实例的状态变更为可用,即可以开始使用</p><p><img src="/img/remote/1460000044741618" alt=" title="6.png"" title=" title="6.png""></p><p>4.同时点进我们创建的数据库,可以进行创建自定义端点,配置终端节点以及添加节点成员</p><p><img src="/img/remote/1460000044741619" alt=" title="7.png"" title=" title="7.png""></p><p>5.这时我们可以看到,节点已经创建成功,同时还可以管理和添加 IAM 角色到集群中,同时还可以向其他账户共享数据库集群</p><p><img src="/img/remote/1460000044741620" alt=" title="8.png"" title=" title="8.png""></p><p>6.回到 Amazon RDS 主页,选择 Databases 界面,我们可以选中配有集群的数据库,通过点击 Actions 去添加 Limitless Database 来体验功能</p><p><img src="/img/remote/1460000044741621" alt=" title="9.png"" title=" title="9.png""></p><h5>2. 创建 EC2 实例并连接 Mysql 数据库实例</h5><p>1.首先我们需要去创建 <a href="https://link.segmentfault.com/?enc=hyeQAgGPFslFSDIJCr%2B8rQ%3D%3D.goDox7fTD%2FCX%2B3AzYCG0p3VHnj41OYPAOt14ENJv%2FVMXFmEtNqVOV8Iftwx9lxTO" rel="nofollow">ec2</a> 实例,完成登录之后,来到控制台界面,顶部搜索栏搜索 <a href="https://link.segmentfault.com/?enc=FRxga6Ve4YOexokmXq2z1w%3D%3D.x2iQd8cJ6b3UjzyhlgK2XnkKJh5rElnZpA3JK0smxrYdMMDJRkPsWZtjSI1%2F4LtL" rel="nofollow">EC2</a> 服务</p><p><img src="/img/remote/1460000044741622" alt=" title="10.png"" title=" title="10.png""></p><p>2.进入界面之后,选择启动创建实例</p><p><img src="/img/remote/1460000044741623" alt=" title="11.png"" title=" title="11.png""></p><p>3.然后我们进入配置信息界面,选择 Amazon linux 服务,然后实例类型选择 t2.micro 类型,其他信息看开发需求去进行配置</p><p><img src="/img/remote/1460000044741624" alt=" title="12.png"" title=" title="12.png""></p><p>4.配置好相关信息之后,等待片刻便可以看到我们刚才创建好的实例</p><p><img src="/img/remote/1460000044741625" alt=" title="13.png"" title=" title="13.png""></p><p>5.下一步就是创建 MySQL 类型的数据库,进入我们的 Amazon RDS 服务界面,选择创建数据库,数据库类型选择 Mysql ,设置 <a href="https://link.segmentfault.com/?enc=daTG2ucUtQlQ1CafyRxUFw%3D%3D.us%2BGs9FvNtVNXs1ABeBUOeIFwjzxIqi26pLUJyR4%2FGILQh3CBfTYw1rii0pfCMTG" rel="nofollow">EC2</a> 连接选择我们刚才创建的 <a href="https://link.segmentfault.com/?enc=lV%2BnhU%2FGNtCU2rovDamfqg%3D%3D.7aBHwx1RSZ3dLTnauiw3d8qFFu11diMLxviypBUgncfcIxpuoA4albbSamg1KbwG" rel="nofollow">EC2</a> 实例,其他配置信息根据开发需求进行选择</p><p><img src="/img/remote/1460000044741626" alt=" title="14.png"" title=" title="14.png""><br>6.创建完数据库之后,我们可以点击进入数据库,查看我们刚才创建数据库的终端节点和端口信息</p><p><img src="/img/remote/1460000044741627" alt=" title="15.png"" title=" title="15.png""></p><h5>3. 本地和远程建立连接</h5><p>1.因为我们是基于 linux 去创建的 <a href="https://link.segmentfault.com/?enc=XWCw%2BhlfRq4umQcSrL576g%3D%3D.lTQDnpykD9Mv8cbGlqPlkdmXe8WMWlLKuyNwfvj50pB4GVoEWAFZyrz3j1%2FuudoH" rel="nofollow">EC2</a> 实例,所以首先应该去连接 <a href="https://link.segmentfault.com/?enc=DQuFSw%2Fm8m68%2B5x%2BkCxpXQ%3D%3D.KONXlXjYb0lZX4rtKz4gG2wKKC8I%2FVVsJEOvWViY2VPwQg79pIYOSYil%2Fbv79%2FUh" rel="nofollow">EC2</a> 实例,使用 SSH 连接到 <a href="https://link.segmentfault.com/?enc=oRWgZ6qoYC2a3EW%2BZi2pfA%3D%3D.Ko%2FKKH%2BRvPQtJqdNp8IQyGFCjAzoRiB9jPtiEfcddVtimXxHfsa4WMkltXpD08aq" rel="nofollow">EC2</a> 实例</p><pre><code>sh -i location_of_pem_file ec2-user@ec2-instance-public-dns-name</code></pre><p>例如,假设存储 ,则 <a href="https://link.segmentfault.com/?enc=snlBGRwBpVoCjR5RWJe4DQ%3D%3D.72R9VIfraykpt7LxFS%2FjsApUrWlOi%2BEvSxC7Ixopr6nsAja0V2xhvz695x6iuPo7" rel="nofollow">EC2</a> 实例的公有 IPv4 DNS 为 。您的 SSH 命令将 如下所示,</p><pre><code>ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amaxxxx.com</code></pre><p>2.通过更新 <a href="https://link.segmentfault.com/?enc=D41CTPmU4VeF26V2VKPkKA%3D%3D.yAuC2NSeUZkHIa3iNXfGXD2mXTmTpfL9dKDGmyOr1KkQxitiWfG1f2enR7Sn8UVg" rel="nofollow">EC2</a> 实例上的软件来获取最新的错误修复和安全更新。 为此,请使用以下命令</p><pre><code>sudo dnf update -y</code></pre><p>3.要在 Amazon Linux 2023 上从 MariaDB 安装 mysql 命令行客户端,可以运行以下命令:</p><pre><code>sudo dnf install mariadb105</code></pre><p>4.连接 MySQL 数据库,将数据库实例终端节点 ( DNS 名称), 并将相关信息替换您的主用户名。提供 提示输入密码时使用的主密码。</p><pre><code>mysql -h endpoint -P 3306 -u admin -p</code></pre><p>5.之后便可以执行相关的 sql 语句进行操作</p><pre><code>例如:SELECT CURRENT_TIMESTAMP;</code></pre><h3>四、个人体验和总结</h3><p><strong>Amazon Aurora Limitless Database 代表着数据库技术的巅峰突破,为用户提供了无与伦比的灵活性和性能</strong>。 传统分片方法的繁琐性和耗时性得以根本性改变。该创新性解决方案能够轻松应对需要处理数亿全球用户、数百万笔交易以及 PB 级数据的工作负载。通过自动分配数据和查询至多个 Amazon Aurora Serverless 实例,不再需要手动构建复杂的路由软件,使得分片变得简单而直观。</p><p><img src="/img/remote/1460000044741628" alt=" title="16.png"" title=" title="16.png""></p><p><strong>在体验使用 Amazon Aurora Limitless Datase 的过程中,深刻感受到了其卓越的性能和创新的架构设计</strong>。 它的产品设计理念是针对高性能工作负载的处理,该数据库的每秒数百万写入事务的支持让我惊叹不已。对于需要处理庞大数据、支持数亿全球用户和数百万交易的场景,传统的拆分和分片策略往往导致繁琐的管理和监控任务,而 Amazon Aurora Limitless Database 以其自动化的数据和查询分配,极大简化了这些挑战。</p><p><img src="/img/remote/1460000044741629" alt=" title="17.png"" title=" title="17.png""></p><p>使用 Amazon Aurora Limitless Database 无需花费数月或数年来构建和维护庞大的数据库实例集群,<strong>它通过自动增长计算或存储需求、无服务器实例内的垂直扩展资源、实例间的水平扩展资源,轻松适应各种工作负载需求</strong>。 这种灵活性为开发者提供了更多的空间,让我在应对复杂工作负载时感到更加从容。这一创新不仅代表了 Amazon 在云服务领域的技术实力,也为用户提供了更为灵活和可靠的数据库选择。</p><p><strong>Amazon Aurora Limitless Database 的技术突破不仅使数据库管理更加高效,更将用户从传统繁琐的分片工作中解放出来</strong>。 这一突破性解决方案不仅节省了用户大量的时间和资源,更为业务的快速发展提供了可靠的支持。Amazon Aurora Limitless Database 的引入,不仅是数据库技术的演进,更是对用户需求的深刻理解,为数据库应用带来了新的纪元。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=7qtVXMS44BVK%2B49Q6npcEQ%3D%3D.VWe%2BTJ0Bca%2FrEjGatB6lauf5DnrVlzRw16KMRJZ5JcS3IzBr4hTeCjFyBwgOI9LFG6Q%2B8J7k6KaL4%2FuARMd7rZivWBCEnW1f1H93OqjZUdXtwHvByF4mViv2ir7i%2BiTifsYwLWE3JbONsTI0Os0B8pz3XW3s8pDej%2FKhi4Kjx4x89Q2p0kL4qalewsgy1tJQ" rel="nofollow">https://dev.amazoncloud.cn/column/article/6589a8245d096603bb1...</a></p>
Amazon Bedrock 实践 | 动手玩转 Claude 3
https://segmentfault.com/a/1190000044738745
2024-03-22T20:00:44+08:00
2024-03-22T20:00:44+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>生成式 AI 和大模型在 2024 年已经进入落地实践阶段。因此,围绕开发者在生成式应用程序开发中的主要痛点和需求,我们组织了这个 “Amazon Bedrock 实践” 的系列,希望可以帮助开发者高效地上手生成式 AI 和大模型的应用开发,本篇为第一篇。</p><blockquote><a href="https://link.segmentfault.com/?enc=jWT%2F592WAuy5Fq2wccefjw%3D%3D.6tvcmMiChihrZnFSYdWIVHLMJHU3dOriWGNEUYaP3Jz9hDz7an16%2BO0RlEIJgscJ%2FacLgHmx7wPGL7l1Bn3HsuL3UohU%2BZWyemCbomPGFMwsCTMDqKIcYuGUsQjicmIW" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=A9%2FSiUgSM7rxaAiHNO903Q%3D%3D.%2FxK4QKNUqV8Vm3O2LhIp7ojDpWQCsP9VNQofbVDRX4aRRjIeBUxV%2FoStNLTLmvYNtZKXbKk3bTSMrt0ilQU%2B9E44N7wRB7yt23xOLr9lHvfxm4lFXGgxKQ5HMQv1EpdecG1z011X1tiMzUkrL4W%2FHQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><strong>Amazon Bedrock</strong> 是亚马逊云科技提供的一项服务,可以让开发者轻松使用称为基础模型(Foundation Model)的强大 AI 模型。以下是其关键功能概述:</p><ul><li><strong>访问高性能基础模型</strong>: Amazon Bedrock 提供对由领先 AI 公司和亚马逊自身开发的各种基础模型的访问权限。这些基础模型在大量数据上进行训练,可以执行各种任务,包括文本生成、图像识别和代码完成等</li><li><strong>统一的 API</strong>: 开发者可以通过单个 API 与所有可用的基础模型进行交互,简化了在应用程序中使用基础模型的复杂过程,这消除了为每个基础模型学习不同 API 的必要性</li><li><strong>轻松集成</strong>: Amazon Bedrock 是一项完全托管的服务,这意味着亚马逊云科技会负责管理底层基础设施,使开发者可以专注于构建应用程序,而无需担心服务器设置和维护</li><li><strong>安全性和隐私性</strong>: Amazon Bedrock 提供了相关的功能来帮助开发者构建安全和私密的 AI 应用程序,开发者可以控制对基础模型和数据的访问,从而保护开发者的数据隐私</li><li><strong>专注于生成式 AI</strong>: 虽然基础模型可以执行各种任务,但 Amazon Bedrock 特别关注生成式 AI 应用程序,这些应用程序使用 AI 创建新内容,例如文本、图像或代码等</li></ul><p>总体而言,Amazon Bedrock 是一个功能强大的工具,适用于希望利用尖端 AI 模型的功能的开发人员,而无需管理底层基础设施的复杂性。</p><p>本文主要以 Claude 3 模型为例,探讨如何使用 Amazon Bedrock 构建不同业务场景的生成式 AI 应用程序。本文主要包括四部分内容:</p><ul><li>在 Amazon Bedrock 中设置和获取模型访问权限</li><li>在 Amazon Bedrock 控制台中使用模型</li><li>调用 Amazon Bedrock API 来使用模型</li><li>Amazon Bedrock 参考资料</li></ul><p><em>本篇探讨的 Anthropic Claude 3 模型,目前仅在亚马逊云科技的海外账户可用。</em></p><p>在 Amazon Bedrock 中设置和获取模型访问权限</p><p>首先我们需要在 Amazon Bedrock 中,获取特定模型的访问权限。以下将以 Claude 3 模型为例,逐步指导开发者们配置和获取模型的访问权限。</p><p>第一步:进入到 Amazon Bedrock 的 UI 控制台。 点击 Get started:</p><p><img src="/img/remote/1460000044738747" alt=" title="image.png"" title=" title="image.png""></p><p>在这里我们可以看到 Amazon Bedrock 支持多个基础模型(foundation model),其中包括 Amazon Titan,Claude,Jurassic,Command,Mistral,Stable Diffusion 以及 Llama2。如下图所示:</p><p><img src="/img/remote/1460000044738748" alt=" title="image.png"" title=" title="image.png""></p><p>确认右上角区域,若已是 Oregon,这一步跳过。若不是,请在右上角选择 Oregon,选择 us-west-2:</p><p><img src="/img/remote/1460000044738749" alt=" title="image.png"" title=" title="image.png""></p><p>左侧的导航栏中点击 Model access,如下图所示:</p><p><img src="/img/remote/1460000044738750" alt=" title="image.png"" title=" title="image.png""></p><p>若已有相应模型权限,即模型后面是 Access granted,可跳过这一步。否则,点击 Manage model access:</p><p><img src="/img/remote/1460000044738751" alt=" title="image.png"" title=" title="image.png""></p><p>点击“Submit use case details” 来申请访问相关模型。如果你有详细的使用场景案例,你可以简述你的使用场景。对于一般测试,你可参考下图填写相关内容。在这个弹出的窗口里填写完成后,点击“Submit”提交:</p><p><img src="/img/remote/1460000044738752" alt=" title="image.png"" title=" title="image.png""></p><p>成功提交之后,选择左上角的 CheckBox 选中所有 model,之后点击“Request model access”:</p><p><img src="/img/remote/1460000044738753" alt=" title="image.png"" title=" title="image.png""></p><p>如果你已经完成提交并已经获得模型的访问权,你会看到如下图所示:</p><p><img src="/img/remote/1460000044738754" alt=" title="image.png"" title=" title="image.png""></p><p>接下来,我们先探索在控制台使用 Playgrounds 的方式,测试 Claude 3 模型。</p><p>首先,在左侧的导航栏中点击 “Playgrounds – Chat” 进入聊天界面:</p><p><img src="/img/remote/1460000044738755" alt=" title="image.png"" title=" title="image.png""></p><p>点击 Select model 来选择我们要使用的基础模型:</p><p><img src="/img/remote/1460000044738756" alt=" title="image.png"" title=" title="image.png""></p><p>我们选择 Anthropic 的 Claude 3 模型(Sonnet v1 或者 Haiku v 1)来体验其强大的推理能力和中文处理能力,点击“Apply”:</p><p><img src="/img/remote/1460000044738757" alt=" title="image.png"" title=" title="image.png""></p><p>可以调整右侧的参数,然后就可以在聊天窗口中输入提示词和上传图片,回车或点击 “Run” 按钮获取模型输出。如下图所示:</p><p><img src="/img/remote/1460000044738758" alt=" title="image.png"" title=" title="image.png""></p><p>至此,我们已经完全了解了如何在 Amazon Bedrock 中,获取 Claude 3 模型的访问权限。</p><p>在下一节里,我们将通过几种实际场景,详细诠释如何在控制台使用 Claude 3 模型。</p><h3>在Amazon Bedrock 控制台中使用模型</h3><p>本节将以 Claude 3 模型为例,阐述如何在Amazon Bedrock 控制台中使用模型。</p><h4>翻译场景</h4><p>首先我们测试下 Claude 3 模型的翻译场景。</p><p>测试的内容节选自了 3 月初 NVIDIA CEO (Jensen Huang) 在 Stanford University 的访谈视频。如果你是 AI 和机器学习行业的开发者、工程师、数据科学家等,该视频非常值得观看。在这个一小时左右的视频中,Jensen 在分享他眼中 AI 的未来之外,也分享了他对创业、人生选择、以及人类未来命运等经验和精彩观点,这些经验和观点建议,对从事该领域的年轻人非常有借鉴意义。</p><p>视频在 B 站上的链接如下:<br><a href="https://www.bilibili.com/video/BV15S421w7pd/?trk=cndc-detail">https://www.bilibili.com/video/BV15S421w7pd/?trk=cndc-detail</a> (有中文字幕)</p><p>回到我们这个用 Claude 3 测试翻译场景的例子。</p><p>我们先在 Amazon Bedrock Playground 中,输入以下提示词(prompt)。其中“<code><org></org></code>”定义的英文脚本,节选自以上访谈视频的内容:</p><blockquote><p><em>你是一个帮助翻译剧本的助理。 你的任务是将中的英文源文本翻译成中文。翻译时,请遵守以下规则:</em></p><p><em>1/ 不要改变初衷</em></p><p><em>2/ 翻译前先了解上下文,保持语义连贯,阅读流畅,但不要故意夸大</em></p><p><em>3/ 原文大多是对话式的,因此翻译仍应符合 TikTok/ 短视频/视频博客 /Youtube 视频的上下文。注意避免使用通常不用于日常聊天的词语</em></p><p><em>4/适当的时候保留一些专有名词或专业术语未翻译,注意前后一致</em></p><p><em>5/ 在<code> <result><result> </code>中回复翻译。不要包含任何额外的内容</em></p><p><em><code><org></code>“Stanford Business Graduate School of Business student Jose: My name's Jose, I'm a class with the 2023 from the GSB. My question is, are you worried at all about the pace at which we're developing AI? And do you believe that any sort of regulation might be needed? Thank you.</em></p><p><em>Jensen Huang: Yeah, the answer is yes and no. The greatest breakthrough in modern AI, of course deep learning, and it enabled great progress. But another incredible breakthrough is something that humans know and we practice all the time. And we just invented it for language models called grounding, reinforcement learning human feedback. I provide reinforcement learning human feedback every day. That's my job. And for the parents in the room, you're providing reinforcement learning human feedback all the time, okay? Now, we just figured out how to do that at a systematic level for artificial intelligence.”<code></org></code></em></p></blockquote><p><img src="/img/remote/1460000044738759" alt=" title="image.png"" title=" title="image.png""></p><p>点击“Run”,查看模型输出的翻译结果。如下图所示:</p><p><img src="/img/remote/1460000044738760" alt=" title="image.png"" title=" title="image.png""></p><p>由翻译结果可见,Claude 3 还是翻译地比较自然的。</p><h4>事实问答场景</h4><p>接下来我们探索事实问答场景。在 Playground 中输入以下提示词(prompt)。</p><p>先用英文向 Claude 3 模型发问:</p><p><em>Could you please list the major events that happened in Istanbul between 1800 and 1900?</em></p><p><img src="/img/remote/1460000044738761" alt=" title="image.png"" title=" title="image.png""></p><p>再用中文向 Claude 3 模型发问:</p><p><em>请罗列在 1800-1900 年伊斯坦布尔发生的大事。</em></p><p><img src="/img/remote/1460000044738762" alt=" title="image.png"" title=" title="image.png""></p><p>可见,无论是中文还是英文发问,Claude 3 都抓住了历史上的主要事件,没有明显的事实错误和编造。</p><p>各位开发者可以自行修改提示词中的内容,进行更多事实问答的测试。</p><h4>小说续写场景</h4><p>然后是小说续写场景,看看如何用 Claude 3 大模型来写一篇精彩的小说。</p><p>在 Playground 中输入以下提示词(prompt):</p><p><em>小说续写 “剑·花·烟雨江南" 要有画面感和沧桑感,字数在 300 字以内</em></p><p><img src="/img/remote/1460000044738763" alt=" title="image.png"" title=" title="image.png""></p><p>我们修改下 prompt,增加 story 风格的要求,修改提示词(prompt)如下:</p><p><em>模仿小说家古龙的风格, 小说续写 “剑·花·烟雨江南" 要有画面感和沧桑感,字数在 300 字以内</em></p><p><img src="/img/remote/1460000044738764" alt=" title="image.png"" title=" title="image.png""></p><p>我们修改下 prompt,再修改下对故事风格的要求,修改的提示词(prompt)如下:</p><p><em>模仿莎士比亚的风格, 小说续写 “剑·花·烟雨江南" 要有画面感和沧桑感,字数在 300 字以内</em></p><p><img src="/img/remote/1460000044738765" alt=" title="image.png"" title=" title="image.png""></p><p>你也可以在 Chat playground 里,比较两个不同的 Claude 3 模型(Haiku 和 Sonnet)的反应速度和输出,打开如下这个开关即可:</p><p><img src="/img/remote/1460000044738766" alt=" title="image.png"" title=" title="image.png""></p><p>你会发现 Claude 3 Haiku 反应非常之快,对比于 Claude 3 Sonnet 模型,使用同样的提示词(prompt):</p><p><em>模仿小说家古龙的风格, 小说续写 “剑·花·烟雨江南" 要有画面感和沧桑感,字数在 300 字以内</em></p><p>在你点击完“Run”按钮之后,几乎 1 秒内就得到了返回结果。如下图所示:</p><p><img src="/img/remote/1460000044738767" alt=" title="image.png"" title=" title="image.png""></p><h4>图像理解场景</h4><p>接下来是图像理解场景。</p><p>下图我在广州高铁站的星巴克里消费的一张小票,我准备发给 Claude 3 模型去理解,看看它怎么分析这张小票。</p><p><img src="/img/remote/1460000044738768" alt=" title="image.png"" title=" title="image.png""></p><p><img src="/img/remote/1460000044738769" alt=" title="image.png"" title=" title="image.png""></p><p>如果我们继续输入对 Claude 3 模型的要求,比如:</p><p><em>请用简体中文描述你理解的图片中的内容</em></p><p><img src="/img/remote/1460000044738770" alt=" title="image.png"" title=" title="image.png""></p><p>好的, 我用简体中文描述图片中的内容:</p><p>这是一张星巴克咖啡店的收银小票,位于广州市南站 3F-A5 店铺。小票上显示了店铺地址、顾客姓名(张 Ashley)、订购的商品和价格、总金额以及交易时间。图片中没有出现任何人物照片,因此不需要避免识别人物身份。</p><h4>小结</h4><p>我们发现 Claude 3 理解基本正确,除了把这张收据上的“Ashley ZHANG”理解成了顾客(其实是星巴克当时的下单售货员)。其实这也不是 Claude 3 的错,因为在这张原始的收据上,从字面并没有说清楚“Ashley ZHANG”到底是顾客,还是星巴克的销售员呢!</p><p>还有很多有趣并实用的场景,我们将在下一集提高篇里,继续和大家分享。</p><h3>调用 Amazon Bedrock API 使用模型</h3><p>在前面的章节里,我们探讨了在 Amazon Bedrock 控制台访问模型。在本节中,我们将探讨如何编写一些简单代码,调用 Amazon Bedrock API 来使用模型。</p><h4>运行环境配置</h4><p>本例中使用了 Amazon SageMaker Notebook instances 环境,来调用 Amazon Bedrock API 访问各种大模型。如下图所示:</p><p><img src="/img/remote/1460000044738771" alt=" title="image.png"" title=" title="image.png""></p><p><strong>提醒</strong>:运行这个 notebook instance 的 role,需要具有访问 Amazon Bedrock 的权限。</p><p>本例中作者配置了 sagemaker-demo-role-haowen 这个自定义的 role 来运行 notebook instance。这个自定义的 role 中,包含了可以完全访问 Bedrock 的策略AmazonBedrockFullAcess,这个策略赋予了访问 Bedrock 服务的 full access 权限。如下图所示:</p><p><img src="/img/remote/1460000044738772" alt=" title="image.png"" title=" title="image.png""></p><p>如果你想在本地电脑运行以上代码,需要在你的本地电脑先配置 Credentials,具体可参考: <a href="https://link.segmentfault.com/?enc=BZdePa%2BhKgXoQavBa3ECSg%3D%3D.gF2blYimqTTBEE50DzfRGTXmJQg6Y71cWBMYadMSkdIOTAYEswi0xXpX%2FL7BB3OOQGzQlHpKOgi%2BoxL9434SFm0pXj3kSaZf1l2UwKkPR4tueabyhRK0llLaNXmVjEps" rel="nofollow">https://boto3.amazonaws.com/v1/documentation/api/latest/guide...</a></p><h4>代码功能分析</h4><p>我们仍然以 Claude 3 模型为例,以下 Python 代码示例展示了如何使用 Amazon Bedrock,分别调用 Claude 3 的 Sonnet 模型和 Haiku 模型,描述一个输入的图像,并打印出其耗时等信息。另外,代码还比较了非流式、流式两种不同的调用方式。</p><p>代码涉及的主要功能如下:</p><p><strong>编码图像</strong>:将给定图像转换为用于传输的 base64 编码字符串</p><p><strong>调用大型语言模型生成文本</strong>:调用了两个模型(Sonnet 和 Haiku)来生成文本</p><p><strong>处理模型响应</strong>:以两种模式(流式和非流式)分别来捕获模型输出</p><p><strong>测量性能指标</strong>:记录输入和输出文本片段(token)计数、首字节延迟和整体调用延迟</p><p>完整代码如下所示:</p><pre><code class="js">!pip install -qU boto3
import json
import os
import sys
import boto3
import base64
import requests
import time
import pprint
from datetime import datetime
#获得模型的modelARN
region = 'us-east-1'#'us-west-2' #
boto3_bedrock = boto3.client('bedrock',region)
boto3_bedrock.list_foundation_models()
#获得实验图像,你也可以在这里替换为任何你自己想描述的图像
!wget https://cats.com/wp-content/uploads/2020/10/tabby-maine-coon-768x384.jpg
stream = False
# Function to encode the image 编码图像的函数
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
# non streaming mode 非流式调用方式
def anthropic_claude_3(modelId,image_path,max_tokens):
bedrock_runtime = boto3.client('bedrock-runtime')
base64_image = encode_image(image_path)
payload = {
"modelId": modelId,
"contentType": "application/json",
"accept": "application/json",
"body": {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": max_tokens,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": base64_image
}
},
{
"type": "text",
#"text": "Write me a detailed description of these two photos, and then a poem talking about it."
"text": f"What’s in this image? output {max_tokens} tokens"
}
]
}
]
}
}
# Convert the payload to bytes 转换负荷到字节
body_bytes = json.dumps(payload['body']).encode('utf-8')
# Invoke the model 调用模型
response = bedrock_runtime.invoke_model(
body=body_bytes,
contentType=payload['contentType'],
accept=payload['accept'],
modelId=payload['modelId']
)
# Process the response 处理响应
response_body = json.loads(response['body'].read().decode('utf-8'))
pprint.pprint(response_body)
#return round(end-start,2),response_body["usage"]["input_tokens"],response_body["usage"]["output_tokens"]
return round(float(response['ResponseMetadata']['HTTPHeaders']['x-amzn-bedrock-invocation-latency'])/1000,2),int(response['ResponseMetadata']['HTTPHeaders']['x-amzn-bedrock-input-token-count']),int(response['ResponseMetadata']['HTTPHeaders']['x-amzn-bedrock-output-token-count'])
# streaming mode 流式调用方式
def anthropic_claude_3_stream(modelId,image_path,max_tokens):
bedrock_runtime = boto3.client('bedrock-runtime')
base64_image = encode_image(image_path)
payload = {
"modelId": modelId,
"contentType": "application/json",
"accept": "application/json",
"body": {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": max_tokens,
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": base64_image
}
},
{
"type": "text",
#"text": "Write me a detailed description of these two photos, and then a poem talking about it."
"text": f"What’s in this image? output {max_tokens} tokens"
}
]
}
]
}
}
# Convert the payload to bytes
body_bytes = json.dumps(payload['body']).encode('utf-8')
# Invoke the model
response = bedrock_runtime.invoke_model_with_response_stream(
body=body_bytes, modelId=payload['modelId'], accept=payload['accept'], contentType=payload['contentType']
)
stream = response.get('body')
chunk_obj = {}
if stream:
for event in stream:
chunk = event.get('chunk')
if chunk:
chunk_obj = json.loads(chunk.get('bytes').decode())
pprint.pprint(chunk_obj)
# Process the response
#response_body = json.loads(response['body'].read().decode('utf-8'))
#pprint.pprint(response_body)
{'type': 'message_stop', 'amazon-bedrock-invocationMetrics': {'inputTokenCount': 92, 'outputTokenCount': 277, 'invocationLatency': 3679, 'firstByteLatency': 677}}
return round(float(chunk_obj['amazon-bedrock-invocationMetrics']['firstByteLatency'])/1000,2),round(float(chunk_obj['amazon-bedrock-invocationMetrics']['invocationLatency'])/1000,2),chunk_obj['amazon-bedrock-invocationMetrics']['inputTokenCount'],chunk_obj['amazon-bedrock-invocationMetrics']['outputTokenCount']
# 调用结果
image_path = "tabby-maine-coon-768x384.jpg"
max_tokens = 200
#haiku
print("Haiku:")
modelId = "anthropic.claude-3-haiku-20240307-v1:0"
print(anthropic_claude_3(modelId,image_path,max_tokens))
print(anthropic_claude_3_stream(modelId,image_path,max_tokens))
#sonnet
print("Sonnet:")
modelId = "anthropic.claude-3-sonnet-20240229-v1:0"
print(anthropic_claude_3(modelId,image_path,max_tokens))
print(anthropic_claude_3_stream(modelId,image_path,max_tokens))</code></pre><h4>模型输出分析</h4><p>以下摘要分析了两个不同的模型(Haiku 和Sonnet)的有趣输出结果。</p><p><strong>对于 Haiku 模型</strong>:</p><pre><code class="js">{'content': [{'text': 'This image depicts a beautiful Maine Coon cat sitting '
'on a scratching post or cat tree. The cat has a thick, '
'fluffy coat with a distinctive tabby pattern of stripes '
'and markings. Its eyes are alert and focused, adding a '
"regal and intelligent expression to the feline's "
'appearance. The background appears to be a cozy indoor '
'setting, with the cat perched comfortably on the '
'scratching post. Maine Coon cats are known for their '
'large size, friendly personalities, and impressive '
'physical features, and this image captures the essence '
'of this majestic breed perfectly.',
'type': 'text'}],
……
{'amazon-bedrock-invocationMetrics': {'firstByteLatency': 291,
'inputTokenCount': 489,
'invocationLatency': 3431,
'outputTokenCount': 128},
……</code></pre><p><strong>对于 Sonnet 模型</strong>:</p><pre><code class="js">{'content': [{'text': 'This image shows a beautiful Maine Coon cat resting on '
'a cat tree or scratching post. The Maine Coon is a '
'large semi-longhaired breed known for its fluffy fur, '
'tufted ears, and bushy tail.\n'
'\n'
'The cat in the picture has a brown tabby coat with '
'distinctive striped markings. Its face has a '
'distinctive "M" marking above the eyes, typical of '
"tabby cats. The cat's large, expressive eyes are a "
'striking yellow-green color, giving it an intense yet '
'gentle gaze.\n'
'\n'
'The feline is lounging comfortably on a beige carpeted '
'platform, with one paw tucked under its body and the '
'other extending forward. The cat tree or post appears '
'to be made of sisal rope wrapped around a wooden frame, '
'providing an ideal surface for the cat to scratch and '
'stretch.\n'
'\n'
'The background is slightly blurred, but it seems to be '
'an indoor setting, perhaps a living room',
'type': 'text'}],
……
{'amazon-bedrock-invocationMetrics': {'firstByteLatency': 1752,
'inputTokenCount': 443,
'invocationLatency': 9279,
'outputTokenCount': 139},
'type': 'message_stop'}</code></pre><p>从 invocationLatency 指标以及firstByteLatency 指标,可以清晰的看到 Haiku 模型比 Sonnet 模型响应速度快得多,这一点和 Claude 3 模型系列的亚马逊官方网站介绍是一致的,即:</p><p>“该系列包括三种型号:<strong>Claude 3 Haiku</strong>,最快、最紧凑的型号,可实现近乎即时的响应;<strong>Claude 3 Sonnet</strong>,技能和速度的理想平衡模型;<strong>Claude 3 Opus</strong>,最智能的产品,可在高度复杂的任务上实现顶级性能。”</p><p>( 原文引用自:<a href="https://link.segmentfault.com/?enc=39UkFo6oTDtY7HfDqOlSiQ%3D%3D.ujT6QGuqdc8cPOzpCJIIOV2%2FRmJ%2FMWo96iA076QtNWr6XCkgSYWCCxKTxplDSGudlK3i8IAmejD0EO7jtfWaaLa1moKf5SMZptf7JnvmUr12EsoqKlEG2%2B0OwDeua0uenEMhbl2AoDpOYb3bEBPY27j2IMnkxCR4VPSn91sQq9g%3D" rel="nofollow">https://aws.amazon.com/blogs/aws/anthropics-claude-3-haiku-mo...</a> )</p><p>下一篇,我们将继续分析在 Amazon Bedrock 上使用 Claude 3 模型的更复杂场景和实现,敬请期待。</p><h3>参考资料</h3><ul><li><a href="https://link.segmentfault.com/?enc=UkjjPSB7Z7ouVDv%2F2cHf2Q%3D%3D.atdqXv7Os5yYC4d16m%2FCqCEELZgWV7zj9LxctCxHdiqCDzY55xIrvvOx2ijdkHLLqybe6hkj2KCempngHaK8yko%2FKP%2B7ZhfwstMFtruX3y50mEyWX7Dnh6CzkZELkc0D" rel="nofollow">Amazon Bedrock 用户手册</a></li><li><a href="https://link.segmentfault.com/?enc=FNxGdg1zPybUPTGIZSUlYg%3D%3D.rG3uF7Y2xxmCtGmLdHjpA3%2FoQR84lrH%2B6RJAEsy%2FqHRNGnrlL43BYDmTZ37kD8Nqy%2Bg4%2Fxq%2FBjiYyI%2BUQHQPsDmwlqtWHqeX1BgOCtuDzmaCH3lGm2BtXmnBjEbj3CMC" rel="nofollow">Amazon Bedrock API 参考手册</a></li><li><a href="https://link.segmentfault.com/?enc=wdUsClAOuk337zlL6EoyHg%3D%3D.VqXRSMCercCFvEYJBupn5G2ZYND0rQwSaXKFtWShLfauCZlXHjqFkCCyNPf8CUOWwYudjWQt%2BWPjmnHYf41KtyqcfZgaongouqZweMF5KF9WJsh%2B4tWUcTTL9iFPhOID0xIRpBGtho8GGo8ua0G4%2BsbPP2dYkqXdSU0%2BV5SsS5BPVOa5P7E0LjnknjjqSldI" rel="nofollow">在 Amazon Bedrock 上调用 Claude 3</a></li><li><a href="https://link.segmentfault.com/?enc=y2bKHNvGNgegkcEX3fvhfw%3D%3D.T%2BcHbYCTl68p5ge2a3Ow1qNXZcU82%2FQXq7KBwDWNBX4kPeflCJJiijaDGdU2mgA8a%2F%2FZSDq%2F7fMkBgHRipvZ9q1M33FPNACrbZHasyyFmmwWu404%2FRZCfE4CZ5GEZe%2BSuhO%2FeCWMEHg3KmDKYuk7HVfO2iq82bhzxANjOB%2BYYCc%3D" rel="nofollow">Amazon Bedrock Claude 3 workshop</a></li><li><a href="https://link.segmentfault.com/?enc=TpbS4%2BgWwe2lWKP89H5jPw%3D%3D.jU%2BNHWMa06VhOlSybpJ48v4zvVU03h9TpSYCgzUhqHQNvnEGMuAmc12TllaZZM5O2C13VUiz%2F7jj7nHlj6ozvzYrdj3umuHKU%2Bbp0%2FJQpoWRHvlu5lBGOYf4vqxpVSld5qU2hY6Qomu0hTvpBZ2sr3nTP2EmoahQmKpyM0Q8rKc%3D" rel="nofollow">Anthropic's Claude 3 Haiku model is now available on Amazon Bedrock</a></li></ul><p><img src="/img/remote/1460000044738773" alt=" title="Build on cloud.gif"" title=" title="Build on cloud.gif""></p><p>文章来源:<a href="https://link.segmentfault.com/?enc=%2FEYiurMMUhFAkGss2CBKvA%3D%3D.7LOTub2yuBiVNCi1ilDRomqyURycvZBFyegps6Pu%2BtCpkUlrLAE4lJMK0Nr0GqfvSq1szobHKYETgRbt48tCv2FP10YtwAZ8nDu%2BdTKUIUWAQy3cBlgxPvGsH7BVSx1loX0Wqha8nEsU5Rv4U1rE8bROKjOdJLIoANR2YbdbRb17QWvKwOhorCr21Bo%2F4ewR" rel="nofollow">https://dev.amazoncloud.cn/column/article/65fd7279744aad37ef7...</a></p>
千万别让老板知道,这套80%海报,是我用生成式 AI 设计的!
https://segmentfault.com/a/1190000044738625
2024-03-22T19:11:17+08:00
2024-03-22T19:11:17+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>继淡人、浓人近期大幅席卷职场,一类新兴稀有人群正在隐秘的角落悄悄蓄力,等待爆发。</p><p>他们的特质是:</p><ul><li>眼看一脸平静,其实内心汹涌;</li><li>嘴上说着收到,实则无语连篇;</li><li>他们的幸运色是五彩斑斓的黑;</li><li>他们的座右铭是“好的,我再改改”;</li></ul><blockquote><a href="https://link.segmentfault.com/?enc=f2HZIoqHjSJfj%2Fzp1DQkjA%3D%3D.m0xI9%2BKxAwuVHPrNtj%2F4qM8ihqp411vYgBR7qYLUwDiytHWYiHfN3350n8bO87%2FJraop4R73raQTL%2FnxA5eyoRV4jx5QwNuhKsqomu2CZL08XIwgqNcE%2BJo00aQhrnLN" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=5xXIirf8Vr9JEvw7SqebQw%3D%3D.%2FSw%2FOkhRvLcbiMyBaFkuZ9aVNyaYghUxaTS1H%2ByZfl7lcssAy3D4JaXCzPL1d5DEwuxv979fuuW6eshUQ4Dr7BMeniPz0Qy8Em3NAvDxBtS0fQW5LcV5UKQULR7TqAgU%2ByhK6OLnFyAvAtwisUlJ2w%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>咱就说这谈吐、这修养,被称之为“<strong>职场稳人</strong>”。俩小时出方案,不在话下;一小时出创意,稳稳当当;十分钟出设计,谁还用的着生成式 AI?</p><p><img src="/img/remote/1460000044738627" alt=" title="1.png"" title=" title="1.png""></p><p>但,一向使命必达的稳人,居然遇到了空前“绊脚石”?3月29日,我们在深圳准备举办一场<strong>年度规模最大的出海大会</strong>,物料需求一再追加,修改建议一提再提,DDL 时间一赶再赶……对了,要用生成式 AI 来做设计哦!</p><p><img src="/img/remote/1460000044738628" alt=" title="2.png"" title=" title="2.png""></p><p>老板慷慨地给了整!整!一!天!的时间让我来拿 AI 搞设计!甚至不问我,能!不!能!搞!这是何等的信任,多深的真爱!哭死……</p><p><img src="/img/remote/1460000044738629" alt=" title="3.png"" title=" title="3.png""></p><p>但“稳人”人设不能塌!不如本地搭一个环境,跑 Stable Diffusion吧!等等,4090显卡,要一万多块、而且电源还得950瓦,少一瓦都不行?</p><p><img src="/img/remote/1460000044738630" alt=" title="4.png"" title=" title="4.png""></p><p>?Bedrock 是啥,让我来看看!</p><p><img src="/img/remote/1460000044738631" alt=" title="5.png"" title=" title="5.png""></p><p>明白了!Amazon Bedrock(仅在海外区域可用)是一个类似于人工智能工具的百宝箱,有市面上各种受欢迎的大模型,有火爆全网的 Claude 3,也有我想要的 Stable Diffusion,只需一个 API,就能随时随地调用想要的模型。</p><p>这不就是我的白月光吗?Amazon Bedrock 我来咯!</p><p><img src="/img/remote/1460000044738632" alt=" title="6.jpg"" title=" title="6.jpg""></p><p>在亚马逊云科技登陆账号,进入控制台页面,在搜索框中搜索,选择 Amazon Bedrock。</p><p><img src="/img/remote/1460000044738633" alt=" title="7.png"" title=" title="7.png""></p><p>在【总览】页面中选择想要部署的模型,点击【请求模型准入】</p><p><img src="/img/remote/1460000044738634" alt=" title="8.png"" title=" title="8.png""></p><p>当然了,也可以一键勾选所有模型。</p><p><img src="/img/remote/1460000044738635" alt=" title="9.png"" title=" title="9.png""></p><p>天啦噜,居然有这么多大模型可用?我突然灵机一动,咱就是说,不如用 Claude3 拯救下我贫瘠的创意和文案?既然老板说了和80%有关,不如让 Claude 3 为我出点主意,搞一波不为人知的“冷知识”如何?说干就干!</p><p><img src="/img/remote/1460000044738636" alt=" title="10.gif"" title=" title="10.gif""></p><p>还是在Amazon Bedrock中选择【Playground】选择【聊天】然后选择 nthropic 的 Claude 3 Sonnet,“柯老三,告诉我,80%的冷知识是什么?”<br>叮!</p><p><img src="/img/remote/1460000044738637" alt=" title="11.png"" title=" title="11.png""></p><p>啧啧啧,灵感这不就有了么?仅需0.0001s,就能给出这么多稀奇古怪的80%。“掌管80%的神”区区不才,正是在下(BUSHI)</p><p><img src="/img/remote/1460000044738638" alt=" title="12.png"" title=" title="12.png""></p><p>好的,天才打工人已经准备好图像生成了!古娜拉·百德洛克之神,请赐予我创作图片的力量!</p><p><img src="/img/remote/1460000044738639" alt=" title="13.png"" title=" title="13.png""></p><p>还是选择【Playground】,就是本设计师掌控全局的地方,选择【Playground】中的【图像】,选择文生图模型 Stable Diffusion。</p><p><img src="/img/remote/1460000044738640" alt=" title="14.png"" title=" title="14.png""></p><p>点击【部署】</p><p><img src="/img/remote/1460000044738641" alt=" title="15.jpg"" title=" title="15.jpg""></p><p>选择大模型就可以在聊天框中进行相应的部署及配置。</p><p><img src="/img/remote/1460000044738642" alt=" title="16.png"" title=" title="16.png""></p><p>输入我的创新灵感“咒语”!</p><p><img src="/img/remote/1460000044738643" alt=" title="17.png"" title=" title="17.png""></p><p>提交图片,点击生成。就为我们80%的图片提供了诸多灵感,OK 完活!提交给老板,深藏功与名,江湖上我的名号:“职场稳人”!</p><p><img src="/img/remote/1460000044738644" alt=" title="18.gif"" title=" title="18.gif""><br>(注:以上图片在生成式 AI 图片输出后经过二次加工发表,非原始图片)</p><p>当然了!这只是Amazon Bedrock的Stable Diffusion能力的一小部分体现,还有更多潜力等待你发掘!例如,来自亚马逊云科技的另一位 Principal Solutions Architect(首席架构师),Gary Stafford,就基于 Amazon Bedrock上的 Stable Diffusion XL 1.0 (SDXL),做出了精彩的 AI 动画视频,这里也倾情奉上!</p><p><img src="/img/remote/1460000044738645" alt=" title="19.png"" title=" title="19.png""><br>【视频来源】<a href="https://link.segmentfault.com/?enc=awYy43zQiQND0PInQfCUnQ%3D%3D.%2B%2FtY41c6ySn3wissIvwvEc78uL2%2BP%2BGpgFPGrSDwnpzM4R9%2FWTJm6aia2p5O6WEZ" rel="nofollow">https://www.youtube.com/watch?v=_FC3a1h2JYY</a> </p><p>事实上基于 Amazon Bedrock 已经有诸多成功的出海行业实践,其中,沐瞳科技正在运用 Amazon Bedrock(海外版)实现游戏内更加高效的内容审核;</p><p><img src="/img/remote/1460000044738646" alt=" title="20.jpg"" title=" title="20.jpg""></p><p>国外知名旅行网站 Booking.com,正在运用 Amazon Bedrock 上的文生文模型,进行旅行规划定制;</p><p><img src="/img/remote/1460000044738647" alt=" title="21.png"" title=" title="21.png""></p><p>纳斯达克在运用 Amazon Bedrock 上的多种大模型,进行反金融犯罪和监控能力应用。</p><p>更多生成式 AI 的场景应用,敬请关注3月29日 亚马逊云科技出海全球化论坛,</p><p><img src="/img/remote/1460000044738648" alt=" title="21.jpg"" title=" title="21.jpg""></p><p>扫描二维码报名,解锁更多生成式 AI“超能力”!</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=XprIAvyoEm0QeW69nnBZAg%3D%3D.khwzw1OAxEtK9Y9NHMxBb0nwPBRPwPax8pxPVj%2FguD%2BIEYuDrrpyi04Ixc4o0kRXqu0LZexQLg1t0uoBhzV3cZ4n4B86U4dK6Ojw6opwv%2Fwvd5Ke6l6XqGmly7frD4GlH6GK8GfDRbKpS7HF9BJo4LkqI7eFluhTLyE%2BtDcqx2k2juhtQGXyMb1H%2FfA1O0mJ" rel="nofollow">https://dev.amazoncloud.cn/column/article/65fd46e1744aad37ef7...</a></p>
Amazon Aurora Limitless Database :数据库管理的全新境界
https://segmentfault.com/a/1190000044735729
2024-03-22T07:57:49+08:00
2024-03-22T07:57:49+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>在当今数亿用户、PB 级数据和数百万交易的业务环境中,数据库管理面临着巨大的挑战。传统数据库扩展的繁琐性和耗时性使得许多组织需要花费数月甚至数年的时间来构建自定义软件以满足其极端的工在当今数亿用户、PB 级数据和数百万交易的业务环境中,数据库管理面临着巨大的挑战。</p><p>在近期举办的亚马逊云科技大会上,亚马逊云科技正式推出了备受期待的创新产品—— Amazon Aurora Limitless Database 。这一新产品的目标是解决 PB 级应用程序需求,为开发者提供更广泛、更强大的体验。现阶段,开发者已经有机会申请参与预览版,亲身感受这一引人注目的数据库解决方案。</p><blockquote><a href="https://link.segmentfault.com/?enc=TKbl7eJpVd3Z80bnKHDbpA%3D%3D.J567mHXmTKRlWNCnkyxHys7imAIZ%2FRoDlGPHOpshEM%2FAYwnCI0LxD1cCnDIFSdMhOdz0sFkyAN9bS2KAO8kefHnBZv6xV7dmjgjkJ5Rg%2F%2BQMP5nkxGpsBqUMlfsxWynA" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=Iy7EM%2FWiS%2FKi5QGcHOQayg%3D%3D.K8pZOVo0cqbvIeuNP17kD1oOrl7mOZYowS75pb21HF6aY9XJ8mG2eqbO0ZUPvCxsCre9qVv0mqj9jmRzUTVaP6UasDYNy63RDw9iQdfIGlLbatt3X6WO9aljRFNq1Eh9DR9tJ%2BhWV9TFtWFdrQ%2BFnQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img src="/img/remote/1460000044735731" alt=" title="gg.png"" title=" title="gg.png""></p><h3>一、革新对比:挑战传统的数据库管理</h3><h5>1. 面对巨大工作负载的能力</h5><p>传统数据库往往难以满足在线游戏和金融交易处理等领域对巨大工作负载的需求。<strong>Amazon Aurora Limitless Database 的强大之处在于其可轻松扩展到每秒数百万个写入事务,处理 PB 级数据,而无需复杂的“分片”过程。这种能力的革新,让处理庞大工作负载变得更为高效和便捷</strong>。</p><h5>2. 自动化扩展与资源分配</h5><p><strong>Amazon Aurora Limitless Database 通过自动化扩展和资源分配,摆脱了传统数据库管理的束缚</strong>。其根据客户的数据模型自动在多个 Amazon Aurora Serverless 实例之间分配数据和查询,无需额外的自定义软件。这不仅减少了部署的复杂性,也使得请求的路由变得更加高效,实现了数据库管理的智能化。</p><p><img src="/img/remote/1460000044735732" alt=" title="1.png"" title=" title="1.png""></p><h5>3. 简化维护与变更</h5><p>传统数据库在进行维护和变更时,需要协调日常维护操作,这可能是非常耗时的。<strong>Amazon Aurora Limitless Database 将这一繁琐任务变得更为简单。维护操作和更改可以在单个数据库中进行,并自动应用于实例,无需手动管理数十个甚至数百个数据库实例的日常任务</strong>。这种简化维护的方式,为用户提供了更为便捷的数据库管理体验。</p><p><img src="/img/remote/1460000044735733" alt=" title="2.png"" title=" title="2.png""></p><h3>二、赋能业务,革新数据库管理</h3><p>Amazon Aurora Limitless Database不仅仅是一款数据库产品,更是一场数据库管理的革命。<strong>在面对庞大工作负载、自动化扩展和简化维护等方面,其都展现出了令人惊叹的能力。使用体验上,Amazon Aurora Limitless Database 的便捷性和高效性令人印象深刻,使得原本复杂的数据库管理变得更加轻松</strong>。</p><p><img src="/img/remote/1460000044735735" alt=" title="3.png"" title=" title="3.png""><br><strong>同时以其强大的性能、智能的数据库管理方式和简化操作的特性,为用户提供了一个全新的数据库管理范式</strong>。在这个数字化时代,Amazon Aurora Limitless Database 的问世,无疑为业务赋能,革新了数据库管理的全貌。</p><p>与此同时,Amazon Aurora Limitless Database 通过简化维护流程,使数据库管理变得更加轻松。<strong>用户可以便捷地执行维护任务,而无需深入了解复杂的数据库结构和管理技术</strong>。这种简化操作的特性不仅提高了数据库管理的效率,还降低了操作的复杂性,使用户能够更专注于业务发展而非繁琐的管理任务。</p><p><img src="/img/remote/1460000044735736" alt=" title="4.png"" title=" title="4.png""><br><strong>Amazon Aurora Limitless Database 在赋能业务方面发挥了重要作用。其强大的性能、智能的数据库管理方式和简化操作为用户提供了一个全新的数据库管理范式。在这个数字化时代,数据库管理变得至关重要</strong>。而 Amazon Aurora Limitless Database 的问世,则无疑为业务赋予了更多的能量。用户可以更灵活地应对变化、更高效地处理数据,并在竞争激烈的市场中取得优势。</p><p><img src="/img/remote/1460000044735737" alt=" title="5.png"" title=" title="5.png""></p><p><strong>Amazon Aurora Limitless Database 的本地和远程连接能力,以及其在庞大工作负载、自动化扩展和简化维护方面的卓越表现,使其成为数据库管理领域的领军者</strong>。通过为用户提供更强大、更灵活的数据库解决方案,Amazon Aurora Limitless Database 推动了数据库管理的进步,为企业带来了更多的机遇和竞争优势。</p><h3>三、测试体验使用</h3><p>进到亚马逊云科技官网进行登录,没有账号可以注册一个,登录成功之后进入到控制台界面,通过顶部搜索栏搜索 Amazon RDS 服务</p><p><img src="/img/remote/1460000044735738" alt=" title="6.png"" title=" title="6.png""></p><p>进入 Amazon RDS 服务之后,找到左侧功能栏数据库,创建数据库实例</p><p><img src="/img/remote/1460000044735739" alt=" title="7.png"" title=" title="7.png""></p><p>根据具体的开发情况去配置相关的信息,同时如果是要体验 Aurora Limitless Database 服务的话,需要去官网<a href="https://link.segmentfault.com/?enc=FirnUIeFocdNR6X5%2F8lUdA%3D%3D.1wJb4PiJKf8hZUSFQXD3VYg7KpQthnktX%2F8YNaqNqYGZYrmyOgp06EdFTLQOXZeiiaIwoJgVB7Ka4daJEArSbegqUNObLAyFzbb4QtGMvpeKwe7yVc9iKahvlCEF8ne6GkUpoxm58mgqkUDDfseqNw%3D%3D" rel="nofollow" title="申请体验地址">申请体验地址</a>,同时也要注意 配置集群和 选择 Limitless Database 兼容版本</p><p><img src="/img/remote/1460000044735740" alt=" title="8.png"" title=" title="8.png""></p><p>点击创建后,会弹出建议附加组件:分别是集群配置和使用 RDS 代理,您在使用过程中可以视开发需求选择</p><p><img src="/img/remote/1460000044735741" alt=" title="9.png"" title=" title="9.png""></p><p>进入刚创建好的数据库中,可以手动添加端点,同时也可以查看数据库的相关属性信息</p><p><img src="/img/remote/1460000044735742" alt=" title="10.png"" title=" title="10.png""></p><p>回到 AmazonRDS 主页,选择 Databases 界面,我们可以选中配有集群的数据库,通过点击 Actions 去添加 Limitless Database 来体验功能</p><p><img src="/img/remote/1460000044735743" alt=" title="11.png"" title=" title="11.png""></p><p><strong>接下来我们通过 Aurora 去创建 <a href="https://link.segmentfault.com/?enc=l6nwBRrNXwb%2FZJs%2B4ClOEA%3D%3D.HKPwXqAxsPqIEFOrjxq5%2F3lvHsg1nkYeT%2FKRpgwA9gcNO%2BqgRpYALWR9%2BDRM%2FfsV" rel="nofollow">EC2</a> 实例并连接 Mysql 数据库实例演示</strong>,首先我们需要去创建 <a href="https://link.segmentfault.com/?enc=gn34Dip4naHpJXesnecJeA%3D%3D.r2cEaL4gK1ksgmkpq2ODZFOMPqcXoOUsObKyZ%2BQMKvnsO%2FYIJS3ESUnDvQidx%2F1X" rel="nofollow">EC2</a> 实例,完成登录之后,来到控制台界面,顶部搜索栏搜索 <a href="https://link.segmentfault.com/?enc=X0iSipV7%2FPzrGlTkWSugMw%3D%3D.wgf47q5d73YtPN68Ozqf4iywAw0%2FYjRcpv6YOz%2BVrqDfOYEWLHoxLG1XsciNu%2F3n" rel="nofollow">EC2</a> 服务</p><p><img src="/img/remote/1460000044735744" alt=" title="12.png"" title=" title="12.png""></p><p>进入界面之后,选择启动创建实例</p><p><img src="/img/remote/1460000044735745" alt=" title="13.png"" title=" title="13.png""></p><p>然后我们进入配置信息界面,选择 Amazon linux 服务,然后实例类型选择t2.micro 类型,其他信息看开发需求去进行配置</p><p><img src="/img/remote/1460000044735746" alt=" title="14.png"" title=" title="14.png""></p><p>配置好相关信息之后,等待片刻便可以看到我们刚才创建好的实例</p><p><img src="/img/remote/1460000044735747" alt=" title="15.png"" title=" title="15.png""></p><p>下一步就是创建 MySQL 类型的数据库,进入我们的 mazon RDS 服务界面,选择创建数据库,数据库类型选择 Mysql ,设置 <a href="https://link.segmentfault.com/?enc=i%2FWeWBnmhsW3yty5z0o7vA%3D%3D.FshSCU8UO%2BqUxR%2B%2FZfkVBgwkwtv4Dt9geFWX2wCs%2B35zkJGhCNvkHVylWnuW%2BA3b" rel="nofollow">EC2</a> 连接选择我们刚才创建的 <a href="https://link.segmentfault.com/?enc=3KZq72csyrX0r8%2BRxCnvAw%3D%3D.vEouviyc0SwrgV25MVxcrPwIe8OzCYx12PzAr792V7b6y%2FV9A%2Fp%2F3h6kxGZETsR6" rel="nofollow">EC2</a> 实例,其他配置信息根据开发需求进行选择</p><p><img src="/img/remote/1460000044735748" alt=" title="16.png"" title=" title="16.png""></p><p>创建完数据库之后,我们可以点击进入数据库,查看我们刚才创建数据库的终端节点和端口信息</p><p><img src="/img/remote/1460000044735749" alt=" title="17.png"" title=" title="17.png""></p><p><strong>接下<strong><em><em>来我们去实现</em></strong></em>本地和远程建立连接,因为我们是基于 linux 去创建的 <a href="https://link.segmentfault.com/?enc=FddU0%2F30H6E7hKjo1BiCoQ%3D%3D.lur0S0IzIoM71Q0BFWGvqA%2F8Gn0EZYSZf%2FeI3cI4iqa2e3F1ExxvykKXa40Wvtji" rel="nofollow">EC2</a> 实例</strong>,所以首先应该去连接 <a href="https://link.segmentfault.com/?enc=u7q9DcAMrKphTpoTSC6Ypw%3D%3D.Eus27ns0MklM3v0Omb6SAAOPS%2FuQg%2FI%2FOPMH5SnNyoe5KLbKdYW15pc92edlwvAn" rel="nofollow">EC2</a> 实例,使用 SSH 连接到 <a href="https://link.segmentfault.com/?enc=C%2BcbGnqLb%2BB7VwhWC5yomw%3D%3D.QtSp6TlmTlUJCdWXLYBLQgufiYeyUw%2Bk9gk1qh2hu5x8aMI3vtuNoSUkO75zAjOE" rel="nofollow">EC2</a> 实例</p><pre><code>sh -i location_of_pem_file ec2-user\@ec2-instance-public-dns-name</code></pre><p>例如,假设存储 ,则 <a href="https://link.segmentfault.com/?enc=y3KKN%2FqvXN4zLmVZd4gNOg%3D%3D.z5258L7LwjnM8AkwdpLJbZC5htGV%2Fld2iw6TjNJ%2FRhoheIyYvH7gtBDtLjB62yFV" rel="nofollow">EC2</a> 实例的公有 IPv4 DNS 为 。您的 SSH 命令将 如下所示,</p><pre><code>ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user\@ec2-12-345-678-90.compute-1.amaxxxx.com</code></pre><p>通过更新 <a href="https://link.segmentfault.com/?enc=wgiGqMMMERCwlIwxAWXgCQ%3D%3D.%2F4i1TLR%2FyjRvqzMLsvd%2FwA8gXlmEq5rcTEf2dVDmG%2BmAex%2BZHMQd7Y4XQiWTNuDJ" rel="nofollow">EC2</a> 实例上的软件来获取最新的错误修复和安全更新。 为此,请使用以下命令</p><pre><code>sudo dnf update -y</code></pre><p>要在 Amazon Linux 2023 上从 MariaDB 安装 mysql 命令行客户端,可以运行以下命令:</p><pre><code>sudo dnf install mariadb105</code></pre><p>连接 MySQL 数据库,将数据库实例终端节点 ,并将相关信息替换为用户个人信息。提供 提示输入密码时使用的主密码。</p><pre><code>mysql -h endpoint -P 3306 -u admin -p</code></pre><p>之后便可以执行相关的 sql 语句进行操作</p><pre><code>例如:SELECT CURRENT_TIMESTAMP;</code></pre><h3>四、使用体验和未来期盼</h3><p>回顾整个 Amazon Aurora Limitless Database 的体验和学习,可以说我真正领略到了一场数据库管理的革命。在这个数字化时代,业务的发展离不开对数据的高效管理,而这正是 Amazon Aurora Limitless Database 所擅长的领域。其强大性能、智能管理和简化操作的特性,为我们带来了一种全新的数据库管理方式,使得业务得以更高效、更安全地进行。</p><p><img src="/img/remote/1460000044735750" alt=" title="18.png"" title=" title="18.png""></p><p><strong>与传统数据库相比,Amazon Aurora Limitless Database 的突出特点在于其本地和远程建立连接的灵活性</strong>。这一特性为用户提供了无与伦比的可访问性,使得数据可以随时随地进行实时管理和分析。其强大的性能不仅在面对庞大工作负载时表现出色,而且通过自动化扩展功能,使系统能够在高负荷情况下高效运行。这与传统数据库相比,极大地提高了整体性能和灵活性,使用户更好地适应不断变化的业务需求。</p><p><img src="/img/remote/1460000044735751" alt=" title="19.png"" title=" title="19.png""></p><p>同时,<strong>Amazon Aurora Limitless Database 的智能数据库管理方式为用户提供了便捷的维护方式。通过简化维护流程,用户可以轻松执行各种维护任务,而无需深入了解复杂的数据库结构和管理技术</strong>。这种智能管理方式降低了操作的复杂性,提高了数据库管理的效率,让用户能够更专注于业务发展。</p><p><img src="/img/remote/1460000044735752" alt=" title="20.png"" title=" title="20.png""></p><p>Amazon Aurora Limitless Database 的问世,不仅仅是一款产品的发布,更是对传统数据库管理方式的重新定义。它的出现,让数据库管理不再是繁琐而又高风险的任务,而是一项简单而又高效的工作。在这个全新的数据库管理范式下,我相信之后的业务创新之路将会更为畅通,因为数据库管理已不再是制约,而是成为助力业务创新的引擎。 Amazon Aurora Limitless Database 为业务的未来开启了新的篇章,助力我们更好地迎接数字时代的挑战。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=pC6ajdRJk4nrPfOKyJBpYw%3D%3D.d3bGxMYqizUD3XUojxJYL%2FUgZCIQxua6hlqFooyB%2BrLcqwcHsTFDTRpfak1KFl%2BmOaYKwvyPj%2FIiONBA2waiAXUUL4%2F2He58G1DhVrXS8LwovdgSStYrmi0ENoXpAfwwcoNIJ6skBlL5mUlYukkuzI8cGIf3Pyb40jUIGzmDenAKxjFq%2FaeLVNNRQTzGav8X" rel="nofollow">https://dev.amazoncloud.cn/column/article/6589a0fc5d096603bb1...</a></p>
高效存储方案:Amazon S3 Express One Zone 正式推出
https://segmentfault.com/a/1190000044733778
2024-03-21T11:57:02+08:00
2024-03-21T11:57:02+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>前言:</h3><blockquote>当今社会,数据的迅猛增长使得高效且安全的存储方案变得愈发关键。对于开发者和企业而言,拥有一个能够满足业务需求的存储解决方案至关重要。然而,面对诸多选项,如何找到更加合适的存储方案成为一个值得深思的问题。</blockquote><p><img width="723" height="399" src="/img/bVdbN0H" alt="image.png" title="image.png"></p><blockquote><a href="https://link.segmentfault.com/?enc=Z8BWekunJImCKkQyRHJiTQ%3D%3D.vB4BGwKgQtQZTDNXAFjgIhDtSrb683L8kawgpGCKTQ%2BkxPQ9jH9RcdpLADF%2B4LNoMh8GuKA75LD%2B%2F%2F2e4TvaEbHg74IYdXuQeFGOJr5AGCrmGqnb6mjRoY6PB2cI%2BYEd" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=gfDy46HPcURuNAORlNNT9w%3D%3D.Z%2FTFPiTAha3qlageTC%2By%2BUcqav5fzxz17HwNEvo83CHONpPNh8h8p762KK87tX2VmUDeR0uSHMYwHULEkfVTWj6J1zc4mNtqL4GiFqqFwtqXG1uTKg3owH3sowu9vkYwnkOxgQXlimPTKUrgiuyhjQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>一、Amazon S3 Express One <a href="https://link.segmentfault.com/?enc=5pg8zpXcddV%2BGWr5m4pB1w%3D%3D.Y%2BUP79SBGUxeSr%2BuiOPZW89Qx7RmuK6URs8cJ2g7Tk%2F5yXr6lfH1s09gCIb1Mn1mCVXWyDLQE4OPUsf8ECryTQYdVOmet4DdJeOfxOMFtCc%3D" rel="nofollow">Zone</a> 推出</h3><p>正如我们上面所言,当我们去选择一款存储产品时,我们需要去考虑衡量数据规模性需求,<a href="https://link.segmentfault.com/?enc=RhsaA3nopGco4PsuXikCJQ%3D%3D.PejIua7PtIUbeLqcDrYwkdLZwNAS%2BG6TnFfodHWLVS06ZnqMa2t32iXPiYfb0pD8Y%2BvNMjldobkE6U3GVmKhuvqfYShdajN69UVfNV%2FfMTj9NiOfIfl7OOoJ7230AFZG%2FKZuzypTwWFIA4xfkdUcjQ%3D%3D" rel="nofollow">安全性</a>成本等多个因素,以便找到最佳的存储方案。</p><p>前不久展开的亚马逊云科技 re:Invent 2023 大会上发布了存储相关的产品 Amazon S3 Express One Zone 。这是一种全新的存储类别,旨在为这客户最常访问的产品提供最高性能和最低延迟的对象存储。</p><p><img width="723" height="301" src="/img/bVdbN0I" alt="image.png" title="image.png"></p><p>提到 Amazon S3 ,或许有些朋友对其了解有限。简单来说呢,Amazon S3 是一种强大的对象存储服务,它不仅提供行业领先的可扩展性、数据可用性和安全性,还具备卓越的性能。Amazon S3 专注于保护和存储各种规模的行业数据,能够为企业和用户提供可信赖的存储解决方案。</p><p><img width="723" height="352" src="/img/bVdbN0J" alt="image.png" title="image.png"></p><p>而我们今天介绍的这个 Amazon S3 Express One Zone 是在 Amazon S3 基础上进一步优化和提升,相对于之前的 S3 , S3 Express One Zone 在速度上更为突出,尤其是对于那些经常访问和延迟最为敏感的工作 ,例如:实时广告分析和机器学习培训等方面, 这类工作负担通常涉及数百万到数百亿字节的数据,而 Express One Zone 则被设计为一种全新的 S3 存储类别,专注于构建和存储最常被访问的数据。</p><p><img width="723" height="328" src="/img/bVdbN0K" alt="image.png" title="image.png"></p><p>与传统 S3 存储相比,Express One Zone 利用专用硬件和软件加速数据处理,显著降低了常访问数据的延迟,提供更为一致的性能。每分钟支持百万个请求,使其成为云中最快的对象存储之一,比 S3 标准存储快了十倍。这不仅提高了性能,也降低了运行成本,尤其适用于需要高速数据访问和低延迟的场景。</p><h3>二、高效降本优化,多场景加速数据处理</h3><p>Amazon S3 Express One Zone 的工作原理是通过将目录存储桶与机器学习开源框架结合使用,以降低延迟、缩短处理时间、减少计算成本和 API 请求成本,从而提升性能并降低总体拥有成本。同时,在交互式数据分析等场景中,它也能够显著提升处理效率。工作原理图如下</p><p><img width="723" height="276" src="/img/bVdbN0M" alt="image.png" title="image.png"></p><p>对于机器学习和人工智能训练,该服务能够加速模型训练和开发,实现更高效的处理模型数据集,从而显著缩短训练周期;在交互式数据分析方面, S3 Express One Zone 能够加快查询速度,支持快速分析 PB 级数据,为用户提供实时的数据洞察。在高性能计算(HPC)场景下,S3 Express One Zone 可快速完成计算密集型的 HPC 工作负载,提高计算效率;对于财务建模,服务使得财务模型能够扩展至更高粒度级别,通过低请求延迟加速整体建模速度,提供更灵活、高效的财务建模体验。在实时广告方面,S3 Express One Zone 能够提供毫秒级请求延迟的定向广告内容,优化个性化广告,迅速响应动态展示位置,提升广告投放效果。</p><p>S3 Express One Zone 相对于传统 S3 具有以下优点:</p><blockquote><p>1.支持的存储桶类型:S3 Express One Zone 引入了目录存储桶,使得对象只能存储在这一特定类型的存储桶中。这种设计可能提供更精细的存储控制。</p><p>2.耐用性:S3 Express One Zone 数据冗余存储在单个可用性区内的多个设备上,具有更高的可用性。相比之下,传统 S3 的数据冗余跨越多个可用性区,可用性目标更高,但可能带来更高的成本。</p><p>3.删除行为:S3 Express One Zone 在删除对象时会递归删除对象路径,包括空的目录。这有助于更方便地管理存储空间。</p><p>4.DeleteObjects: 请求中的对象键:要求对象键中至少包含一个非空格字符,增加对请求的有效性和安全性。</p><p>5.区域和区域终结点:使用 S3 Express One Zone 时,需要在所有客户端请求中指定区域,提供更明确的请求定位。</p><p>6.分段上传的差异:S3 Express One Zone 支持分段上传,但在对象创建日期、部件号的使用连续性等方面与传统 S3 有所不同。这使得 S3 Express One Zone 更适合特定的上传需求。</p></blockquote><p>这些特性和行为的调整使 S3 Express One Zone 更适合对延迟最敏感、对可用性要求相对较低的应用,给开发者提供了一种经济高效的存储选择。</p><h3>三、服务体验使用</h3><h4>1. 创建存储桶和上传文件</h4><p>1.1.首先在<a href="https://link.segmentfault.com/?enc=LLK0325RL4FL5xJIzysa%2BQ%3D%3D.kSD5r4i0L7ZlylQQW5NaBC454r39S1SDz1g2omNjFrx8yM7ITOVlJk0cbF9Nxg7L" rel="nofollow">官网</a>完成登录,来到用户控制台界面,在上面搜索栏搜索 Amazon S3 服务,可以通过创建通用存储桶和目录存储桶。这里我们选择创建目录存储桶</p><p><img width="723" height="342" src="/img/bVdbN0N" alt="image.png" title="image.png"></p><p>1.2.根据个人需要去配置存储桶相关信息,在这里存储桶类型选择目录—新建,因为我们要体验的是 Amazon S3 Express One Zone 的功能</p><p><img width="723" height="386" src="/img/bVdbN0O" alt="image.png" title="image.png"></p><p>1.3.配置完相关信息后,我们只需要短暂等待,便可以看到目录存储桶已经创建好了,用户可以为目录存储桶中的对象创建清单文件,以便更灵活地管理和监控数据</p><p><img width="723" height="311" src="/img/bVdbN0P" alt="image.png" title="image.png"></p><p>1.4.点击进入我们刚才创建的目录存储桶,因为是刚刚创建的,还没有进行相关的操作。在这里,我们点击上传按钮,可以将本地的一些资源存储到我们的存储桶中</p><p><img width="723" height="289" src="/img/bVdbN0Q" alt="image.png" title="image.png"></p><p>1.5.进入上传界面之后,我们可以通过拖拽目标文件和文件夹,也可以从本地上传文件和文件夹资源,S3 Express One Zone 支持在目录存储桶中执行批量操作,包括清单操作。用户可以方便地操作和管理目录存储桶中的对象,同时保留清单的有效性和完整性</p><p><img width="723" height="462" src="/img/bVdbN0R" alt="image.png" title="image.png"></p><p>1.6.上传资源选择完毕之后呢,我们只需要等待片刻,便可以看到上传的状态。如图,已经上传成功,这里我上传的是一些照片,S3 Express One Zone 提供了选择校验和算法的选项,包括安全哈希算法( SHA )和循环冗余校验( CRC )。用户可以根据实际需求选择适当的校验和算法,以在上传或下载期间验证数据的完整性。这种灵活性使用户能够根据其数据完整性要求进行定制</p><p><img width="723" height="326" src="/img/bVdbN0S" alt="image.png" title="image.png"></p><p>1.7.之后我们可以去查看存储桶的相关属性权限和一些指标,同时可以对存储对象进行一些移动和删除以及创建文件夹的功能</p><p><img width="723" height="308" src="/img/bVdbN0T" alt="image.png" title="image.png"></p><h4>2. 创建接入点和批处理处理</h4><p>2.1.除了上面的一些基础操作,我们还可以创建接入点,接入点是连接到可用于执行 S3 对象操作的存储桶的命名网络终端节点</p><p><img width="723" height="295" src="/img/bVdbN0V" alt="image.png" title="image.png"></p><p>2.2.点击创建接入点后,配置相关信息完成后,稍等片刻便可以看到接入点已经创建成功。可以看到接入点所对应的存储桶拥有者账户 ID 和接入点别名</p><p><img width="723" height="292" src="/img/bVdbN0W" alt="image.png" title="image.png"></p><p>2.3.除了创建单个接入点,还可以创建 对象 Lambda 接入点和多区域接入点,根据开发者需要进行选择</p><p><img width="723" height="299" src="/img/bVdbN0X" alt="image.png" title="image.png"></p><p>2.4.同时呢,开发者可以也可以使用 Amazon S3 对象执行大规模的分批操作,分批操作可以对清单中指定的 amazing S3 对象列表运行单个操作</p><p><img width="723" height="314" src="/img/bVdbN0Y" alt="image.png" title="image.png"></p><p>在这里我体验了使用 Amazon S3 平台去进行一系列的相关操作,同时官方也提供了多种使用方式,例如:亚马逊云科技 命令行界面 (亚马逊云科技 CLI ) 和、Amazon S3 REST API 等。小伙伴可以阅读官方文档获得更专业的指导 -><a href="https://link.segmentfault.com/?enc=i%2Fgzn%2BieGFkM6kP4kztbqA%3D%3D.6jqHqtsGNV3lMzbvLSli2hKJwaRWIEtObg%2F26bQ6VXKDQJv5%2BzbLiIKIuJcBGiycbGp6B4JXQXXZ447b%2BfnEh0AV3iBzdMkU3CrSb8qHwnX7uC0sZU1QXU8yVz4kSiagTnoP19Mo4unlWkw%2FZ5SndA%3D%3D" rel="nofollow">Amazon S3 官方使用文档</a></p><h4>3. 使用 API 操作 S3 Express One Zone</h4><p>创建了目录存储桶,您就能够立即体验非常低延迟的读写操作。这一体验可以通过 ( VPC ) 建立终端节点连接实现,也可以通过区域和区域终结点进行管理对象和目录存储桶的 API 操作。 要使用 API 创建目录存储桶,需要通过以下步骤:</p><p>3.1.拥有适当的 IAM 权限: 在 IAM 用户的身份下,确保用户拥有s3express:CreateBucket 权限。这可以通过向用户的 IAM 策略中添加如下权限来实现例如:请确保将要创建的目录存储桶的名称正确</p><pre><code>{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessRegionalEndpointAPIs",
"Effect": "Allow",
"Action": [
"s3express:DeleteBucket",
"s3express:DeleteBucketPolicy",
"s3express:CreateBucket",
"s3express:PutBucketPolicy",
"s3express:GetBucketPolicy",
"s3express:ListAllMyDirectoryBuckets"
],
"Resource": "arn:xxx:s3express:us-west-2:111122223333:bucket/DOC-EXAMPLE-BUCKET--usw2-az1--x-s3/*"
},
{
"Sid": "AllowCreateSession",
"Effect": "Allow",
"Action": "s3express:CreateSession",
"Resource": "*"
}
]
} </code></pre><p>3.2.使用 API 调用创建目录存储桶: 使用 亚马逊云科技 SDK 或 亚马逊云科技 CLI 等工具,调用 CreateBucket API 操作。以下是使用 亚马逊云科技 CLI 的示例:</p><pre><code>xxx s3api create-bucket --bucket your-bucket-name --region your-region</code></pre><p>替换 “your-bucket-name” 为您要创建的目录存储桶的名称,“your-region” 为您希望存储桶所在的 亚马逊云科技 区域。</p><p>3.3.验证创建: 创建请求成功后,您可以通过检查返回的信息或使用其他 亚马逊云科技 S3 API 操作来验证目录存储桶的创建。例如,您可以使用以下命令列出存储桶:</p><p><code>xxx s3api list-buckets</code></p><p>详细细节可以参考 <a href="https://link.segmentfault.com/?enc=NiZiDydGQAerCR0lxby2IQ%3D%3D.yqMk%2FHuZ7u%2FdlFikpK86f6U99sgR19aY%2BpaxcckcJZcWyRxKLlkFeP7Tpap0ow7Jrq6%2B9d98qadL3SdzJQYj4lu28kz2mxFJgfSmErmtwuzZA6c%2FMWgMWRt1wcSpe8p2" rel="nofollow">Amazon S3 Express One Zone 使用文档</a></p><h3>四、突破传统,展望未来</h3><p>Amazon S3 Express One Zone 是专为对延迟最敏感的客户提供一致的个位数毫秒级数据访问应用而构建的高性能单区 Amazon S3 存储类。 相比 S3 标准存储,S3 Express One Zone 具有更低的延迟和更高的性价比,数据访问速度比标准存储更快,请求成本低至 3%。这意味着应用程序能够立即受益于更快的数据访问速度,而且使用 Amazon S3 API ,可以帮助开发者轻松地扩展或缩减存储。</p><p>同时 S3 Express One Zone 提供了性能弹性,不仅满足了对延迟极为敏感的应用需求,而且还支持每秒数十万个请求。数据存储在一种新的存储桶类型中,即 Amazon S3 目录存储桶,每个目录存储桶支持数十万个每秒事务数,与键名称或访问模式无关。</p><p>Amazon S3 Express One Zone 尤其适用于对延迟极为敏感的场景,通过使用专用的软件和硬件加速数据处理,能够将降低高频访问的数据延迟性带来的负担。</p><p><img width="723" height="313" src="/img/bVdbN0Z" alt="image.png" title="image.png"></p><p>Amazon S3 Express One Zone 为客户提供了一种高性能存储的创新解决方案,与传统构建方式相比,带来了显著的性能提升和成本效益。 传统构建方式通常需要在多个存储系统之间进行管理,并对数据的可用性和持久性做出妥协。而 Amazon S3 Express One Zone 通过专用硬件和软件的精妙整合,将数据存储在 Amazon S3 目录存储桶中,以实现更快的数据访问速度。</p><p><img width="723" height="279" src="/img/bVdbN00" alt="image.png" title="image.png"></p><p>相较于传统构建方式, Amazon S3 Express One Zone 在性能上表现出色,其数据访问速度比 Amazon S3 Standard 快 10 倍,尤其适用于对延迟极为敏感的性能关键型应用程序,如查询密集型分析。此外,通过将数据与计算资源置于同一亚马逊云科技可用区,客户不仅可以更灵活地扩展或缩减存储,而且能够以更低的计算成本运行工作负载,降低了总体成本。</p><p>无论是对开发者还是企业用户,Amazon S3 Express One Zone 都有着提供强大的性能和广泛适用性。 在数据管理和操作方面,有着灵活和高性,能让用户能够更好的日益适应,日益变化的需求。作为 Amazon S3 的升级版本,Amazon S3 Express One Zone 在云端存储领域再次彰显了亚马逊云科技的技术实力,为用户提供更出色的数据存储体验。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=SmKYPcPOLHE0BtleXtwKLQ%3D%3D.99fVp8rakMGx9cU1wNsXn60j04f5%2B78p%2FiTWbcv4r8WoYUkB6YIt2lR5UKPvDGjhFGXSpMr7JX%2B5nBtqa4njfquGWY%2BHDMaWGnrF5CLFOMyJN7U%2FuIkHrk%2FjnYO5OdIAhFSLxp1MRlF9wxdHklN06mqICyVC3OgyzTrRObGCRGRwT%2BP7dAFdDUoQNBZ%2Bh8fz" rel="nofollow">https://dev.amazoncloud.cn/column/article/65899aec5d096603bb1...</a></p>
2023 re:Invent | Amazon Q 与 Amazon CodeWhisperer 面向企业开发者提效利器
https://segmentfault.com/a/1190000044732111
2024-03-20T18:55:04+08:00
2024-03-20T18:55:04+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>2023 年,以 <a href="https://link.segmentfault.com/?enc=oQ1SW4TSSixEOBsZ4XhAMw%3D%3D.rMyBJt7MNNBIWktzxvVpIBZmUVqFVIyA5U09Xqsf8phFVWPH4R%2F6G6gFBFldrNz67hupi6vvNpIWqpjPXKgMHSVYxX%2F5LE1cCP4HirWFAmA%3D" rel="nofollow">GPT</a> 为代表的生成式 AI 引爆了新一轮技术热潮,短短一年的时间内,生成式 AI 已经成为科技世界发展的核心。作为云计算的行业风向标盛会 re ,本届: Invent 全球大会紧跟生成式 AI 浪潮,推出名为“ Amazon Q ”的生成式人工智能助手,同时 Amazon CodeWhisperer 这款用于 IDE 和命令行的 AI 生产力工具,基于 Amazon Q 可以给开发人员带来全新的高效编程体验。</p><blockquote><a href="https://link.segmentfault.com/?enc=h3ZFq%2FEGHoQGRhz8hTA0zw%3D%3D.mMBc3jhftbPJDYV1JTIndfPTyF%2FO4ph6lV3ukw2vxVKUSesBBTaYcyxxSiBXIibUvnupMIDa%2B5%2BSy4gPvnwjwHFmrCNvjqU1184Yrh1KZYqmwcPUdK8QExSLP9ROORwE" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=UmFxx7eMp0BCHAF6u2RIJg%3D%3D.nFePjHBIai1GGYQG5BZqtZzYgNd7fTMwE961RGTUjf4ilKpbAtJ1WrtI5km308IRcJ1M3q9N0DGyvbBtoee%2BIXBH%2F9AQ2X9jscrRsliHIsFxAHn7Ctfz26UWe1oLgdhG19cfNDIEW8PLE7KzqJh2fA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>正如亚马逊云科技首席执行官 Adam Selipsky 在主题演讲中表示 :“生成式AI 将重塑我们在工作和家庭中所运用到的每一个应用程序,我们正在以一种跟以往完全不同的方式来探讨生成式 AI 的整个概念。” Amazon Q 的定位和以往的C端消费级产品不同,生成式 AI 助手在 B 端应用赛道上的竞争者寥寥,而作为开发者看了 Adam Selipsky 的视频介绍,我联想到了实际工作中遇到的问题。</p><h3>“观望” AI ,企业入场犹豫不决究竟何为</h3><p>我个人深耕 B 端多年,随着大模型风的兴起,在行业内部接触的客户包括我们自己都在探索 AI 落地的内容,很多企业会有这方面的诉求是因为,传统行业数字化转型过程中,存在着体量大、业务复杂、定制化要求高的问题,其业务有着沉重的 IT 建设包袱,各部门、业务之间难以协同,数据壁垒也难以打破,而大模型可以把人与人、人与机器之间的交互过程数据完整的沉淀下来,让它自主学习进步,持续演进。杜绝了过去的烟囱式建设,降本增效的同时还能推动数字化进程。</p><p>但对于 AI 大模型的应用,更多都处于观望+探索的阶段。</p><p>一方面,对于大模型的投入产出仍持怀疑态度。另一方面,是数据安全的“刚需”。今年年初,三星就禁止使用 ChatGPT ,其当时三星允许半导体部门的工程师使用 ChatGPT 参与修复源代码问题。 但在过程当中,员工们输入了机密数据,包括新程序的源代码本体、与硬件相关的内部会议记录等数据。导致核心数据泄密。诸如此类机密数据泄漏事件,层出不穷。</p><p>事实上,大模型的底层逻辑是将行业数据标注出来进行深度学习,训练出专注于某一行业的垂直模型。这也意味着,企业的数据要集成到通用大模型的数据池中。而又因为企业数据大多涉及商业机密、个人隐私等问题,对数据安全要求甚高。</p><p>所以,对于 B 端及 G 端用户而言,其需要的 AI 服务是能在保证数据安全的同时,还可以能集成通用大模型作为能力补充。</p><h3>面向工作使用的 AI 助手 - Amazon Q</h3><p>Amazon Q 就是面向工作使用的一款新型生成式 AI 助手,它支持用户输入问题,从而进行聊天、生成内容、编程、插件及定制开发。Amazon Q 可以根据您的业务进行定制,以便使用公司信息存储库、代码库和企业系统中的数据和专业知识进行对话、解决问题、生成内容并采取行动。Amazon Q 提供快速、相关和可操作的信息和建议,有助于简化任务,加快决策和解决问题的速度。在使用亚马逊云科技遇到问题和故障时, Amazon Q 可以一键分析原因并想办法解决。客户可以通过亚马逊云科技管理控制台、文档页面、IDE、Slack 或其他第三方对话应用程序的聊天界面访问 Amazon Q。</p><h4>Amazon Q 与通用生成式 AI 的区别</h4><p>Amazon Q 的官方定义是面向工作使用的AI助手。与市面上的通用性AI的区别主要在于,面向对象不同、数据来源不同、安全性等方面的差异。</p><p>通用的生成式 AI 内容主要来源于互联网的公开数据,无法针对特定的数据源进行训练,比如无法跟企业内部数据,业务相结合,也无法满足个人的个性化需求。比如我们使用 ChatGPT 时候,由于其训练数据的主要来源为互联网,在询问一些细分行业、或下垂龙头企业的数据时,往往会答非所问,或者一本正经的胡说八道。为了让 ChatGPT 学习某个特定的技能,比如企业的内部知识,需要将内容拆分,通过提示词工程,再提供给 ChatGPT 学习,这大大限制了生成式 AI 的能力。因此 Amazon Q 较 ChatGPT 而言有以下优势:</p><ul><li>与特定业务相结合,可以实现私有化,根据企业内部数据进行训练。</li><li>支持多种数据源,同时保证了数据的安全性</li><li>将权限引入生成式 AI 中,在企业中可以根据组织架构对人员设置不同的访问权限;</li></ul><p>接下来我们动手试一试,一探究竟。</p><h3>Amazon Q 初体验—基于私有数据的工作助手</h3><p><img width="723" height="153" src="/img/bVdbNMq" alt="image.png" title="image.png"></p><p>使用 Amazon Q 需要上面几个步骤,虽然看起来操作有一丢丢复杂。但是实际耗时并不会特别久。</p><h4>创建 AI 程序</h4><p>首先我们创建一个 AI 程序,这里是给了一个步骤索引,我们只需要一步步操作即可。</p><p><img width="723" height="398" src="/img/bVdbNMr" alt="image.png" title="image.png"></p><p>这里我们选择一个现有的服务角色,并且创建一个 KMS key ,创建 KMS 的步骤这里不多叙述,我们根据自己的实际服务进行选择就好了</p><p><img width="723" height="420" src="/img/bVdbNMs" alt="image.png" title="image.png"></p><p>这里我们选择一个现有的服务角色,并且创建一个 KMS key ,创建 KMS 的步骤这里不多叙述,我们根据自己的实际服务进行选择就好了</p><p><img width="723" height="196" src="/img/bVdbNMt" alt="image.png" title="image.png"></p><p>这里也可以选择对资源打 Tags ,方便后面管理,配置完我们点击下一步</p><p><img width="723" height="193" src="/img/bVdbNMu" alt="image.png" title="image.png"></p><p>页面会显示 <strong>Propagating IAM role.This will take 30 seconds, please remain on the page.</strong></p><h4>选择检索器</h4><p>检索器是一个索引,我们可以从中实时获取数据。如果要将文档连接到应用程序,需要选择一个检索器。</p><p><img width="723" height="415" src="/img/bVdbNMv" alt="image.png" title="image.png"></p><p>这里我们选择按需选择</p><h4>连接数据源</h4><p><img width="723" height="402" src="/img/bVdbNMw" alt="image.png" title="image.png"></p><p><img width="723" height="821" src="/img/bVdbNMx" alt="image.png" title="image.png"></p><p>配置完我们的数据源,就可以打开 web 页面了,右边还可以配置自定义的 Title ,提示词等等,还是比较贴心的。</p><p><img width="723" height="311" src="/img/bVdbNMy" alt="image.png" title="image.png"></p><h4>问答测试</h4><p><img width="723" height="703" src="/img/bVdbNMz" alt="image.png" title="image.png"></p><p>作为一个 AI 助手,文生文问答是最基础的,这里我们提问:“构建无服务器 API 的有亚马逊云科技无服务器服务是什么?” Amazon Q 提供了简明的解释以及参考资料,我们使用这些参考资料来跟进您的问题并验证。在实验中同时发现 Amazon Q 目前对于中文支持性比较差,希望后续亚马逊可以持续的优化这部分。</p><p>当使用 Amazon Q 来跟进和迭代问题。会展示更多深入的答案和参考资料。通过几轮问答,其实可以看到,回答的内容是符合预期的,并且给出了参考的一些源内容,这有点企业知识库的感觉,整体使用下来,与 chatglm2-6b 的方案类似,在整个对话中,有对话历史内容的参与,向量库每次匹配出的内容在数据源质量高的情况下是比较精准的,如果数据源缺失,或者是数据源质量比较差,会导致对话历史内容不能起到优化回答的作用。</p><p><img width="506" height="805" src="/img/bVdbNMA" alt="image.png" title="image.png"></p><p>这里有个很贴心的实现,就是可以在控制台的任何地方,唤起一个 Amazon Q 的 console 。只需要选择亚马逊云科技管理控制台右侧的 Amazon Q 图标。就可以在使用其他服务或者用例的时候,遇到问题,Amazon Q 就变成了一个实用的小助手或者智能的操作手册帮你解决遇到的问题,换个角度思考,Amazon Q 对于一些云工作者,无论是开发还是运维其实都是一个很好的体验提升。通过亚马逊云科技聊天机器人集成到亚马逊云科技管理控制台、亚马逊云科技控制台移动应用程序、亚马逊云科技文档、亚马逊云科技网站以及 Slack 和 Teams 中,可以更方便、更容易地找到所需内容。</p><h4>Amazon CodeWhisperer 生产力利器</h4><p>而作为亚马逊云科技推出的最新力作,Amazon Q 集成了 Amazon CodeWhisperer 的功能,为开发人员提供更强大的功能和更出色的使用体验。</p><p>当 AI 助手和 IDE 结合,就产生了一种奇妙的化学反应,万物皆可 Amazon Q 。</p><p>比如文档+Amazon Q = 智慧文档,IDE + Amazon Q = AI 生产力工具。操作台+Amazon Q = 运维小助手。对于 B 端用户和个人开发者,Amazon Q 的落地性和兼容性将到达一个全新的高度。</p><p>根据介绍,Amazon Q 的生成式 AI 助手能够直接处理控制台内的故障排除和错误解决,相当于在 DEVOPS 的职责上承担了更多的责任,使开发人员更专注于创新和问题解决。同时,Amazon Q 具备代码转换的能力,类似于 IBM Watsonx ,可以将 COBOL 代码转换为 Java 等目标代码。这种功能的引入无疑为开发人员提供了更多可能性,促使他们更灵活地进行代码维护和升级。对于代码转换的功能,实际是非常实用的。</p><p>这里首先我们根据官网的连接,下载 Amazon Toolkit 插件。</p><p><img width="723" height="382" src="/img/bVdbNMB" alt="image.png" title="image.png"></p><p>插件下载好后,有三个选项,这里我们主要为了体验 Amazon CodeWhisperer + Amazon Q ,我们选择第一个卡片绑定我们的亚马逊开发者 ID</p><p><img width="652" height="765" src="/img/bVdbNMC" alt="image.png" title="image.png"></p><p>在完成简单注册后,点击同意授权</p><p><img width="723" height="497" src="/img/bVdbNMD" alt="image.png" title="image.png"></p><p>这里正式进入了插件版本的 Amazon Q, 整个的交互体验非常的小清新,chat 的助手和 gpt 的风格一致,唯一的小缺点就是中文的支持不是很友好。这里完美同样的在编码过程中遇到的问题可以随时的提问,整体而言,个人认为, Amazon Q 回答一些云服务的问题,其质量要远远大于通用性问题。</p><p><img width="723" height="391" src="/img/bVdbNME" alt="image.png" title="image.png"></p><p>在大会预览期间,举办的一场生产力挑战赛,使用 CodeWhisperer 的参与者成功完成任务的可能性要比未使用 CodeWhisperer 的参与者高 27%,平均完成任务的速度快 57%,这足以说明 CodeWhisperer 的优势。</p><p>这里我们开始探索一下 CodeWhisperer 的 Amazon Q</p><h4>Amazon Q 擅长做些什么</h4><p>我们先提出一个问题:What can Amazon Q do and what are some example questions?</p><p>Amazon Q 的回复是</p><p>What I can do:</p><ul><li>Answer questions about Amazon</li><li>Answer questions about general programming concepts</li><li>Explain what a line of code or code function does</li><li>Write unit tests and code</li><li>Debug and fix code</li><li>Refactor code</li></ul><p>这里我们根据他的建议开始针对性测试</p><p><img width="723" height="410" src="/img/bVdbNMF" alt="image.png" title="image.png"></p><h4>问题分析</h4><p>这里我们抛出一个建站的问题,我应该使用 Amazon Lambda 还是 <a href="https://link.segmentfault.com/?enc=6bDsUaZGVSO1U9Imu4RWkQ%3D%3D.u2dyLHm4uBr9w08%2Fg49bS4BeIBlIz9CvIR2Z4Jbn0XfhTh8TmXlKJkBX1aLPq7Cs" rel="nofollow">EC2</a> 作为可扩展的 web 应用程序后端?</p><p>它回答了 Amazon Lambda 与 EC2 的对比及各自的特点,整体回答的比较全面。</p><p><img width="680" height="585" src="/img/bVdbNMG" alt="image.png" title="image.png"></p><h4>常用算法实现</h4><p>这里我们让他实现一段红黑树排序。</p><p>Amazon Q 给了一段逻辑,插入逻辑将遵循典型的红黑树算法——作为红色节点插入,然后执行旋转以修复违规行为。我们还需要旋转、固定插入和检查红黑属性的方法。</p><p>对于排序,使用 insert 从未排序的元素列表中构建树。然后遍历树,以便按排序顺序提取元素。</p><p>一些关键方面是使用 sentinel“nil” 节点来简化边缘情况、跟踪颜色以及通过旋转修复插入/删除。整体看下来,还是需要再二轮问一下,进行引导,生成的质量会逐步提升.</p><p><img width="719" height="921" src="/img/bVdbNMH" alt="image.png" title="image.png"></p><h4>自动填充用例</h4><p>Amazon CodeWhisperer 可以根据注释和现有代码,在 IDE 中实时生成从代码片段到全函数的代码建议。它还支持命令行中的 CLI 补全和自然语言到 bash 的转换。</p><p>这里我们使用官方的案例让他自动填充一个测试用例,非常完美!</p><p><img width="723" height="573" src="/img/bVdbNMI" alt="image.png" title="image.png"></p><h3>Amazon Q 优势与总结</h3><p>除此之外,对于 Amazon Q 与亚马逊服务的使用中,我了解到,与 ChatGPT 和 Bard 不同,Amazon Q 并不是建立在特定的<a href="https://link.segmentfault.com/?enc=X%2FwYdtp9gerxW%2FvuBEXsJw%3D%3D.lCHucCtq4q4NlvK1FlFXiPP7lnMzvIgQ%2BOOk2burIIa21MJUl5UdzolscaHa6zXEJdhPaP%2FLEq8Hki6VrvvUlwTOX117p25TxxadfxmT83tsSLClaq4P9aBd%2FiJcY%2BAx33KonvpbMqVMiVdrFXXHRUxOHZl45%2FXhxa%2B4cqYMzCc%3D" rel="nofollow">人工智能模型</a>上,而是使用了亚马逊云科技的 Bedrock 平台,该平台将几个人工智能系统连接在一起,其中包括亚马逊自己的 Titan 模型以及 Anthropic、Meta 等开发的模型。</p><h4>安全至上</h4><p>“ AI 安全”是近期一直在圈子里引起热议的话题,周鸿祎曾在微博上发文表示,“大型企业或者政府要私有化大模型。即在加入公有 GPT 知识和能力的基础上,再训练一个私有的 GPT ,只给企业自己或客户使用。这种观点其实是对于通用性 AI 对于数据源管理及数据安全的一种常见认知。</p><p>亚马逊一直注重于数据安全,亚马逊打造了比面向消费者聊天机器人更安全、更私密的 Amazon Q 。利用数据源与 KSM 的设置,Amazon Q 可以同步企业客户已经为其用户设置的相同的安全权限,比如在一家公司,营销部门的员工可能无法获得敏感的财务预测。</p><h4>高适用性</h4><p>Amazon Q 让我觉得有意思的地方在于 Amazon Q+ ,也就是万物皆可Amazon Q 。除了 Amazon CodeWhisperer 以外</p><p>目前,亚马逊旗下的数据分析平台 Amazon QuickSight 已内置了 Amazon Q 。有一个示例视频,通过简单地告知 Amazon Q 他们想要可视化内容,就可以创建仪表板和报告,耗时从几小时缩短到了几分钟。此外,像 Amazon Connect ,以及其他业务也在进行 Amazon Q 的使用。</p><p>而在取长补短的 AI 大模型产业生态下,Amazon Q 将大幅度杜绝模型的重复搭建、实现数据的重复利用,大大节约算力资源利用率。同时还可以减少客户的 AI 部署成本。</p><p>我相信上述应用只是 Amazon Q 广泛落地的一个开始,Amazon Q 的强大普适性,将为众多使用亚马逊云科技服务的企业带来全新的“个性化”体验。就像 Adam 坚信的那样:“这将是一场生产力层面的变革,我们希望来自不同行业、从事不同岗位的人们都能从 Amazon Q 身上获益。”</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=H6cAjo6EIulNWP8PQmKVRQ%3D%3D.c4GjkrBMK228wnMPlanTpGUP5IKG%2BS5QlOzKGZGFImL82vrzHMQLoGjjYdVyQoXta50CPi2vUanUK1jE2eaA7wjHZD%2BLYuz5zIveICwrgem%2FTHTy0GqRrkLa%2FrXDdPq33rvbXHpFhF68F346kuvW7xJOrXihY%2FnWJN%2BE9wu5wrbqPwECrFXiNTXC3m5Js6dQ" rel="nofollow">https://dev.amazoncloud.cn/column/article/658992545d096603bb1...</a></p>
2023 re:Invent 使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序
https://segmentfault.com/a/1190000044724725
2024-03-19T08:03:44+08:00
2024-03-19T08:03:44+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>前言</h3><p>“ Your Data , Your AI , Your Future .(你的数据,你的 AI ,你的未来。)</p><blockquote><a href="https://link.segmentfault.com/?enc=CtAEl1BlbepIll9m%2BRrxqg%3D%3D.Hz7H3%2FnGO7kiOjCkEzbe4qTZ7ahtb3DNuafELLZoqa24jVFC0Qk26i2lhaF2%2B2nB2kJmqbV0lyHIL1s54c%2B%2Bm6eV7EaXEws3CD%2FTCC%2BVS20Y1oS%2BpcXmhlCuE1DYpEQN" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=4fHN32PVOlX5SCQE6%2B39Ow%3D%3D.shl2l0%2BPd5IoVI4WVgA8K0jKPS96o7lqAbmwrO4S1gLV7SvBwsZOSxM%2BGQKmtgYjtNVkUhmqg%2Bu79ZH7jUW6BSP04FUjDK2il8xi8IjX96UblA9TN1VQvgXdJ%2F6Y6ueI%2Fp2cJYRm4OiQkkFSlowcFA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>如果问 2023 年,大家谈论频率最多的几个技术词汇,我想生成式 AI 、大模型一定有一席之地。</p><p>11 月 6 日,<a href="https://link.segmentfault.com/?enc=2%2FBglIqbqT2ETMbVI7i8Ow%3D%3D.REMTnaNIhgVdwmycu3NTLyLUO5ZzE%2BEfy19FAN%2FQkoZ2a2fkezbddnX%2BJGF%2B56kh6BuaWGRrYDgpdnsMvukW92XqrpqD1xFbtWg%2FGw4eoIg%3D" rel="nofollow">OpenAI</a> 发布的 GPT Builder ,让 AI App 的开发门槛,降到了“搭积木”的程度。通过将应用开发程序封装进不同的流程模块,用户可以在 GPT Builder 中用设置参数的方式完成应用的开发。</p><p>怎样的开发模式,才能做到比 GPTs 的门槛更低?一年一度的 re:Invent 用PartyRock 给出了答案。只要一句话,就能搞定所有的开发流程。Swami 博士在开场中这样说道:“今天,人类和技术之间正展现出前所未有的紧密关系,生成式 AI 正以许多意想不到的方式提升人类的生产力。这种关系让人类与人工智能共同形成新的创新充满了无限可能性。”</p><p>以往的生成式 AI ,更像是一本自带操作手册的工具书,你需要遵循规则去不断的进行尝试,比如提示词工程、模型微调掌握各种技能,逐渐熟悉一个全新的领域。从创意到应用落地就更加离不开一定的编程基础了,如果你想创建有特色的AI 应用,又苦于自己不会编程,那么用 PartyRock 就可以很方便创建自定义的 GPT 。最近这是一次让所有普通人都能够平等的享受 AI 红利的机会。</p><p>PartyRock 提供的轻量化的 To C 应用的开发环境,无论你是否懂代码、懂架构,都可以快速搭建一个属于你自己的生成式 Al 应用。利用 PartyRock 以及其背后亚马逊云科技强大的生成式 Al 能力( PartyRock 由 Amazon Bedrock 提供支持,它是一项全面管理服务,借助 API 来使用领先各种人工智能基础模型),你可以用拖拽的方式构建一个自己的对话助手,设计一个人物角色生成器,甚至生成一款小游戏。</p><p>趁着大会发布,我也体验了一把快速探索 AI 应用的乐趣,接下来让我们动手实验一下吧!</p><h4>PartyRock - 只需要一个 Idea ,轻松探索 AI 应用</h4><p>之所以想用 PartyRock 做一些小应用,是源于我自己困扰的一些场景。</p><p>提高效率也好,放松娱乐也罢,一直以来个人习惯于将工作中的一些有意思的轮子保留下来,但是由于精力有限,很多 demo 是不连续性的,也意味着没有持续产出。伴随生成式 AI 火热起来,个人也尝试搭建过一些个人知识库。但是效果也比较有限,数据量级太小没有办法对于训练产生有效影响。所以不了了之。</p><p>实践下来,倒是一些轻量级的 AI 工具经常收藏,比如 AI 生成周报,AI 的格式整理工具,但是比较难以定制一些个性化需求,比如当我想对现有的工具影响它的输出,比如,我希望对于周报可以进行 AI 工时统计量化的需求,我便无能为力。</p><p>Everyone can build AI apps.</p><p>PartyRock 的官网简明扼要的概述了它的作用,让每个人都可以构建 AI 应用。PartyRock 的核心在于无代码的应用程序生成器,你可以向它提出任何要求,在短暂的等待后,会给你生成一个满足基本需求的 AI 应用。</p><h4>一段话生成 AI 应用——面试宝典</h4><p><img width="723" height="260" src="/img/bVdbNy7" alt="image.png" title="image.png"></p><p>一句话实现 AI 应用,真的这么神奇吗?这里我们在 APP builder 里输出一个具体的想法,尽量描述清楚应用的需求及细节,比如我们想要生成一个面试题库 APP ,输入我们的需求,PartyRock 是支持多语言的,我们这里提出中文需求,看看 AI 模型的理解程度,点击 Generate app 就开始生成了</p><p><img width="715" height="399" src="/img/bVdbNy8" alt="image.png" title="image.png"></p><p>稍等一到两分钟,一个面试题库 APP 就生成了,PartyRock 程序较好的理解了我们的语义,并且生成了一个程序。</p><p>通过输入关键词和难度,随机生成问题。用户回答后输出正确答案。</p><p><img width="723" height="711" src="/img/bVdbNy9" alt="image.png" title="image.png"></p><p>语义识别及 GUI 生成是最基础的,我们还是要实际使用下,生成软件的功能性是否满足我们的需求,</p><p>这里我们输入几个关键词: “ CSS3 ” “自适应” “兼容性” 选择难度为困难,可以看到 LLM 比较清晰的输出了一个选择题。</p><p><img width="723" height="326" src="/img/bVdbNza" alt="image.png" title="image.png"></p><p>这里我们选择回答选项,验证一下结果,可以看到整个流程下来还是很好的满足了我们的需求。</p><p><img width="723" height="219" src="/img/bVdbNzb" alt="image.png" title="image.png"></p><p>体验到这里,我已经大体了解 PartyRock 的设计,不得不佩服 PartyRock 的脑洞还是很大的,通过生成式 AI+ 工作流的形式,解决了低代码时代的一些问题,在另一个维度实现了无代码编程。</p><p>这是一个跨时代的改变,之前的低代码工具大多定位很尴尬,对于程序员只能体现部分生产力的解放,并且随着业务量的积累,在制造轮子维护轮子及平衡定制中不得抽身。另一维度,对于无编程经验的人来说,拖拉拽的实现方式仍然不够友好,做出合格的 UE ,上手成本还是比较高。</p><p>与其他细分模型的 AI 助手而言,PartyRock 不仅仅是一个定制版助手,它更是一个普通人快速验证想法的一个工具,真的简约而不简单。</p><p>应用拆解分析 一句话生成应用固然便捷,但是提示词工程的试错成本还是比较高的,如果我们有一定的编程基础,还能不能玩一点新花样出来呢?答案是显而易见的。</p><p>无论是空模版创建还是,AI 生成的应用,我们会发现,它是有很多小框框组成的,这里我们叫它“元组件”或者“小部件”吧,这和工作流的节点思想是有共性的。</p><p>这里我们点击刚刚生成的应用,右上角的编辑发现,实际上小部件是存在不同类型的。挂载着不同的模型实例,并且通过提示词工程,使得用户的输入输出与模型直接进行通信和交互。</p><p><img width="723" height="537" src="/img/bVdbNzc" alt="image.png" title="image.png"></p><p>其中使用 @ 符合直接引用其他 widget 生成的内容,让不同小部件建立关联。</p><p>比如,我需要根据用户输入的内容进行生成问题,那么我在提示词里面就可以直接引用用户输入的部分;比如利用 “@keywaord” 引用扩写的内容。如下图 Prompt 中高亮的部分。</p><p><img width="723" height="364" src="/img/bVdbNzd" alt="image.png" title="image.png"></p><p>如果我们想要改变整个流程的话,只需要增加一个新的 widget ,并且建立上下文的引用就可以进行改造</p><p><img width="723" height="111" src="/img/bVdbNze" alt="image.png" title="image.png"></p><p>新建的 widget 目前有以上几类,用户输入,文本模型输出、图像模型输出、机器人。</p><p>构建一个应用就变成了构建一个工作流或者任务流。我们可以使用 widget 积木式的构建应用,并通过 @ 建立输入输出流的联系,让想象插上翅膀,大脑洞的奇思妙想以及清晰的逻辑,就可以组成很多有趣的创新应用。</p><h3>分享创意与应用共建</h3><p>ChatRPG 是官方提供的一个最有趣的案例,而且是比较典型的案例。这个应用利用了 AI 对话实现了文字游戏,你可以通过对话的形式选择不同的事件来推进剧情,同时通过多种组件的灵活运用,让整个文字游戏变的更加场景感。</p><p><img width="723" height="466" src="/img/bVdbNzf" alt="image.png" title="image.png"></p><p>受到这个应用的启发,我连夜写了一个小游戏—是男人就活过 100 天。哇太好玩了,根本停不下来。</p><p><img width="723" height="484" src="/img/bVdbNzg" alt="image.png" title="image.png"></p><p>没有思路怎么办,没有关系,PartyRock 提供了 remix 的功能,你可以直接复制 ( remix ) 一个别人已经发布的应用,直接修改里面的参数或者提示词。</p><p>独乐乐不如众乐乐,当你创建了一个有趣的应用,也可以通过分享自己的应用让大家一起来玩。是不是很有意思呢</p><p>到这里,基本的 PartyRock 的体验接近尾声,我们来做个简短的总结:</p><ul><li>无代码 AI 生成:PartyRock 以生成式 AI + 工作流的形式实现了一个无代码生成器。实现了 AI 的自建</li><li>组件化工作流:通过小组件 widget 的形式,可视化的创建引用关系。其背后是强大的 AI 模型能力集、以及云上能力。</li><li>生态共建:通过工作台、分享、clone 的模式,鼓励大家共创共建应用。</li></ul><p>观一点而探其貌,究竟是什么赋予了 PartyRock 这么灵活的能力,这就不得不提一下 - Amazon Bedrock</p><h3>Amazon Bedrock</h3><p>本次大会还发布了全面托管的生成式 AI 服务-Bedrock,提供了多个领先的高性能基础模型,同时增加了对于 Amazon Titan Embeddings 、 Meta Llama2 的支持。</p><p>而 PartyRock 实际上依托于 Bedrock 的强大能力,当开发者或者具有开发能力的公司有相关需求时,可以使用 Bedrock 提供的 AI21 Labs、Anthropic 、 Cohere Inc. 、 Meta Platforms Inc. 、 Stability AI Ltd .等领先人工智能公司的高性能模型以及亚马逊的定制模型,构建自己的人工智能应用。</p><p>简单来讲,常见的汇总文档、对话助手、生成图像以及提供人工智能驱动的搜索等实用功能都可以通过 Amazon Bedrock 去构建。</p><h3>2023 re:Invent 思考与展望</h3><p>通过本次大会的学习与产品体验,我感觉 AI 的应用重构未来会成为一种趋势。</p><p>看本次发布的产品,从基础设施层的 Inferentia 和 Trainium ,模型工具层的 Amazon Bedrock 再到应用层的 Amazon CodeWhisperer 。这说明 AI 的深度基建正在逐步建立起来,完整的产品体系逐步的形成共识。</p><p>未来会出现越来越多类似 PartyRock 的应用,会将基础建设进行封装,用户看到的是所见即所得的轻量化应用。越来越多的应用都会 AI 化</p><h3>未来的交互式 AI</h3><p>我一直在想未来的生成式 AI 的交互会向什么方向发展。简单、高效、准确是我在使用 C 端 AI 产品的几个核心需求。</p><p>结合大会及动手实验,PartyRock 相较于 GPTs 的优势,除了亚马逊云科技自研的模型 Titan 支撑,灵活性也是非常可圈可点的,PartyRock 的 0 代码交互十分适合小白,通过工作流的形式串联起多个 AI 模型,“搭积木”的方式快速的实现一个定制应用。</p><p>另一方面相较于已经展露头角的 OpenAI ,PartyRock 生成的 AI 应用,既可以上架 IOS 和安卓等主流操作系统,也能作为一个网站发布。多种形态意味着有更多种可能,甚至跨平台进行互动。这点希望后面会产生相关的应用或者功能,一定会非常吸引眼球的。</p><h3>安全的 AI</h3><p>大会的一个重要议题,是如何高效快速的让 AI 应用落地,同时保证数据安全。</p><p>生成式 AI 作为一把双刃剑,在创立发展的数十年都饱受争议,前段时间沸沸扬扬的奥特曼离职时间也为商业化与 AI 伦理,安全问题敲响了警钟。这次大会中 Adam Selipsky 博士也提出了“负责任的 AI 。”这个概念。我认为,AI 安全性在两个维度去思考。一方面是生成的内容一定应该是合规的;另一方面是作为模型基础的训练数据应该是安全的。数据安全及知识产权是企业应用 AI 的一个重要考量。作为一个团队的 leader ,工程化、安全性、稳定性、以及投入产出比是我在研发基础建设上考虑的几个核心维度。企业应用,只有确保安全,AI 才能越走越稳,长期发展。</p><p>同时本次大会很多创新案例,也真正体现了在 AI 浪潮中把握数据价值的重要性,给创业者使用 AI 创业提供了一些可行性的思路,在 AI 在逐步替代劳动生产力的同时,对于个人而言,如何在 AI 浪潮的风口上提升个人能力,把握时代的机会,这个课题,即是挑战,同时也是机遇!</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=J7WqzNZmbZn37jYzgEf6XQ%3D%3D.eF0ltYmDYrYpz%2BBcAgMQtNffwEX0J%2B8rubdIQ4dijPaHVxZ2TWTn7Dj1j6XTAvilx3sACWAiie7TJAKesmWa4BKeIzjcGDa3rnV7RDksVZ3AmXYoAKajV48fsi3IYt0RgAYy1tPL7kXykgvXBYQYiyPhCWV%2BDLG2aP7WRI%2FcMq2DykTdrzdLPDrz8TZa2YQX" rel="nofollow">https://dev.amazoncloud.cn/column/article/65898bc779476548e3e...</a></p>
有趣的大模型之我见 | Mistral 7B 和 Mixtral 8x7B
https://segmentfault.com/a/1190000044722313
2024-03-18T14:29:34+08:00
2024-03-18T14:29:34+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>开发者告诉我们,有一些因素阻碍了他们更好更广泛地使用基础模型。比如,在可预见的将来,随着技术的新进步,不断有新的模型加入,同时模型的升级和迭代也在不断加速。那么,对于特定的用例,如何选择合适的模型或者几个相互配合的模型组合,这可能需要时间和资源。为了减少开发者在大模型选择上的试错成本,我想从 Amazon Bedrock 可调用的大模型入手,逐一谈谈他们有趣的灵魂,包括他们的出身,技术特点以及使用场景。</p><blockquote><a href="https://link.segmentfault.com/?enc=7KoeISNS8GpnfH9z9RKnsg%3D%3D.N9i4It7oI8k2c89eUWflk5hVEzIKs2DESdQqh0Kqaunl2Svvy5YcW3IbQF%2Bt%2FM2Ft83VjOl8v68DPHQVMn5ECXb%2FY%2Fmw0V8LL7RIz8dZDN4C%2BWG%2FQOQytSRHJ7LfS4kU" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=3W4L5ff9JIbeczUIjJQ4wA%3D%3D.oS9XOUuADK5SRoxHo2U%2BbPQ8tHxVU5WR2m4IAb1aC1NRIQPd1bG54ZK%2FBEEsk7dKaZSffHsDiozgpFq0%2Fdl4ECZT9%2FsKmESKwTzvTNPQsvOOuH9tXhHIO7A4ZMaVaDb70JAFUSMHZESR0RqLhJv0Hw%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>首先让我们来谈谈目前刚刚在 <a href="https://link.segmentfault.com/?enc=3yh3JmJJfavZlgblv%2FuKOg%3D%3D.4bQoGWe7Y52YQ%2BcQv5Jt0jD1DGvbLZ%2FYlAGLkxAK5KX5hp4pm4zfYrPeYGEugFl6s%2B4CXhQFxVwh%2FPmCN0r3T7YRX9XhSgntte0Y3JYk%2FBLsZugygwF2%2BfIfdqeaSw%2FglObAhTeKo57Qr3SdyHnmnA%3D%3D" rel="nofollow">Amazon Bedrock</a> 上推出的两种著名的大型语言模型, <a href="https://link.segmentfault.com/?enc=GMbkvTmf14%2BnGcGqdsKlPg%3D%3D.9ULV2LfUsQ3cBpA%2B7V2JjWAzYp6CVu3QRlZ0SUVjvWQQUve%2FhNO9%2F%2Biaqw1E5NvA7mYhMGalKORdWe2xVVPu8Q%3D%3D" rel="nofollow">Mistral 7B</a> 和 <a href="https://link.segmentfault.com/?enc=nZM0i6Crdj8WWesi0ggFRw%3D%3D.eWLps%2BE6%2BhP4SpucXrI%2FBnS1TMA2pj9h27bLXwat6UWz9dz2cy9MQ0KdZD76zFXELEJBpD%2Bn2DKShStWXbsTIA%3D%3D" rel="nofollow">Mixtral 8x7B</a>。之所以要首先聊聊这两个模型,是因为 <a href="https://link.segmentfault.com/?enc=LMjoA38%2B1nKbGAJEz6kycw%3D%3D.oVV46hIL66VBvyATSnUZT1HtyXAGPtzQWUQdq%2FhB5pySG%2BnPqXZX1EFHnScCyjmF" rel="nofollow">Mistral AI</a> 已经根据 Apache 2.0 许可发布了 Mistral 7B 和 Mixtral 8x7B 的源代码,并表示这些模型 “可以不受限制地使用”。 这些模型的权重也可以通过其官网从其 CDN 下载。</p><p>在 Mistral 的文档中,他们展示了<a href="https://link.segmentfault.com/?enc=Wt780QQi%2F7Cthcv3cKoV1w%3D%3D.pq9fCIK5Y3VkyjBvrccMD%2BSzCJEfp1vJWZH%2BqNdxyEMMuZLyozqeeOEaKIAjlaMA3DVEHBd%2FdsVtCrFEATX4RDd1nWtGcms4eUttTf0BiF8%3D" rel="nofollow">如何使用 SkyPilot</a> 在包括 Amazon Web Services 在内的云端启动模型。他们还提供了有关如何使用 <a href="https://link.segmentfault.com/?enc=HUfwQqwMGjFNql9Z46bKfA%3D%3D.ZLueuwbYFPqiVgOmTcYnAzbqm6VQKwUvp6OIbca%2B38tm3mPI82VSZxMEDMeB9f3RTAZGIktl2q5wd%2FRmO6ORrQ%3D%3D" rel="nofollow">vLLM</a> 在自己的(或云端)硬件上启动 Mistral 模型的说明。</p><p><em>在这里致敬所有为开源做出贡献和努力的人和组织。</em></p><h3>Mistral 7B 和 Mixtral 8x7B 的出身</h3><p>Mistral 7B 和 Mixtral 8x7B 是由 Mistral AI 特别面向开发人员设计和制作。其实 Mistral AI 是一家小型的法国初创公司,但拥有一支由科学家组成的核心团队, Mistral AI 的创始人 <a href="https://link.segmentfault.com/?enc=GywrCi5oCdnI6TEZv4o2dg%3D%3D.0qNdKUVq%2FFkc8K%2FufPGjtkURi9O68BETmSlmg4CaRDq7k54U7z4%2B8%2FEBOw4dmGut6yFE2JRqNHa9aFMpAMd%2BzQ%3D%3D" rel="nofollow">Arthur Mensch</a>、<a href="https://link.segmentfault.com/?enc=VgYqFIY6uxboo24UFHsx5g%3D%3D.ztlggSIs9grQ5GnkpzASxgDkpgHujpsBEQDQvR0Zy1iua09qGizvYuRuviEug%2FnPYEjmpTBoMyQZcMw5yr468FEfC%2BYm60gGZ6Rw3eZ2lhg%3D" rel="nofollow">Guillaume Lample</a> 和 <a href="https://link.segmentfault.com/?enc=gQcY4L71aOn1g5mJjXV0Nw%3D%3D.3CQrUEv7nEo5cv9NElAfNCadd9JpO8ZVZes7yhMojqVf2KCYv0ZlRRbqM1gCVPHJrOx9pVSEfRXagZ8eYwuquk8FVLIZmXIO3cuhsx8UiMc%3D" rel="nofollow">Timothee Lacroix</a> 在人工智能/机器学习领域拥有丰富的经验。他们设计和制作大模型的目标是 “运送行之有效的东西”,而不是写白皮书。</p><p><em>他们是一群有趣的灵魂!</em></p><h3>Mistral 7B</h3><h4>技术特点</h4><p>2023 年 9 月,Mistral AI 发布了 Mistral 7B,这是一款 70 亿个参数的大语言模型(LLM)。与之前的许多 LLM 一样,Mistral 7B 是一款基于变压器的解码器模型。根据其<a href="https://link.segmentfault.com/?enc=S1B%2B0brqRLtPeF4ccp1Dng%3D%3D.5k4JLMvxgDbexvhCwvH4aHok40BlvBwStVToh73ko9MKr5Bj8%2BTR5nbyOoXErVhWymmKhUwEYDPNO5J1SXGkwA%3D%3D" rel="nofollow">白皮书</a>提供的所有评估基准测试中,Mistral 7B 的表现优于最好的开放式 13B 模型(Llama 2),在推理、数学和代码生成方面,也超过了发布的最佳 34B 模型(Llama 1)。</p><p><img src="/img/remote/1460000044722315" alt=" title="image.png"" title=" title="image.png""><br>图1: <a href="https://link.segmentfault.com/?enc=034XrdjdD21yZpky3RJZXw%3D%3D.%2FKfqUV2LuasXE4YVlmtQb4vEWqefFAsR64TPlEBXnXgV9jtaDw4g1qNCoFSsBJR%2F6%2FrEppeQjJb6WtgPnG6aCA%3D%3D" rel="nofollow">https://mistral.ai/news/announcing-mistral-7b/?trk=cndc-detail</a></p><p>我好奇他的性能之所以优于 Llama 2 和 Llama 1 是否和它用于<strong>实现加快推理速度,在低推理成本情况下有效处理任意长度序列</strong>的机制和手段相关。</p><p><strong>分组查询注意力 (Group Query Attention, GQA)</strong></p><p>分组查询注意力(Group Query Attention,简称 GQA)是一种注意力机制,用于在查询-键-值结构中进行信息检索和关联。它是在 Transformer 模型的基础上提出的一种扩展,用于处理具有分组属性的查询和键值对。</p><p>为了更进一步理解这个机制,我们展开一下 Transformer 基于解码器模型的结构。</p><p>Transformer 语言模型在发展过程中一个重要突破是采用“多头自注意力架构”即“<strong>multi-headead self attention</strong>”。这个架构可以让模型学习输入序列中每个词与其他词之间的关系信息。</p><p>例如,对于句子“我有一个冰激凌要给你”,自注意力架构给了模型学习一个人拥有冰激凌,另一个人没有这个机会。“冰激凌”这个词很可能“关注”到“我”这个词,因为它们之间存在着逻辑关系。多头注意力机制进一步提升了模型学习序列依赖关系的能力。每个注意力头都可以专注于学习序列不同类型的关系,如语法关系和语义关系。</p><p>最后通过线性映射将各个注意力头的输出结果整合融合,从而获取更丰富的上下文信息。</p><p>因此,多头自注意力架构充分利用了输入序列中的全局上下文,使 Transformer 模型获得了强大的语言理解能力。</p><p>「《<a href="https://link.segmentfault.com/?enc=w2oXfoMtkEEdr8Z8bY6b3A%3D%3D.51puBR%2BnM5tpFGlXWpN5CzJfiiVxFEYissXVqEGtoTG216PAC0yQpgxvLy4gxC4NR8q1hkPjeudDf054EqLBmw%3D%3D" rel="nofollow">Attention Is All You Need</a>》论文中提出的注意力可视化的一些方法」</p><p><img src="/img/remote/1460000044722317" alt=" title="image.png"" title=" title="image.png""></p><p>为了让模型更好学习序列中词之间的这种关系,会采用复杂的矩阵乘法运算 key(K) 值、value(V) 值和查询 (Q) 值三个参数。简而言之,我们需要处理和存储大量的参数,以执行这些计算。具体参数数量取决于模型实现细节。“多头注意力”中的“多头”指每个注意力头试图学习输入序列不同关系特征。Mistral 和 Llama2 模型都采用了 32 个叠加层中含 32 个自注意力头的结构。即 32×32=1024 个注意力头。每个头含有数万到十万级别的参数。</p><p>所以这就解释了这些模型参数规模能达到十几亿的原因。</p><p>“自注意力”机制是通过 K、V 和 Q 值来计算的,起初,每个自注意力计算单元都有自己的 K、V 和 Q 值。随后提出了多查询注意力 (Multi-Query Attention,MQA),它在层中共享单独的 K 和 V 值来服务所有的 Q 值。 这大大减少了需要存储的参数数量,但模型质量降低,生成的效果不如原始设计。而分组查询注意力,即 Group Query Attention /GQA 技术使 K 和 V 值在一个可配置数量的 Q 值之间共享,即减少了参数又不影响模型效果。</p><p><img src="/img/remote/1460000044722318" alt=" title="image.png"" title=" title="image.png""><br>来自论文 《GQA:Training Generalized Multi》:分组注意力</p><p>论文 《<a href="https://link.segmentfault.com/?enc=kjAHO7Ar6VeOG47k7fqtRw%3D%3D.QgCgsRPLuJEXy8KoD%2Fd9D3fVsxoYXxHJujwhj04a1tDzpqx%2F%2Fgpo52f%2FwBhB%2BNIYXPUt7PLy7eDjCfCDh9m%2FiA%3D%3D" rel="nofollow">GQA:Training Generalized Multi</a>》证明: “经过训练后的 GQA 质量可以接近多头注意力,速度与 MQA 相当”,既优化参数又保持效果。 <a href="https://link.segmentfault.com/?enc=Zr38ZZLpYI9xY%2BIVbz32%2FQ%3D%3D.BD6oSrS7V%2BRlJwd4%2BvHEol6BgQxVx2fgEjpe4%2FA1MmswhDf26dmyoou64HNlxDx37cgx2QFT7FWu52DO%2FKzC2g%3D%3D" rel="nofollow">Mistral 7B</a> 论文表示:GQA 显著加快了推理速度,减少解码时的内存需求,支持更高批次处理,对实时应用至关重要。</p><p>总之,GQA 技术通过参数分组共享平衡存储与效果,有效提升了 Mistral 模型的性能。</p><p><strong>滑动窗注意力 (Sliding Window Attention, SWA)</strong></p><p>模型上下文长度越长,功能越强大?这一点是有争议的,比如 1000 词与 10 万词文本处理难度和效率差异很大。传统的 Transformer 注意力机制允许每个词与所有其他词交互,这在学习语义上非常强。但是随着上下文长度增长, 计算量会呈平方增长,计算开销提升很快。因此传统 Transformer 注意力在很长文本上的计算效率理论上会遇到瓶颈。</p><p>引入滑动窗注意力机制,即 SWA 很好的解决了这个问题。模型的上下文越长,它就越有用。想象一下,用 1000 个单词总结一页文本和用 10 万个单词总结整本书有何区别。</p><p><img src="/img/remote/1460000044722319" alt=" title="image.png"" title=" title="image.png""><br>图片来源:<a href="https://link.segmentfault.com/?enc=XkkrMvQU6Ly%2FbXKFxnETuQ%3D%3D.4ZYoVusN%2FJMTn0zSSSvRixjf%2BKUC1SpGSXKxwn4zY%2Bq12lhJv2IYOjOTGNDjWv8NpEocwsK6%2BJJR50dAhyT3uQ%3D%3D" rel="nofollow">https://arxiv.org/pdf/2310.06825.pdf?trk=cndc-detail</a></p><p>滑动窗口注意力 (SWA) 引入了一个可配置大小的 “注意力窗口”,这个窗口会滑过输入序列,而不是计算所有文本词汇之间的注意力值(权重)。它是计算窗口内词汇的注意力值,这减轻了计算量。一个可能的担忧是,对于很长序列来说,序列最后一个词汇可能无法 “关注” 开头词汇。虽然理论确实如此,但窗口外词汇仍受到窗口前面词汇影响,因为窗口带动上下文意义上的 “影响链”,通过各层传播。</p><p><a href="https://link.segmentfault.com/?enc=HUp1AU%2Bh3GkFDomEE1S87Q%3D%3D.%2BGrugnt51KoQLRrd%2BA9FfgCVj5tq3v3FOUaNIAu5KDjMxVkj%2BWPP7H%2BeNF2miCQM9OExqPo20iDK59QVJtENyA%3D%3D" rel="nofollow">Mistral 7B</a> 论文中表示:“SWA 的设计旨在以更低的计算成本更有效地处理更长的序列,从而缓解 LLM 的常见局限性。”,“ 与 GQA 结合,两种注意力机制共同促进了 Mistral 7B 的性能和效率的提高。”</p><h3>Mixtral 8x7B</h3><h4>技术特点</h4><p>继 Mistral 7B 之后,Mistral AI 在 2023 年 12 月发布了 <a href="https://link.segmentfault.com/?enc=II6VU9ws9%2FWKp1yLO6cJ1g%3D%3D.PxW0ai710EQmH28DRqZnuHDJQJ09NlAUAr3sl5Pqsl3KjkYkhVn0Gof9ZYqCOQej9KSzqUQ1bC1vp%2FXi4aBy9A%3D%3D" rel="nofollow">Mixtral 8x7B</a>。Mixtral 8x7B 是一个采用稀疏混合专家机制即 Spars Mixture of Experts Model(SMoE)的大语言模型,它不仅具有高质量的效果,更重要的是其完全开放提供的预训练权重参数, 该模型采用 Apache 2.0 许可,这对开发者社区和后续研究都有很大价值。</p><p>有趣的是,这个模型与 Mistral 7B 具有相同的 Transformer 架构,甚至<a href="https://link.segmentfault.com/?enc=cboXsCTOlYafCkCERhrmsA%3D%3D.sj9LmvOoKRG5NT6IWWfWByCY3jRcohkyfwARYTkmueXe%2F2qQKoh%2Fa%2FOMeo3971UDWCYiqCXJ0f8urkpVuR1B7Q%3D%3D" rel="nofollow">代码库</a>也是一样的,仅仅在上层添加了少量实现稀疏混合专家机制即 SMoE 的代码。这一小修改却使模型效能有很大提升。白皮书中明确显示, Mixtral 8x7B 在各项基准测试中,表现优于或与 Llama 270B 和 GPT-3.5 相当。尤其在代码生成等任务上,Mixtra 8x7B 优势更为明显,远超 Llama 270B。同时 Mixtral 模型还可以微调成一个指令跟随模型,在 MT-Bench 上获得 8.3 分。</p><p><img src="/img/remote/1460000044722320" alt=" title="image.png"" title=" title="image.png""></p><p>总之,采用 SMoE 结构,显著提升了 Mixtral 的计算效率和语言理解能力。</p><p><strong>什么是Sparse Mixture of Experts(SMoE)?</strong></p><p>我们知道模型各层中的多头自注意力机制即 multi-headead self attention,其实模型各层中还有另外一个组件“前馈网络” 即(Feedforward Neural Network,FFN)。FFN 的作用是对数据进行额外变换,提取更细腻的模式规律,从而提升模型学习和理解语言语义的能力。</p><p>每个自注意力头脑都试图学习输入序列不同词关系的一些特征信息。如果我们在 FNN 部分引入多个网络,那么每个网络是否也能学习语言的一些不同方面?也就是说,这些 FFN 网络将在语言的某些方面成为 “专家”。添加 FFN 可以增强模型的学习和理解语言演绎的能力。但是,简单的在层中添加更多 FFN 会增加模型的规模和复杂性,我们可以直接扩大 FFN 规模来实现相同的效果。从而避免复杂度的增加。为什么要这样做?答案是 “Sparsity,稀疏性”。每当谈论 Mixtral 模型时,请记住它是一个“稀疏性”的专家 Mixtral 模型。</p><p><img src="/img/remote/1460000044722321" alt=" title="image.png"" title=" title="image.png""><br>图片来源:<a href="https://link.segmentfault.com/?enc=E4S66EAnXiptkM4054r7eA%3D%3D.Rn3%2F673NMht8BMytUd9VfshJAwpuQ8yK%2FLjthPodsBtkQingFCUhrrIbX36k9Y9G8zNXt7JSGf1jKXcbPN5QDg%3D%3D" rel="nofollow">https://arxiv.org/pdf/2401.04088.pdf?trk=cndc-detail</a></p><p>在 FFN 子网络之前,存在一种 router/gate 机制,它能学习后决定哪些(一个或多个)专家网络对输入词汇(token)会产生最好的效果。对于序列中的每个 token,可能有所不同。正如论文所说:“对于每个词汇,在每个层中,路由器网络会选择两个专家网络处理当前状态,并结合它们的输出。尽管每个词汇只能看到两个专家,但在每个时间步骤所选的专家都可能有所不同。” 这意味着,对于任何一个通过整个网络的词汇(token),只使用网络的一个子集。这实现了稀疏激活,这使得网络效率更高。每个词汇都可以访问 47B 的参数,但在推理过程中只使用 13 活动参数。这一种技术增加了模型参数数量,同时控制了成本和延迟,因为模型每个词汇只使用总参数集的一小部分。</p><p>根据 Mistrals 的研究,该模型 “在所有评估的基准测试中,准确性表现都优于或与 Llama 270B 和 GPT-3.5(较大的模型)持平”</p><p>从数学理论出发,Mixtral 8x7B 是指每层有 8 位专家。它不是整个网络的 8 倍,而 “只是” FFN 子网络,再加上 router/gate 中的一些参数。所以 Mixtral 8x7B 的参数不是 560 亿(8x70亿),而是 467 亿,其中每个词汇/ token 仅使用 129 亿个参数。</p><p><strong>什么是专家?</strong></p><p>稀疏混合专家机制中使用 "专家 "这样的词,仅仅是为了描述模型结果,如果将这些 "专家 "拟人化,想象它们具有与人类相似的技能,比如,一位专家擅长法语,另一位专家擅长代码等,那么将于实际完全不符。</p><p>Mistral 在论文中指出:"出乎意料的是,我们并没有观察到根据主题分配专家的明显模式"。论文进一步说明了观察到的专家分配情况。</p><p><img src="/img/remote/1460000044722322" alt=" title="image.png"" title=" title="image.png""><br>图片来源:<a href="https://link.segmentfault.com/?enc=FA%2FGHVxSOkZxTluuKzgWkQ%3D%3D.Ctsv8CzeZIDapHuITzkIJ4l0aMuDLdF%2B4Z1rguKvZbutEUFIKTBwLy2im0pAeIQMD%2Fv97UqiN%2FEDs7RWvvjEKQ%3D%3D" rel="nofollow">https://arxiv.org/pdf/2401.04088.pdf?trk=cndc-detail</a></p><p>在论文中的这幅插图中,不同的颜色代表了模型在代码示例、数学样本和文本样本中学会使用的不同专家。这三列显示了模型不同层次中专家分配的差异。</p><p>正如标题所说:“专家的选择似乎更符合语法而不是领域,尤其是在初始层和最后一层。”</p><h3>如何运行 Mistra 和 Mixtral 模型</h3><h4>在本地运行 Mistral 模型</h4><p>即使您的机器没有 GPU,也可以在本地运行这些模型。</p><p>我在 MacBook Pro M2 上使用 32GB 内存,运行了一个高性能版本的 Mistral 7B,以及可以工作的 Mixtral 8x7B 版本,且没有特殊设置也没有优先关闭其他应用程序。这得益于模型本地运行社区的努力,他们通过量化 (quantisation) 进一步“缩减”模型规模。量化会将模型内如 16 位浮点 (FP16) 精度参数等浮点数,转换为更小的数值,如 8 位或者 4 位。这极大减小了模型大小,降低了运行时计算复杂度,并意味着模型可以在 CPU 上运行。当然,天下没有免费的午餐, 模型在生成过程中会损失一些精度,但它们的性能还是可以的。</p><p>量化过程很复杂, 但幸运的是,我们已经可以下载这些模型。</p><p>在普通计算设备上也可以评估和应用这些先进模型,真的很有意思。</p><p><img src="/img/remote/1460000044722323" alt=" title="image.png"" title=" title="image.png""><br>ollama.com</p><p><a href="https://link.segmentfault.com/?enc=ZyIH5gHq1N67ZnjxwzilUQ%3D%3D.JQQEvi%2F4D4pBW8XQtqC%2BGHStoeJD6h2IkzQ56RyvDth%2FU%2B7HkWtg0Sk2rtKiHXYuSa716JlhU7Ll%2BfpPCQvqiQ%3D%3D" rel="nofollow">Llama.cpp</a> 项目提供了一个运行时环境,可以支持 Mistral/Mixtral 等模型。<a href="https://link.segmentfault.com/?enc=wzh1NjeQgzHqIT68vApkHQ%3D%3D.mvB0g5jxcZrtdjZoI9iVHrUpVutBYUGyCGc978o%2B5KsEkThmQtu4bG8uCQCMuocT" rel="nofollow">Ollama</a> 项目进一步将其打包,只需使用 <a href="https://link.segmentfault.com/?enc=lYhVE4jm4d6RYocHhz0Vrg%3D%3D.yNf7%2BN0aXuEAXFLosdoDVeOky0Z4ACgjZn%2FY0xf5FPXFCjFwC0lJiFfKNjDNvCge5Z%2Bv%2B96w9K5O%2FR8baNPbRQ%3D%3D" rel="nofollow">Ollama 下载模型文件</a>,运行即可。完事儿了~! 使用极其简单~!(macOS 和 Linux 现已支持,Windows 支持即将推出。)</p><p>需要注意的是:这些不是 Mistral 模型的完整版本,而是量化后的本地版本,生产环境需要 GPU 等硬件加速支持,因此,它们适用于本地测试,但不适合生产环境部署。</p><h4>在全托管的无服务器架构上运行</h4><p><img src="/img/remote/1460000044722324" alt=" title="image.png"" title=" title="image.png""><br>Amazon Bedrock 控制台页面</p><p><a href="https://link.segmentfault.com/?enc=FZAhpN57rUjNONYqYqi4XA%3D%3D.vwpUzrwdck7xNuk5Yf1KhExlC8OW2ZLj1f6ug3yqSe27A5QeBwDDn6wH7NB0sZG6" rel="nofollow">Amazon Bedrock</a> 提供了一个单一的 API 接口,可连接各种先进的人工智能模型,例如 AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Amazon 以及现在的 Mistral AI。</p><p>要在 Amazon Web Services 账户中访问这些模型,需要执行以下操作:</p><ul><li>在 Amazon Web Services console 中导航进入到 Amazon Bedrock 页面。Mistral 模型已在俄勒冈州上线,因此确认选择 “us-west-2” 地区。(更多地区即将推出,请检查其他地区是否支持)</li><li>展开左侧的菜单,向下滚动并选择 “Model access(模型访问权限)”</li></ul><p><img src="/img/remote/1460000044722325" alt=" title="image.png"" title=" title="image.png""><br>Amazon Bedrock Console Page-Menu</p><ul><li>选择橙色的 “Manage model acess /管理模型访问权限” 按钮,然后向下滚动以查看新的 Mistral AI 模型。点击你需要模型旁边的复选框,然后单击 “save change/保存更改”。</li></ul><p><img src="/img/remote/1460000044722326" alt=" title="image.png"" title=" title="image.png""><br>Amazon Bedrock-Model Access</p><p>您现在可以访问模型了! 前往 Amazon Bedrock text playground,通过 prompt 开始你的体验。需要代码实现时,可以参考 <a href="https://link.segmentfault.com/?enc=CElqi9SHQgIhIGT4LdHSMg%3D%3D.2%2BqXvEFHkD9kM0wnBtVKOHLe45bLCRyiPjoSqI0Bs1xI3H5aDwn%2F3mCePS9G3J5J80fzPiZIytW8A%2Bli2b536DOAs%2BU5a0lmtA%2FDXgI4Dx1M0vLrfCTpFbcesoogWGYCS3N7CqCrRDLDOiy%2B%2BaI2BY%2FvrpZoSCQU%2B0kOf6b1fDJLccbQK7mjR4IeDbYJCWHO" rel="nofollow">Amazon SDK Code Example</a> 的代码示例。</p><p>Happy Prompt!</p><p>延展阅读:</p><ul><li><a href="https://link.segmentfault.com/?enc=me1TJP8vddoTRTlHcOldew%3D%3D.mvsjju5e%2FJJmsqI23No1Fk3p6S3VQZF2bTE%2BRxr7lDTfmi7J3o0fR7TLWe6MDRelU%2ByJsPoJgcrPj%2Bm78yVyEmS2sN34yOwYnJ5UTR%2FGpP52iauO3UVti8HER%2Fp8LlpCHYNiqfgw7HAm0vmHIVcD5wMM%2FA7BdlZ73VPX5xF2IDtvWiLaHfSxORg0M%2FNOp6b5GX098432k%2BUYsCBM6lbb2FgVeEpJ0pzF2Ye1vb4UabLRCXT%2F8q6FthQn%2BbIjGD9z" rel="nofollow">https://community.aws/content/2cZUf75V80QCs8dBAzeIANl0wzU/win...</a></li></ul><ul><li><a href="https://link.segmentfault.com/?enc=o5c0A8zajjAOSXMudkIWAA%3D%3D.Ek%2FJmBWZnL0%2FEL%2FU6%2FIVlzZFZ2OrfLrGX0v9aZwyujh3%2FvGBSvMmYdihBPUzzkjXc3HjTsVFauTuCCzP9dPW6bTtNMNHR%2BKRwx829jBgBbAjv9WadsLsjswwhASr0dAcSrzwoEVWZVn2HwfMKAV9dA%3D%3D" rel="nofollow">https://aws.amazon.com/blogs/aws/mistral-ai-models-coming-soo...</a></li></ul><ul><li><a href="https://link.segmentfault.com/?enc=hb8RmYlSS2sZLmNvPMjk6g%3D%3D.3x%2FCTHb4MZUneZWHURCDD0Off%2FYLIsXWeJBi5TjqkWRj%2FXb2MHWQt5bM809PJpSD" rel="nofollow">https://mistral.ai/?trk=cndc-detail</a></li></ul><p><img src="/img/remote/1460000044722327" alt=" title="Build on cloud.gif"" title=" title="Build on cloud.gif""></p><p>文章来源:</p>
Hero Talk|无缝扩展:Kubernetes 上的 Amazon Aurora 分片和流量管理
https://segmentfault.com/a/1190000044722182
2024-03-18T14:14:09+08:00
2024-03-18T14:14:09+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p><a href="https://link.segmentfault.com/?enc=ZySuF7SZhdhz7l3W8zuTrQ%3D%3D.L3oZODuVO7QmTWvKVoJzvJz%2BzEk8ZXM0rU%2Bf74BhQAWzb9lyiwg6B4A3lIMri5OiW8jcV0kOY7NU88TKd30st%2FqQWXpxfcfcyQpxUZNWKgo%3D" rel="nofollow">亚马逊云科技 Data Hero 潘娟</a>正在打开开源之门。作为“2020 中国开源先锋人物”以及“2021 OSCAR 尖峰开源人物”奖项获得者,她致力于赋能数据领域的开发者,助力他们把握先机。在亚马逊云科技 re:Invent 2023 大会上,潘娟就 Kubernetes 上的 <a href="https://link.segmentfault.com/?enc=tv2U0IgUCnKCwmQGE5%2FTDA%3D%3D.YBVH926tcuJoZOqqKvMSGtxsMflW%2BK2QqpJLM3H%2FTwn%2B5swQ%2B%2F7Ya84NQWQwoEuTUIZoAKKS1HLAHTJRwoMy%2Bw%3D%3D" rel="nofollow">Amazon Aurora</a> 分片和流量管理发表了精彩演讲:</p><p>点击链接查看视频:<a href="https://link.segmentfault.com/?enc=%2FcClyY5RSdQyFoPM4x6ZFQ%3D%3D.ZaVEdtLOa3LycLB%2FAXIyCZI5bBPE900Vdz8KeDeUCVTE%2FJwT8PmXc3OhYCcdzRm4kT8BjkDSI8rMig0ktnH5o7eNNQMuxYtl2XYLjFIzb3EImYN3OpxEs%2BzoexGJf75i" rel="nofollow">https://dev.amazoncloud.cn/activity/activityDetail/reinvent?i...</a></p><p>针对在亚马逊云科技 re:Invent 2023 大会上分享的内容,我们邀请她进行了深入访谈进一步探索这一话题,了解她的精彩构想。</p><blockquote><a href="https://link.segmentfault.com/?enc=dITpMlkOwDql5ghCSnIUfw%3D%3D.w53blvmtWfdeeJ1mpqc9uDj%2FFf%2BjYKKZpiNZTRkp8pZTRbyZitve66pP3ZwII%2BXvzz%2BAziA%2BoyJJOc7w05FgpD4pXTdHU4t%2BAcs%2BvWVFI0uv7210ry9NMd%2FiiJLrPkOT" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=Ur5FCRvGFwDdoc%2FmNzV8JQ%3D%3D.dXeSsUEKCxkFQP5SQLoknkWh86T4yudbtCw3YW6tFOGVikMix8KEWfwGQ4lO5qoLI5JnTUMjIYcxwLPxbtgAKVFXaJFNOt5PC%2FnbE90%2BXHiJBUhxq1GZHwK03r1czbM1itvLm%2FJ6AXPNkclhHK%2BQ1Q%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>您分享的内容适用于那些开发者?您的分享可以帮助他们在哪些方面有所创新?</h3><p>这次演讲内容的受众广泛,包括数据库管理员、开发者、架构师以及对分布式数据库和云数据库感兴趣或正在学习相关知识的个人。对于那些面临海量查询挑战、需要严苛读取或写入场景中实现低延迟的人员而言,本次讲座尤其不容错过。</p><p>考虑借助数据库代理或 Apache ShardingSphere 等网关来自动进行数据分片和负载平衡,从而提高数据库的吞吐量和性能,这是我最希望开发者们听完我分享的内容之后能够有所创新的地方。此外,我还希望他们了解利用灵活的无共享分布式数据库架构的优点,以便能够在内部部署和 Kubernetes 环境中有效利用数据库服务。</p><h3>有哪些内容和社区资源可以帮助开发者更好地观看您分享的内容?</h3><p>开发者最好对 cloud RDBMS(如 Aurora、RDS)及其性能和可用性考虑因素具备基本了解。另外就是要熟悉在严苛的读/写场景中处理海量查询所面临的挑战以及数据库迁移方面的问题。这里有一些资源可以帮助大家提供背景知识最好准备:</p><p>社区论坛和文章:</p><ul><li>community.aws 上的<a href="https://link.segmentfault.com/?enc=bNYOK1n4x3AwXLzvimFIKA%3D%3D.hxYNxoU3lcjJ1EYaqr5TuGVceT%2Fn%2BdmwdY2HEORz4Fnd58i3y362qLWpH%2FDQr8MdB3EOlq0nN1ZtbeEiuckxLQ%3D%3D" rel="nofollow">文章论坛</a>是一个很好的资源库;</li><li>Ankush Agarwal 撰写的关于数据库、数据仓库和数据湖的<a href="https://link.segmentfault.com/?enc=SI%2Fh29DCW5ppVwb%2BxYQTgA%3D%3D.ORy24HVFBaEwNiTyDD4JNzDyRmR%2BiUU7VxcauMXnN9h5RepJUf5AfYlzg46MizSB9cSUoNciwYvUnKm0bPc0CPUD14BdkoRZZRUnok%2FiXhxKsvLW4u1nvNhl4e%2FpeESX" rel="nofollow">这篇博客</a>很有帮助</li></ul><p>以下是我自己的<a href="https://link.segmentfault.com/?enc=gjMo2ghHN6xTfh3ccAHLwA%3D%3D.TxKXpFnNJ%2Blzw5tvBZT9%2BTzQonFq66iPXEWkxp%2BQKnLJMiGSgAkTubCmLDMo1hS3PK5Dye6neB%2FBKQdi1dFWXO%2BddFzHb50giayOfm815eU%3D" rel="nofollow">博客</a>以供参考。</p><p>Apache ShardingSphere 文档:</p><ul><li><a href="https://link.segmentfault.com/?enc=n2zqBgsZUtIUE8O4l5erJw%3D%3D.wycK179tZais%2BC0VCLqs%2BqDNhjJsGWGZ50TObTa9T1lB%2BpHMLODG86VnR3nmMQgoIHqdIujShLKF%2BQ2tj%2FgMLs373C%2BwVF51b%2BDS9G7uBcg%3D" rel="nofollow">https://shardingsphere.apache.org/document/current/en/overvie...</a></li><li><a href="https://link.segmentfault.com/?enc=qbg5mmmzVRnERWhhC%2BlRQg%3D%3D.mmjR2qXddj2M%2FkAz6VXHiEv%2F8T8ALjYt9CfPTO1IN9d5p0YxQS2j27V5xOs%2F00q8p1KP68U9AbrthlXTeIzTzw%3D%3D" rel="nofollow">https://shardingsphere.apache.org/learning.html?trk=cndc-detail</a></li></ul><h3>您认为生成式 AI 会对您分享的主题产生哪些影响?</h3><p>我认为,生成式 AI 让我们有机会彻底改变大多数行业的各种产品,比如在线购物、金融科技(FinTech)等。说到大数据和数据库,我们可以根据用户的具体情况考虑几个相关主题:</p><p><strong>隐私问题</strong>:生成式 AI 通过生成与真实世界数据相似的合成数据来解决隐私问题,从而在无需直接访问敏感信息的情况下进行分析。</p><p><strong>商业洞察</strong>:生成式 AI 可以帮助分析大型数据集,发现数据驱动决策的模式和趋势。</p><p><strong>自动化和优化</strong>:生成式 AI 可以自动执行数据管理任务、简化流程并优化云环境中的资源分配,从而提高效率和性能。</p><h3>有没有什么内容是您希望分享给开发者,但由于演讲时间限制没有涉及的?</h3><p>由于时间有限,的确有几个很有讨论价值的方面未能在讲座中谈及,其中包括:</p><p><strong>ShardingSphere 的新增功能</strong>:演讲本来可以深入探讨 ShardingSphere 提供的更多功能,例如数据加密、身份验证机制和可观察性。这些功能对于确保数据安全、控制对数据库的访问以及监控分布式数据库系统的性能和健康状况非常重要。</p><p><strong>真实场景</strong>:提供更多真实场景和用例将有助于用户了解该解决方案可以解决的具体问题。其中可能涉及处理高流量负载、横向扩展数据库系统以及跨在 Kubernetes 或本地跨数据中心管理数据等场景。开发者可以<a href="https://link.segmentfault.com/?enc=cBJVmUaWj8d9NBV1DZni0g%3D%3D.rTvMaiUZ7PD9bfkA56vb1aY4EWlNNHatWULljTbfB3Pba%2FjFqSpTebUSqeYOKbhSaxxwHPDjklHNWGFL562CtADlz8Pxe52CqjR5R3qx4Dc%3D" rel="nofollow">在这里找到更多信息</a>。</p><h3>您期待开发者在观看了您的分享之后向您提出什么问题吗?</h3><p>我期待的问题是:在采用分片或分布式数据解决方案时,需要考虑哪些重要因素?</p><p>这个问题的答案涉及讨论分片密钥和分片算法在基于特定用例而提高查询性能和实现高效数据管理方面的重要性。</p><p><strong>分片密钥</strong>:选择合适的分片密钥至关重要。分片密钥决定了数据在不同分片或分区之间的划分和分布方式。应谨慎选择分片密钥,以确保数据均匀分布,并尽量减少热点。分片密钥还应符合应用程序的查询模式,以确保高效的查询路由和检索。</p><p><strong>分片算法</strong>:分片算法决定如何将分片密钥映射到特定分片,定义了确定哪个分片应处理特定数据记录或查询的逻辑。可以根据应用的具体要求使用不同的算法,例如基于范围、基于哈希或基于组合的算法。选择分片算法应考虑数据分布、负载平衡和维护难易程度等多种因素</p><p>通过考虑分片密钥和分片算法,用户可以在其分布式数据解决方案中提高查询性能,实现高效的数据分布和可扩展性。”</p><h3>您是如何成为这一领域的专家的?这个领域又是因何让您倾注了热情?</h3><p>其实,这两个问题是有因果关系的:热爱数据和云计算让我怀有成为这一领域专家的动力和兴趣。另外还有一些技巧,供大家参考:</p><ol><li><strong>钻研专业</strong>:投入工作,迎难而上,积累经验,磨炼技能;</li><li><strong>向高手学习</strong>: 积极接触所在领域中经验丰富的专业人士,获取宝贵见解,激发灵感,拓宽认识;</li><li><strong>掌握最新前沿知识</strong>:充分利用研究论文、文章、会议和线上资源,与时俱进。</li></ol><p>我对数据管理和云计算领域充满热情,因为我相信数据就像隐藏的宝藏,等待着我们去发现并加以利用。为了应对大数据的 5V 挑战——Volume(数据量)、Value(数据价值)、Variety(数据多样性)、Velocity(数据速度)和 Veracity(数据真实性),很多项目和工具应运而生,因此现在正是进入这一领域的大好时机。此外,云计算已经彻底改变了大数据的潜力,创造了许多可能性。这就好比一个游乐场,我们可以在其中发挥自己的技能和才干,探索创新的方式,打造优质产品。</p><p>在完成硕士学业之后,我还收获了这一领域的实践经验。这个职业让我有机会与专业人士交流,从他们的宝贵见解中受益,促进了我的个人和职业成长。我希望自己能够在这个领域再接再厉,做出新的贡献,探索未来新的可能性。</p><p><img src="/img/remote/1460000044722184" alt=" title="Build on cloud.gif"" title=" title="Build on cloud.gif""></p><p>文章来源:<a href="https://link.segmentfault.com/?enc=AmJzqp%2Fs%2Bo%2BlAE21ke4N%2Fw%3D%3D.3HGgc7%2B6PwGOWrm2HK3MC4hKp1LVxGLDFg%2FkVWf7FLUnS4vUTUHNjkc3%2F%2FHtIlIz6nH%2Fl4Vigw4Kxi8RyiZXvhAnkQM97tu3PZ5cVZ23j%2F1H057i83rT6n9i3Ed%2FV%2FGZFk1QHDar7sboM3e7cmV%2FqHG%2F8Pd1%2BR3T6oEiyW%2BTJkpuwSoOYIKpTtwHkz61x4MB" rel="nofollow">https://dev.amazoncloud.cn/column/article/65f7d6a96e5a395d081...</a></p>
2023 亚马逊云科技 re:Invent 大会探秘:Aurora 无限数据库的突破性应用
https://segmentfault.com/a/1190000044720956
2024-03-18T07:53:07+08:00
2024-03-18T07:53:07+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>一、前言</h3><p>2023 年的亚马逊云科技 re:Invent 大会已于内华达州的拉斯维加斯盛大举行。在现今 2023 年该大会已经迎来了第 12 届。</p><blockquote><a href="https://link.segmentfault.com/?enc=Q5RmN%2FcDmHVDWGRcb577FA%3D%3D.CWq2YviggEunzqJhfmzGO3Mkarbdz3%2F7smy%2BSObcHdd7WU7U2BzpdF6imhrRYaFXPF%2Bf0rctI0iTyr15eNBqmxSDVBCbpGz2Cl9B7l4Qwonn4MqH2qLVClCbp5754lil" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=Zg1Aczf96l6lpIuIDLsbmw%3D%3D.xVvHSBOi%2BGA8gc5q883i5OWvX%2FcpKhT4tja78nx14YlmfzTC0SXmwrfMDHC44Ta4Od9JIiAjBC1QWMImovn9E2cC3gL7Dkk3gcITWOji4eBuPp0BNBgCJ%2Bu%2FQIilE6f3rDX%2Fh%2BlWrdk0wJyhKleSSQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在为期五天的大会里吸引了全球数万名观众和客户,共同深入探讨、学习并体验最新的<a href="https://link.segmentfault.com/?enc=Hvmm5w6dq3HQ7DMbLCrH3w%3D%3D.tOcVAO8w0LCfYWG%2FSjU7LTl3kPbbWDTxT%2Ft%2BWHHs94%2FvGicNlwFl0XA7UqkbSTjvlLfQJSnt0fq8Ba6zIqfrNdcbn%2FPLpIbuoz5M3a0jMZ1xGeAh%2BHeJvQ%2FtUTDucOR2L5XyVdcVrJ63OwZpcLvmlOckqtiUPudYXwUyfPFHS60%3D" rel="nofollow">云计算技术</a>和行业趋势。作为亚马逊云科技每年一度的盛事,今年的 re:Invent 再次突显了该公司在云计算领域的领先地位和创新实力。此次盛会上,亚马逊云科技发布了一系列重要新品和解决方案,为全球客户带来了前所未有的科技盛宴。</p><p>而在今年的亚马逊 re:Invent 大会中,在<a href="https://link.segmentfault.com/?enc=UhGucPoyD4uh0ESjAFHQXA%3D%3D.1HNt9d1FqDfSW%2BI2CpohzCVQxESsmg0%2BRTaVO%2B43M%2F6C2WYKdJ13DsRyOu3R6E0hF1BpnrTY7H86B8rK0kCrGzq0lUKbKyGHiHBluBUxOmSOc6wupt%2F1CVfucF%2FDkVRavrB6fSYPVU8kuon7Hbs1MujzWuG47zwRiYbaCqQ0yCs%3D" rel="nofollow">关系型数据库</a>方面,让我印象颇深的重磅发布是 <strong>Amazon Aurora Limitless Database (无限数据库)</strong> 。</p><p><img width="640" height="357" src="/img/bVdbNxY" alt="" title=""></p><h3>二、Amazon Aurora 无限数据库</h3><p>在本博文开头我有提过,让我印象颇深的重磅发布是 <strong>Amazon Aurora Limitless Database (无限数据库)</strong> ,接下来让我们更加详细了解一下 Amazon Aurora Limitless Database (无限数据库)。</p><h4>2.1 亚马逊云科技数据库产品发展历程</h4><p>我们在详细介绍 Amazon Aurora Limitless Database(无限数据库)前,先了解一下亚马逊云科技数据库产品发展历程。</p><p><img width="723" height="396" src="/img/bVdbNxZ" alt="image.png" title="image.png"></p><p>对于比较了解亚马逊云科技产品的小伙伴们应该不会陌生,亚马逊云科技拥有众多的数据库产品,针对不同的业务及功能需要,你可以选择不同的数据库产品。</p><p>而回顾亚马逊云科技关系型数据库 15 年的发展历程你会发现,<strong>数据库产品逐渐走向无,再从无走向了无限。</strong></p><p><strong>2009 年推出</strong>:Amazon RDS( Relational Database Service )关系型数据库服务,支持多种关系型数据库引擎,如 MySQL 、PostgreSQL 、MariaDB 、Oracle 和 Microsoft SQL Server 。 RDS 简化了数据库管理任务,提供了可扩展性和自动备份功能。</p><p><strong>2014 年推出</strong>:Amazon Aurora ,是一种高性能、高可用性的关系型数据库引擎,与 MySQL 和 PostgreSQL 兼容。Aurora 的架构设计提供与商业数据库相媲美的性能,同时降低了成本。</p><p><strong>2018 年推出</strong>:Amazon Aurora Serverless ,这项服务的推出是为了提供更加灵活和成本效益的数据库解决方案。相比于传统的数据库部署方式,Aurora Serverless 允许用户根据实际需求自动扩展数据库容量,从而降低了成本并提高了灵活性。用户无需管理底层的服务器或实例,而是根据实际数据库负载自动进行容量的扩展和缩减,这使得数据库更适应性更强。提供了数据库资源的<strong>无缝上下伸缩</strong>。</p><p><strong>2018 年推出</strong>:Amazon Aurora Limitless ,通过自研的时钟同步,来实现高性能的分布式事务,提供了可以<strong>横向写扩展的分布式数据库。</strong></p><h4>2.2 什么是 Amazon Aurora Limitless Database (无限数据库)</h4><p>Amazon Aurora Limitless Database(无限数据库)该数据库能够让你将 Amazon Aurora 集群扩展到每秒数百万次写入事务,并管理以 PB 计的数据量。借助这一新功能,你可以在 Aurora 上扩展关系型数据库工作负载,无需创建自定义应用逻辑或管理多个数据库。</p><p>Amazon Aurora Limitless Database(无限数据库)通过提供无服务器终端节点来轻松扩展你的关系型数据库工作负载,该节点会自动在多个 Amazon Aurora Serverless 实例之间分发数据和查询,并保持单个数据库的事务一致性。Amazon Aurora Limitless Database(无限数据库)提供分布式查询规划和事务管理等功能,消除了你创建自定义解决方案或管理多个数据库以进行扩展的需要。随着工作负载的增加,Amazon Aurora Limitless Database(无限数据库)会添加额外的计算资源,同时保持在指定预算范围内运行,因此无需为高峰时段进行配置,当需求低时,计算资源会自动缩减。</p><p>Amazon Aurora Limitless Database(无限数据库)目前仅在以下 Region 的 Amazon Aurora 与 PostgreSQL 兼容版本进行有限预览:</p><ul><li>美国东部(俄亥俄州)</li><li>美国东部(弗吉尼亚北部)</li><li>美国西部(俄勒冈州)</li><li>亚太地区(东京)</li><li>欧洲(爱尔兰)</li></ul><blockquote>这里注意,现阶段只有 Aurora PostgreSQL 才支持,MySQL 版本暂时不支持。</blockquote><h4>2.3 Amazon Aurora Limitless Database 设计架构</h4><p>Shards(分片) 是 Aurora PostgreSQL 数据库的实例,每个实例存储数据库的一部分数据,可实现并行处理,提高写入吞吐量。事务路由器负责管理数据库的分布式特性,并向数据库客户端呈现单一的数据库图像。</p><p>在 Aurora Limitless 的 DB Shard group 中具有两层架构,由多个数据库节点组成,包括<strong>事务路由器和分片</strong>。分片是 Aurora PostgreSQL 数据库实例,每个分片存储数据库的一部分数据,以实现并行处理以实现更高的写入吞吐量。</p><p>这些路由器维护有关数据存储位置的元数据,解析传入的 SQL 命令并将其发送到各个分片,聚合分片数据以向客户端返回单一结果,并管理分布式事务以确保整个分布式数据库的一致性。无限数据库架构中的所有节点均包含在一个数据库分片组中。数据库分片组具有单独的终端节点,提供访问无限数据库资源。</p><p>(查看清晰大图:右键图片新窗口打开后放大镜查看)</p><p><img width="723" height="225" src="/img/bVdbNx0" alt="image.png" title="image.png"></p><p>在上述架构图中,左侧是官方给出的 Amazon Aurora Limitless Database 设计架构图(<a href="https://link.segmentfault.com/?enc=Au1vnWXZsbimyPgYDCJzfw%3D%3D.pAfT0jMECsqGFhz5ZBCVhJGXe0SbVfG7O6XgpPu1vzOzElSE0iqmHxqGi1LavwASAtMKLmhO5M6nJFp3ZZlgIwonvs%2B%2FuEDnWY7B3ZblP1bK0%2BtwHIXwLSNs76cE%2BOhYb6z7Jwm%2BsgYFMolZPq5Y5Q%3D%3D" rel="nofollow">点击这里</a>),在这个标准的架构中,其中包括四个主要部分:</p><ol><li>在分布式存储上的 Aurora 卷</li><li>一个 Aurora 写入实例</li><li>通过可选的读取实例来实现可用性和读取扩展性</li><li>在无限制数据库中引入了“分片组”的概念"</li></ol><p>具体的详细处理流程已经在上述有说明;右侧架构可以认为是左侧架构图中黄色部分:数据库分片组内的放大架构,而这个架构非常类似于阿帕奇的 ShardingSphere(<a href="https://link.segmentfault.com/?enc=C%2FXW9s94xNjNiFIIxnvSbw%3D%3D.Lhcpb7%2BWXXyzocwSvUagEWHFJYJm4oYvcUuuSr04DoW5BkCNLj%2Fp26LixFzXQwQ9t%2FqUAvJ8%2Fw9EaGDOGFZtk8nXqzArGb7hFq6uHLsInwU%3D" rel="nofollow">点击这里</a>)。希望这个我后绘制的架构图,能够帮你更好的理解 Amazon Aurora Limitless Databas 。</p><h4>2.4 Amazon Aurora Limitless Database 分片功能</h4><p>不知道你有没有使用过 Amazon Aurora Serverless v2 ,这个版本的 Aurora 支持多个可用区,并具备自动扩容功能。当你在 RDS 服务中选择创建 Aurora 的时候就能看到该选项(后文体验中也有标注)。</p><p>在这次 re:Invent 大会后,你是否对 Amazon Aurora Serverless v2 和 Amazon Aurora Limitless Database 之间有何不同进行过考虑,博主个人认为最大的差异就在于增加了<strong>分片功能</strong>,我们在上述的 Amazon Aurora Limitless 架构中也有提到。</p><p>Amazon Aurora Serverless v2 能够自动增减 ACU( Aurora 容量单位)容量。但是,增加的上限为个 128 ACU 。</p><blockquote>想了解关于 Amazon Aurora ACU 的知识点可以 <a href="https://link.segmentfault.com/?enc=LXIyLHl%2BCUFyM9xr%2B7AlFg%3D%3D.eC4AFUWBlQ%2BNGpga1WaMdaApezZSM3VnlOB%2FSAf2UN3%2F8rioX8rrZl%2FjDAJWxOGBzEqVChGDIRkQadtQnAi%2F6cJNUUQ%2BxDIxO9%2Bp8JIJq5%2FaeB%2FGlr12CiVVGdyqYixwjk%2Bg1Lqyzbv33wdlYBmpMCuq%2BOcEHGEs7aHp29c7bko%3D" rel="nofollow">点击这里</a>,本文不过多赘述。</blockquote><p>这个 128 ACU 大概是亚马逊云科技物理服务器的最大值。到这里还不足以成为一个完全的无服务器服务。然而, <strong>Amazon Aurora Limitless Database 现在可以处理分片数据库</strong> 。</p><p>这意味着当 ACU 数量超过 128 时,数据库可以分成 128 ACU 的主数据库加上附加数据库。换句话说,Amazon Aurora Limitless Database 非常有可能无上限地增加容量。</p><h4>2.5 使用 Amazon Aurora Limitless Database 示例</h4><p>出于说明示例的目的,假设我们有一个客户表( Customer )、一个订单( Order )和一个税率表( Tax Rate )。将此分片后,你可以使用客户 ID 作为订单表中的分片键。连接客户表和订单表时,有相同键的数据很方便。每个分片上都有税率表作为参考表。</p><p>具体示例如下图所示:</p><p><img width="723" height="392" src="/img/bVdbNx8" alt="image.png" title="image.png"></p><p><strong>2.5.1 创建 customer 分片表</strong></p><p>在实际创建表时,现在引入了新概念:<code>create table mode</code>(创建表模式),并设置会话参数。</p><p>对于客户表(分片表),将 create table mode 设置为<code>sharded</code>,并指定<code>cust_id</code>作为<strong>分片键</strong>来创建表。</p><pre><code>SET rds_aurora.limitless_create_table_mode='sharded';
SET rds_aurora.limitless_create_table_shard_key='{"cust_id"}';
CREATE TABLE customer (
cust_id INT PRIMARY KEY NOT NULL,
name TEXT
email VARCHAR(100)
);</code></pre><p><strong>2.5.2 创建 order 分片表</strong></p><p>对于订单表,为分片表,同样将 create table mode 设置为<code>sharded</code>,并将分片键指定为<code>cust_id</code>,并且,我们将 collocate with 参数设置成我们刚才创建的<code>customer</code> 表。</p><pre><code>SET rds_aurora.limitless_create_table_mode='sharded'; --可选项
SET rds_aurora.limitless_create_table_shard_key='{"cust_id"}'; --可选项
SET rds_aurora.limitless_create_table_collocate_with='customer';
CREATE TABLE order (
order_id INT NOT NULL,
cust_id INT NOT NULL,
amount DOUBLE NOT NULL,
tax_rate_id DOUBLE,
PRIMARY KEY (order_id, cust_id)
);</code></pre><blockquote>注意:实际上,上面的三个 SQL 语句,表明我们将创建另一个分片表,它将与客户表( customer )放在同一个位置。因此两个表的所有数据将位于同一分片上,或者是具有相同分片键值的数据将位于同一分片上。</blockquote><p><strong>2.5.3 创建 tax_rate 分片表</strong></p><p>最后的税率表是一个参考表,使用语法和上述类似,是将 create table mode 设置为 reference 。</p><p>从下面的语法中可以看到一方面 limitless_create_table_mode 的参数设置成了 reference ,而不是之前的 sharded ;另一方面创建 tax_rate 表的时候并没有指定分片键( limitless_create_table_shard_key )。所以 tax_rate 表和上述的客户和订单表不在同一个位置。</p><pre><code>SET rds_aurora.limitless_create_table_mode='reference';
CREATE TABLE tax_rate (
tax_rate_id INT PRIMARY KEY NOT NULL,
city TEXT NOT NULL,
state TEXT,
country TEXT NOT NULL,
tax_rate DOUBLE NOT NULL
);
-- 同时还支持直接创建标准的 Aurora 标准表。
SET rds_aurora.limitless_create_table_mode='standard';</code></pre><p>除了 limitless_create_table_mode 设置成 reference 外,还支持直接创建标准的 Aurora 标准表,这也就意味着,这个标准表将与你的分片表和引用表位于同一个集群中。。</p><h3>三、在亚马逊云科技门户中创建 Amazon Aurora Limitless 数据库</h3><p>进入亚马逊门户首页,服务搜索框内,直接搜索 RDS ,注意文中开头有讲过 Amazon Aurora Limitless 数据库还是处于预览阶段,只有固定的几个 Region 中可以使用,所以需要确认自己的 Region 。</p><p><img width="723" height="195" src="/img/bVdbNyL" alt="image.png" title="image.png"></p><p>进入到创建数据库 RDS 界面后,选择 Aurora( PostgreSQL ),因为现在 Amazon Aurora Limitless 数据库暂时只支持 PostgreSQL 版本,MySQL 和其他数据库暂时不支持。</p><p><img width="723" height="512" src="/img/bVdbNyM" alt="image.png" title="image.png"></p><p>进入到基础设置页面后,根据自身情况进行设置,如下图所示:</p><p><img width="723" height="471" src="/img/bVdbNyN" alt="image.png" title="image.png"></p><p>进入集群设置页面后,根据自身情况进行设置,我们之前在 3.4 Amazon Aurora Limitless Database 分片功能 章节中有提到多 AZ 集群的功能,在此处即可进行设置,如下图所示:</p><p><img width="723" height="425" src="/img/bVdbNyW" alt="image.png" title="image.png"></p><p>继续设置网络 VPC 及连接等相关设置</p><p><img width="723" height="506" src="/img/bVdbNyX" alt="image.png" title="image.png"></p><p>最后预览自己的配置以及价格,直接点击创建数据库按钮。</p><p><img width="723" height="264" src="/img/bVdbNyY" alt="image.png" title="image.png"></p><p>创建过程中需要等待一段时间,等待过后,在数据库页面可以看到刚才所创建的 Aurora 数据库,之后点击 Action 按钮,可以在弹出的菜单中找到添加<code>数据库分片组</code>的新功能。</p><p><img width="723" height="270" src="/img/bVdbNyZ" alt="image.png" title="image.png"></p><p>添加并设置好后,可以看到我们的集群中,即包括普通 PostgreSql 的实例,也包括 Amazon Aurora Limitless 数据库。</p><p><img width="723" height="256" src="/img/bVdbNy0" alt="image.png" title="image.png"></p><h3>四、文末总结</h3><p>在2023年的亚马逊云科技 re:Invent 大会上,众多创新产品和解决方案亮相,其中 Amazon Aurora Limitless Database 成为备受瞩目的重磅发布。这一无限数据库扩展了 Amazon Aurora 的能力,使用户能够轻松地将数据库扩展到每秒数百万次写入事务,并管理以 PB 计的数据量。通过无服务器终端节点,该数据库提供了分布式查询规划和事务管理等功能,消除了用户创建自定义解决方案或管理多个数据库以进行扩展的需要。Amazon Aurora Limitless Database 的分片功能更进一步,允许数据库无限制地增加容量,为用户提供了无限的可能性和扩展性。</p><p>虽然目前仅支持部分地区的 PostgreSQL 版本,但这一创新展示了亚马逊云科技在数据库领域持续推动的领先地位和创新实力,为用户提供了更大的性能、灵活性和成本效益。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=a4fza34mG0nlfHBhiw%2BQGg%3D%3D.L4t80qUhlVGDe2HNJwozQvYPpPuPKL8WzyAjHvkJWs5ASjBsjXdLZWooffs8KGZzkA9C70w8BHexexDVz7FlTSWaKZrkzECH4seryL1E2OvBysXJg2%2BGfX3A6M13CKszGZEbvZZVtbr45tzj3vV2fiqemUi7gW7PP%2FvvFDA4V7zAdRk6pvMSeyQnrhV4e01p" rel="nofollow">https://dev.amazoncloud.cn/column/article/658985665d096603bb1...</a></p>
2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心
https://segmentfault.com/a/1190000044714383
2024-03-15T07:54:59+08:00
2024-03-15T07:54:59+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道)</blockquote><h3>前言</h3><p>在2023年备受瞩目的亚马逊云科技 re:Invent 大会上,Amazon Connect 作为会议的焦点,再次证明了其在亚马逊云科技产品阵容中的重要地位。此次大会不仅让我们深入了解了 Amazon Graviton3、Amazon SageMaker Studio Lab、Amazon Connect、Amazon Q 等一系列创新产品,更重要的是,它凸显了 Amazon Connect 这一全渠道云联络中心的独特价值。</p><blockquote><a href="https://link.segmentfault.com/?enc=hZBiduBDScPnRtjfGAniRw%3D%3D.23KdekYY48%2F%2FkuGkNv7TjFEx3gbetaC3PXxgBCPu0Z8UwYONs4%2F4w3pctPFRsDyASL4nrdvo%2BJwfu38VZ1hKkAInZcLRSNFm2gVOphcI6NabF8mrnmS6M9R%2BRJi2Dsq9" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=nY2qKy6baFFAY33XQ0hZ1g%3D%3D.8oLwNldMdoH%2BwbKQhghSED%2FI%2BwFIjH02tZV8vSWF%2BpkCrRi6JJ2dMfW1T7LTTP14o7Yq%2FuNbEBD1LkrAHeGqi5b4noz4C5KRpex5g09Wp7uHrfoXHMLIrsN7h9r%2Bu7xNnUco9%2Bt7VKwDGBSPaPXYrA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>一. Amazon Connect 介绍</h3><p>Amazon Connect 作为此次大会的明星产品,是一个非常强大的全渠道云联系中心。它不仅仅是一个联系中心,更是一个能够为客户定制个性化体验的地方。借助 Amazon Connect,我们可以根据客户的喜好、预计等待时间等各种因素,灵活地提供聊天和语音联系。而代理们可以在一个界面上轻松处理各种客户需求,比如聊天、创建任务,响应任务等等。Amazon Connect 不仅功能强大,而且它还是一个开放平台,可以很好地与其他企业应用程序集成。同时,我们还可以与其他服务搭配使用,为客户提供一流的创新体验。</p><p>Amazon Connect 的魅力在于,它能轻松打造一个全渠道联系中心,在语音、聊天、短信和任务等多个渠道上为客户提供一致的体验。</p><ul><li>我们可以在所有通道上使用相同的路由配置文件、队列、流、指标和报告。</li><li>代理们更是只需要一个界面,就能搞定所有客户的事务。就算客户的互动从聊天开始,然后又转向语音,处理语音呼叫的代理会拥有完整的聊天记录。</li></ul><p>全渠道通信可以为客户营造极其个性化的体验,并可以根据需要切换渠道。举个例子,你可以根据客户的喜好、预计等待时间以及客服人员的技能等,灵活地提供聊天或语音联系。</p><p>搭建 Amazon Connect 云服务联系中心非常简单,只需要几个小步骤,我们就可以轻松设置自己的联系中心,然后开始与客户们互动交流。具体的操作我将在接下来的内容中为大家揭晓,无论是使用一个渠道还是多个渠道,都能帮助你轻松驾驭 Amazon Connect 联系中心的设置。</p><h3>二. Amazon Connect 使用教程</h3><h4>1.我们打开 URl 链接找到对应服务</h4><p><a href="https://link.segmentfault.com/?enc=lHyNCQB99551oJACfbqNvQ%3D%3D.%2F6yjwah2vfF%2Bx2ydeop2bg6kHbAE%2BJMWTDg9U5tkTSNoupTao1Oy1qjwpaHQ7wiUaWFC%2FUI5I5ROML0CmrWJ9EnnsilDmf1VqSKnDC%2FhqUUrWOzc48MgNx7InRKJjlkI" rel="nofollow">https://us-east-1.console.aws.amazon.com/console/home?region=...</a></p><h4>2.输入 Amazon Connect 选中第一个点击进入即可;</h4><p><img width="723" height="474" src="/img/bVdbJyE" alt="image.png" title="image.png"></p><h4>3.在进入之后我们就开始创建实例,点击添加实例</h4><p><img width="723" height="440" src="/img/bVdbJyL" alt="image.png" title="image.png"></p><h4>4.根据自己的需求在下面写入自定义的域名(名称)即可,下一步;</h4><p><img width="723" height="476" src="/img/bVdbJyM" alt="image.png" title="image.png"></p><h4>5. 我们这边暂时不选择管理员(大家可以根据自己需求进行选择),点击下一步;</h4><p><img width="723" height="467" src="/img/bVdbJyN" alt="image.png" title="image.png"></p><h4>6.在设置通话的时候我们允许入站,出战呼叫即可;</h4><p><img width="723" height="473" src="/img/bVdbJyO" alt="image.png" title="image.png"></p><h4>7.设置数据存储</h4><p>通话录音、计划报告和聊天转录都存储在一个您创建 Amazon Connect 实例时系统为您创建的 S3 存储桶中。使用特定于您的 Amazon Connect 实例的密钥进行加密。流日志在 Amazon CloudWatch Logs 中存储在为您创建的日志组中。</p><p><img width="723" height="452" src="/img/bVdbJyP" alt="image.png" title="image.png"></p><h4>8.审核和创建,默认即可点击创建实例</h4><p>我们在这里直接默认即可;</p><p><img width="723" height="287" src="/img/bVdbJyQ" alt="image.png" title="image.png"></p><p>此处,可以查看数据存储的对应位置,也可以进行对应的编辑;点击创建实例;</p><p><img width="723" height="361" src="/img/bVdbJyR" alt="image.png" title="image.png"></p><h4>9.创建成功,耐心等待即可</h4><p><img width="723" height="443" src="/img/bVdbJyT" alt="image.png" title="image.png"></p><h3>三. Amazon Connect 功能测试</h3><h4>1.这样我们就创建成功了,接下来我们点击开始使用;</h4><p><img width="723" height="438" src="/img/bVdbJyU" alt="image.png" title="image.png"></p><p><img width="723" height="438" src="/img/bVdbJyV" alt="image.png" title="image.png"></p><p>点击开始即可;</p><p><img width="723" height="443" src="/img/bVdbJyX" alt="image.png" title="image.png"></p><h4>2.我们为自己创建一个电话号码进行后续的接听或者拨打电话;</h4><p><img width="723" height="365" src="/img/bVdbJyY" alt="image.png" title="image.png"></p><p><img width="723" height="336" src="/img/bVdbJyZ" alt="image.png" title="image.png"></p><p>点击继续,我们就创建成功了;</p><p><img width="723" height="363" src="/img/bVdbJy0" alt="image.png" title="image.png"></p><h4>3.我们对聊天进行测试;如下图</h4><p><img width="723" height="364" src="/img/bVdbJy1" alt="image.png" title="image.png"></p><p>进入之后,我们接受聊天;就可以模拟聊天;</p><p><img width="723" height="463" src="/img/bVdbJy2" alt="image.png" title="image.png"></p><p><img width="723" height="415" src="/img/bVdbJy5" alt="image.png" title="image.png"></p><p>在呼叫面板中可以呼叫电话;</p><p><img width="723" height="403" src="/img/bVdbJy6" alt="image.png" title="image.png"></p><p>我们还可以进行视频电话的操作;</p><p><img width="723" height="441" src="/img/bVdbJy8" alt="image.png" title="image.png"></p><h4>4.设置操作小时数</h4><p>在大多数联络中心,休息时间都是错开的。例如,当一些座席正在吃午餐时,其他座席仍然可以处理联系事宜。您无需在工作时间内指定这一点,而是添加出现在代理联系控制面板 (CCP) 中的自定义代理状态。</p><p>例如,您可以创建名为 Lunch 的自定义状态。当代理去吃午餐时,他们在 CCP 中的状态从 “有空”更改为“午餐”。在此期间,不会将任何联系人路由给他们。当他们吃完午饭回来并准备再次联系时,他们将状态更改回“有空”。</p><p>主管可以使用实时指标报告更改座席的状态。</p><p><img width="723" height="352" src="/img/bVdbJy9" alt="image.png" title="image.png"></p><p><img width="723" height="439" src="/img/bVdbJza" alt="image.png" title="image.png"></p><h4>5.添加用户</h4><p><img width="723" height="437" src="/img/bVdbJzb" alt="image.png" title="image.png"></p><p>添加用户之后,查看新增用户;</p><p><img width="723" height="206" src="/img/bVdbJzc" alt="image.png" title="image.png"></p><h3>四、总结</h3><p>经过一段深入的探索和体验,我对亚马逊云科技的 Amazon Connect 服务有了全新的理解和深刻的见解。</p><ol><li>初识 Amazon Connect:参加亚马逊大会让我对 Amazon Connect 的背景和基本概念有了初步了解。这为我接下来的探索提供了坚实的起点。</li><li>操作过程的深刻印象:在使用 Amazon Connect 的过程中,特别让我印象深刻的是其自定义域名和通话设置的灵活性。这些特点充分展示了 Amazon Connect 在满足用户个性化需求方面的强大能力。</li><li>实际测试的体验:我亲自创建了电话号码进行了实际测试。在此过程中,Amazon Connect 稳定的通话质量和友好的操作界面给我留下了深刻的印象。特别是在聊天功能测试方面,系统展现了其高效的交互能力和在实际业务场景中的巨大潜力。</li><li>功能的全面性和适用性:通过操作小时数的设置和用户的添加,我更深入地了解了 Amazon Connect 作为一个综合性通信解决方案的能力。它不仅适用于小型应用场景,其灵活性和可扩展性也完全能够满足大型企业的需求。</li><li>整体感受:这次体验让我全面掌握了 Amazon Connect 的各项功能。尤其是其用户友好的界面设计、灵活的配置选项,以及稳定的通信性能,都给我留下了极为深刻的印象。无论是对于初学者还是经验丰富的用户,Amazon Connect 都是一个极为推荐的企业级通信解决方案。</li></ol><p>总体来说,Amazon Connect 凭借其卓越的用户友好性、灵活的配置能力和稳定的性能,展现了其作为顶级企业通信解决方案的实力。这次的体验不仅提升了我的操作技能,也让我对企业级通信系统有了更加全面的理解。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=8DlSDL45LMLZyqCTD%2Ft3kA%3D%3D.ePFUrfqVaaAut8hiL0GOqAZNM81Sc6rSnsJjCm4sUjLBAP8my1zrkVSnOLnTl60zW4YTxGJRX%2FYT3ka8hANEdayQn33dj6MLMYM3ZIROgeyt7feAku4M8ToTWLchUMEgepLeuA2aLQW3kQ2AR22dY9vCb6yb2MVG4w5w6VKW3bVZGdM9GF8x%2FquQOowhRrQk" rel="nofollow">https://dev.amazoncloud.cn/column/article/658abd2a5d096603bb1...</a></p>
在 Amazon Bedrock 上使用 Anthropic Claude 系统 Prompt
https://segmentfault.com/a/1190000044710939
2024-03-14T07:58:35+08:00
2024-03-14T07:58:35+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>系统 prompt 是定义生成式 AI 模型对用户输入的响应策略的一种好方法。这篇博文将介绍什么是系统 prompt,以及如何在基于 Anthropic Claude 2.x 和 3 的应用中使用系统 prompt。</p><blockquote><a href="https://link.segmentfault.com/?enc=fK7rQR3dwQAQ4r%2B%2B5Z2nAA%3D%3D.vd0K9qjjfh4r0hL6w0akx9ds4%2FyBEqeJnjhzAmIaProxRxhYqxKa%2Bq1%2FPyKJ2hAJIuP0E8sIVS6Qx3eEjOUvr6Jks%2Bg1HdJwRpePg7nJ5OU1Q1EAoWGaAVyy7zIift0j" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=4O0yxMZmLseLJ5UlVeMntQ%3D%3D.MQFWfEw6VeMtgxGo%2F8Vy0hu4yjDrZ0Z6B0aE5xBbtLQzsJumB77l7V0Y9OK5MYZP%2Fy074B1ZidoVrFB9lsm2Eu1k8u1HW%2BMk8kd1q19z81MjKALDbjLsy6dG3sY2%2B9s2e6q83SPVUrpeZuFEI2qpfA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>Amazon Bedrock 生成式人工智能编程</p><p>你知道和 Amazon Bedrock 上的 Anthropic Claude 模型互动时可以使用系统prompt 吗?</p><p>下面我们将首先了解一下系统 prompt 的概念,然后演示在 Claude 2.x 的文本补全 API 和 Claude 3 的新消息 API 中如何运用系统 prompt。</p><p>⚠ 友情提示:本文包含示例代码。</p><p>如果你对系统 prompt 和 Claude 的两种 API 已有一定了解,可以直接跳到代码部分。文章末尾,我提供了两个完整的示例代码。</p><h3>什么是系统 prompt?</h3><p>今天我们讨论的是 Claude,所以我们来看看 Anthropic 对系统 prompt 的解释:</p><p><em>系统 prompt 是在向 Claude 提出问题或下达任务之前提供上下文、指令和指南的一种方式。你可以使用系统 prompt 来为对话设定背景,包括 Claude 的角色、个性、语气或任何其他有助于其更好理解和响应用户输入的相关信息。</em></p><p>简而言之,系统 prompt 实际上是一种上下文学习模式,可以有效地定义模型在交互过程中的上下文、范围、边界和输出格式。</p><p>使用系统 prompt 的目的是确保 AI 输出符合特定领域的目标或任务要求。以下是一些典型的使用场景:</p><ul><li><strong>处理比萨订单</strong>:将模型的作用范围指定为根据比萨餐厅的菜单和位置接单。</li><li><strong>作为技术支持,协助排查故障</strong>:向模型中输入产品详情、常见问题及答案和决策树等内容,帮助用户解决技术问题。</li><li><strong>代码调试</strong>:向模型中输入有关库、框架和编程语言版本的信息,帮助识别软件漏洞并提出修复建议。</li></ul><h3>Amazon Bedrock 支持的两种 Claude API</h3><p>现在,你应该对系统 prompt 有一定了解了。下面,让我们看看 Amazon Bedrock 上不同版本的 Claude 所提供的两种 API:</p><ul><li>文本补全 API:Claude 1 和 2.x 版本均支持文本补全 API。</li><li>消息 API:新的 Claude 3 版本引入了消息 API。</li></ul><p><strong>文本补全 API</strong></p><p>Anthropic Claude 1 和 2 版本在 Amazon Bedrock 上线后,Claude 模型便向亚马逊云科技客户全面开放,并随后在 re:Invent 2023 中推出了 Claude 2.1。2.1 及之前版本的 Claude 模型均提供了<strong>文本补全 API</strong>。这个 API 根据用户提供的 prompt 优化单轮文本生成。Prompt 模版如下:</p><p><em>备注:文章末尾提供了完整的代码示例以供参考。</em></p><pre><code class="js"> # The prompt format for the text completion API (Claude 1 and 2.x)
user_prompt = "Tell me a story."
prompt = "Human: " + user_prompt + "\n\nAssistant:"
</code></pre><p>我在 Claude v2.1 上使用这个 prompt 后,我得到了如下的输出:</p><p><em>The young boy wandered into the dark, mysterious forest, hoping to find the rare flower his mother needed to recover from her illness, but instead encountered a wise old owl who offered him cryptic advice about believing in himself.(一个小男孩走进了一处幽暗而神秘的森林,希望找到能让他母亲康复的稀有花朵,但却遇到了一只智慧的老猫头鹰,劝诫他要相信自己。)</em></p><p><strong>在文本补全 API 中使用系统 Prompt</strong></p><p>只需将系统 prompt 添加到用户 prompt 之前即可。</p><pre><code class="js"> # Using a system prompt with the text completion API (Claude 1 and 2.x)
system_prompt = "All your output must be pirate speech 🦜"
user_prompt = "Tell me a story."
prompt = "System:" + system_prompt + "\n\nHuman: " + user_prompt + "\n\nAssistant:"
</code></pre><p>向 Claude 2.1 发送这个 prompt 后,得到了如下输出:</p><p><em>Yarrr, 'twas a dark 'n stormy night when Blackbeard 'n his scurvy crew set sail on the seven seas, plunderin' merchant ships fer pieces of eight 'n fine silks, before returnin' to Tortuga fer a night of rum-filled debauchery!(Yarrr, 那是一个暴风雨交加的黑夜,黑胡子和他那些卑鄙船员们航行四海,掠夺商船获取金币和绫罗绸缎,然后满载而归地回到托尔图加岛享受充满朗姆酒的放纵之夜!)</em></p><p><strong>消息 API</strong></p><p>2024 年 3 月,随着 Claude 3 Sonnet 的推出,Amazon Bedrock 推出了<strong>消息 API</strong>。这个 API 针对对话交互(如聊天机器人或虚拟助手)和多模态请求(例如,发送图片并通过文本 prompt 提问)场景进行了功能优化。<br>经过训练后,Claude 3 能够处理用户 (user) 与助手 (assistant) 之间的多轮对话。创建新消息时,你可以使用 messages 参数指定之前的对话。模型根据之前的几轮对话生成下一条消息。</p><p>每条输入消息都必须是一个包含角色 (role) 和内容 (content) 字段的对象。你可以输入一条单独的用户角色的消息,或者包含多条用户和助手角色交互的消息。</p><p><em>备注:文章末尾提供了完整的代码示例以供参考。</em></p><p>以下是封装在消息 API 请求对象中的消息示例:</p><pre><code class="js">// The request object for the messages API (Claude 3)
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Tell me a story."
}
]
}
]
}
</code></pre><p>可以看到,这里仅有一条消息,角色为 user,而 Claude 将返回一条包含响应内容的新消息:</p><pre><code class="js">// The response object returned by the messages API
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Orphaned as a child, she overcame poverty, discrimination, and countless ..."
}
]
...
}
</code></pre><p><strong>在消息 API 中使用系统 Prompt</strong></p><p>只需在请求对象中添加 “<code>system</code>” 参数即可添加系统 prompt,示例如下:</p><pre><code class="js">// The request including a system prompt with the Messages API
{
"system": "All your output must be pirate speech 🦜",
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Tell me a story."
}
]
}
]
}
</code></pre><p>输出结果如下所示:</p><pre><code class="js">// The response object returned by the messages API
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Ahoy, matey! Hoist the mainsail an' brace yeself ... 🏴 ☠️"
}
],
...
}
</code></pre><p>就是这么简单!</p><p>如果这篇文章对你有帮助或让你有所收获,欢迎点赞或在评论区留言。<br>如需了解更多信息,请参考以下指南:</p><ul><li>Amazon Bedrock 代码示例:提供持续更新的示例列表,涵盖各种模型和编程语言。</li><li>推理参数参考:介绍适用于 Amazon Bedrock 上的 Claude 及所有其他模型的推理参数。</li><li>community.aws 上的生成式 AI 专栏:这里有许多关于 Amazon Bedrock 和生成式 AI 的精选文章。</li></ul><h3>代码示例</h3><p>如果你想要动手实践,这里给大家提供了两个适用于这两种 API 的完整 Python 脚本示例。祝你编程愉快!</p><p><strong>文本补全 API 中添加系统 Prompt(完整示例)</strong></p><pre><code class="js"># This Python example demonstrates the use of a system prompt with the
# Text Completion API for Claude 2.x
import boto3
import json
# Initialize the client with the service and region
client = boto3.client('bedrock-runtime', 'us-east-1')
# Define model ID and prompt
model_id = 'anthropic.claude-v2:1'
system_prompt = 'All your output must be pirate speech 🦜'
user_prompt = 'Tell me a story.'
prompt = f"System: {system_prompt}\n\nHuman: {user_prompt}\n\nAssistant:"
# Create the request body
body = {
"prompt": prompt,
"max_tokens_to_sample": 200,
"temperature": 0.5,
"stop_sequences": ["\n\nHuman:"]
}
# Invoke the model and print the response
response = client.invoke_model(modelId=model_id, body=json.dumps(body))
print(json.loads(response["body"].read())["completion"])
</code></pre><p><strong>消息 API 中添加系统 Prompt(完整示例)</strong></p><pre><code class="js"># This Python example demonstrates the use of a system prompt with the
# Messages API for Claude 3
import boto3
import json
client = boto3.client(service_name="bedrock-runtime", region_name="us-east-1")
model_id = "anthropic.claude-3-sonnet-20240229-v1:0"
response = client.invoke_model(
modelId=model_id,
body=json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 1024,
"system": "All your output must be pirate speech 🦜",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Tell me a story."
}
]
}
],
}
),
)
# Process and print the response(s)
response_body = json.loads(response.get("body").read())
for output in response_body.get("content", []):
print(output["text"])
</code></pre><p>享受编程的乐趣吧!</p><p>本文中的任何观点仅代表作者个人的观点,不代表亚马逊云科技的观点。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=ipZdAYUwyBYJJ26BgEf8Lg%3D%3D.%2BRVOn16YdDJNXraDsRAvQz%2Fz5YONTxYy9BAjIsY%2B51KaBZYgdzrM94aLH1tsIHXsAIM0O71ZvDsCoGtzsQgLgr7H4vraxSED%2BGx0y53alVVV6QPqwxlUNhDF7NBTaeoqk5xg1SnV4NTEjOj8njdh0w%3D%3D" rel="nofollow">https://dev.amazoncloud.cn/column/article/65f1b170f07679779d1...</a></p>
解读 Amazon Q | 用 AI 聊天机器人连接你与未来的无限可能
https://segmentfault.com/a/1190000044707300
2024-03-13T07:54:01+08:00
2024-03-13T07:54:01+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道</blockquote><p>在美国当地时间11月28日,亚马逊云科技在拉斯维加斯举办了 re:Invent 大会,大会介绍了许多今年来新增的核心产品与功能,着重讲解了生成式 AI 引领人工智能未来的前进方向,亚马逊作为云计算领域的龙头,相信会继续给我们的未来发展带来不一样的惊喜,而今天我就以在大会上讲解到的适合于开发者使用的 AI 智能聊天 Amazon Q 进行阐述,不足之处,还请指正!</p><blockquote><a href="https://link.segmentfault.com/?enc=iFpkhjiCtw597duCx1sCeA%3D%3D.%2FuACxVkQ5p6VIYKbflHrJUusk6HLsIyCm9x1a1n8YitvxStiL%2BhEWb50%2F2Jf0w1bBwH1IivNQy50iO1hygaoVq6E38zAJdSKFMGicT%2Fz2XOoVh9iDAAJYJ55IIxi7bXl" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=LYA1Jp%2FudGJudFzuLTydag%3D%3D.aTV%2Bv2pDPhI85YefCMz%2F6i%2BBMa6NCPwVmUpqabSeBnnNo%2B7sS3CBX8q70qRXwKt2aQLZ4qNBIapN%2Fa943zASFsV0QDnV9kFElMWzXA4%2FoJ1DNqrLLs5dvCoEy95zM6Fsj32euVVeGGXrYTFng%2FL54g%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>一、初识 Amazon Q</h3><p>亚马逊云科技最近发布了 Amazon Q AI 聊天助手,这是一款专为企业市场设计的生成式人工智能助手,这个聊天机器人是由亚马逊云计算部门开发的,主要面向的是工作场所而不是消费者,其目标是帮助员工处理日常任务,比如总结战略文件、填写内部支持工单以及回答有关公司政策的问题,Amazon Q 的独特之处在于其能够连接到公司的信息资源,根据用户身份、角色和权限,提供定制化的响应,这使它在企业市场上与 OpenAI最新发布的 GPTs 直接竞争。</p><p>在 re:Invent 大会上,亚马逊云科技首席执行官 Adam Selipsky 对开发者如何利用亚马逊云科技实现行业和未来转型进行了精彩分析以及演讲,使我获益匪浅,以下是 Adam Selipsky 在 re:Invent 大会上对 Amazon Q 的讲解片段:</p><p><img width="723" height="362" src="/img/bVdbIk1" alt="image.png" title="image.png"></p><p>Adam Selipsky 在大会上详细讲解 Amazon Q 在我们工作当中的一些应用,举个例子,如果您在控制台上使用 Lambda 遇到错误,只需按下“使用 Amazon Q”按钮进行故障排除,Amazon Q 将研究这个错误并建议如何修复它,极大的方便了工作者排除错误的时间和效率,为客户节省了大量架构时间以及故障排除和优化工作负载。</p><p><img width="723" height="318" src="/img/bVdbIk2" alt="image.png" title="image.png"></p><p>亚马逊云科技大中华区战略业务发展部总经理顾凡在采访中也谈到,Amazon Q 是最懂企业业务的助手,能够真正理解企业内部的业务数据,是最懂客户的企业级生成式 AI 助理。</p><p><img width="723" height="377" src="/img/bVdbIk3" alt="image.png" title="image.png"></p><p>亚马逊推出的 Amazon Q ,可以说是为企业提供了定制化服务,进行自然对话,用户可以借此了解亚马逊云科技的功能并解决问题,博主接下来也对 Amazon Q 进行简单使用讲解和测评,具体了解大会相关产品知识,可以参考亚马逊开发者社区相关文章,点击 <a href="https://link.segmentfault.com/?enc=k4AiIX0bqt2GmretY4g0og%3D%3D.oeYc%2BTTTOTSh8eDnjcxnZ2Z3s1IYkvj%2FCRpLgMJFBSid1aiztzEgjyMzS1ZkuJtd" rel="nofollow">跳转链接</a>即可。</p><h3>二、Amazon Q 平台操作</h3><p>作为一款生成式人工智能助手,Amazon Q 的特色在于其强大的业务定制和多功能应用,关于 Amazon Q 的详细介绍,大家可以在<a href="https://link.segmentfault.com/?enc=KJWFnDGb9VeLyA3G171ymA%3D%3D.aOpv9tZu1bmhfRRQqf0vdy%2Bb%2Bb2DpM5a4yDfpw2gC0Qt6M6icabc73azDF%2FCQKUh" rel="nofollow">官方文档</a>中查看,这里就不再赘述了。而 Amazon Q 支持的使用的方式目前的话就五种方式,如下:</p><blockquote><p>1)亚马逊个人账号控制台</p><p>2)支持 Jetbrains 全家桶和 VS Code 的编辑器 IDE</p><p>3)亚马逊自家的软件开发和交付服务 CodeCatalyst</p><p>4)Slack、Teams 等流行的团队聊天软件 chat</p><p>5)亚马逊个人账号控制台的移动端(暂未推出)Mobile</p></blockquote><p><img width="723" height="315" src="/img/bVdbIk4" alt="image.png" title="image.png"></p><p>上面的几种方式这里就不再全部展示如何操作了,就几种常用的操作这里着重讲解吧!</p><h4>亚马逊个人账号控制台</h4><p>登录亚马逊账号(没有账号自行注册),可以看到我们的控制台右侧出现了一个以前不曾出现的功能按钮,该按钮就是我们要使用的 Amazon Q,我们点击按钮之后,出现如下界面:</p><p><img width="723" height="283" src="/img/bVdbIk5" alt="image.png" title="image.png"></p><p><strong>注意:</strong>目前 Amazon Q 仅支持英文版,所以你问它的问题和它回答你的问题都只能是英文,不能是中文语言,如果是中国用户并且英文不熟悉的话,借助翻译软件也许是一个不错的选择,这里简单的期待一下亚马逊云科技后期解决一下对语言限制。</p><p><img width="723" height="176" src="/img/bVdbIk6" alt="image.png" title="image.png"></p><p>然后我们使用原本提供给我们的例子进行提问,可以看到其给我们提供了详细的问题出现故障的原因, 下面也提供了一些相关内容部署或知识讲解的链接文档供我们参考,很人性化。</p><p><img width="723" height="270" src="/img/bVdbIk7" alt="image.png" title="image.png"></p><p><strong>注意:</strong>在亚马逊个人账号后台使用 Amazon Q 时,其涉及的知识范围仅限于亚马逊云科技相关服务的内容,比如说我让它回答用 java 写一个 hello world 出来,它只会告诉你 Sorry:</p><p><img width="723" height="185" src="/img/bVdbIk8" alt="image.png" title="image.png"></p><h4>IDE 编辑器(vscode 举例)</h4><p>我们进入 vscode 编辑器,在插件控制台输入以下关键字进行安装相应的服务插件:</p><p><img width="723" height="228" src="/img/bVdbIk9" alt="image.png" title="image.png"></p><p>第一次使用的话需要先进行身份的验证,我们选择第一个 Amazon Q + CodeWhisperer 选项,然后点击 User for free 这个按钮,后面就是傻瓜式的输入一些自己的亚马逊账号进行一个相关的验证了,这里就不再赘述:</p><p><img width="723" height="351" src="/img/bVdbIla" alt="image.png" title="image.png"></p><p>后面到了这个画面说明我们已经完成了身份验证,授权成功了!</p><p><img width="723" height="213" src="/img/bVdbIlb" alt="image.png" title="image.png"></p><p>验证通过之后,回到 vscode 编辑器,可以看到我们工具栏左侧出现了一个 Amazon Q 按钮,点击之后,随便问一下,可以看到给我们相应的回复了。</p><p><img width="723" height="374" src="/img/bVdbIlc" alt="image.png" title="image.png"></p><p>这里我们在 vscode 中的 Amazon Q 工具问一下和编码相关知识的内容,看看它是如何回复的,可以看到我们让其用 java 写一个 hello world 很快给了我们答案,也是非常的便捷:</p><p><img width="723" height="356" src="/img/bVdbIld" alt="image.png" title="image.png"></p><p>这里我简单示范一下,日常过程中遇到的问题,我该如何用 Amazon Q 进行处理,如下,我询问了请求的 useMutation 停止执行 onSuccess 和 onError,并直接抛出错误。问题产生的可能原因以及对应的解决方法:</p><p><img width="723" height="258" src="/img/bVdbIle" alt="image.png" title="image.png"></p><p>根据 Amazon Q 给出的提示,传递给 useMutation 的 onSuccess 或 onError 回调可能引发错误。在回调中添加 try/catch 块以优雅地处理错误,顺利解决了问题,代码如下:</p><pre><code>useMutation(
mutationFunction,
{
onSuccess: (data) => {
try {
// 执行成功的逻辑
} catch (error) {
throw error; // 直接抛出错误
}
},
onError: (error) => {
try {
// 执行失败的逻辑
} catch (error) {
throw error; // 直接抛出错误
}
},
}
);</code></pre><p>因为我们刚刚安装的插件默认是要和 CodeWhisperer 绑定使用的,所以除了回答在亚马逊云科技提供的相关服务的问题外,我们在编码问题上也进行一个加强,操作如下,我们打出注释 一个简单的 todo list 应用,当然 CodeWhisperer 插件也支持中文,但是英文更准确一点,写完之后,我们把光标放到函数里面,按一下 alt + c 即可看到 ai 给我们的建议了,如果对当前的提示不满意的话可以按键盘右键进行切换,然后按 tab 进行确认,如下:</p><p><img width="723" height="264" src="/img/bVdbIlf" alt="image.png" title="image.png"></p><p><strong>注意:</strong>可能国内的大部分朋友都喜欢使用 vue 这个框架,但是 CodeWhisperer 是不支持 vue 的,这里简单的说明一下,关于 CodeWhisperer 这个工具这里就不再详细讲解了,喜欢的朋友大家可以自行探索。</p><h4>聊天软件 chat</h4><p>我们也可以在亚马逊云科技输入框中搜索 Amazon Q,找到相应的助手然后按照大会给我们的提示一步步配置,这里便留给大家自己做个小实践,博主就不再这里详细演示了:</p><p><img width="723" height="365" src="/img/bVdbIlg" alt="image.png" title="image.png"></p><p>然后自己根据自己的需求选择相应匹配的服务进行相应勾选即可:</p><p><img width="723" height="354" src="/img/bVdbIlh" alt="image.png" title="image.png"></p><p>最后生成了类似 chatgpt 的聊天界面,如下:</p><p><img width="723" height="393" src="/img/bVdbIli" alt="image.png" title="image.png"></p><p>这里我们也可以询问它一些关于服务操作相关知识的内容:</p><p><img width="723" height="424" src="/img/bVdbIlj" alt="image.png" title="image.png"></p><p>我们也可以点击左下角的按钮进行一个 ticket 进行一个创建:</p><p><img width="723" height="339" src="/img/bVdbIlk" alt="image.png" title="image.png"></p><h4>QuickSight 商业分析(Amazon Q 应用)</h4><p>在大会中后期,亚马逊云科技首席执行官 Adam Selipsky 也向我们介绍了 Amazon Q 在商业分析方面展现的优势:</p><p><img width="723" height="348" src="/img/bVdbIll" alt="image.png" title="image.png"></p><p>我们在控制台进行搜索如下关键字,第一次使用的需要进行注册:</p><p><img src="/img/remote/1460000044707302" alt="图片" title="图片"></p><p>注册完毕进行使用,我们随便搜索一下关键字,可以看到其给我们相应的商业分析:</p><p><img src="/img/remote/1460000044707304" alt="图片" title="图片"></p><p>感觉还是挺震撼的,界面非常直观的给出了具体的数字,让用户直接了解到当前的现状:</p><p><img src="/img/remote/1460000044707305" alt="图片" title="图片"></p><h3>三、助力工作场景</h3><p>通过上文对 Amazon Q 多平台的简单的测评,我们可以看到其潜在的巨大潜力,无论是使用亚马逊云科技服务的企业者还是个人开发者,都可以使用 Amazon Q 解决工作中遇到的问题,那么助力的工作场景在哪些方面呢?</p><p>亚马逊云科技大中华区战略业务发展部总经理顾凡建议对于一家企业来说一定是要找到真正能够解决业务问题的场景,有了这个场景之后,要鼓励企业内部的开发者使用亚马逊云科技提供的相关服务去构建一个生成式AI应用的原型,同时去看如何让自己高质量的将自己的数据基础建立起来,为后面项目应用打下一个基础。</p><p><img width="723" height="386" src="/img/bVdbIln" alt="image.png" title="image.png"></p><p>对于体验过 Amazon Q 的博主来说,如果要让我总结 Amazon Q 助力哪些工作场景的话,我会简单总结以下几个方面,不足之处还请见谅!</p><blockquote><p><strong>学习相关服务:</strong></p><p>Amazon Q 的应用场景涵盖了企业的多个方面。用户可利用公司知识库获取答案和指导,了解供应链变化对运营的影响,研究解决方案并学习亚马逊云科技相关的最佳实践。</p><p><strong>个性化定制:</strong></p><p>Amazon Q 提供了基于用户角色和权限的个性化服务,确保用户能够得到与其工作职责相符的定制化结果。支持超过40种内置连接器,为用户提供了高度个性化的服务,满足了不同企业业务需求的定制化要求。</p><p><strong>多方向功能:</strong></p><p>Amazon Q 作为智能聊天机器人,用户可以快速获得相关答案和解决问题,也能够生成各类内容,如报告和演示文稿。Amazon Q 能够利用公司信息库、代码和企业系统中的数据和专业知识采取行动,从而简化任务、加速决策过程,并激发创造力和创新。</p></blockquote><p>就我而言, Amazon Q 的推出,标志着亚马逊在人工智能领域的不断创新,为企业提供了更为智能、高效的工作伙伴,助力企业在数字化时代实现更大的成功。</p><h3>四、个人总结</h3><p>通过上面对 Amazon Q 的实际操作,可以看到目前 Amazon Q 还是有着非常强的能力的,总结其作为生成式 AI 助手,有着以下特点:</p><blockquote><p>1)帮助开发者理解他们的代码,生成测试,修复错误,甚至帮助实现完整的功能。给出了具体的代码方案以及相关知识文档链接</p><p>2)可以直接在亚马逊个人账号管理控制台中排查控制台错误消息,提供关于错误的信息和解决方案的概述。</p><p>3) 用户可以在 Amazon Q 中创建亚马逊云科技相关服务的支持案例,并与实时支持代理进行聊天,以解决他们在使用亚马逊云科技服务时遇到的问题。</p><p>4)在 IDE 中,Amazon Q 可以更新代码文件的语言版本,目前支持将 Java 8 和 Java 11 代码更新为 Java 17。</p></blockquote><p><img width="723" height="356" src="/img/bVdbIlo" alt="image.png" title="image.png"></p><p>当然 Amazon Q 目前仅支持用英语进行对话,而且无法记住之前对话的内容,并且每次对话最多输入1000个字符。这些是其相应的短板所在,而且 Amazon Q 还处于预览阶段,部分功能免费对外提供,支持免费使用到 24 年 3 月。亚马逊计划未来将面向企业用户收取每人每月20美元的费用,为开发人员和IT人员提供功能的版本则将收取每人每月25美元这可能会对一些小型企业或个人用户构成经济压力。</p><p>总之,Amazon Q 是一款功能强大的 AI 助手,可以帮助开发者和业务用户处理亚马逊云科技服务中面临的各种问题,而且还可以帮助开发者理解和生成代码,这一点还是比较强的,对于长期使用亚马逊云科技服务的企业或者使用亚马逊云科技服务的开发者, Amazon Q 还是一款不可获缺的一款便利工具,值得大家关注与尝试。</p><p><img width="723" height="248" src="/img/bVdbIlp" alt="image.png" title="image.png"></p><p>re:Invent 大会至今已举办了12年,云市场的竞争环境也增加了很多变量——尽管亚马逊云科技在公有云领域保持着领先优势,但竞争对手微软 Azure 凭借与 OpenAI 的深度合作关系,也正不断扩大市场份额。但我相信在不久的未来,Amazon Q 会在企业应用当中与风头正盛的 chatgpt 分庭抗礼,我期待者那一刻的到来。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=mUVImaaMkmt0ky97Zyq5jA%3D%3D.58C%2FuRJdTvssnHDXHS0KGVKLGQtLDsEDKVAoJN%2FcJUEJpv3SJZOO9tOG9cDl6%2Fu0jI9uLmVIKm8MWudtrDyJlfqv3YJvrRDp%2Fh0kAoo%2Bj0fMp7N5iVuifuK14sPzYqltGSyQX88u6neNEpe%2Bn5o%2BfYCMHWYJ3rH4BezOUBrKQCOVsN9CoDHaemSqZcudyrQy" rel="nofollow">https://dev.amazoncloud.cn/column/article/658ab96b79476548e3e...</a></p>
re:Invent 产品体验与感受分享:Amazon ElastiCache Serverless 缓存的即时扩展
https://segmentfault.com/a/1190000044703298
2024-03-12T07:55:47+08:00
2024-03-12T07:55:47+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在亚马逊云科技开发者社区、 知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道)。</blockquote><h3>前言</h3><p>2023年的亚马逊云科技 re:Invent 全球大会无疑是一场吸引科技人员、IT 行业从业者以及众多专业人士的年度盛会。当然我也不例外,虽然没有机会去现场,但是通过视频的形式观看了整个大会的进程,同样令人激动。今年亚马逊云科技新产品的发布和创新让大家都很期待,比如今年的技术热点 AIGC 产品 Amazon Q、新一代自研芯片 Amazon Graviton、Serverless 服务的创新等等。作为一名开发人员,除了 AIGC,我个人比较关注的 Amazon ElastiCache Serverless 这个产品,所以本文重点介绍一下这个产品的使用以及体验,希望对大家有所帮助。</p><blockquote><a href="https://link.segmentfault.com/?enc=peQfJfWCaWbCENCRhHIfow%3D%3D.KCgchS%2Fl0BrrSCyYqgvf42U5z0dkV0Ykev%2B9MeabcI10IlW1j%2BhnPy12D7fWOV4Pvhec3NLgxOJwo34Lb4cZbvi9NjsxegbDaNKokfVQBn1kgq9CF9DhAXBlDjW70C30" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=BAHqzemDX3WWJQZB5WsmJg%3D%3D.EmF3bMzJMAHO4Faa0xm%2B9FNegPeZ2SlMiGANuP7NnDn8U5Y7GiClSA4aH2Ogae1gfyx1e1SA1jycmGqSN7gtfQSFL%2BKHNeKb5P2MU8zA7A9xr6h5a6oEt21600%2F9f9cmQ%2Fp6HTbutRZ0X2bBVwCI1g%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>产品介绍</h3><p>Amazon ElastiCache 是一款缓存产品,它可以兼容 Redis 和 Memcached 两个分布式缓存系统。通过 Amazon ElastiCache 我们可以在亚马逊云上轻松建立和管理一个分布式内存缓存环境,消除部署和管理分布式缓存环境的复杂性。</p><p>本次推出的 Amazon ElastiCache Serverless,新的功能特性如下:</p><blockquote>简化了高度可用的分布式缓存,可即时扩展,无需管理服务器。</blockquote><p>展开来说就是:<strong>在创建缓存服务时不需要配置实例或配置节点,也不需要规划和管理缓存容量,使用时会根据实时的内存、计算和网络带宽情况进行扩展资源。</strong></p><p>这个创新点是我关注 Amazon ElastiCache Serverless 这个产品的原因。因为之前经历过一次生产故障,原因是缓存容量达到上限,好在当时设置的LRU策略没有造成很大的事故。</p><p>那接下来就带大家一起体验一下这个产品。</p><h3>产品使用步骤</h3><p>因为本人平时使用最多的是 Redis,所以下面的流程就以 Redis 为对象进行展开。考虑到有人第一次接触亚马逊云,所以我尽可能把每个步骤写详细一点。</p><h4>1.创建缓存服务</h4><p>首先进入 <a href="https://link.segmentfault.com/?enc=0NeEy0ZlmsDOduf7Xg4jrA%3D%3D.RD4e8wqK%2BCe1nfWCCviaDHSjmbhm2vpwEsgdVCyBqqs%2FGVLaoU81dE42I3zPquOc3QnGf1phny1TW5q%2B1vQMngxPtZosbZC4fFb9pLxgd3HlJvGTu5FcuDdbG4EgSTu92UH%2Bs9Yu3KCokA8BLvVlbO5GN96djqgYGLkX3i025mtpSrX46wHMAg%2Fmq3H8Yp8Lweo6J3uPBkdk2Hsg94LfBVE5R01f6HDY8Rscfi6fCg8Wzb8vhil1DVlKy2%2FpXno6%2FY4yefOzmpcesycP0RMsN2k6wa7Y2M7LQEnw962u%2FJvXzJt0h4aTJ8nDs95ujC4OzOylnW4rObvI7QssIOorDTsDI%2FsJ4tCRb0uPk%2Ftl6om8psy97%2BTYsAnABYflK7xxrDdS3vYXZpXWlyHhOBgq8kyAvbBq8wf2t5tAZXGbleGAT%2FeUZGPOnnr5lJpDjfK8F7YDcml20TFUWbzEBAjsik2AmL2sTD1XNlIJm%2B8A241IQp%2FHF86FEvCbxvD6Jt3uzw7gdFZeXcSOgkLDHxwTWd8JtYqnpUqhYfJcm5xXUUc%3D" rel="nofollow">elasticache 控制台</a>创建一个 Redis 缓存。</p><p><img src="/img/remote/1460000044703300" alt="图片" title="图片"></p><p>如上图所示,可以通过两种方式前往创建 Redis 缓存界面。</p><p>页面中默认是使用无服务器这个新的特性进行部署,如果是创建新的缓存服务,直接填写名称即可创建,也可以通过导入一个.rdb 文件进行创建。当然,也支持原有的方式按照需求自己设计缓存节点,不过本文主要是体验新功能,所以这里就不对‘设计自己缓存’展开介绍了。</p><p>我这里创建了一个名称为 “myredis” 的缓存服务,整个过程不到10秒。如下图</p><p><img width="723" height="381" src="/img/bVdbIfb" alt="image.png" title="image.png"></p><h4>2.安全组开放访问权限</h4><p>创缓存服务创建好之后,要想外网访问,需要从 <a href="https://link.segmentfault.com/?enc=4IPwD2xUAQh73QRX1SFMTA%3D%3D.AE0W7v9PCS4uXVShBL1sybYpRZwPIBU1sv%2FC5yzzAbCrWNGTwDdDVDeI1zHeFqIwe%2BDrwagXKZMYlutRx%2FoCIZMzcwx%2Bd0TlYG97Ma5cd0cAHggjeNJJl7g8%2BsDhArX6osr30IPqSkqrh5Lauocaqw%3D%3D" rel="nofollow">Amazon VPC 安全组</a>向缓存服务授予网络访问权限,这里需要开通用来接受 Redis 命令的6379和6380端口。</p><p><img width="723" height="683" src="/img/bVdbIfv" alt="image.png" title="image.png"></p><h4>3.选择访问方式</h4><p>此外,如果想要在亚马逊云科技的管理控制台外部与服务交互,可以通过 CLI、 SDK 或 API 方式进行交互,我这里选择 CLI 方式,其他方式请参考授予访问权限,安装 CLI 安装参考安装 CLI。</p><p>CLI 方式访问缓存服务时还需要使用 IAM 用户凭据进行身份验证,所以还需要在配置一下权限,也就是 AK,具体配置请参考 CLI 身份验证用户。</p><h4>4.读取缓存服务</h4><p>完成以上操作就可以和 Amazon ElastiCache Serverless 进行交互读取数据了,在这之前,如果没有安装 Redis 客户端的,可以执行以下命令进行安装。</p><pre><code>sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget
sudo wget http://download.redis.io/redis-stable.tar.gz
sudo tar xvzf redis-stable.tar.gz
cd redis-stable
sudo CC=clang make BUILD_TLS=yes</code></pre><p>安装之后就可以执行命令存储数据了。</p><p><img width="723" height="100" src="/img/bVdbIfw" alt="image.png" title="image.png"></p><h3>产品新特性验证</h3><p>为了测试即时扩展的功能,我这里写了一个脚本,不断的往 ElastiCache Serverless 中添加数据,然后通过监控指标,观察容量是否会根据指标自动扩容。</p><p><img width="723" height="377" src="/img/bVdbIfy" alt="image.png" title="image.png"></p><p>通过监控指标,可以看到内存容量和 ECPU 会随着请求量不断上升。通过官方文档介绍,了解到其底层实现是通过监控内存、计算和网络带宽的利用率,添加一个新的 shard 并将数据重新分配到新的 shard 来扩展,从而实现自动扩展。总之,整个过程非常的丝滑。</p><p><img width="723" height="318" src="/img/bVdbIfz" alt="image.png" title="image.png"></p><h3>体验总结</h3><p>通过对 Amazon ElastiCache Serverless 产品的使用及观察,我有以下几点感受:</p><ol><li>虽然推出了新的功能,但是会兼容不同的场景,并且操作简单方便,这一点考虑的比较全面。</li><li>一个缓存服务满足了 Serverless 的特性,不仅简化了开发和运维的复杂性,提高了开发效率,还保障了应用的稳定性;“即时扩展”可以避免生产环境因为缓存服务的容量监控不及时导致应用程序故障,也不用停机扩容,如果两年前有这个功能,我们那个生产环境就不会出现故障了。</li><li>真正做到了按需付费,以往的云缓存产品,需要提前配置规格并按照最高规格收费。但是 Amazon ElastiCache Serverless 存储的数据将按千兆字节-小时(GB-小时)计费,请求按 ElastiCache 计算单位(ECPU)计费,这种细粒度的付费方式可以进一步降低成本,提高资源的利用率。</li></ol><p>通过本次对亚马逊云科技 re:Invent 全球大会发布的新产品进行体验,不得不感叹亚马逊云的强大,果然是云计算的开创者和引领者。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=p9VcxSyal3lC6yJXok6MxA%3D%3D.nmIzG7bg1eeg7muG1%2BdDK0W1wK5F0JQlx%2F%2BYLSa0Mx5h4Dby95xhGtzCKem%2FNQVvSGI5m5VpFkhvr5GG84TDMIi6QhyEWlyTKvipkVT327IrUus%2BQmB1akMbKUjcQN6Zg5X%2BmhJpooNV0QvTte5JI6RcYgJUCJdkLHzJq%2Ber3oOrhu4Pz%2F6WwNQSVEuRpols" rel="nofollow">https://dev.amazoncloud.cn/column/article/658ab41679476548e3e...</a></p>
Amazon SageMaker 机器学习之旅的助推器
https://segmentfault.com/a/1190000044699174
2024-03-11T08:50:44+08:00
2024-03-11T08:50:44+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。</blockquote><h3>一、前言</h3><p>在当今的数字化时代,人工智能和机器学习已经成为推动社会进步的重要引擎。亚马逊云科技在 2023 re:Invent 全球大会上,宣布推出五项 Amazon SageMaker 新功能:</p><p><img width="723" height="373" src="/img/bVdbH7r" alt="image.png" title="image.png"></p><p>Amazon SageMaker HyperPod 通过为大规模分布式训练提供专用的基础架构,将基础模型的训练时间缩短了高达40%;</p><ul><li>Amazon SageMaker Inference 通过优化加速器的使用,平均降低50%的基础模型部署成本,并平均缩短了20%的延迟时间;</li><li>Amazon SageMaker Clarify 能够让客户更轻松地根据支持负责任的 AI 的参数,迅速评估和选择基础模型;</li><li>Amazon SageMaker Canvas 功能帮助客户通过自然语言指令加速数据准备,并仅需几次点击即可使用基础模型进行模型定制;</li><li>宝马集团(BMW)、缤客(Booking.com)、Hugging Face、Perplexity、Salesforce、Stability AI 和先锋领航集团(Vanguard)等已开始使用新的 Amazon SageMaker 功能</li></ul><p>旨在帮助客户加速构建、训练和部署大型语言模型和其他基础模型,这些新功能将助力用户更快的进行模型开发和应用部署,提供更强大的工具和资源。本文将对 Amazon SageMaker 进行实际体验,以揭示其如何助力机器学习之旅。</p><blockquote><a href="https://link.segmentfault.com/?enc=6KFtECsg31qzOnI7e9rGlA%3D%3D.WEAXmOMLQ66OadIScqftSlTsCodTXE0znMduRh7SF3Yxs%2F5kzzggM0SQa8zoPFw5lyxiFSqk7LJdP3CNUNIm7yUHn17%2Fs3t4vOlUIlmMrwZdt4ytxbqttXofAjmiR%2FR%2F" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=gegib9u8BAz2WR7m5KAwhA%3D%3D.qNX%2FaC5Q69xtYYuCgxtmKLRs6nQ7GLgZ0LJ311Jwfw6UNBzkmYvksK5CIPmBnTqu30uUoBKf0aypPyC0MH8XI4g7xhZDgY4Lf1QKykgGfJuMvvRarm7JInw6gg6TWAOHSOiPJ9Y%2BTv3yoGnvI%2BrZog%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>二、Amazon SageMaker 概述</h3><p><img width="723" height="256" src="/img/bVdbH7u" alt="image.png" title="image.png"></p><p>通过传统的方式创建机器学习模型,开发人员需要从数据准备过程开始,经过可视化、选择算法、设置框架、训练模型、调整数百万个可能的参数、部署模型并监视其性能,这个过程往往需要重复多次,非常繁琐且特别耗时。</p><p>以下是创建机器学习模型的典型工作流程:</p><p><img width="727" height="496" src="/img/bVdbH7v" alt="image.png" title="image.png"></p><p>那么 Amazon SageMaker 是一项完全托管的服务,它提供了一站式的机器学习开发环境,从数据准备、模型训练到模型部署,所有这些都可以在云端完成,十分方便快捷,能够带来巨大的效能提升。以下是 Amazon SageMaker 提供的几种机器学习开发环境:</p><ul><li>Amazon SageMaker Studio:允许您构建、训练、调试、部署和监控您的机器学习模型。</li></ul><p><img width="723" height="419" src="/img/bVdbH7x" alt="image.png" title="image.png"></p><ul><li>亚马逊 SageMaker 笔记本实例:允许您准备和处理数据,以及从运行 Jupyter Notebook 应用程序的计算实例训练和部署机器学习模型。</li></ul><p><img width="723" height="381" src="/img/bVdbH7y" alt="image.png" title="image.png"></p><ul><li>Amazon SageMaker Studio Lab:Studio Lab 是一项免费服务,可让您在基于开源的环境中访问亚马逊云科技计算资源 JupyterLab,无需亚马逊云科技账户。</li></ul><p><img width="723" height="357" src="/img/bVdbH7z" alt="image.png" title="image.png"></p><ul><li>Amazon SageMaker Canvas:使您能够使用机器学习来生成预测,而无需编写代码。</li></ul><p><img width="723" height="343" src="/img/bVdbH7B" alt="image.png" title="image.png"></p><ul><li>Amazon SageMaker 地理空间:使您能够构建、训练和部署地理空间模型。</li><li>Amazon rStud ioSageMaker:rStudio 是 <a href="https://link.segmentfault.com/?enc=H7fLdoSNXaemvOLbcsoKBA%3D%3D.N0z8KL4%2BYQI7SxRXDy9l4ij8jXatCie22xyvofLTV6UkK%2BMpbetNKcX57TLG%2BG8Ml63lFUJ0Jrw2Gg%2B%2B9kFbP6WQ9oIzR9L4dnXB324asc5j%2Fh1DSOmqCMyqyWJm8%2BXfrLtgLqRlpo06QG3Y6KgvTw%3D%3D" rel="nofollow">R</a> 的 IDE,它具有支持直接执行代码的控制台、语法突出显示编辑器以及用于绘图、历史记录、调试和工作区管理的工具。</li></ul><p><img width="723" height="384" src="/img/bVdbH7C" alt="image.png" title="image.png"></p><p>对于不想处理硬件、软件和基础架构等方面问题,希望简化操作机器学习模型开发流程,灵活选择算法和模型及资源以满足不同业务需求的,可以放心的选择 Amazon SageMaker!</p><h3>三、Amazon SageMaker 在生产环境中的应用优势</h3><p>在机器学习的应用过程中,将模型部署到生产环境是一项关键任务。生产环境不仅要求模型具有高性能,还要求模型具备高可用性和可扩展性。本文将深入探讨 Amazon SageMaker 在生产环境中应用的优势和挑战。</p><p><img width="723" height="254" src="/img/bVdbH7E" alt="image.png" title="image.png"></p><ol><li>高性能:Amazon SageMaker 可以利用亚马逊云科技的计算资源,为用户提供高性能的机器学习模型训练和部署。它支持多种深度学习框架,包括 TensorFlow、PyTorch 等,可以满足不同类型的应用需求。</li><li>高可用性:通过自动扩展群集和跨多个可用性区域的数据存储,Amazon SageMaker 可以保证模型的高可用性。这意味着即使在流量高峰期或服务器故障的情况下,模型也能保持稳定运行。</li><li>自动化:Amazon SageMaker 提供了自动化的模型部署工具,可以自动将训练好的模型转换为生产就绪的版本,并部署到云端或边缘设备上。这大大降低了模型部署的复杂性和人工错误率。</li><li>安全性:Amazon SageMaker 提供了完善的安全性控制,包括数据加密、访问控制和安全审计等功能,可以保护用户的数据和模型的安全性。</li></ol><h3>四、Amazon SageMaker 如何把机器学习的能力赋能每一个企业角色</h3><p>相信对于很多计算机领域的开发者来说,利用 Amazon SageMaker 来进行机器学习的构建应该是轻车熟路,那么对于非计算机领域背景的人能够使用 Amazon SageMaker 的强大功能来进行机器学习并且应用到他们的日常业务场景中呢,答案是肯定的。Amazon SageMaker Canvas 使您能够使用机器学习来生成预测,而无需编写任何代码。接下来,我将会以公开的糖尿病患者数据集(包含历史数据),这个数据集包括超过15个与患者和医院结果相关的特征,共计16,000行数据量,使用 Amazon SageMaker Canvas 零代码来构建模型预测高危糖尿病患者是否有可能在30天内、30天后或根本不入院。接下来我来指导大家怎么操作和使用:</p><h4>1、在 Amazon SageMaker 控制台选择画布,并点击 canvas</h4><p><img width="723" height="326" src="/img/bVdbH7H" alt="image.png" title="image.png"></p><h4>2、进入到 Amazon SageMaker Canvas 界面后回有一个引导提示:数据集管理、建模、预测</h4><p><img width="723" height="342" src="/img/bVdbH7J" alt="image.png" title="image.png"></p><h4>3、选择 New model 并创建一个新的模型</h4><p><img width="723" height="342" src="/img/bVdbH7L" alt="image.png" title="image.png"></p><p><img width="723" height="341" src="/img/bVdbH7M" alt="image.png" title="image.png"></p><h4>4、导入数据集和预览,数据集包含了15个与患者和医院结果相关的特征字段</h4><p><img width="723" height="341" src="/img/bVdbH7N" alt="image.png" title="image.png"></p><h4>5、系统提供了两种构建模式:标准模式、快速模式。快速构建模型模式,模型构建速度更快,精确度则要低一些。标准模式则反之,模型构建耗时更多,精准度则要高一些。</h4><p><img width="723" height="344" src="/img/bVdbH7P" alt="image.png" title="image.png"></p><h4>6、选择我们目标字段 readmitted (重新入院)字段来作为我们的预测字段</h4><p>我们可以在下方的预览中查看到每一个特征值,是否存在缺失值以及与目标值的相关性,并根据需要进行特征值或特征组合的筛选。通过查看特征分布,我们可以查看特征是否存在偏移和不均衡的问题。Amazon Canvas 可以自动识别数据中的缺失值并用相邻值进行填补。通过结合业务逻辑和与目标值的相关性,我们可以初步选定特征组合。</p><p><img width="723" height="344" src="/img/bVdbH7Q" alt="image.png" title="image.png"></p><h4>7、与此同时,我们还可以通过选择快速模式 Preview model 快速预测当前配置下模型的效果并查看每一个特征的影响力,从而实现动态交互优化</h4><p><img width="723" height="344" src="/img/bVdbH7R" alt="image.png" title="image.png"></p><p>我们可以看到 num-lab-precedures(实验室程序次数)、num-medication(药物次数)等对预测结果的影响是比较大的;而患者性别等字段则关联较小,我们在后续的模型训练当中可以将影响小的字段去掉。</p><h4>8、在选定特征组合之后我们就可以开始构建模型了</h4><p>SageMaker Canvas 可以自动完成数据清洗,构建最多250个模型,并从中选取最优的模型。我们可以选择 Quick build 或者 Standard build 两种模式训练模型:Quick build 通常只需要2-15分钟;而 Standard build 则需要2-4个小时,但是可以提供更高准确率并能一键分享给 SageMaker Studio。实际训练过的模型精度理论上要高于我们前面预测的效果</p><p><img width="723" height="271" src="/img/bVdbH7S" alt="image.png" title="image.png"></p><h4>9、模型构建结果,在概览页可以看到预测的精准度为56.716%,也可以看到各个特征的影响值。在得分页,可以看到具体的预测准确数和错误数。</h4><p><img width="723" height="341" src="/img/bVdbH7T" alt="image.png" title="image.png"></p><p><img width="723" height="346" src="/img/bVdbH7U" alt="image.png" title="image.png"></p><p><img width="723" height="356" src="/img/bVdbH7V" alt="image.png" title="image.png"></p><h4>10. 利用模型进行预测</h4><p>模型构建完成后,就可以利用模型对单个数据进行预测了</p><p><img width="723" height="316" src="/img/bVdbH7W" alt="image.png" title="image.png"></p><p>由此我们可以通过这个模型预测来清晰地看到哪些指标对高危糖尿病患者是否有可能在30天内、30天后或根本不入院的影响比较大,从而来正反馈患者在之前应该注意哪些健康事项,从而避免再次入院,对于医疗健康领域有很大的研究帮助。</p><h4>11、感悟</h4><p>以上就是 Amazon SageMaker Canvas 使用的全部操作流程了,使用过程中给我留下了几个比较印象深刻的点:</p><ol><li>预览数据 导入数据进行构建后,数据分析师能快速地了解数据的大体质量,不同特征的数据类型,有无缺失值,均值、众数等信息,大大减少了因为数据质量问题引发的后续的问题。</li><li>构建后的简单特征关联度分析 通常情况下,特征的选取,是基于业务经验,系统也对这方面给出了快捷的特征影响分析,帮助分析师能筛除不必要的特征,加快模型构建速度。</li><li>普通用户也能自己上手使用 整体来说,需要使用数据分析的客户能全靠自己摸索走完整个模型创建、分析和预测的流程,实际体会一下机器学习在业务分析中的作用,还是有很大帮助的,也真正做到了让机器学习有效赋能企业的每个部门,把机器学习的能力交到每一个企业角色手中。</li></ol><h3>五、结语</h3><p>当然你在使用 Amazon SageMaker 的过程中,我们也可以使用 Data Wrangler 对用户行为数据进行预处理和清洗;使用 Studio 进行模型训练,并利用 AutoML 功能自动化了部分模型优化过程;最后将训练好的模型部署到生产环境中,并利用 Amazon SageMaker 的监控功能对模型进行实时监控和管理。</p><p>总的来说,Amazon SageMaker 是一款强大而全面的机器学习服务。它为用户提供了从数据准备到模型部署的一站式解决方案,极大地简化了机器学习的过程。无论你是初学者还是经验丰富的开发者,Amazon SageMaker 都能帮助你快速、轻松地迈入机器学习的世界。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=U7bfYgd4QuRr51M19r4urg%3D%3D.fsG63ZSbpLt7fhnbp27dPfabbStSJfHKPWhT5OdRsTK5KiqR4IJhLOX9eFLN%2BBXK0%2F4rKMPTZvQKD6pGTxTcfSYJVuN%2F%2FGwcSx%2FCc9H9YbhKV%2BzJg0VWGiEnIyszLeQzXS5YymCtZN5pUY3u3MM9J4d8HD76rGFx1t7pa46zWyQmCoJ8l3SHyr1exzjsxYPe" rel="nofollow">https://dev.amazoncloud.cn/column/article/658aad595d096603bb1...</a></p>
使用 Amazon Bedrock 上的 Claude 3 将架构图转换为 CDK/Terraform 代码
https://segmentfault.com/a/1190000044695766
2024-03-08T20:54:33+08:00
2024-03-08T20:54:33+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>概述</h3><p>在云原生领域,基础设施即代码 (IaC) 对于开发人员和 DevOps 团队来说是一种不可避免的实践。</p><p>最近,Amazon Bedrock 上线了 Claude 3 Sonnet 模型和这个模型的图像转文本能力。这无疑开启了一个新时代,也就是实现架构图与 IaC 工具的无缝融合,如亚马逊云科技云开发工具包 (CDK) 或 Terraform。 这篇博文将探讨如何使用 Amazon Bedrock 上的 Claude 3 Sonnet 来简化基础设施预配和管理流程。</p><blockquote><a href="https://link.segmentfault.com/?enc=48tCnnkafAA60a5xdhLoWw%3D%3D.B5rkOnAJlXh3VbF%2BHg9DgCl47l8zMg%2FoVCwpakUdyU0ScgwomhSpFjtFFRWhQlI9l4RT6bEnJJN1mV7xbnxTe3Tin%2BkaboUi0Ydga8icnDRbuy23aFGR4EMEF7624V4Q" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=iRqkZ1omnwT3ZNbhsHCBAg%3D%3D.GqOC9AdonAd7Q56vxhzpWp74VmNtaPXMIUuiFyBBx0qTNX0pibudKNFDMnG5rS4M%2F3P2Af2Qc855%2FjT87VeDG8acf11pjDKnrXqsISPCgkvMLSsok0OQ4Mq6MED4MKGM4IxNnVS%2BDICidw6znc4S%2Bw%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>架构图</h3><p>架构图以可视化方式呈现系统组件、各组件之间的关系以及应用程序或基础设施的整体结构,是团队成员之间沟通、协作和决策所依据的蓝图。但是,手动将架构图转换为代码非常耗时且容易出错,尤其是在复杂的环境中。</p><p>Amazon Bedrock 上的 Claude 3 Sonnet<br>Anthropic 推出的 Claude 3 系列新一代 AI 模型,迅速成为了热门话题。这个系列包括三种模型: Claude 3 Opus、Claude 3 Sonnet 和 Claude 3 Haiku,是具有强大能力的新一代模型。 这个系列模型能够从图像中解析文本。在下面介绍的解决方案中,我们将要使用这个功能。<a href="https://link.segmentfault.com/?enc=6FPPkeih1Bjfcd%2BPHgVPHg%3D%3D.FtpdhNGnRZstz7MCMEDWuT7Vl%2BoHogK%2Fn%2Fg4yjig0FxE6HR2tHC%2BT00Ap50ZAPmcFbkUk2TnMB4IBUm9EDEh3Q%3D%3D" rel="nofollow">https://www.anthropic.com/news/claude-3-family?trk=cndc-detail</a></p><p>在性能方面,对于大多数工作负载而言,Sonnet 模型可谓是全能选手。无论是输入还是输出,它都比 Anthropic 之前的 Claude 2 和 2.1 模型的速度要快,并且在人工智能水平上更胜一筹。除此之外,Claude 3 Sonnet 更易于控制,这意味着我们可以得到预测性更高、质量更佳的结果。真可谓双赢!</p><p><strong>更可喜的事情</strong></p><p>Amazon Bedrock 宣布支持 Anthropic Claude 3 系列。<a href="https://link.segmentfault.com/?enc=pdmxhGG2phNRa4EMf0EYsw%3D%3D.oO7VR%2FyQdUzGivVOoBAeqGzZbF3jPbBRB8b2FcBQp3Y965m%2BuDw%2BUsdZ%2BqX6EOJrzLUbyKHI%2FOZdiQ9AwN13b8c6Qs1Pt7%2FsSboXiQMNgH2FRWfW5MY7ReU3gh4dIHRY" rel="nofollow">https://www.aboutamazon.com/news/aws/amazon-bedrock-anthropic...</a></p><p>Amazon Bedrock 是一项全托管的服务,为生成式 AI 相关需求提供一站式解决方案。我们可以在 Amazon Bedrock 上选择使用 Anthropic 等一流人工智能公司提供的多款高性能基础模型。Amazon Bedrock 还提供其他很多功能,帮助我们轻松构建和扩展生成式 AI 应用。</p><h3>解决方案</h3><p>现在,我们来看看解决方案。下面是构建架构提取器的操作步骤。</p><ol><li>在 Amazon Bedrock 中,选用 Anthropic Claude 3。</li><li>复制以下脚本,创建 claude_vision.py 文件</li></ol><pre><code>import base64
import json
import os
import boto3
import click
from botocore.exceptions import ClientError
def call_claude_multi_model(bedrock_runtime, model_id, input_text, image, max_tokens):
"""
Streams the response from a multimodal prompt.
Args:
bedrock_runtime: The Amazon Bedrock boto3 client.
model_id (str): The model ID to use.
input_text (str) : The prompt text
image (str) : The path to an image that you want in the prompt.
max_tokens (int) : The maximum number of tokens to generate.
Returns:
None.
"""
with open(image, "rb") as image_file:
encoded_string = base64.b64encode(image_file.read())
body = json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": max_tokens,
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": input_text},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": encoded_string.decode("utf-8"),
},
},
],
}
],
}
)
response = bedrock_runtime.invoke_model_with_response_stream(
body=body, modelId=model_id
)
for event in response.get("body"):
chunk = json.loads(event["chunk"]["bytes"])
if chunk["type"] == "content_block_delta":
if chunk["delta"]["type"] == "text_delta":
print(chunk["delta"]["text"], end="")
@click.command()
@click.option("--image_path", prompt="path to image", help="Image you want to parse")
def main(image_path):
"""
Entrypoint for Anthropic Claude Sonnet multimodal prompt example.
"""
model_id = "anthropic.claude-3-sonnet-20240229-v1:0"
input_text = """
You are a AWS solution architect,
The image provided is an architecture diagram. Use two heading to explain below.
1. Explain the technical data flow in detail.
2. Provide cdk typescript code to implement using aws-cdk-lib
Do not:
1. use preambles.
2. make assumptions.
"""
max_tokens = 4000
try:
bedrock_runtime = boto3.client("bedrock-runtime")
call_claude_multi_model(
bedrock_runtime,
model_id,
input_text,
os.path.abspath(image_path),
max_tokens,
)
except ClientError as err:
message = err.response["Error"]["Message"]
logger.error("A client error occurred: %s", message)
print("A client error occured: " + format(message))
if __name__ == "__main__":
main()</code></pre><ol><li>创建并保存如下架构图。注意:记录下图像的保存路径。</li></ol><p><img width="561" height="115" src="/img/bVdbHzu" alt="image.png" title="image.png"></p><p>S3_extractor</p><p>运行脚本:<code>python src/utils/claude_vision.py --image_path ~/Desktop/s3_extractor.png</code></p><p>运行脚本后的响应</p><p><code>$ python src/utils/claude_vision.py --image_path ~/Desktop/s3_extractor.png</code></p><p>Technical Data Flow Explanation</p><p>The architecture diagram depicts a serverless data pipeline using AWS services. The data flow can be described as follows:</p><ol><li>An Amazon S3 bucket is the source of data, which likely contains files or objects that need to be processed.</li><li>When a new object is uploaded or modified in the S3 bucket, it triggers an AWS Lambda function named "LambdaExtractor."</li><li>The LambdaExtractor function is responsible for extracting relevant data or events from the input files or objects in the S3 bucket.</li><li>After processing, the extracted data or events are stored in an Amazon DynamoDB table named "StoreEventsDB."</li></ol><p>CDK Typescript Code Implementation</p><p>To implement this architecture using the AWS Cloud Development Kit (CDK) and TypeScript, you can use the following code:</p><pre><code>import * as cdk from 'aws-cdk-lib';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as lambdaEventSources from 'aws-cdk-lib/aws-lambda-event-sources';
const app = new cdk.App();
const stack = new cdk.Stack(app, 'DataPipelineStack');
// Create the S3 bucket
const sourceBucket = new s3.Bucket(stack, 'SourceBucket');
// Create the DynamoDB table
const eventsTable = new dynamodb.Table(stack, 'StoreEventsDB', {
partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING },
billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
});
// Create the Lambda function
const lambdaExtractor = new lambda.Function(stack, 'LambdaExtractor', {
runtime: lambda.Runtime.NODEJS_14_X,
code: lambda.Code.fromAsset('path/to/lambda/code'),
handler: 'index.handler',
environment: {
EVENTS_TABLE_NAME: eventsTable.tableName,
},
});
// Grant permissions for the Lambda function to access the DynamoDB table
eventsTable.grantWriteData(lambdaExtractor);
// Create the S3 event source and associate it with the Lambda function
lambdaExtractor.addEventSource(
new lambdaEventSources.S3EventSource(sourceBucket, {
events: [s3.EventType.OBJECT_CREATED, s3.EventType.OBJECT_REMOVED],
recursive: true,
})
);</code></pre><p>In this code:</p><p>An S3 bucket named "SourceBucket" is created to serve as the source of data.<br>A DynamoDB table named "StoreEventsDB" is created with a partition key "id" of type string.<br>A Lambda function named "LambdaExtractor" is created with the provided source code and environment variables.<br>The Lambda function is granted write permissions to the DynamoDB table.<br>An S3 event source is created and associated with the Lambda function, triggering the function when objects are created or removed from the "SourceBucket."<br>Note: You need to replace 'path/to/lambda/code' with the actual path to your Lambda function code, and provide the necessary logic in the Lambda function to extract data from the S3 objects and store it in the DynamoDB table.%</p><h3>架构图转 IaC 的优势</h3><ol><li>一致性和准确性:转换过程自动化可以消除人为错误风险,确保基础设施代码符合你的架构设计。</li><li>更快迭代和部署:根据架构图快速生成代码能力帮助我们快速迭代基础设施、测试改动和部署更新。</li><li>协作和标准化:架构图是团队有效沟通和协作的基础依据。通过将架构图转换为 IaC,你可以在整个组织内建立一致的标准化基础设施管理方法。</li><li>版本控制和可审计性:亚马逊云科技 CDK 和 Terraform 均支持代码版本控制,便于全面审计跟踪基础设施更改,从而更好地实现治理和合规。</li></ol><h3>总结</h3><p>Claude 3 Sonnet 与 Amazon Bedrock 的集成,以及架构图转 CDK 或 Terraform 代码的能力,大大方便了开发人员和 DevOps 团队。 采用这种方法,我们就可以充分利用 IaC 的强大能力,简化工作流程,加快交付可靠且可扩展的云基础设施。让我们一起踏上这段旅程,体验可视化设计与自动代码生成的无缝集成,高效构建和管理云环境。</p><p>下一篇文章中,我将介绍一种基于 streamlit web UI 的构建方法。不熟悉命令行界面 (CLI) 的用户可以使用交互式 UI 来实现这个解决方案。</p><p>本文中的任何观点仅代表作者个人的观点,不代表亚马逊云科技的观点。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=VGOWJ5Cs%2FBnV7EclRi%2FC4A%3D%3D.%2FSi75AQ4vaYgPfaGwmLihAY5pjF14VqpG74IB78Ov2IoVvraHBmVwn0symRPqNAiBzXX99pH9rVfZssz%2BMWyYBK8%2B54ub5F43YMeR71Sxl%2B7qt0ltp7BoKFO0AuZky1j5Zjkq7Njh3Y2%2BkTKKsjKlDfy91w9xfrbXA9SEA8dZ3%2FePgBofZXkO6RmQxH3Ttpg" rel="nofollow">https://dev.amazoncloud.cn/column/article/65eb05ab0543436a639...</a></p>
Amazon SageMaker Canvas 无代码机器学习—以构建货物的交付状态检测模型实战为例深度剖析以突显其特性
https://segmentfault.com/a/1190000044692879
2024-03-08T08:01:30+08:00
2024-03-08T08:01:30+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在亚马逊云科技开发者社区、 知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道。</blockquote><p>亚马逊云科技 2023 re:Invent 全球大会是亚马逊云科技举办的一场技术盛会,旨在探讨云计算、大数据、人工智能等前沿技术趋势和应用场景。在大会上,亚马逊云科技将发布一系列新产品和新技术,以及针对不同行业和场景的解决方案,帮助客户更好地利用云计算和大数据技术,提升业务效率和创新能力。</p><blockquote><a href="https://link.segmentfault.com/?enc=RH%2FM5laaAFTx3GRjEluf7Q%3D%3D.SCsjRpUYRR778hZq68TuGDfXGI4tARyUzxGkHHoXWdqoIVyrPUaLsGQ%2BxF9mg6VTAE0plIGDOhSOXpcSN%2Fxkh8gSD6hr581DGNctQTTAbFvnGk3GtLOlF3p%2FHYKzWK6w" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=veYMxZZygSvgWvnjJCwVhQ%3D%3D.mnQRozV6wanF%2Bi9onnnD1LJr1kx0woXKazGkKjJkX2uMWuCcUmaIp3QAsgiAu3R9t51me18CqeRIGs6c85cra5YStiHM4Z8dIbjSzHSEQmQXR8m3rsBnRG0crtYNePjA1AJZ0%2BbP9eZ0ybsM4zzx4A%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img src="/img/remote/1460000044692881" alt="图片" title="图片"></p><p>各位读者大家好,我是一见已难忘。在本次大会中,亚马逊云科技发布 Amazon SageMaker 五项新功能,用于模型的扩展。今天我们就来深度体验学习一下 Amazon SageMaker Canvas 无需代码生成准确的 ML 预测,构建货物的交付状态检测模型,并且让其准确度在百分之80以上!</p><h3>一. Amazon SageMaker</h3><p>Amazon SageMaker 是亚马逊云科技提供的一项机器学习(ML)服务。它旨在帮助开发人员和数据科学家轻松构建、训练和部署机器学习模型。SageMaker 提供了一个端到端的机器学习平台,涵盖了从数据准备和模型训练到模型部署和推理的整个机器学习工作流程。</p><p>Amazon SageMaker 官网:<a href="https://link.segmentfault.com/?enc=7l%2Fv4lPwnMcoe9nyiKtsuQ%3D%3D.8%2FBYietWjGOshxIJvCEbIF9yuR6YQzpuJPIRIYpy8VhJoHrC28JT2ZzJ7D2L4D9Z1WZFyewdX2osv8gp77JFQg%3D%3D" rel="nofollow">Amazon SageMaker 机器学习_机器学习模型构建训练部署-亚马逊云科技云服务</a></p><h4>1.1 新功能发布:Amazon SageMaker Canvas</h4><p>Amazon SageMaker Canvas 是 Amazon SageMaker 的一项全新功能,让业务分析师能够使用可视化点击式界面创建准确的机器学习 (ML) 模型并生成预测。</p><p><img width="723" height="396" src="/img/bVdbEkz" alt="image.png" title="image.png"></p><p>Amazon SageMaker Canvas 提供直观的用户界面以快速连接与访问来自不同来源的数据,并准备数据以构建机器学习 (ML) 模型。</p><p>SageMaker Canvas 利用由 Amazon SageMaker 提供的功能强大的 AutoML 技术,该技术会根据数据集自动训练与构建模型。这使 SageMaker Canvas 能够根据数据集识别最佳模型,因此可以生成单个或批量预测。SageMaker Canvas 与 SageMaker Studio 集成,让业务分析师能够轻松地与数据科学家分享模型。 SageMaker Canvas 帮助企业内部的分析师(不管他们的技术技能如何)从不同的数据集创建准确的机器学习模型,并更高效地和数据科学家开展合作。</p><p>Amazon SageMaker Canvas 体验官网:<a href="https://link.segmentfault.com/?enc=p1D6zg59AP9R5ibAdfPMGA%3D%3D.1oAbTqfiwPZhXDO0pwhH%2F9qLXwwW%2BNhpsbTrYOoDBlwemyYVKsYBG2WdWvkMv%2Bm5pLYpb1UBNcugjKL8JNXI5g%3D%3D" rel="nofollow">Amazon SageMaker Canvas</a></p><h4>1.2 Amazon SageMaker Canvas 特点</h4><p>Amazon SageMaker Canvas 的无代码界面,可以访问现成的 FM 和预测模型或创建自定义模型,只需几分钟即可提取信息并生成 AI 输出。Canvas 支持 Amazon Bedrock 中的 FM(包括 Claude、Titan 和 Jurassic)以及 SageMaker JumpStart 中的公共模型(例如 Falcon 和 MPT)。在 SageMaker Canvas 中使用这些 FM 可以生成、提取和总结内容。</p><p>还可以使用现成的模型对内容进行分析和分类,以进行情绪分析、对象检测或文档分析。 要开始使用现成的模型,只需选择模型、上传数据,然后单击即可生成模型输出。</p><p>此外还可以构建自己的自定义模型来进行分类、回归、预测、文本分类或图像分类,无需编码。要开始使用自定义模型,可以导入来自不同来源的数据,选择要预测的值,自动准备和浏览数据,以及通过单击几下来创建 ML 模型。</p><p>Amazon SageMaker Canvas 特点如下:</p><ul><li>使用可视化点击界面为分类、回归、预测、自然语言处理(NLP)和计算机视觉(CV)生成准确的 ML 预测。</li><li>访问现成的基础或预测模型,或自动创建自定义 ML 模型,只需单击几下即可生成输出。</li><li>通过跨工具共享、审查和更新 ML 模型,促进业务分析师和数据科学团队之间的协作。</li><li>从任何地方导入 ML 模型并直接在 Amazon SageMaker Canvas 中生成预测。</li></ul><h3>二.Amazon SageMaker Canvas 无需代码生成准确的 ML 预测</h3><h4>2.1 项目背景</h4><p>在这个实验中,重点是构建和训练模型,通过利用所提供的数据集来提高预测准确性。同时,展示如何对模型进行分析并进行预测。</p><p>我们的任务是在 Canvas 中构建一个机器学习模型,该模型能够根据历史数据预测交付是否准时或延迟。我们的目标是建立一个模型,其准确率能够超过80%,从而有效地预测货物的交付状态。</p><p><strong>数据集:(真实的交付样本)</strong></p><ul><li>on-time-delivery-data 数据集</li><li>On-time-delivery-data_extended 数据集</li></ul><h4>2.2 前期步骤</h4><p>本功能测试官网地址:<a href="https://link.segmentfault.com/?enc=%2F96PdYvQNGNYooPbKa6CbQ%3D%3D.mYXRp1vTOcjl9nFgWGDE31I79D%2F%2FrLGQARJfnX27IiZV6A%2BkgjRItREYy0fScVC46%2Fzm6zBCrf0NlufNQh%2F8BA%3D%3D" rel="nofollow">SageMaker Canvas 演示</a></p><p><strong>1.本文深度实验步骤为提示大家学习效果,部分页面截图使用了游览器自带的翻译功能,但在关键步骤依然采用原生英文页面,不用担心关键页面演示翻译不准确的问题。</strong></p><p>2.目前无需亚马逊云科技账户,但需个人邮箱接收临时密码。</p><p>3.完成 AI Package Tracker 演示。</p><p><img width="723" height="352" src="/img/bVdbEkE" alt="image.png" title="image.png"></p><p>4.启动实验室,打开亚马逊云科技控制台,我们可以看到官网出明确的写了暂不需要额外开通的亚马逊云科技账号,作为新功能对于对新接触这个领域的用户是十分的关照,我们只需部署模型环境,即可开始体验。</p><p><img width="723" height="352" src="/img/bVdbEkF" alt="image.png" title="image.png"></p><p><strong>5.在控制台搜索 Amazon SageMaker,点击进入。</strong></p><p>Amazon SageMaker 是一个全托管的机器学习平台,它可以帮助开发者、数据科学家和业务用户快速地构建、训练和部署机器学习模型。SageMaker 提供了丰富的工具和功能,包括但不限于自动化机器学习、自然语言处理、计算机视觉等。</p><p>我以前使用过 Amazon SageMaker 来训练一些模型,当然都是高度需要代码,是传统的深度学习模型,但是这次的新产品 Amazon SageMaker Canvas 给我带来了极大的震撼,现在不用代码就可以继续模型训练,这是之前闻所未闻的!</p><p><img width="723" height="350" src="/img/bVdbEkG" alt="image.png" title="image.png"></p><p><strong>6.点击左侧的 Canvas,打开 Canvas。操作简单,这块可以说是非常的照顾新用户了。</strong></p><p>Canvas 提供可视化工具,帮助客户直观地准备和分析数据。Canvas 使用自动机器学习来构建和训练机器学习模型。接下来我们就要深度的体验的 Canvas 功能!</p><p><img width="723" height="352" src="/img/bVdbEkI" alt="image.png" title="image.png"></p><p><strong>7.启动实验室,等待环境搭建完成(5-10 min 左右)。</strong></p><p>为了使 Amazon SageMaker Canvas 应用程序运行顺利,系统为其分配了一些资源。这些资源用于执行数据分析、准备和修改数据集、查看数据见解和可视化效果、预览模型,以及运行假设分析或生成批量预测以获取更多见解。如果想释放这些专用资源,只需点击 Canvas 应用程序中的注销按钮即可。</p><p><img width="723" height="352" src="/img/bVdbEkJ" alt="image.png" title="image.png"></p><p><strong>8.部署过程后成功进入 Amazon SageMaker Canvas 页面,我们可以看到页面 UI 做的十分美观舒适,功能也十分的简洁清楚。</strong></p><p>使用自然语言指令实现对机器学习(ML)数据的探索、可视化和转换。这项新功能加快简化了数据探索和数据准备流程,我觉得这是一个伟大的产品,是一个里程碑的创新。</p><p><img width="723" height="352" src="/img/bVdbEkK" alt="image.png" title="image.png"></p><p><strong>本节心得:</strong></p><p>对于本次亚马逊云科技发布的新产品:Amazon SageMaker Canvas ,无需额外开通亚马逊云科技账号,这对于初次接触这个领域的用户来说是一项重要的优势。这种关照新用户的态度有助于吸引更多人尝试新功能。只需部署模型环境即可开始体验,进一步降低了使用门槛。</p><p>我成功进入 Amazon SageMaker Canvas 页面,看到页面的 UI 设计十分美观舒适,功能简洁清楚。这种对用户体验的关注有助于建立对新功能的积极印象,同时也为读者提供了对功能界面的深度了解与快速学习。</p><h4>2.3 导入数据集</h4><p><strong>1.完成上文的准备步骤后,点击左侧导航面板中的 Data Wrangler,效果页面如下:</strong></p><p>我们可以看到 Data Wrangler 的页面,在创建虚拟环境时,可能会根据账号权限的不同会有一些自有的数据文件,我们现在开始就可以创建数据集了。</p><p><img width="723" height="352" src="/img/bVdbEkR" alt="image.png" title="image.png"></p><p><strong>2.选择 “Create” 下拉列表,然后选择 “Tabular”。</strong></p><p><img width="723" height="352" src="/img/bVdbEkS" alt="image.png" title="image.png"></p><p><strong>3.创建表格数据集,起名为 on-time-delivery,名字可随意起,因为我们本次测评项目提供的 on-time-delivery-data 数据集是一个真实的交付样本。</strong></p><p>数据集分析,当我拿到案例给的数据集后,我对其进行了仔细的分析:</p><p><strong>on-time-delivery-data.csv</strong> 这个数据集包含两列:zipcode 和 classification_ontime。每一行表示一个邮政编码(zipcode)和对应的按时交付分类(classification_ontime)。</p><p>根据给出的样本,"Delayed" 分类和 "On time" 分类都有出现,说明数据集中包含了按时和延迟交付的样本。</p><p>我在初步查看数据得出初步情况:可以进一步分析延迟交付的趋势,可能与地理位置、季节性变化或其他因素相关。( Amazon SageMaker Canvas 模型训练来得出结果。)</p><p><img width="723" height="352" src="/img/bVdbEkT" alt="image.png" title="image.png"></p><p><strong>4.选择数据来源为:Amazon S3。</strong></p><p>Amazon S3 是亚马逊提供的一个存储服务,允许用户在云端存储数字资产,包括图片、视频、音乐和文档等。这个服务是公开的,Web 应用程序开发人员可以使用它来存储和获取数据,以支持他们的应用程序。</p><p>S3 提供了一个 RESTful API,用户可以通过编程方式实现与该服务的交互。</p><p><img width="723" height="352" src="/img/bVdbEkU" alt="image.png" title="image.png"></p><p><strong>5.选择要导入的文件,如下图(保证是数据来源为:Amazon S3)</strong></p><p><img width="723" height="352" src="/img/bVdbEkV" alt="image.png" title="image.png"></p><p><strong>6.选择 on-time-delivery-data 数据集(创建环境时会自动的加载数据集,如果没有数据来源可以选择自行上传)</strong></p><p>我们可以看到上传都是十分方便的,对用户十分的友好,方便快捷!</p><p><img width="723" height="352" src="/img/bVdbEkW" alt="image.png" title="image.png"></p><p>可以在实验页面自行下载 on-time-delivery-data 和 On-time-delivery-data_extended 数据集。然后在上面第4步选择上传本地文件。</p><p><img width="723" height="352" src="/img/bVdbEkX" alt="image.png" title="image.png"></p><p><strong>7.第一次点击创建数据集时会自动跳出预览,数据集的前100行,我们检查一下没有问题后继续点击创建数据集。</strong></p><p><img width="723" height="352" src="/img/bVdbEkZ" alt="image.png" title="image.png"></p><p>成功创建的话,我们在 Data Wrangler 页面可以看到我们刚刚创建的。</p><p><img width="723" height="352" src="/img/bVdbEk2" alt="image.png" title="image.png"></p><p><strong>8.按照上面的步骤(1~7),如法炮制创建 On-time-delivery-data_extended,关键步骤截图如下。</strong></p><p><img width="723" height="352" src="/img/bVdbEk3" alt="image.png" title="image.png"></p><p>创建完成页面如下:(必须是俩个都成功创建)</p><p><img width="723" height="352" src="/img/bVdbEk4" alt="image.png" title="image.png"></p><p><strong>本节心得:</strong></p><p>在使用 Data Wrangler 导入数据集的过程中,首先要完成一系列准备步骤,然后通过左侧导航面板中的 Data Wrangler 进入相应的效果页面。整个导入数据集的过程需要重复执行,创建了两个数据集:on-time-delivery 和 On-time-delivery-data_extended。在整个过程中,截图的使用有助于记录关键步骤,以便用户可以参考和复制操作。</p><p>必须夸赞其直观友好的界面设计,用户能够轻松地完成数据集的创建工作。从选择数据类型到指定数据来源,一切操作都得心应手,使得即便是初学者也能够迅速上手!</p><p>还有一个优点不得不说:Data Wrangler 提供的预览功能,能够在创建数据集之前,通过显示前100行数据,帮助用户检查数据的准确性,确保导入的数据是符合期望的。这对于数据分析和模型训练的准确性有着积极的影响。</p><h4>2.3 模型创建</h4><p>我们的任务是在 Canvas 中构建一个机器学习模型,该模型能够根据历史数据预测交付是否准时或延迟。我们的目标是建立一个模型,其准确率能够超过80%,从而有效地预测货物的交付状态。</p><p><strong>1.在完成2.2的导入数据集步骤后,就可以创建模型了。首先选择上面步骤创建的 On-time-delivery,点击上面的创建模型,如下图:</strong></p><p><img width="723" height="352" src="/img/bVdbEk6" alt="image.png" title="image.png"></p><p><strong>2.创建模型有俩个重要的参数,应该是模型名字,我这里起名为 On-time-delivery-data_nanwang(数据集名称+我的博客名:一见已难忘)。问题类型选择:预测分析。</strong></p><p>预测分析是:使用表格数据集构建模型,预测单个或多个类别以及回归和时间序列预测问题。</p><p>在使用历史数据来构建模型,以便对未来事件或趋势进行预测。这可以涉及预测单个或多个类别,执行回归分析(用于预测数值),以及处理时间序列数据。</p><p><img width="723" height="352" src="/img/bVdbEk7" alt="image.png" title="image.png"></p><p><strong>3.创建完成后来到 Version1 页面,点击 Build,在 target column 里选择 classification_ontime(此数据集中的目标有 2 个唯一值:准时值和延迟值,我们选择 classification_ontime)</strong></p><p>关于模型类型:Canvas 会自动检测此目标是否为 2 类预测模型类型,这块会自动配置不用我们调试。</p><p><img width="723" height="352" src="/img/bVdbEk9" alt="image.png" title="image.png"></p><p><strong>4.当选择完 classification_ontime 点击预览模式等待其加载完毕(2min 左右),我们可以看到预览模型的精度目前是66.889%,其原没有达到我们精度最低80%的要求</strong></p><p>对于这个实验结果,我说一下我的个人猜测,当然真实情况还需后面的步骤进行完善。</p><p>我们一般在完成深度学习的相关任务时,是需要重新审视特征集,需要进行更多的特征工程。包括添加新的特征、删除不相关的特征或者对特征进行更复杂的变换等等来优化模型结果。</p><p><img width="723" height="352" src="/img/bVdbElh" alt="image.png" title="image.png"></p><p><strong>5.点击 Quick build ,使用快速构建功能,构建模型并做出快速预测,如下图,我的构建过程持续了10min 左右。</strong></p><p>个人评价:对于模型构建时间10多分钟的表现还是相当优秀的,我们习惯了普通的一个模型训练构建时间久长达几小时的。这个模型的构建速度是非常的快了,而且是在无代码的背景下。</p><p><img width="723" height="352" src="/img/bVdbEli" alt="image.png" title="image.png"></p><p><img width="723" height="352" src="/img/bVdbElj" alt="image.png" title="image.png"></p><p><strong>6.模型预测结果如下,精度为70.714%,没有达到我们要求的80%以上。</strong></p><p><strong>看下面结果可知该模型预测正确的 Classification_ontime 的概率为70.714%。</strong></p><p><img width="723" height="352" src="/img/bVdbElo" alt="image.png" title="image.png"></p><p>模型精度得分:</p><p><img width="723" height="352" src="/img/bVdbElp" alt="image.png" title="image.png"></p><p>可以看到目前精度太低,模型的性能通常受训练数据的质量影响,确保训练数据集的标签准确,样本代表性,并且涵盖了各种可能的情况。需要进一步处理数据、分析特征,以提高模型的泛化能力。进行模型改进和优化,直到满足80%以上的准确性要求。</p><p>下一步优化想法:</p><p>对模型错误的样本进行详细分析,了解为什么模型会犯错。查看特定特征的模式,识别模型在哪些情况下容易出现偏差。</p><p><strong>本节心得:</strong></p><p><strong>任务目标是在 Canvas 中构建一个机器学习模型,其预测准确率要超过80%。</strong></p><p>我使用了预览模式和快速构建功能,展示了模型的预测结果。但是模型的准确率未能达到80%的要求,仅为70.714%。对于这一点,我提出了个人猜测,在深度学习任务中需要审视特征集和进行更多特征工程的必要性,下文我会继续实验,来改善准确率。</p><p>在无代码的背景下,整个模型构建过程仅持续了10分钟左右,这是相当优秀的表现!还有必须强调的一点就是 Canvas 在无代码环境下模型训练的高效性,非常的 nice!</p><h4>2.4 模型优化</h4><p>我们需要进行准确性分析,考虑到恶劣天气可能导致包裹延迟,我决定将天气作为一个新的特征加入分析。由于当前数据集不包含与天气相关的信息,我通过引入一个新的数据集,对每个样本添加了13个额外的特征,包括温度、气压、相对湿度以及送货卡车上物品的总数。利用这个更新后的数据集创建一个新的模型版本,并评估其对预测准确性的影响。</p><p><strong>1.在模型分析页面,点击上面的添加版本,如下图:</strong></p><p><img width="723" height="352" src="/img/bVdbElt" alt="image.png" title="image.png"></p><p><strong>2.选择数据集:On-time-delivery-data_extended,点击 Select dataset。</strong></p><p>说明一下:我这里的版本是:Version3 是由于操作我迭代了2次,按照上文步骤这里是 Version 2,但效果和操作步骤都完全相同,不会对我们的实验操作产生影响。</p><p><img width="723" height="352" src="/img/bVdbElu" alt="image.png" title="image.png"></p><p><strong>3.我们点击降雨量,该列的所有样本都具有相同的值 0,所以它不会对模型产生任何影响,所以我们将它从数据集里删除,从而更加有效的训练我们的模型。</strong></p><p><strong>这步可能有读者比较疑惑,我解读帮助大家理解一下:</strong></p><p>点击"降雨量"列后发现所有样本的值都是0,因此这个特征对于训练模型来说是没有提供足够的信息。删除这样的特征可能有助于减少模型的复杂性,提高训练效率,并且通常不会对模型性能产生负面影响。如果大家有相关的基础是会明白这步操作的含义。删除对模型没有贡献的特征是数据预处理中的一种有效策略,是可以提高模型训练和预测的效率的。</p><p><img width="723" height="352" src="/img/bVdbElw" alt="image.png" title="image.png"></p><p><img width="723" height="352" src="/img/bVdbElx" alt="image.png" title="image.png"></p><p><strong>4.删除降雨量特征值后再预览模型,我们可以看到估计的准确值是83.389%,这次的精确度达到了我们要求的80%以上。</strong></p><p><img width="723" height="352" src="/img/bVdbEly" alt="image.png" title="image.png"></p><p>在构建页面可以看到每一特征值都进行了可视化操作,这一功能极大的增加了用户友好性。</p><p><img width="723" height="352" src="/img/bVdbElA" alt="image.png" title="image.png"></p><p>点评:删除降雨量特征值后,成功提高了模型的准确度,达到了80%以上的要求。删除不提供信息的特征是数据预处理中的一种有效策略,有时可以提高模型的性能,减少噪音的影响。</p><p><strong>5.我们点击快速构建,这个构建过程大约需要 2-4 小时,我实测用了2个小时多一点就构建完毕了。</strong></p><p>对应这个时间还是满意的,如此多的数据,(而且是在无代码的背景下)训练时间2个小时多一点表现十分优秀,已经超越了我们平时使用的个人 pc 训练速度了,这块还得对我们本次亚马逊云科技发布的产品点个赞,无代码+高性能训练模型给大家带来很大的好处和便利!</p><blockquote><p>Model overview</p><p>Your model is being created. Standard build usually takes between 2–4 hours. You can now leave this view.</p></blockquote><p><img width="723" height="352" src="/img/bVdbElC" alt="image.png" title="image.png"></p><p><img width="723" height="352" src="/img/bVdbElF" alt="image.png" title="image.png"></p><p>6.构建完成后,打开模型分析页面(如下图)可以看到准确性为83.413%满足模型准确度要求。</p><p><img width="723" height="352" src="/img/bVdbElG" alt="image.png" title="image.png"></p><p>本次优化主要涉及模型优化的过程,特别关注了考虑恶劣天气对包裹延迟的影响,并通过引入新的特征来提高模型的准确性。</p><p><strong>本节心得和总结:</strong></p><p>考虑到天气因素可能影响包裹的准时送达,因此决定引入新的特征,包括温度、气压、相对湿度等,以及送货卡车上物品的总数。通过这种方式,通过更新数据集和创建新的模型版本,提高了对包裹准时送达的预测准确性。</p><p>删除了降雨量特征,因为在数据集中所有样本的值都是0,这表明这个特征对模型没有提供足够的信息。删除不提供信息的特征是数据预处理中的一种有效策略,能够提高模型的训练效率,减少模型的复杂性。成功提高了模型的准确度,达到了80%以上的要求。 在构建页面可以看到每个特征值都进行了可视化操作,这一功能极大地增加了用户友好性。这种可视化操作有助于用户更好地理解数据集的特征分布,从而更好地进行数据分析和模型优化。</p><p>Amazon SageMaker Canvas 有高性能训练速度,在无代码的背景下,快速构建模型只需要2个多小时。亚马逊云科技发布的产品在训练效率上的优越性,为用户提供了便利和高效的模型构建体验。</p><p>本次优化模型通过引入新特征、数据预处理和高性能训练准确性达到83.413%,满足了模型准确度的要求。我认为亚马逊的新产品在模型建设方面取得了非常好的成绩。</p><h4>2.5 模型预测</h4><p><strong>1.我们在上文的模型分析页面点击 Predict(模型预测)。</strong></p><p><img width="723" height="352" src="/img/bVdbElL" alt="image.png" title="image.png"></p><p>模型预测得分可视化效果图如下:可以直观的看到 Amazon SageMaker Canvas 给我们提供优秀的可视化效果,在这个页面可以直观的看到模型训练结果。</p><p><img width="723" height="352" src="/img/bVdbElM" alt="image.png" title="image.png"></p><p><strong>2.在预测页面中,选择单一预测,如下图:</strong></p><p><strong>说明解释:</strong></p><p>用户可以通过模型对特定样本或输入进行个别预测,而不仅仅是上面的对整个数据集的预测。这对于了解模型对于特定情况的表现是很有用处的。</p><p><img width="723" height="352" src="/img/bVdbElN" alt="image.png" title="image.png"></p><p><strong>3.将 total_items 的数值改为525,temperature 的数值改为 -5.83 。</strong></p><p>将 temperature_at_1500m 的数值改为-7,min_temperature 的数值改为-6.5, max_temperature 的数值改为-2.</p><p>将 tlew_point temperature 的数值改为-8</p><p><img width="723" height="352" src="/img/bVdbElP" alt="image.png" title="image.png"></p><p><strong>个人见解:</strong></p><p>将 total_items 的数值从原先的值改为525,为了在模型中使用一个更适当的货物总数。</p><p>温度相关的参数调整是为了更好地匹配实际气象数据。这是基于对环境温度影响的分析,以提高模型的准确性的。</p><p>露点温度是相对湿度饱和时空气冷却至饱和状态所需的温度。将 dew_point_temperature 的数值改为-8是为了更好地反映湿度对系统的影响。</p><p>这样做的目标是优化模型的性能,使其能够更准确地拟合实际数据。</p><p><strong>4.点击更新,等待 5min 左右</strong></p><p><img width="723" height="352" src="/img/bVdbElQ" alt="image.png" title="image.png"></p><p><strong>5.可以看到分类实时预测的预测值已改为延迟,百分百非常高。可以看到特征重要性也发生了变化,压力,温度对预测的影响最大。</strong></p><p><img width="723" height="352" src="/img/bVdbElR" alt="image.png" title="image.png"></p><p>到这里就成功构建了一个模型,来预测货物的交付状态,精确率也达到了80%以上。</p><p><strong>本节心得和总结:</strong></p><p>Amazon SageMaker Canvas 在模型预测中可以提供的优秀的可视化效果。通过图表和视觉化工具,我们可以直观地了解模型训练的结果。这有助于我们更好地理解模型的性能和预测结果。 通过更新参数并观察实时预测结果,调整后的模型在预测值的准确性上取得了显著提升,可以看到特征的重要性。可以学习到模型的可调性和灵活性,是能够更好地适应不同的应用场景的。 成功在 Canvas 中构建一个机器学习模型,该模型能够根据历史数据预测交付是否准时或延迟。其准确率超过了80%,从而有效地预测货物的交付状态,完成任务目标。</p><h3>三.总结与心得</h3><h4>3.1心得</h4><p>到了这里我们也就完成了模型的建立,全程的无代码体验过程是相当的 nice!,模型的准确率也超过了任务要求的80%以上。</p><p>Canvas 的可视化点击式界面提供了一个直观、易用的操作平台,可以轻松创建和优化机器学习模型。这种用户友好性大大降低了学习门槛,让机器学习在更广泛的领域中得以应用,让刚入门的小白也可以快速的了解机器学习,深度学习的内容,我觉得亚马逊这次的新产品 Amazon SageMaker Canvas 的意义十分巨大,我给予这块产品一个好评,期待以后会迭代的更好!</p><p>在实验的初期,可以看到我导入数据集和创建模型的步骤都相当直观,而且 Canvas 的快速构建功能极大地加速了模型的训练过程。在进行模型分析时,我们也能够清晰地看到模型的准确性和相关特征的重要性,这有助于更好地理解模型的性能和优劣。</p><p>还有一个亮点就是,在模型准确率未达到要求时,通过引入新的特征进行模型优化的过程。我们可以看到 Canvas 的灵活性,能够适应不断变化的业务需求。通过不断迭代和改进,最终成功构建了一个高准确率的模型,实现了项目的预期目标。</p><h4>3.2 总结</h4><p>在本文中,我们深入学习了亚马逊云科技在2023年 re:Invent 全球大会上发布的 Amazon SageMaker 的新功能——Amazon SageMaker Canvas。</p><p>该功能可以通过使用可视化点击界面为分类、回归、预测、自然语言处理(NLP)和计算机视觉(CV)生成准确的 ML 预测。我们通过一个实验项目,我们详细了解了使用该功能构建、训练和优化模型的步骤,以及如何通过引入新特征进行模型的改进,最终成功构建了一个模型来预测货物的交付状态,并且精确度达到80%以上。</p><p>Amazon SageMaker Canvas 的强大之处在于其直观的用户界面和与 SageMaker Studio 的集成,使得不具备深度技术背景的业务分析师能够快速创建高效的机器学习模型。通过对实验中的模型优化过程的详细探讨,我们了解到了在构建准确模型的道路上需要不断调整和改进,以适应不同的数据和特征。</p><p>Amazon SageMaker Canvas 为机器学习领域的从业者提供了一个强大的工具,使其能够更加便捷地应对现实业务场景中的挑战,提升模型的预测准确性。这一新功能的推出无疑为机器学习的应用和普及提供了更为广阔的可能性,进一步推动了云计算、大数据和人工智能等领域的发展。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=R9epvae4dlv7Oj2Z3fveKQ%3D%3D.z7A3Uf7OcmykdjCrPRuuQ2vgCF8XCqNb0aVGZ7hIulCLI0WPjee21fMhg7NADy6P1ZwqpKBwcS1FrXTAObR56odCzpY8wi4dKtZnXWuCG710jzDoDmmXCqdfk9i9aZm0OkzZLuUU1DKNAl4GuUxs2wirXb5bZejRCK0JJ1G1NYvYGjwYn15sy8jVVf9NnbDT" rel="nofollow">https://dev.amazoncloud.cn/column/article/658aa8d179476548e3e...</a></p>
智能部署之巅:Amazon SageMaker 引领机器学习革新
https://segmentfault.com/a/1190000044692872
2024-03-08T07:53:27+08:00
2024-03-08T07:53:27+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。</p><p>(全球 TMT 2023年12月6日讯)亚马逊云科技在 2023 re:Invent 全球大会上,宣布推出五项 Amazon SageMaker 新功能,帮助客户加速构建、训练和部署大语言模型和其他基础模型。自2017年推出以来,Amazon SageMaker已经新增了380多个功能和特性,为客户提供了规模化构建、训练和部署可投入生产的大规模模型所需的一切。</p><blockquote><a href="https://link.segmentfault.com/?enc=Shgezes8fDGBRTmZWzswjg%3D%3D.6NSWnD8u9tbEVQ34RDQVSSiuzS%2B8H9%2BcD0TbvL8UZsrX88WNq%2F7O95ZMNyC5l2MDYVFn7bOLSNrqbCnBrZM9koncgzG4JVTfkDInok3JuyEjVF5GTLz6Nj8mcwdLZ9BC" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=iqGA9jAB4WvCKQZNf%2FCL4w%3D%3D.N2EiiAkcVWisYikFBFbNGDiR6Se4yFLnqgaH2O5a2eAf2lILR%2FPTX4sGky%2FCXtvJPI%2FV7U04X8oWN3lGt4CO%2Bq1QKNuCv%2FXUr4VGx9ZK2P69aqe4xaK3RdGave%2BxL0%2FXoup8lrUyI5bsAUlJqueutg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>其中包括了一项新功能,进一步增强了 Amazon SageMaker 的模型扩展能力并加速了模型的训练。此外,Amazon SageMaker 推出的另一项新功能,能够通过降低模型部署成本和延迟时间,优化了管理托管的机器学习基础设施。亚马逊云科技还推出了新的 SageMaker Clarify 功能,可以让客户在负责任地使用 AI 的基础上,根据质量参数更轻松地选择正确模型。为了帮助客户在企业范围内应用这些模型,亚马逊云科技还在 Amazon SageMaker Canvas 中引入了新的无代码功能,让客户更快、更容易地使用自然语言指令准备数据。同时,Amazon SageMaker Canvas 继续推动模型构建和定制的普及,让客户更轻松地使用模型提取洞察、进行预测和使用企业专有数据生成内容。这些创新均基于 Amazon SageMaker 丰富的功能,帮助客户实现规模化机器学习创新。</p><h3>1. 模型训练速度和效果</h3><p>一些测评显示,Amazon SageMaker 在模型训练方面表现出色。其支持分布式训练,利用弹性计算资源,能够显著缩短训练时间。用户可以选择使用内置算法或自定义脚本,根据实际需求选择合适的训练方式。此外,自动模型调优功能可以帮助用户优化模型性能,提高训练效果。</p><h3>2. 部署和管理的便捷性</h3><p>Amazon SageMaker 提供了简单而强大的模型部署功能。它支持一键式部署,并提供实时和离线推理选项,适用于不同的应用场景。此外,SageMaker Studio 作为一体化的集成开发环境,为用户提供了方便的模型管理和监控工具,使整个部署和管理过程更加便捷。</p><p><img width="723" height="329" src="/img/bVdbDhX" alt="image.png" title="image.png"></p><p><strong>SageMaker pytorch Mnist</strong></p><p>SageMaker 与 Kubeflow 一个区别就在于:</p><p>在 Kubeflow 中,我们可以为管道内各组件挂载相同 PV 卷,使其运行在同一文件系统环境下,或者像 Elyra,为整个 Pipeline 配置一个 Minio 的 Bucket,作为共同的文件系统工作环境;</p><p>在 SageMaker 里,我们会建立一个会话,并设置默认存储桶 Bucket,之后将要用于模型训练的数据集上传至该存储桶中;</p><p>下载、转化并上传数据至 S3</p><p>为当前 SageMaker 会话设置默认 S3 存储桶 URI,创建一个新文件夹 prefix,然后将数据集上传至该文件夹下。</p><pre><code> import sagemaker
sagemaker_session = sagemaker.Session()
bucket = sagemaker_session.default_bucket()
prefix = "sagemaker/DEMO-pytorch-mnist"
role = sagemaker.get_execution_role()
### 下载数据
from torchvision.datasets import MNIST
from torchvision import transforms
MNIST.mirrors = ["https://sagemaker-sample-files.s3.amazonaws.com/datasets/image/MNIST/"]
MNIST(
"data",
download=True,
transform=transforms.Compose(
[transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]
),
)
### 上传数据至 Amazon S3
inputs = sagemaker_session.upload_data(path="data", bucket=bucket, key_prefix=prefix)
print("input spec (in this case, just an S3 path): {}".format(inputs))
</code></pre><h4>训练模型脚本</h4><p>和 Kubeflow 一样,准备一份可以直接运行的训练模型脚本:</p><pre><code>### ------------------------ mnist.py --------------------------
# Based on https://github.com/pytorch/examples/blob/master/mnist/main.py
import argparse
import json
import logging
import os
import sys
import torch
import torch.distributed as dist
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
import torch.utils.data
import torch.utils.data.distributed
from torchvision import datasets, transforms
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler(sys.stdout))
class Net(nn.Module):
def __init__(self):
...
def forward(self, x):
...
def _get_train_data_loader(batch_size, training_dir, is_distributed, **kwargs):
logger.info("Get train data loader")
dataset = datasets.MNIST(
training_dir,
train=True,
transform=transforms.Compose(
[transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]
),
)
train_sampler = (
torch.utils.data.distributed.DistributedSampler(dataset) if is_distributed else None
)
return torch.utils.data.DataLoader(
dataset,
batch_size=batch_size,
shuffle=train_sampler is None,
sampler=train_sampler,
**kwargs
)
def _get_test_data_loader(test_batch_size, training_dir, **kwargs):
logger.info("Get test data loader")
return torch.utils.data.DataLoader(
datasets.MNIST(
training_dir,
train=False,
transform=transforms.Compose(
[transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))]
),
),
batch_size=test_batch_size,
shuffle=True,
**kwargs
)
def _average_gradients(model):
# Gradient averaging.
size = float(dist.get_world_size())
for param in model.parameters():
dist.all_reduce(param.grad.data, op=dist.reduce_op.SUM)
param.grad.data /= size
def train(args):
is_distributed = len(args.hosts) > 1 and args.backend is not None
logger.debug("Distributed training - {}".format(is_distributed))
use_cuda = args.num_gpus > 0
logger.debug("Number of gpus available - {}".format(args.num_gpus))
kwargs = {"num_workers": 1, "pin_memory": True} if use_cuda else {}
device = torch.device("cuda" if use_cuda else "cpu")
if is_distributed:
# Initialize the distributed environment.
world_size = len(args.hosts)
os.environ["WORLD_SIZE"] = str(world_size)
host_rank = args.hosts.index(args.current_host)
os.environ["RANK"] = str(host_rank)
dist.init_process_group(backend=args.backend, rank=host_rank, world_size=world_size)
logger.info(
"Initialized the distributed environment: '{}' backend on {} nodes. ".format(
args.backend, dist.get_world_size()
)
+ "Current host rank is {}. Number of gpus: {}".format(dist.get_rank(), args.num_gpus)
)
# set the seed for generating random numbers
torch.manual_seed(args.seed)
if use_cuda:
torch.cuda.manual_seed(args.seed)
train_loader = _get_train_data_loader(args.batch_size, args.data_dir, is_distributed, **kwargs)
test_loader = _get_test_data_loader(args.test_batch_size, args.data_dir, **kwargs)
logger.debug(
"Processes {}/{} ({:.0f}%) of train data".format(
len(train_loader.sampler),
len(train_loader.dataset),
100.0 * len(train_loader.sampler) / len(train_loader.dataset),
)
)
logger.debug(
"Processes {}/{} ({:.0f}%) of test data".format(
len(test_loader.sampler),
len(test_loader.dataset),
100.0 * len(test_loader.sampler) / len(test_loader.dataset),
)
)
model = Net().to(device)
if is_distributed and use_cuda:
# multi-machine multi-gpu case
model = torch.nn.parallel.DistributedDataParallel(model)
else:
# single-machine multi-gpu case or single-machine or multi-machine cpu case
model = torch.nn.DataParallel(model)
optimizer = optim.SGD(model.parameters(), lr=args.lr, momentum=args.momentum)
for epoch in range(1, args.epochs + 1):
model.train()
for batch_idx, (data, target) in enumerate(train_loader, 1):
data, target = data.to(device), target.to(device)
optimizer.zero_grad()
output = model(data)
loss = F.nll_loss(output, target)
loss.backward()
if is_distributed and not use_cuda:
# average gradients manually for multi-machine cpu case only
_average_gradients(model)
optimizer.step()
if batch_idx % args.log_interval == 0:
logger.info(
"Train Epoch: {} [{}/{} ({:.0f}%)] Loss: {:.6f}".format(
epoch,
batch_idx * len(data),
len(train_loader.sampler),
100.0 * batch_idx / len(train_loader),
loss.item(),
)
)
test(model, test_loader, device)
save_model(model, args.model_dir)
def test(model, test_loader, device):
model.eval()
test_loss = 0
correct = 0
with torch.no_grad():
for data, target in test_loader:
data, target = data.to(device), target.to(device)
output = model(data)
test_loss += F.nll_loss(output, target, size_average=False).item() # sum up batch loss
pred = output.max(1, keepdim=True)[1] # get the index of the max log-probability
correct += pred.eq(target.view_as(pred)).sum().item()
test_loss /= len(test_loader.dataset)
logger.info(
"Test set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n".format(
test_loss, correct, len(test_loader.dataset), 100.0 * correct / len(test_loader.dataset)
)
)
# 当estimator.deploy时,需要显式定义出model_fn方法
def model_fn(model_dir):
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = torch.nn.DataParallel(Net())
with open(os.path.join(model_dir, "model.pth"), "rb") as f:
model.load_state_dict(torch.load(f))
return model.to(device)
# 部署函数的参数允许我们设置将用于端点的实例的数量和类型。这些值不需要与我们训练模型时设置的值相同。我们可以在一组基于 GPU 的实例上训练模型,然后在终端上部署基于CPU的模型实例;但这需要我们确保将模型返回或另存为 CPU 模型
# 因此,建议将模型返回或另存为 CPU 模型
def save_model(model, model_dir):
logger.info("Saving the model.")
path = os.path.join(model_dir, "model.pth")
torch.save(model.cpu().state_dict(), path)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
# 模型训练参数
parser.add_argument(
"--batch-size",
type=int,
default=64,
metavar="N",
help="input batch size for training (default: 64)",
)
parser.add_argument(
"--test-batch-size",
type=int,
default=1000,
metavar="N",
help="input batch size for testing (default: 1000)",
)
parser.add_argument(
"--epochs",
type=int,
default=10,
metavar="N",
help="number of epochs to train (default: 10)",
)
parser.add_argument(
"--lr", type=float, default=0.01, metavar="LR", help="learning rate (default: 0.01)"
)
parser.add_argument(
"--momentum", type=float, default=0.5, metavar="M", help="SGD momentum (default: 0.5)"
)
parser.add_argument("--seed", type=int, default=1, metavar="S", help="random seed (default: 1)")
parser.add_argument(
"--log-interval",
type=int,
default=100,
metavar="N",
help="how many batches to wait before logging training status",
)
parser.add_argument(
"--backend",
type=str,
default=None,
help="backend for distributed training (tcp, gloo on cpu and gloo, nccl on gpu)",
)
# 与 SageMaker 相关的环境参数
parser.add_argument("--hosts", type=list, default=json.loads(os.environ["SM_HOSTS"]))
parser.add_argument("--current-host", type=str, default=os.environ["SM_CURRENT_HOST"])
parser.add_argument("--model-dir", type=str, default=os.environ["SM_MODEL_DIR"])
parser.add_argument("--data-dir", type=str, default=os.environ["SM_CHANNEL_TRAINING"])
parser.add_argument("--num-gpus", type=int, default=os.environ["SM_NUM_GPUS"])
train(parser.parse_args())
</code></pre><p>但这里,我们还需要通过访问环境变量获取部分有关训练环境的属性:</p><ul><li><strong>SM_HOSTS</strong>: 包含所有主机的 JSON 编码列表;在 Pytorch 中,该列表长度等于 WORLD_SIZE;</li><li><strong>SM_CURRENT_HOST</strong>: 当前容器名称;在 Pytorch 中,该容器序号等于 RANK;</li><li><strong>SM_MODEL_DIR</strong>: 模型的保存路径;该模型之后将上传至 S3;</li><li><strong>SM_NUM_GOUS</strong>: 当前容器可用的 GPU 数;</li></ul><p>注: Pytorch 分布式训练时,dist.init_process_group(backend, rank, world_size),需要用到 WORLD_SIZE、RANK。</p><p>若在调用 PyTorch Estimator 的 fit() 方法时,使用了名为 training 的输入通道,则按照以下格式设置 <strong>SM_CHANNEL_[channel_name]</strong>:</p><ul><li><strong>SM_CHANNEL_TRAINING</strong>: 输入通道 training 中数据的存储路径;</li></ul><p>该训练脚本从输入通道 training 的指定路径下加载数据,使用超参数配置训练,训练模型,并将模型保存至 model_dir,以便稍后托管。超参数作为参数传递给脚本,可以使用 argparse.ArgumentParser 实例进行检索。</p><p>在 SageMaker 中训练</p><pre><code>from sagemaker.pytorch import PyTorch
estimator = PyTorch(
entry_point="mnist.py",
role=role,
py_version="py38",
framework_version="1.11.0",
instance_count=2,
instance_type="ml.c5.2xlarge",
hyperparameters={"epochs": 1, "backend": "gloo"},
)
estimator.fit({"training": inputs})
</code></pre><p>sagemaker.pytorch.estimator.PyTorch 是 sagemaker 针对 Pytorch 开发的 Estimator,包含以下主要参数:</p><ul><li><strong>entry_point</strong>: 训练脚本的执行入口;</li><li><strong>py_version、framework_version</strong>: python 及 pytorch 的版本;SageMaker 将分配满足该版本要求的计算资源;</li><li><strong>instance_count、instance_type</strong>: 计算资源的数量、类型;</li><li><strong>hyperparameters</strong>: 训练脚本的超参数;</li><li><strong>image_uri</strong>: 若指定,Estimator 将使用此 Image 作为训练和部署的运行环境,而 py_version、framework_version 将失效;image_uri 必须是 ECR url 或 dockerhub image;</li></ul><h4>部署并测试该模型</h4><p>mnist.py 中,model_fn 方法需要由我们显式定义出来;而 input_fn, predict_fn, output_fn 和 transform_fm 已经默认定义在 sagemaker-pytorch-containers 中。</p><pre><code>### 部署该 Predictor
predictor = estimator.deploy(initial_instance_count=1, instance_type="ml.m4.xlarge")
### 生成测试数据
import gzip
import numpy as np
import random
import os
data_dir = "data/MNIST/raw"
with gzip.open(os.path.join(data_dir, "t10k-images-idx3-ubyte.gz"), "rb") as f:
images = np.frombuffer(f.read(), np.uint8, offset=16).reshape(-1, 28, 28).astype(np.float32)
mask = random.sample(range(len(images)), 16) # randomly select some of the test images
mask = np.array(mask, dtype=np.int)
data = images[mask]
### 测试该Predictor
response = predictor.predict(np.expand_dims(data, axis=1))
print("Raw prediction result:")
print(response)
print()
labeled_predictions = list(zip(range(10), response[0]))
print("Labeled predictions: ")
print(labeled_predictions)
print()
labeled_predictions.sort(key=lambda label_and_prob: 1.0 - label_and_prob[1])
print("Most likely answer: {}".format(labeled_predictions[0]))
### 删除部署端点并释放资源
sagemaker_session.delete_endpoint(endpoint_name=predictor.endpoint_name)
</code></pre><p><img width="723" height="583" src="/img/bVdbDia" alt="image.png" title="image.png"></p><h3>3. 使用 Amazon SageMaker Studio 可提高生产率,这是第一个用于机器学习的完全集成式开发环境 (IDE)</h3><p>Amazon SageMaker Studio 提供了一个基于 Web 的单一视觉界面,您可以在其中执行所有 ML 开发步骤。对于构建、训练和部署模型所需的每个步骤,SageMaker Studio 为您提供了完整的访问、控制权和可见性。您可以快速上传数据、新建笔记本、训练和调试模型、在各个步骤之间来回移动,从而实现在一处调整实验、比较结果,并将模型部署到生产环境中,使您的生产效率大大提高。可以在统一的 SageMaker Studio 可视界面中执行所有的 ML 开发活动,包括笔记本、实验管理、自动模型创建,调试和模型偏差检测。</p><p><img width="723" height="340" src="/img/bVdbDib" alt="image.png" title="image.png"></p><h3>4. 使用 Amazon SageMaker 笔记本加速构建和协作</h3><p>通过管理计算实例来查看、运行或共享笔记本非常繁琐。Amazon SageMaker 笔记本提供了一键式 Jupyter 笔记本,使您能够在几秒钟之内立即开始工作。底层的计算资源具有充分的弹性,因此您可以轻松地调高或调低可用资源,并且后台会自动进行更改,而不会中断您的工作。SageMaker 还支持一键分享笔记本。所有代码依赖项都是自动捕获的,因此您可以与他人轻松协作。他们会得到保存在同一位置的完全相同的笔记本。</p><h3>5. 借助 Amazon SageMaker Autopilot 自动构建、训练和调试完全可视和可控的模型</h3><p>Amazon SageMaker Autopilot 是业界首个自动机器学习工具,实现了 ML 模型的完全控制和可见性。典型的自动化机器学习方法无法让您深入了解用于创建模型的数据或模型创建背后的逻辑。因此,即使是普通的模型,也无法使之进化。另外,由于典型的自动化 ML 解决方案只能提供一个模型供选择,因此您无法灵活地权衡,例如牺牲一些准确性实现较低延迟的预测。</p><p>SageMaker Autopilot 会自动检查原始数据、应用特色处理器、选择最佳算法集、训练和调试多个模型、跟踪其性能,并在随后根据性能对模型进行排名,所有这些仅需几次单击。其结果是,部署性能最佳的模型所花费的时间只有该模型通常所需训练时间的几分之一。模型的创建方式以及内容对您完全可见,并且 SageMaker Autopilot 与 Amazon SageMaker Studio 相集成。在 SageMaker Studio 中,您可以了解多达 50 种由 SageMaker Autopilot 生成的不同模型,轻松地为您的用例选择最佳模型。没有机器学习经验的人可以使用 SageMaker Autopilot 轻松生成模型,而经验丰富的开发人员使用它可以快速开发出基础模型,供团队进一步迭代。</p><h3>6. 使用 Amazon SageMaker Ground Truth 将数据标记成本降低多达 70%</h3><p>成功的机器学习模型是建立在大量高质量训练数据的基础上的。但是,建立这些模型所需的训练数据的创建过程往往非常昂贵、复杂和耗时。Amazon SageMaker Ground Truth 可帮助您快速构建和管理高度准确的训练数据集。通过 Amazon Mechanical Turk,Ground Truth 提供了对标签机的便捷访问,并为它们提供了预构建工作流和接口,用于执行常见的标记任务。您还可以使用自己的标签机,或通过亚马逊云科技 Marketplace 使用 Amazon 推荐的供应商。此外,Ground Truth 还不断学习人类制作的标签,制作高质量的自动注释,显著降低标记成本。</p><h3>7. Amazon SageMaker 支持领先的深度学习框架</h3><p>支持的框架包括:TensorFlow、PyTorch、Apache MXNet、Chainer、Keras、glion、Horovod、Scikit-learn 和 Deep Graph Library。</p><h3>使用体验</h3><p>Amazon SageMaker 在模型部署方面表现卓越,通过多样的部署选项,包括云端和边缘计算,实现了极大的灵活性。一键式部署简化了流程,使用户能够迅速将模型推送到生产环境。支持多模型部署提高了资源利用率,而实时和离线推理选项满足了不同场景的需求。SageMaker Studio 作为集成开发环境提供便捷的模型管理工具,加强了整个部署过程的便捷性。这些特点使 SageMaker 在机器学习模型部署领域脱颖而出,为用户提供了全方位的灵活、简便、适应各种场景的解决方案。</p><h3>总结</h3><p>综合来看,Amazon SageMaker 在机器学习生命周期的各个阶段都提供了强大的功能和灵活性。其性能和便捷性得到了用户的一致好评。然而,一些用户也提到了成本方面的考虑,因此在选择时需要权衡各种因素。总体而言,Amazon SageMaker 在云端机器学习服务中占据着重要地位,为用户提供了一体化的解决方案,有助于简化和优化机器学习工作流程。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=qlQGRS3zHVmPvGY%2F0kxmfA%3D%3D.y2J7FBff2LUGthhachzSuW9punsMEX4yA15ALhKzVEHEWZ9Z4FHXRbuTtq77IOvhnRrO7qQG%2BPXVBhzwUilqYZkWFWj01uihqMxsKR10QS%2B60vuo9VZclKox7ZyHHv7btAzem0dqGVGh9mwemfn%2Fp31WE9%2FjYgssuGaAs7v4aQoMSKpKDdjb0eU6VmNsvQ0o" rel="nofollow">https://dev.amazoncloud.cn/column/article/6589957079476548e3e...</a></p>
Amazon Bedrock 上的新一代 Anthropic 模型 Claude 3
https://segmentfault.com/a/1190000044688622
2024-03-07T07:59:23+08:00
2024-03-07T07:59:23+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>如您所知,Amazon Bedrock 是利用基础模型 (FM) 构建生成式 AI 解决方案的最简单的途径,其中包括使用 Anthropic 的先进模型 Claude。而如今,新一代 Claude 模型已经到来。到目前为止,我已经制作了 3 个单独视频来介绍 Claude 3 的首次发布,但我还打算写一篇简短的相关博文,谈谈我认为开发人员会非常感兴趣的关键信息和相关链接。</p><blockquote><a href="https://link.segmentfault.com/?enc=NtlqLuafkcHkOWUfd8KBrQ%3D%3D.UPq43eYmVkXxzsiDj%2ByK84r5kORS8MvBRWsQcNfZPkhyLNc82pFE8BA5UcS2xBlyEuz3VYDXWWFzautZur3GR%2FFQBJ8zO%2F8a0zle4YNkkKud1v2y4Jqj5UiRXWtfoqmi" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=rIdZ2uJHT%2BRheEEIkHn96A%3D%3D.3LE%2B3zZgYOTsYjOGXCgE2Ih6k5vR4hzsD1mPrkjQiIOpq%2FrWvwA9ppyFBTIZ6BAUljH2I8bp5wJm4zyCvky0UjfymOJ7nDK1B40dvuhj9cHQ01ea8aGTKzmAuzhMOgxVzcbF9ofOumuPfMUiCHLzKA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img width="723" height="137" src="/img/bVdbFy3" alt="image.png" title="image.png"></p><h3>1. 进展飞快</h3><p><a href="https://link.segmentfault.com/?enc=Rc9it8js70HsCkFWi6koRg%3D%3D.2k46hkC2osMhleftsV3kDEjsIG2BHEeA0MbkHoYjG7XEaLHvlH12Q57ktpWgPHQc7mZXbOiarZl1PEyJMQMv%2BAJNl4536XppApHpuKa4hdbBdhiPsbCfVqEUHITzI3Duoa1NTtXn3%2FILSslp62fXtanfmTCud7A6X3ONtj8If1svI3o4Lo9gKTq2ihLlPZRidQRtRsY3be6PtxhQF7vnog%3D%3D" rel="nofollow">官方的亚马逊云科技产品发布博文</a>《开启创新:亚马逊云科技和 Anthropic 共同推动生成式 AI 的进步》切实展现了行业的快速发展。Anthropic 于 2021 年首次通过亚马逊云科技构建解决方案,而 Amazon Bedrock 于 2023 年 9 月全面推出。自此,超过 10,000 名客户开始使用 Amazon Bedrock 构建解决方案,其中许多客户选择了 Claude。</p><h3>2. 应使用哪种模型?具体情况具体分析!</h3><p>关于机器学习和人工智能的许多问题,答案都是“具体情况具体分析”。这个答案可能会让新手开发者有些气馁,但给出这个答案是有原因的:模型的设计、部署和使用场景千差万别,所以对于应使用哪种模型,并没有万金油的答案。在实际应用中,使用 AI/ML 关键在于权衡利弊,着眼于应该使用什么,而不只是可以使用什么。如果您在考虑在 Amazon Bedrock 上使用哪种模型,首先必须了解您有哪些可以选择的模型,这样就更容易决定应该选择哪种模型了。</p><p>因此,Anthropic 推出 Claude 3 的三款新模型而不是单一解决方案,这是完全合理的。这样您就可以根据使用场景,在智能、速度和成本中取舍,选择最适合的模型。</p><p><img width="723" height="334" src="/img/bVdbFy4" alt="image.png" title="image.png"></p><p>那么,对您的使用场景而言,哪种模型“足够好”呢?这取决于您对“足够好”的标准是什么!对于涉及深层推理的复杂任务,您可能需要像 Opus 这样的高级模型。但如果您优先考虑速度和成本,您可能会倾向于选择 Haiku。至于 Sonnet,可以看作是一种“中庸之道”,能够为许多使用场景提供“恰到好处”的智能与速度之间的平衡。</p><h3>3. 多元化的数据输入</h3><p>Anthropic Claude 3 系列的所有 3 种新模型都经过训练,既可以理解结构化数据,也可以理解非结构化数据。虽然乍看之下这可能并不起眼,但这实际上意味着这些模型不仅仅能理解语言,还能接受图像、图表、示意图等作为输入。这极大地拓展了我们解决问题的能力,特别是那些需要整合多种数据来处理的复杂情况,例如,从研究论文中的图片中提取文字,或为多媒体内容生成字幕。</p><h3>4. 基准</h3><p>我知道基准很重要,我也在尽力地将它们融入到我为亚马逊云科技机器学习页面制作的视频中,但要在这么短的视频中有效传达此类信息的确颇具挑战。</p><p>因此,我在下方分享了一些基准(您也可以在<a href="https://link.segmentfault.com/?enc=8KPVzk9p52PjxO9Rtudl%2FA%3D%3D.vllGO%2F%2F3qjXZhgTb70hlX%2FtVHf9NBovZ%2B%2BsAB9Gx0fmtAZK4gdqiez4w2qaEhog%2Fwpc22mcaf1mbDI21tZ2%2Bv94sP3zBNf1ZjYtpw9ovM1lOJJEmz%2BZa8jeI91DtCzlRtJSlNyW%2FRFVdI1%2FloVePkPTK4nBTDxANioq%2Fj%2FkQlmNaYdpt8ZQBrf6UGD442hedG%2FeKV2T%2BEnveB%2BUXnKaYfg%3D%3D" rel="nofollow">亚马逊云科技产品发布博文</a>和 <a href="https://link.segmentfault.com/?enc=qQfaSKOPWMWPlfOeeEs5mg%3D%3D.acIDcyHcMF9tKYZXEPEcNg8nBdHEy4iQPY2Bj8DUV8DgU38qtuF3QGaOCGqaxqrSDmf2MvtOKBmdmBzDuSCHkA%3D%3D" rel="nofollow">Anthropic 产品发布文章</a>中找到)。</p><p><img width="723" height="411" src="/img/bVdbFy5" alt="image.png" title="image.png"></p><h3>5. 通过 JSON 格式输出</h3><p>虽然 Anthropic 的官方发布只是简略提及,但发现这项特性就像是挖掘到了宝藏一样令人兴奋。我在社交媒体上见过很多人千方百计地试图通过基础模型生成 JSON 输出,我觉得有必要在这里特别强调这一点!</p><p>致开发人员的重大好消息:Claude 3 模型擅长生成像 JSON 这样的结构化输出,这对很多人来说都超级有用!</p><h3>6. 如何开始构建</h3><p>Claude 3 Sonnet 现已在 <a href="https://link.segmentfault.com/?enc=8DWtPy711LHsC%2FPR10wrfw%3D%3D.bIRD9Ur1xEgV4SURtiLDmdWGXLRopMx5sc6XjznvFRnrK7DEtek80kCI12sED8qlDRfZnTxNDiAMrnopczHWfQ%3D%3D" rel="nofollow">Amazon Bedrock</a> 上推出,因此您可以立即通过亚马逊云科技使用 <a href="https://link.segmentfault.com/?enc=19j6P5Sh%2FueUy22xETdyUA%3D%3D.GZf4M5522K6%2BZAiuAuE8fSJWwQ0yZrSVw9EMpp9r6wLZQJE29UDKu74U4vuDnj7RYidc5gj4aMIAWY5U68wzDgRmV9KJrKp7QTmXud3uwkI%3D" rel="nofollow">Anthropic</a> 的 Claude 3 系列模型开始构建解决方案了!</p><p>扫描下方二维码填问卷,<a href="https://link.segmentfault.com/?enc=uOqqDCswwcarx9jwrb%2FNmA%3D%3D.SskolIhek%2BdiE1MLLSZP%2BoALWz12O6gxjZPrpQ2Hwh3JhZF8k%2F8nk26TygaCG8lzrbTU5D6WeMloiTDqNe9%2FQN7%2FoTqjd69Uq8%2FK7MmLt%2BqLZRUO2u%2Fj5N6DVg5uXCkw" rel="nofollow">即刻体验基于 Amazon Bedrock 的 Claude 3 模型</a>。</p><p><img width="723" height="251" src="/img/bVdbHxO" alt="image.png" title="image.png"><br><em>Amazon Bedrock 是一项完全托管的服务,可以帮助您轻松访问各种领先的基础模型</em></p><p>如需获取如何在 Amazon Bedrock 中使用 Anthropic 的 Claude 3 Sonnet 开始构建解决方案的完整指南,请访问此<a href="https://link.segmentfault.com/?enc=cAohqhvKmOVcgPAoP7tZ5g%3D%3D.T0lZTwkb2upQvOIXM1KTpy98v7IBAp32M2RqWHv8ZqR3X1qHVaZK0ffQi8BsffGsHl%2FhbyWfZW2%2F%2FeByEMYtdj3T30lGE0YCMM7iV80%2BSbxsQyATPkjA%2BrU7ouli90bru7TAZp4bOJB8hK866nz011LWRRRDeKj9WchCJD1%2FyrgwVaoo51QwJ%2FsAaL40KwkI" rel="nofollow">新闻博客文章</a>。Opus 和 Haiku 将会在不久后推出,敬请关注!</p><p>看到如此多的新进展,我真的非常期待大家所构建的解决方案!如果您希望在未来的视频、文章或教程中看到特定方面的内容,请通过 <a href="https://link.segmentfault.com/?enc=vN3IX7COU9IggsFJaAFu0Q%3D%3D.%2FeuSfKZJyaRZ9KpVhIACAj30upirt81XLmgzCC%2F6t79AjIaXvZaK1qZ9CDaHTfqM" rel="nofollow">LinkedIn</a>、<a href="https://link.segmentfault.com/?enc=3ahSIUbh8KmKxyFvu8FRyg%3D%3D.A7XPg8URvJjnu696SPZoGfui6LOeyqqfiWpRSbDVQjUIXCX3KuAHS2diNSmCBRiU" rel="nofollow">Twitter</a>、<a href="https://link.segmentfault.com/?enc=9EqweR%2BCHulitYrgCp5KcQ%3D%3D.Nk3DAT4T8uzHeWPNUeMYOPGk9DiWz5jvAUPs3zmajqZAKq0jU3iwCrymQ1lsrOQk" rel="nofollow">Instagram</a> 或 <a href="https://link.segmentfault.com/?enc=OYGSYaWrhT8gaF1oyc4KKw%3D%3D.%2FOny0SyieljciHSzwgC9a9iqqZxwaRErfB91rdpiPtN3IBoBL%2FzLIcXFlPL4RSKf" rel="nofollow">TikTok</a> 告诉我。</p><p>相关教程:</p><ul><li><a href="https://link.segmentfault.com/?enc=5MCri9OfYE2%2F3YJ9CPDVYA%3D%3D.N4pWFCA8%2FVylKWgdpRf%2FB1ogw9ckI8M3k4RXbaCd1egiZIosxqD1ds6B0adGYpQ%2B5q6U6lule94o5fyhfOO0oJB3NxcxPwRdYtl2gL0Pxu38SbfHI38tMBt1V2sTBBII" rel="nofollow">如何构建 ChatGPT 驱动的 AI 工具来快速学习技术知识</a></li><li><a href="https://link.segmentfault.com/?enc=%2Fz5%2FS%2FeY5E3CfskrxArOyA%3D%3D.1kG8ltfG2OCHR3Fl%2BSfH0o%2FI%2FHAuR47MkNDIllmPWLh9xiaS4eWb7jUZqZQbC7MXaOWAf13uCV%2FhcDILvM7dmYBIBM6SQYoOunfOrbFxQprWZV4Cv8ofZtIVQ1vtM79id0CV4hGjHD94vhfO5lMUZU4Gdhynj5rj5NpjXp%2BzxT4%3D" rel="nofollow">使用生成式人工智能构建个性化多语言问答知识库</a></li><li><a href="https://link.segmentfault.com/?enc=puxakQ%2BfF1p1nheOtrUKNA%3D%3D.Y2rHCe97vKA%2BWRAUMLxXwWtHqz%2FuOWM%2BEHo1SUzkESKEMuG0XB88ciR52LihVydKxY1qrPvuump%2Fp0b%2BpbnDg7dewEgzqfXKNTEI7WxDvvjs8DMhN2WejeVKHNipD5U%2Bg3BawUjp99FdaErURIR1Pg%3D%3D" rel="nofollow">如何无需编写代码构建股价预测模型</a></li></ul><p>文章来源:<a href="https://link.segmentfault.com/?enc=YJsV3oJGu6XuCRauMb2zIw%3D%3D.bFsIbD0b%2FLGlMaugUVpXgR5s2FNTV3quk9vb0VXU8Df%2BCpz4Nf%2FfmzJD6bifjbb6Xui4quws4lWG4zlAEJ1nl0W7HTW0QB2s2hJqLvdD4HDT12ytAWXH%2BZHhKpgJSrcKy%2FG0ucNE4nZF431LbtIxjznyb01VxWncUkAqn1EgDs9a%2FBRTgsW3M6yUn9NoJxoY" rel="nofollow">https://dev.amazoncloud.cn/column/article/65e84ebfbcd5b6713df...</a></p>
Anthropic Claude 3 Sonnet 基础模型现已登陆 Amazon Bedrock
https://segmentfault.com/a/1190000044688619
2024-03-07T07:53:09+08:00
2024-03-07T07:53:09+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>2023 年 9 月,亚马逊云科技宣布与 <a href="https://link.segmentfault.com/?enc=YVflY13PsQJ2PzadQmmr9g%3D%3D.UUdF9nZh9FY70zSjLrvf532pq8uSTsrHOpl%2Fkd1b1sgZiytyfDMM3SpoFvQQBrtfeeZMw0vh1MyB8nE%2F%2BOmU9DlqQP0PrR3VZJtAM%2FKqPfJEQBwMwObDTXUegqXqFDqTDxat5FeeriNMJPqX2QqkjfNOYJQ1jq0HzohboHr1jEu2fQ5FIlNe82aVcy6d3q%2FD" rel="nofollow">Anthropic 进行战略合作</a>,双方将结合各自在<a href="https://link.segmentfault.com/?enc=fsgDoJm%2BI7WqRkExKfywGA%3D%3D.cWCbMp0ZHqBRI1aT3StR3AVKOXuVMHjex4aOZLxEBQ7PeY0FNglh%2BMEd1Zigz984AsaJyH0D52d7FmTOk%2FCH4w%3D%3D" rel="nofollow">生成式人工智能 (Generative AI)</a> 领域的技术和专长,协作促进<a href="https://link.segmentfault.com/?enc=iLb%2Bdv06tUrJasqd5McGbw%3D%3D.%2FHZ%2FVt4faGWb4S5tGih2WyMw%2FA7uvk3dOYm%2Fl4FvUXZHa93nE0PMmxRHO6rmtJM8cGlSAqoyadpkXzvzIr7TyQ%3D%3D" rel="nofollow">Anthropic Claude 基础模型 </a> (FM) 发展,并向亚马逊云科技客户推出相关模型。现在,我们就可以在 <a href="https://link.segmentfault.com/?enc=J4%2BHnQqCcdq6wIoCAh9O5g%3D%3D.VCn0BUuvjjQrbklzGhSiqYVSUsZgXqkcnHshcjofyoy0u4QNnkaXo8mJyJSvlLa8" rel="nofollow">Amazon Bedrock</a> 中提前使用 Anthropic Claude 模型特有的功能,来改善用户体验,优化业务,加快对生成式 AI 的应用。</p><blockquote><a href="https://link.segmentfault.com/?enc=npY4ld41%2B5FjJTUdcYrkyw%3D%3D.WR7vAuUS4kRfltyuHX1JA65CTHRs40WEGV93RXI7ILKkPsPWfTWwlvJ0ss3O4V1FbbdrAUtwzCZxvtrxTjA9AafLNOXANbDeBmqc%2FjHIZczMXU%2FEDARo4Iwdk1w1SfnJ" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=ynPYDdLuW%2F1LDtsC5oVHYg%3D%3D.qG6eBTSqvlC6uYvwBKgXyaewxjfMOk4SUPQEtLUMJUPWhLCW18YuYTQOEgFGU5cEg4zbiwS%2FEvN89clVL2j0TIEV8EW0e7Tb7YyeFwSvBToY5V4c9Kh6nXxyAPQJk6J4K4HuYiNF92GPIEOBnee8fA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>2023 年 11 月,<a href="https://link.segmentfault.com/?enc=0Qtu0jCvXxMdy%2BMzBodmYg%3D%3D.OuPruWiio4qyZ6mRj%2BlXhibqmKoMvAAMC1dRwj84JP9MkCQFWQd8QwlJSP%2B5ZT%2FupHxlcZl4Sdk4sXi4r9XWgJo1AlgIYXjXvoZqNqG3EvuhYQpFttufB%2FfSmv8ghXmYjenl5oaa6iDg1FCJeo99z5QIP3VzR%2B5Bdlq4ZHeieVg%3D" rel="nofollow">Amazon Bedrock 新增支持 Anthropic Claude 2.1</a>,这个版本提供了企业构建生成式 AI 的关键能力。Claude 2.1 提供的上下文窗口支持高达 20 万个 Token,降低了“幻觉”发生率,提高了长文档处理的准确性,优化了系统提示,并提供函数调用和工作流编排的测试工具使用功能。</p><p>目前,<a href="https://link.segmentfault.com/?enc=1HRM2qRtPZgmHAstPxImBg%3D%3D.%2Ba99uOJ%2F8pUB%2FpI4nmOLhF0hMlH7wrWAJLZmaP3Bw2Df4vUrdqkA%2BmdpJBrCsHTRG4%2BB55o9zo2OTpdfGg3YPA%3D%3D" rel="nofollow">Anthropic 推出了 Claude 3 AI</a> 我们可以结合业务对人工智能水平、速度和成本控制需求,从这个 AI 模型系列中选择适合业务需求的模型。这个系列包括三款模型:Claude 3 Haiku,一款具有迅速响应能力,最快速并且最紧凑的模型;Claude 3 Sonnet,一款平衡了技能与速度的模型;以及 Claude 3 Opus,针对高度复杂任务提供的高智能、高性能模型。</p><p>另外,亚马逊云科技还宣布 Amazon Bedrock 今天上线 Anthropic Claude 3 Sonnet 模型。并且,Claude 3 Opus 和 Claude 3 Haiku 也即将上线。在处理绝大多数工作负载方面,Claude 3 Sonnet 模型的速度是 Claude 2 和 Claude 2.1 的两倍,并且 Claude 3 Sonnet 提供更高的可控制性,以及新增了图像转文本的视觉能力。</p><p>我们可以使用 Amazon Bedrock 上 Claude 3 Sonnet 模型来构建高性价比、高智能、高可靠性、高速度的生成式 AI 应用。登录 <a href="https://link.segmentfault.com/?enc=2EeV%2Fa9%2Fc1OuTBQtXZ8RSQ%3D%3D.4yN1wwyOKwW7ywpC65dEApfNYKVyB7eA1o9huwcVujTnC2YCKjyHBm%2BnAK20ewB6k6hE8fta5Yzayom%2Few0kqg%3D%3D" rel="nofollow">Amazon Bedrock 控制台</a>后,就可以试用 Anthropic 的最新模型 Claude 3 Sonnet。</p><h3>Anthropic Claude 3 Sonnet 简介</h3><p>以下是 Amazon Bedrock 中 Claude 3 Sonnet 模型的一些关键亮点:</p><p><strong>2 倍速度提升</strong>:Claude 3 在速度上有明显提升。在处理绝大多数工作负载方面,它的速度是 Claude 2 和 Claude 2.1 等高性能 Anthropic 模型处理速度的两倍,同时还保持了相同的智能水平。这种速度和技能的结合使得 Claude 3 Sonnet 非常适合用于处理需要快速响应的智能任务,比如知识检索或销售自动化。因此,Claude 3 Sonnet 适用于内容生成、内容分类,数据提取、研究和检索,以及在知识库中进行准确搜索等使用场景。</p><p><strong>高可控性</strong>:增强了AI 系统的可控性。这样,用户更能控制输出内容,提供可预测的、质量更高的结果。同时,大大减少了由于系统的安全防护机制为了防止有害输出而拒绝回答临界问题的可能性。Claude 3 Sonnet 更易于控制,并在 JSON 等主流结构化输出中表现更好,使开发人员能更轻松地构建企业应用和前沿应用。这一特性非常适合某些行业应用,例如<a href="https://link.segmentfault.com/?enc=x6dhgAjP6rvoNfqbB91Mkw%3D%3D.P8SkTOLhLFKp30c4VcaFg9PmWAYX7C5Tgxp4Vg5KGO9U6dfp1GpJR6bdEMRQz5tHDCfTfW2hmlKUtZEWhQpKU8vI8JSFNFaGT4pZndwk72c%3D" rel="nofollow">自动驾驶汽车</a>、<a href="https://link.segmentfault.com/?enc=sE2Wq5vaBIwggAbEz2OQ0Q%3D%3D.akOBGsRoByi1hXoFyAzG%2F7hG%2BX%2By1nAQYxCsYnFMNHA3ILY%2Fl4pwQ5H6mhDvuG2I" rel="nofollow">健康与医疗诊断</a>,以及<a href="https://link.segmentfault.com/?enc=dXtrrbhjs6sj1BhQNlXODQ%3D%3D.7uzOWFGPEomRhlgtaayIglY64OevV4dc1J%2B1Nc0br5BdclxApUhr4ZsQUmHhXbbhsoVsGM82nMY8vUblRilFOA%3D%3D" rel="nofollow">金融服务</a>等数据敏感领域的算法决策。</p><p><strong>图像转文本视觉能力</strong>:Claude 3 提供处理图像并返回文本输出的视觉能力。它在分析和理解图表、图形、技术性图表、报告和其他图像资源方面具有极为强大的能力。Claude 3 Sonnet 具有显著速度优势的同时,还提供与其他具有图像处理功能的顶尖模型相当的性能水平。</p><p><img width="723" height="298" src="/img/bVdbFyg" alt="image.png" title="image.png"></p><p><strong>新增语言支持</strong>:Claude 3 提高了对法语、日语和西班牙语等非英语语言的理解和响应能力。语言覆盖范围的扩展使 Claude 3 Sonnet 更适用于需要跨地理区域和语言使用 AI 应用的跨国公司,以及需要精确翻译服务的企业。Claude 3 Sonnet 在编程开发和数学处理方面也更为强大,这一点从 Anthropic 在小学数学问题(GSM8K 和 Hendrycks)和 Codex (HumanEval) 的处理评估得分可以看出来。</p><p>如果你想了解更多关于 Claude 3 Sonnet 的功能和能力,可以访问 <a href="https://link.segmentfault.com/?enc=DDS9n4Ryv%2FGIQvtnLBRBNg%3D%3D.%2BSxq1H8Kx7hg7NE4HkfBHmUpYlTKWKXBaJgqwyVMSQiNbEZfavDekrPK61O8Twf1zOp4BWFhcx0kmAIKHT9Pkg%3D%3D" rel="nofollow">Amazon Bedrock 上的 Anthropic Claude 模型</a>和亚马逊云科技文档中关于 <a href="https://link.segmentfault.com/?enc=XXzhMLq5Lc5%2BdM%2F4QxYA%2Fg%3D%3D.HrVjvOmHQSt0lcK%2BTk%2BiuoUVVXSrixepwpkNXkV4srs%2BNlPIDHYLMGP5mkfRu7B0c5NtWen80yje%2BKwob6In4YbRqMKNQJDPEWaHikSLVMPIS3al1UCgqe7UeSwLq17aJRPf08e0DPVjCWFSZmvB3g%3D%3D" rel="nofollow">Anthropic Claude 模型</a> 文档。</p><h3>快速开始使用 Amazon Bedrock 中的 Anthropic Claude 3 Sonnet</h3><p>如果你第一次使用 Anthropic 模型,需要先登录 <a href="https://link.segmentfault.com/?enc=dsvrk%2BPEyCcJoSoeOeHPYQ%3D%3D.n0RqlrBxep1jCeOzvzlQfFmtgxKG13bBectLtaOou0UJdFHlnxsBdD2eJ01a7WVpRvIXtpZlwuvFkyNGsebC3g%3D%3D" rel="nofollow">Amazon Bedrock 控制台</a>,并在左下方面板中选择 Model access(模型访问)。申请 Claude 3 Sonnet 访问权限。</p><p><img width="723" height="460" src="/img/bVdbFyh" alt="image.png" title="image.png"></p><p>在控制台中测试 Claude 3 Sonnet 的操作步骤:在左侧导航栏中的 Playgrounds 下选择 Text(文本)或 Chat(聊天)。单击 Select model(选择模型),然后选择 Anthropic 类别,选择 Claude 3 Sonnet 模型。</p><p><img width="723" height="389" src="/img/bVdbFyi" alt="image.png" title="image.png"></p><p>如果你想要测试更多 Claude 提示语示例,可以点击 Load examples(加载示例)。你也可以查看和运行 Claude 3 的特定示例,例如带引用的高级问答、制作设计简报和生成非英语内容。</p><p>点击 View API request(查看 API 请求),然后通过 <a href="https://link.segmentfault.com/?enc=edR8SBZzlK2d3AgT6Bu5cg%3D%3D.Zr0UAEThOQK1jGY4%2BQL3CeyoNahXlcZ73dpoiXqsAxIKbegctJWKXhhFxAxGyqZE" rel="nofollow">Amazon 命令行界面 (Amazon CLI)</a> 和 Amazon SDK 中的示例代码查看如何使用 Claude 3 Sonnet 模型。Amazon CLI 命令示例:</p><pre><code class="Bash">aws bedrock-runtime invoke-model \
--model-id anthropic.claude-3-sonnet-20240229-v1:0 \
--body "{\"messages\":[{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"Write the test case for uploading the image to Amazon S3 bucket\\nCertainly! Here's an example of a test case for uploading an image to an Amazon S3 bucket using a testing framework like JUnit or TestNG for Java:\\n\\n...."}]}],\"anthropic_version\":\"bedrock-2023-05-31\",\"max_tokens\":2000}" \
--cli-binary-format raw-in-base64-out \
--region us-east-1 \
invoke-model-output.txt</code></pre><p>上传一张图片,然后测试图像转文本视觉能力。例如,我上传了这篇博文的封面图片,然后收到了这张图片的详细描述。</p><p><img width="723" height="418" src="/img/bVdbFyj" alt="image.png" title="image.png"></p><p>你可以调用 API 来处理图像,并指定以英语和多种其他语言返回输出文本。</p><pre><code class="JSON">{
"modelId": "anthropic.claude-3-sonnet-v1:0",
"contentType": "application/json",
"accept": "application/json",
"body": {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 1000,
"system": "Please respond only in Spanish.",
"messages": [
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "iVBORw..."
}
},
{
"type": "text",
"text": "What's in this image?"
}
]
}
]
}
}</code></pre><p>在这次合作发布的庆功会上,<a href="https://link.segmentfault.com/?enc=v4wMKheksmZpaG%2FGpfzb9w%3D%3D.MNBT%2FiJaB5ymWyiKxlOpOmckjZzXuKKQ9bJnzUoHHsoOFX4PCGgwguGnBgxD%2FPHDmv92zRKAaQ8vzmLIMaLbUGXWzWt6LrBFQ5zXXh46QSvXLVcBOQENCrNnKYL8%2BNdHG048E%2Fk6vuB25njAjV6F3ALnJlvXwvJ4GcFMsgVSeEnaOyTZ3Vk2l0B4Qoma5xKE3zPTQXWyf2R4WJESU5o5%2BL%2B6otNRU44A%2Fh2yt8%2FwAEO1jIGBgKiDWpzwcFJOo6wg%2Bcw%2FegofgtgLTf5TvkwcwFGeVwPjMWC5J813X70qXQp%2BvSsn91WPYNbYEKYjJL8H9T1TwgexTlewg2xSYg4a0A%3D%3D" rel="nofollow">Neerav Kingsland</a>,Anthropic 全球客户总监,谈到了 Anthropic 和亚马逊云科技合作的意义,他说:</p><blockquote>“Anthropic 的核心是一家研究公司,致力于打造全球最安全的大型语言模型。借助于 Amazon Bedrock,我们得以将这种技术推向全球,同时我们确保以极致安全和保证数据安全的方式进行。”</blockquote><p><strong>点击查看 YouTube 视频</strong>: <a href="https://link.segmentfault.com/?enc=Mf2zYZ7UnYT9xkjvrZhooQ%3D%3D.Y8RarITYLaF2x7tD9U6P8h3qw%2BsQfN4MMKsO%2FBIx1UdJ03woxLheZWKB5wGipq8e" rel="nofollow">Anthropic's Claude on Amazon Bedrock | Amazon Web Services</a></p><h3>现已上线</h3><p>Claude 3 Sonnet 现已在 US East (N. Virginia) 和 US West (Oregon) 地域推出;有关后续推出的地域,可以关注<a href="https://link.segmentfault.com/?enc=klY2m12aPM6KrOvXU%2FilBA%3D%3D.U%2BXABprknCzv72jjLOthlz6P0f2H5Ad8gkLfXoyF7PMTQA5xwwPRxIrTJfYJEWXlTvJu9PykTBpDOlNiFxXUbqGU7lz0dBs3TpZzlC0UvqqvYB7kx0DCx%2Fd0dhdFfmnM" rel="nofollow">完整地域列表</a>。Anthropic Claude 3 Opus 和 Haiku 也即将在 Amazon Bedrock 上推出。</p><p>在计费方法方面,你可以选择按需 (On-Demand) 或批量 (Batch) 模式。这样,你可以根据模型推理和定制的资源使用量进行按量付费,无需长期订阅即可使用基础模型。也可以使用预配吞吐量模式,为特定的基础或自定义模型购买模型单元。计费相关信息,请参阅 <a href="https://link.segmentfault.com/?enc=FlKI20BP7ldm7BkWD8uBYg%3D%3D.Svda4RfWGsUoUGa%2FbT%2BiRwjH5Ov6WBaHI9i%2B3xHn7BkBXSpKriFBomc9XAwefRt0ORH3mr%2B6lHgFZAxPmhisBA%3D%3D" rel="nofollow">Amazon Bedrock 定价</a>。</p><p>您可以现在前往 <a href="https://link.segmentfault.com/?enc=8R9OH2Hlgq51LxO4Adh9Eg%3D%3D.nYwbRRFasbm6euiuHk2I8Eugfu4l2iRwEHeEeVemgHOvVlwYTpxV9HrybIjrZiKodS2S1mojabBE7zNH%2F2R%2F4Q%3D%3D" rel="nofollow">Amazon Bedrock 控制</a>台试用 Anthropic Claude 3 Sonnet 模型。如有遇到任何问题,可以通过<a href="https://link.segmentfault.com/?enc=Vq4C7CJv%2BQaofzvEYGBMnQ%3D%3D.BlSp9djCVQa8hxHqEn7PyAgW0r%2Fe0veoAL2Bj7pDdhkCMQ8hwwwzcR4TSjCdJvTOPSLeN%2FAikIjroeMk4v16mqMAY%2FIseodd7YwGNOdqdag%3D" rel="nofollow">亚马逊云科技 re:Post for Amazon Bedrock</a> 或您联系的亚马逊云科技支持人员向我们反馈意见。</p><p>无需等待,Claude 3 即刻体验!扫描下方二维码<a href="https://link.segmentfault.com/?enc=lFoTxQSRzSvu0wPd7ey0kQ%3D%3D.n7T3lncEOU8SPZ5XQWLYaFJ%2FH%2BI86Q4T7AALEa9TGvo64m2%2BCJ66S9QMA8L%2B8gPV7wCgO1VQiGxf4909ghn4rnQLZZcmrxJb3n8wHUwH8cEVaKQU0TUE9sKv42W7gtSJ" rel="nofollow">填写问卷</a>,<a href="https://link.segmentfault.com/?enc=%2B21J7ld3UTOI3EanO7qjbA%3D%3D.A69gbR88iU6JS8L1UR7H67b3oW1qDzQJAoGV728ExlRBrVcFVyrWYq7wJK93iZEN09ffD2pjS7x6z%2FcJOWzKbT0JYxD3emz0PKgcsxOZ5qBD3S2wWawPtkKONNg9P1mu" rel="nofollow">即刻体验基于 Amazon Bedrock 的 Claude 3 模型</a>。</p><p><img width="723" height="251" src="/img/bVdbHxO" alt="image.png" title="image.png"><br><em>Amazon Bedrock 是一项完全托管的服务,可以帮助您轻松访问各种领先的基础模型</em></p><p>文章来源:<a href="https://link.segmentfault.com/?enc=V5CzNrjQg0pm6brUcTVGUg%3D%3D.NWNcTpkkoYWMZSxkXqOTfr5dZBjrLuXYM3tWa2gy0NYAbJuDkL4vyS6qz3BqfYO8HEXQFSIFffW%2Bwv6cm22XoQwqphf3oULeuWd6Y7kh9W%2FK0ZC4eOVcfTw9YzS8uB4dVjlZRoKSw0V5V6pMrSTVV%2Fp5ZDwRxmZ%2FzHk3dMxJWP51dw5vYTil99oXFKMNfNwD" rel="nofollow">https://dev.amazoncloud.cn/column/article/65e845cb0543436a639...</a></p>
Claude 3 Sonnet 模型现已在亚马逊云科技的 Amazon Bedrock 正式可用!
https://segmentfault.com/a/1190000044685004
2024-03-06T08:44:29+08:00
2024-03-06T08:44:29+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>今天,我们宣布一个激动人心的里程碑:<strong>Anthropic 的 Claude 3 Sonnet 模型现已在亚马逊云科技的 Amazon Bedrock 正式可用。</strong></p><p>下一代 Claude (Claude 3) 的三个模型 Claude 3 Opus、Claude 3 Sonnet 和 Claude 3 Haiku 将陆续登陆 Amazon Bedrock。<strong>Amazon Bedrock 是目前第一个也是唯一一个提供 Claude 3 Sonnet 的托管服务。</strong></p><blockquote><a href="https://link.segmentfault.com/?enc=7BL%2F4q5RWWky3CRZkpgYaA%3D%3D.duBClbB%2FaxhBXEQCLaZroUvwkD9BjLLeVOmOsLAahOg2WZsQQN5QU7Vx88WL8SjbYF%2F5157ZbO9xRRPgRvwcJLTK0JLDtaNZiQucRW2D8Hqs0myzSa0R53ScH%2BBWCk7w" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=vRUQt5giGGMyIxyPvBLblA%3D%3D.JB7vucWqkbsQO4wGL9r%2Bukj2ELwM565zr8qLoxxOKWl9SbEGoitw0b9nZ6HwZYj8vhyWAlanSrOLQM2Z74TwoPQ11M0grReAFJAZ7QA78hgpofGNNFqWXgB9JqsHY8cN3K3cnZfw6P%2Bo2xZ2h2UUNg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>关于 Claude 3 的三个新模型</h3><p>Anthropic 推出了下一代 Claude,针对不同用例进行优化的三种先进模型:Claude 3 Haiku、Claude 3 Sonnet 和 Claude 3 Opus。</p><ul><li><strong>Haiku 是市场上最快且最具成本效益的模型</strong>。它是一种快速紧凑的模型,具有近乎即时的响应能力。</li></ul><p>视频地址:<a href="https://link.segmentfault.com/?enc=jvmo3tP9ldmEjZZItrZTqA%3D%3D.JPHxthCW0u7KA27MZLagmTZsvdEXl6zuABKz2qNHkzPEwHEGDhuyF2vQAMS%2Fa%2BXdb%2FhTqx8geZe0Ei8cTkspWPSeZaohx%2Bz0p5i4w5fKhpQiB6%2BInTgyS2tBL1g4MfyVicMKJs7nAzsCSIWWmlFMcWbx7ZnoFqS3wJ5348PbvnmEZU6XYO3%2FPwBtlWGEUsiNo7Rmu80y5hpUrpfLjPxMuA%3D%3D" rel="nofollow">https://dev-media.amazoncloud.cn/f7607145-c704-48b0-a414-c947...</a></p><ul><li><strong>对于绝大多数工作负载,Sonnet 的速度比 Claude 2 和 Claude 2.1 快 2 倍,且智能水平更高</strong>。它擅长执行需要快速响应的智能任务,例如知识检索或销售自动化。它在智能和速度之间实现了理想的平衡——对于企业用例是尤其重要的品质。</li></ul><p>视频地址:<a href="https://link.segmentfault.com/?enc=%2BfeChRFEAHyCYKPsro1Tpg%3D%3D.bR0Tw5uvOO%2FDq%2FYvDAxe%2Bzrbopzjk1ShzWU9OikcqMrc9rq10Qb2q2OuZia%2F97kzlDceG2Y5XdLM5aOLnFymP1ZHwW5MP0GDdvxt%2BJ8c0VundNFnsxTaGySKfbezABxWXfaG%2FG%2B0ZLLE2SxYgh2%2BXUt7AIG7do%2BdPdU%2F3A1BQvCElIx4g05EQrkmzbqGZUT3ILEDNxbo8EJnWdZM50Y31A%3D%3D" rel="nofollow">https://dev-media.amazoncloud.cn/39024013-86e5-418d-978d-3967...</a></p><ul><li><strong>Opus 是最先进、最强大的基础模型,具有深度推理、高级数学和编码能力,在高度复杂的任务上具有顶级性能</strong>。它可以非常流畅地导航开放式提示和新颖场景,包括任务自动化、假设生成以及图表、图形和预测的分析。</li></ul><p>视频地址:<a href="https://link.segmentfault.com/?enc=1ikoDqOR7Xf%2BXEgBiBZEqw%3D%3D.pzJVFakvBv4Qdvk7snjrk0fCBCj2PKZbd6emcuVEXYf9HuyEZMFEJ4ie%2BTxGOhVpLK6sojdPF0pBDe%2FQSnhw8f2aTEbshsRY5ozXKSdzWSu4lT7s0nvjyn5zDfxLFUT5x6XE1f8mTGZ8W8oaFjAojyMoCOqcJsF%2Flh19mIhOfxbTzUxBTqjHqaa%2BRZ50Jsb8IE%2Fmhqh0URKteg7wMttgDA%3D%3D" rel="nofollow">https://dev-media.amazoncloud.cn/74b849ae-ea59-49d2-9831-9899...</a></p><p>Claude 3 Sonnet 模型现已在 Amazon Bedrock 上实现首发。Anthropic 目前的评估表明,Claude 3 模型系列在数学应用题解决(MATH)和多语言数学(MGSM)基准(目前用于大语言模型的关键基准)方面优于同类模型。</p><h3>Amazon Bedrock 上 Claude 3 模型的三大优势</h3><p><strong>通过 Amazon Bedrock,客户可以轻松使用 Anthropic 的最新模型进行构建</strong>。这不仅包括自然语言模型,还包括扩展的多模式人工智能模型,能够跨文本、图像、图表等进行高级推理。我们的合作已经帮助客户加速了生成式 AI 的采用,并为他们带来了商业价值。</p><p><strong>Claude 3 模型系列可满足各种需求,允许客户选择最适合其特定用例的模型</strong>,这是开发成功的原型和后续生产系统的关键,这些系统可以产生真正的影响——无论是新产品、功能还是新产品提高利润的过程。<strong>Anthropic 和亚马逊云科技将客户需求放在首位,为各种规模的组织提供最重要的服务</strong>:</p><ul><li><strong>性能大幅提升</strong>——由于硬件和软件的优化,Claude 3 模型的实时交互速度显著加快。</li><li><strong>准确性和可靠性</strong>——通过大规模扩展以及新的自我监督技术,上下文中复杂问题的准确性预期提高 2 倍,这意味着人工智能更加有用、安全和诚实。</li><li><strong>简单、安全定制</strong>——定制功能,例如检索增强生成(RAG),可以简化专有数据的训练模型,并构建由不同数据源支持的应用程序,以便客户根据自己的独特需求进行人工智能调整。此外,专有数据永远不会暴露在公共互联网上,永远不会离开亚马逊云科技网络,通过 VPC 安全传输,并在传输和静态时进行加密。</li></ul><p>亚马逊云科技和 Anthropic 不断重申以负责任的方式推进生成式 AI 的承诺。通过不断改进模型能力,致力于人工智能的自愿承诺等框架,我们可以加速这一变革性技术的安全、合乎道德的发展和部署。</p><p>以下是我们的客户在 Amazon Bedrock 上使用 Anthropic 的 Claude 模型的几种方式:</p><ul><li><strong>Lonely Planet</strong></li></ul><p>“我们正在亚马逊云科技上开发生成式 AI 解决方案,设计个性化旅行改变生活的体验。通过与 Claude 在 Amazon Bedrock,我们快速创建了一个可扩展、安全的 AI 平台,可以在几分钟内给出高度准确的旅行建议,行程生成成本降低了近 80%。定制化的旅程、个性化的内容、值得信赖的本地声音——这是《孤独星球》50 年来一直在做的事情。”</p><ul><li><strong>LexisNexis Legal & Professional</strong></li></ul><p>“我们正在与亚马逊云科技和 Anthropic 合作,在 Amazon Bedrock 上托管我们定制经过微调的 Anthropic Claude 模型,在其中嵌入尖端加密、数据隐私和安全 AI 技术。新的 Lexis + AI 平台技术具有对话式搜索、智能法律起草功能。”</p><ul><li><strong>Broadridge</strong></li></ul><p>“Broadridge 致力于自动理解监管报告,为全球金融市场创造更大的透明度。在 Amazon Bedrock 上使用 Claude 模型,报告的处理和总结功能获得更高的准确性。”</p><h3>Claude 3 模型家族的强大功能</h3><ul><li><strong>视觉能力(Vision capabilities)</strong></li></ul><p><strong>Claude 3 模型经过训练,可以理解不同格式的结构化和非结构化数据,不仅是语言,还包括图像、图表、技术示意图等</strong>。这使得企业能够构建集成不同多媒体源并解决真正跨领域问题的生成式 AI 应用程序。例如,制药公司可以查询药物研究论文以及蛋白质结构图,以加速发现。媒体组织可以自动生成图像标题或视频脚本。</p><ul><li><strong>一流的基准(Best-in-class benchmarks)</strong></li></ul><p><strong>Claude 3 在数学问题、编程练习和科学推理等标准化评估方面超越了现有模型</strong>。客户可以使用人工智能驱动的响应,以自动化的方式并高精度地优化制造中特定领域的实验程序,或根据上下文数据审计财务报告。具体来说,Opus 在人工智能系统的大多数常见评估基准上都优于同行,包括本科水平专家知识(MMLU)、研究生水平专家推理(GPQA)、基础数学(GSM8K)等。它对复杂任务表现出高水平的理解力和流畅性,引领通用智能的前沿。</p><p><img width="671" height="580" src="/img/bVdbELZ" alt="image.png" title="image.png"></p><ul><li><strong>减少幻觉(Reduced hallucination)</strong></li></ul><p>企业需要人工智能系统提供预测性、可控的输出来指导自动化流程或客户交互。<strong>Claude 3 模型通过人工智能技术减轻幻觉,这些技术为模型的推理提供了透明度,并提高了准确性</strong>。在困难的开放式问题上,Claude 3 Opus 的准确度预计比 Claude 2.1 提高 2 倍,从而减少了错误回答的可能性。由于企业客户在医疗保健、金融和法律研究等行业都依赖 Claude,因此减少幻觉对于安全和性能至关重要。Claude 3 模型系列为可靠的生成式 AI 输出设立了新标准。</p><p>无需等待,Claude 3 即刻体验!<a href="https://link.segmentfault.com/?enc=bhGSV3aaK3oIHt02JvHQ7g%3D%3D.G9n9yOryEmfIslbKObbhG587ooK1w9k698v7AisEMvdBxVXRLJePmZxTipFmEMDVEqJsBXIO2FDMCt%2F01TUGcVLno6h3xPvK49pa5UEBGb6SxDj5u99XGiQVTGg%2Bo2sw" rel="nofollow">点击这里或扫描二维码</a>,即可即刻体验基于 Amazon Bedrock 的 Claude 3 模型。</p><p><img width="723" height="251" src="/img/bVdbHxO" alt="image.png" title="image.png"><br><em>Amazon Bedrock 是一项完全托管的服务,可以帮助您轻松访问各种领先的基础模型</em></p><p>文章来源:<a href="https://link.segmentfault.com/?enc=lmQu2vfHd%2BRzslMZYq24wQ%3D%3D.c7lU7R6FaKHoe1mI%2BPKOr42nDjcu9JuTYCm4GD7mwSKg335FUusKGZq6EKi2gsVOtINaPGWxP7gkd4Z7tIkI4K0Ij17JlRDoRJUSudtahzwhUFGFWXQmJR7UwG4M2DxYLK73mHYwGMPWgBgTe45MCAKuvPHRKmmhQs4G9pX3EJp3DfuC37lXSnuTRzStU4Xh" rel="nofollow">https://dev.amazoncloud.cn/column/article/65e7b7d1bcd5b6713df...</a></p>
带你全方位体验 Amazon Connect
https://segmentfault.com/a/1190000044681580
2024-03-05T07:53:43+08:00
2024-03-05T07:53:43+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>1.前言</h3><p><img width="501" height="116" src="/img/bVdbCAW" alt="image.png" title="image.png"></p><blockquote>授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在亚马逊云科技开发者社区、 知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道。</blockquote><p>近日亚马逊云科技在拉斯维加斯拉开了年度客户大会-亚马逊云科技 re:Invent 的序幕,推出了一些新的无服务器产品,旨在让管理 Aurora、ElastiCache 和 Redshift 无服务器服务变得更加容易。</p><p>亚马逊云科技 副总裁 Matt Wood 表示,Aurora Serverless 非常适合通过云数据库快速启动和运行,但随着时间的推移,一旦规模达到巨量级,并且要与数千万客户打交道,或数百万条不同的记录,对于客户来说处理这些类型的数据就变得更具挑战性,迫使他们将数据库分成多个部分。</p><blockquote><a href="https://link.segmentfault.com/?enc=OcvWyUb4i8y4HaPglUn2jw%3D%3D.A%2FIDRdoF0fcFZLXmonIKpNJgB2K5AwVPCm9%2FPw3n1kdAiIUENLWco6aCk3HRkOHUwL%2F2uisNcDB9abraF36VU0M78MrX7B2MJxmkfvg0cyEHt0yP9yECHd7yHwAunr8L" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=qqG1ywGE8kuWkXwsVpauqw%3D%3D.VVD%2BB49hsNNsDhne2lmR%2BQDprA3JSStu4c6KW81%2BNO5fwUS3BuS3BwkZ0oa93UtOVUKNs2SlPFWU62EP8X40dFB%2Fgpkpt6TT0NePwzKjr3ivyDAeRRePKbjbprflJgH19uQuB0KS%2BVb4Mns%2B%2BPnIpg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>此次大会,也向我们展示了涉及不同领域的新技术,比如<strong>新一代自研芯片,推出 Amazon Q 重塑未来工作方式 ,Zero-ETL 集成,Amazon Connect 引入生成式人工智能等等。</strong></p><p>在这些技术中,让我尤为关注的是 Amazon Connect。本篇文章我们主要介绍 <strong>Amazon Connect 引入生成式人工智能功能</strong>,带着大家感受 Amazon Connect 为用户带来的便利。</p><h3>2.Amazon Connect 简介</h3><p>亚马逊云科技宣布在其云呼叫中心 Amazon Connect 引入生成式 AI 功能,帮助各种规模的组织都能够以更低的成本提供更好的客户体验。</p><p>在今天快速变化的商业环境中,优秀的客户服务已经成为企业成功的关键因素之一。Amazon Connect 作为一种创新的云基础客户服务解决方案,正引领着这一领域的变革。</p><h4>2.1 Amazon Connect 功能介绍</h4><p>Amazon Connect 是由亚马逊云科技提供的一种云基础的客户服务解决方案,旨在帮助各种规模的企业创建自己的、易于使用、可扩展且可按需使用的联系中心。这个服务的核心在于提供一个强大而灵活的工具集,能够帮助企业设立一个高效、灵活的客户服务体系,提高效率,优化客户体验。</p><p>Amazon Connect 是一个<strong>简单易用、自助式、基于云端</strong>的联络中心服务,让用户以较低的开销带来更加具有吸引力的客户服务体验,有了 Amazon Connect 服务,用户可以在几分钟之内建立并配置好联络中心,自助式的图形界面让您轻松完成联络流设计,并管理代理用户的使用情况。与此同时,Amazon Connect <strong>自动化的工作流程和集成的数据分析工具</strong>使得客户服务团队可以更高效地工作,同时减少错误和重复任务。</p><p>Amazon Connect 不仅仅是一个<strong>工具或服务</strong>,它代表了客户服务领域的一种趋势:向更加<strong>智能化、自动化和客户中心化</strong>的方向发展。随着技术的不断进步,作为一个开发者,非常期待 Amazon Connect 继续引入更多创新功能,帮助企业在竞争激烈的市场中脱颖而出。</p><p><strong>易于设置和管理</strong></p><ul><li><strong>简化的部署</strong>:Amazon Connect 的设置过程非常直观,允许企业快速启动并运行他们的联系中心,而无需预先的技术知识或专门的基础设施。</li><li><strong>可视化联系流编辑器</strong>:用户可以使用拖放界面来设计和管理联系流程,轻松定义客户与中心的互动方式,如 IVR 系统配置和路由决策。</li></ul><p><strong>功能丰富的服务</strong></p><ul><li><strong>应用集成</strong>:可以与现有的 CRM 系统、工作流程管理工具和其他亚马逊云科技服务(比如 Amazon S3, Amazon Kinesis, Amazon Redshift)集成。</li><li><strong>智能自助服务</strong>:使用 Amazon Lex(提供与 Alexa 相同语音识别技术)开发聊天机器人,实现自动化的客户服务。</li></ul><p><strong>可扩展性和按需计费</strong></p><ul><li><strong>弹性扩缩</strong>:无论是季节性高峰期还是业务增长,Amazon Connect 都可以根据需要自动扩展基础设施。</li><li><strong>按使用量计费</strong>:支付方式是基于使用时间和通讯费用,而不是预先购买的软件授权或硬件。</li></ul><p><strong>数据和分析</strong></p><ul><li><strong>实时和历史数据分析</strong>:提供实时监控和历史数据报告,让管理者能够跟踪关键指标、性能和客户体验。</li><li><strong>联系记录</strong>:所有的互动都会被记录和存储在 亚马逊云科技 云中,方便进行后期检索和分析。</li></ul><p><strong>个性化和客户体验</strong></p><ul><li><strong>个性化交互</strong>:可以借助客户数据来个性化服务,如基于用户历史交互来定制服务流程。</li><li><strong>管理客户体验</strong>:通过监测和评估用户与系统的互动,优化客户体验和服务质量。</li></ul><p><strong>安全性和合规性</strong></p><ul><li>亚马逊云科技提供的超高安全标准和符合性,保障联系中心数据的安全,同时遵守行业标准,时刻保障数据安全。</li></ul><h4>2.2 如何看待 Amazon Connect</h4><p>即使在新会发布上,对这一点有明确说明,但是大家对 Amazon Connect 的看法还是有很多不同考虑,包括技术创新、市场影响力、用户体验、成本效益以及对未来的客户服务模式的影响。</p><p><strong>技术创新</strong></p><ul><li><strong>前沿技术的应用</strong>:Amazon Connect 利用了云计算、人工智能和机器学习等先进技术,为用户提供更智能、更灵活的客户服务解决方案。</li><li><strong>易用性与集成性</strong>:提供简单易用的界面和流程设计工具,同时可与多种 亚马逊云科技 服务和第三方应用集成,这体现了技术创新与实用性的结合。</li></ul><p><strong>市场影响力</strong></p><ul><li><strong>对传统联系中心市场的挑战</strong>:Amazon Connect 提供的云基础解决方案对传统的联系中心硬件和软件提供商构成挑战,因为它提供了更灵活、成本更低的选择。</li><li><strong>推动行业变革</strong>:通过其创新的云服务模型,Amazon Connect 可能会推动整个客户服务行业向更加数字化和云端化的方向发展。</li></ul><p><strong>用户体验</strong></p><ul><li><strong>提高客户满意度</strong>:通过个性化服务和智能自助服务选项,Amazon Connect 可以帮助企业提高客户满意度和忠诚度。</li><li><strong>员工体验</strong>:对客户服务代表来说,Amazon Connect 提供的工具和自动化功能可以使他们的工作更高效、更少重复,从而可能提高工作满意度。</li></ul><p><strong>成本效益</strong></p><ul><li><strong>降低运营成本</strong>:由于其云基础和按需计费模式,Amazon Connect 可以帮助企业降低客户服务的运营成本。</li><li><strong>缩短部署时间和成本</strong>:传统的联系中心需要昂贵的前期投资和长时间的部署周期,而 Amazon Connect 的云服务大大减少了这些成本和时间。</li></ul><p><strong>未来的客户服务模式</strong></p><ul><li><strong>推动自助服务和自动化</strong>:随着 AI 和机器学习技术的发展,Amazon Connect 可能会进一步推动客户服务中的自助服务和自动化趋势。</li><li><strong>促进远程工作模式</strong>:作为一个云服务平台,Amazon Connect 使得远程工作成为可能,这与当今世界越来越灵活的工作方式相契合。</li></ul><p>总之,Amazon Connect 在技术创新、市场竞争、用户体验、成本效益以及未来趋势方面都展现了其重要性。但同时,它也面临着市场竞争、技术适应和数据安全等挑战。企业在选择使用 Amazon Connect 时,需要全面评估其优势和潜在的局限性。</p><h3>3.Amazon Connect 核心产品体验</h3><h4>3.1 环境搭建</h4><p>首先打开亚马逊云科技控制台进行搜索 Amazon Connect 产品</p><p><img width="723" height="634" src="/img/bVdbCAX" alt="image.png" title="image.png"></p><p>然后进入到环境初始页面,进行设置身份信息</p><p><img width="723" height="442" src="/img/bVdbCAY" alt="image.png" title="image.png"></p><p>第二步,添加管理员,添加管理员可以对团队成员多权限控制,我这里为了演示,就暂不设定管理员。</p><p><img width="723" height="317" src="/img/bVdbCAZ" alt="image.png" title="image.png"></p><p>点击下一步进入通话设置,这里我们不要管,直接下一步。</p><p><img width="723" height="273" src="/img/bVdbCA0" alt="image.png" title="image.png"></p><p>第四步,进入数据存储设置,主要是是存储用户的一些数据以及系统日志</p><p><img width="723" height="627" src="/img/bVdbCA1" alt="image.png" title="image.png"></p><p>第五步,对以上我们的配置信息进行核验,最后进行创建</p><p><img width="723" height="522" src="/img/bVdbCA2" alt="image.png" title="image.png"></p><p><img width="723" height="582" src="/img/bVdbCA3" alt="image.png" title="image.png"></p><p>最后就开始进行 Connect 的实例创建,大家精心等待几分钟即可。</p><p><img width="723" height="297" src="/img/bVdbCA5" alt="image.png" title="image.png"></p><p>出现以下界面,就说明我们的实例创建成功了。</p><p><img width="723" height="192" src="/img/bVdbCA6" alt="image.png" title="image.png"></p><p>点击右上角开始,我们即可进行配置管理中心。</p><p><img width="723" height="298" src="/img/bVdbCA7" alt="image.png" title="image.png"></p><h4>3.2 进行初始化配置</h4><p>在此之前,我们需要创建一个电话号码方便我们后续测试。</p><p><img width="723" height="242" src="/img/bVdbCA8" alt="image.png" title="image.png"></p><p>国家地区随便选择一个即可。</p><p><img width="723" height="163" src="/img/bVdbCA9" alt="image.png" title="image.png"></p><p>然后点继续,创建完成。</p><p><img width="723" height="183" src="/img/bVdbCBa" alt="image.png" title="image.png"></p><p>创建完成之后,我们可以在主页中进行查看我们刚刚创建好的电话号码。</p><p><img width="723" height="164" src="/img/bVdbCBb" alt="image.png" title="image.png"></p><p><img width="723" height="164" src="/img/bVdbCBb" alt="image.png" title="image.png"></p><p>当然也如果想要创建多个的话,直接点击右上角申请号码,重复之前的步骤即可,我们这里就不过多赘述了。</p><h4>3.3 聊天测试</h4><p>在主页中我们点击测试聊天看看效果</p><p><img width="723" height="80" src="/img/bVdbCBc" alt="image.png" title="image.png"></p><p>点击这个小图标,即可开始进行聊天测试</p><p><img width="723" height="550" src="/img/bVdbCBe" alt="image.png" title="image.png"></p><p>可以看出来,假设我是一名客户,我买了贵公司产品,有问题,就可以在这里随时进行沟通。</p><p><img width="309" height="475" src="/img/bVdbCBf" alt="image.png" title="image.png"></p><p>但是有时候,通过文字的聊天可能并不能表达出我们想要描述的问题,此时我们就可以通过右边的拨号进行电话沟通。</p><p>在右边,点击 Quciker connects 进行快速连接,然后输入你创建的手机号,即可开始通话。</p><p><img width="354" height="521" src="/img/bVdbCBg" alt="image.png" title="image.png"></p><h4>3.4 集成通组件</h4><p>关于 Amazon Connect,不光知识为客户逐一定制的,同时还是面向广大开发者,如何我们需要定做我们自己的企业网站的时候,我们需要把这种组件通信的功能直接集成到我们的网站上,而是再去亚马逊云科技网站进行逐一进行沟通,对于一个企业网站来说,我们看到了你的网站,喜欢上了你的产品,我想要直接和你沟通,而是需要复杂的流程,此时我们 Amazon Connect 的组件化功能派上用场了。</p><p>第一步,打开主页面,查看通信组件</p><p><img width="723" height="83" src="/img/bVdbCBh" alt="image.png" title="image.png"></p><p>第二步,进入之后,添加我们的小组件</p><p><img width="723" height="119" src="/img/bVdbCBi" alt="image.png" title="image.png"></p><p>第三步,开始添加通信小组件</p><p><img width="723" height="458" src="/img/bVdbCBj" alt="image.png" title="image.png"></p><p>第四步,选择好一些必填项目</p><p><img width="723" height="292" src="/img/bVdbCBk" alt="image.png" title="image.png"></p><p>第五步,调节我们按钮的样式,这些都会最终展示到个人网站中,大家可以随意发挥,我这里就选择默认了</p><p><img width="723" height="376" src="/img/bVdbCBl" alt="image.png" title="image.png"></p><p>第六步,同时我们的聊天背景也是可以进行 div 的</p><p><img width="723" height="378" src="/img/bVdbCBm" alt="image.png" title="image.png"></p><p>最后选择一个小组件所需要的域即可完成</p><p><img width="723" height="262" src="/img/bVdbCBn" alt="image.png" title="image.png"></p><p>在完成界面,可以看到我们的小组件 Script 脚本,我们可以把这个脚本直接放到我们的网站上即可显示出来。</p><p><img width="723" height="485" src="/img/bVdbCBo" alt="image.png" title="image.png"></p><p>最后,为了演示效果,我把这个脚本放在 HTML 页面中。</p><p>我这里新建 test.html,然后写一个简单的样式,最后把 script 脚本放进去,打开浏览器便可以看到我们的效果了。</p><p><img width="723" height="248" src="/img/bVdbCBp" alt="image.png" title="image.png"></p><h4>3.5 集成队列</h4><p>为了加大我们同时访问的次数,当然也是为了给我们网站用户更好的体验,我们这里还可以集成队列功能,让用户进行快速连接。</p><p>第一步,打开我们的主页面,选择队列,然后进去队列配置一些详细信息。</p><p><img width="723" height="245" src="/img/bVdbCBq" alt="image.png" title="image.png"></p><p>第二步,添加出站呼叫放 ID 号码</p><p><img width="723" height="228" src="/img/bVdbCBr" alt="image.png" title="image.png"></p><p>第三步,设置队列中的最大联系人,这里我随便设置了一个数字,大家可以根据自己的实际需求进行设置。</p><p><img width="723" height="190" src="/img/bVdbCBs" alt="image.png" title="image.png"></p><p>在文章最后我还是想谈谈我的看法,生成式 AI 的引入是客户服务领域的一次重大创新。它标志着从传统的人工服务向技术驱动服务的转变,为整个行业树立了新的标杆。但是尽管AI在处理标准化问题上表现出色,但在处理复杂、情感性或非典型问题时可能仍需人工介入。因此,如何平衡人工与AI的结合,是目前组织面临的一个挑战。随着技术的持续进步,未来的客户体验可能会更加依赖于 AI 的智能化水平。这不仅限于响应速度,还包括对客户需求的预测、个性化服务的提供,以及无缝的多渠道整合。随着 AI 技术的不断发展,预计未来的客户服务将进一步向自动化和智能化方向发展。生成式 AI 可能会与其他技术如自然语言处理、机器学习等更深度结合,为客户提供更高层次的服务体验。</p><h3>4.总结</h3><p>以上便是本次对 Amazon Connect 一些核心功能的测评,总的来说,这些核心功能让我们眼前一亮。在大会上,实际上只需点击几下,联络中心领导者就可以利用 Amazon Connect 中生成式 AI 提供的新功能来增强 Amazon Connect 每天处理的超过 1500 万次客户交互。借助这些新功能,联络中心可以持续大规模地提供改进的客户支持。</p><p>除了这些新的生成式 AI 增强功能之外,Amazon Connect 还扩展了全渠道功能,包括对双向 SMS 消息传递的开箱即用支持,以及支持视频的应用和 Web 语音通话。这些新的全渠道通信以及 Amazon Lex、Amazon Q in Connect 和 Amazon Connect 客户档案的生成式 AI 增强功能已全面推出。 Amazon Connect Contact Lens 中的新生成式 AI 功能现已推出预览版!</p><p>自动创建统一的客户档案,以实现个性化的客户体验。客户期望个性化的客户服务体验,这需要联络中心全面了解客户的偏好、购买倾向和互动。为了实现这一目标,联络中心管理员需要通过合并来自数十个应用程序的客户数据来创建统一的客户档案。现在,Amazon Connect 客户档案利用模型来减少提供个性化客户体验所需的时间。</p><p>最后,愿 Amazon Connect 能够推陈出新,为用户提供更加完善、优质、个性化的新体验,为相关领域的技术发展带来新方向,提供新视角!</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=6PUL24xRjkNJtwd1Rh0EWQ%3D%3D.rW8Yb8ocZkfC4RwLmweg1F8GeEd9klEl2hQmq4N0gm7d5uW90cVqO7VvNaKPDSUOlw50r9iCNxuPWQ88KC%2BL0InBTxTsjxlBJyixFbhn%2FAoZO0i2ZW%2FNfv3vaWfrT0ZMygc7zApYIihHZOeagcrmaFWgeqqjIbAeWCBOKuBfIajxJtNL0i8RUAprU9QF2x27" rel="nofollow">https://dev.amazoncloud.cn/column/article/658983db79476548e3e...</a></p>
Amazon Q :企业级的对话智能导航
https://segmentfault.com/a/1190000044678203
2024-03-04T08:43:18+08:00
2024-03-04T08:43:18+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>前言</h3><blockquote>目前市面上的许多 AI 智能助手主要局限于开发者和一般用户的使用,对于企业级开发的支持相对较少。然而,随着时代的发展,针对企业发展的定制化 AI 解决方案变得愈发重要。</blockquote><p><img width="723" height="386" src="/img/bVdbBMc" alt="image.png" title="image.png"></p><blockquote><a href="https://link.segmentfault.com/?enc=T6LbOq2uA0mw1xkWff9XlQ%3D%3D.TNHAcdaIpNCNktAfN6rqo6qxqYIaa5VEa1g%2FZpfoGVgfAzoHC7vBh8atrUhvfQwUJYiqiLsfVrXNxYKskJ%2BJT3Nfpp0HMocVW9qDKmTWQor33ekoyeDTzIuy5lZfdehc" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=iDzSS71chhGYOVz6bYxkoA%3D%3D.iG%2B8xHIw3RKag2gXHQP5RSP3BmOpImBG9aDrafsyUOOcb0q9axUVqvBs9hO1c%2FujWMAjYSki6X%2Bpaw1%2F9YOEZfQnuyfBN9zpcKhFV7Gpxp5nzUdTBFeX%2Fd3bnRFH9HAdI4zpSidqCqd7sZbmQHWC6w%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><strong>文章目录</strong></p><p>一、市面上 AI 助手众多,面向企业级却寥寥无几</p><p>二、专业领域广泛,企业级助手 Amazon Q 发布亮相</p><p>三、满足个性化支持业务需求和开发需要</p><p>四、测试使用指南</p><ol><li>准备工作</li><li>web 端使用体验</li><li>编译器端使用体验</li></ol><p>五、未来构想和总结</p><h3>一、市面上 AI 助手众多,面向企业级却寥寥无几</h3><p>当前,企业在数字化转型的浪潮中迫切需要更为强大和专业的 AI 助手,以满足日益复杂的商业环境和行业要求。然而,令人遗憾的是,大多数企业级 AI 助手的功能和性能相对匮乏,难以胜任企业的多样化任务。</p><p><img width="723" height="311" src="/img/bVdbBMl" alt="image.png" title="image.png"></p><p>相较于一般普通 AI 助手,企业级 AI 助手在设计和开发上更应该关注复杂的业务场景和特殊需求。传统 AI 助手通常更注重满足个人用户的日常需求,而对于企业级应用,其特定性和复杂性往往被较为通用的解决方案所忽视。</p><p>这种状况给企业在智能化过程中带来了一系列挑战。缺乏专门满足企业需求的智能工具,企业难以实现高效的业务流程优化、数据管理和决策支持。在竞争激烈的市场中,这成为制约企业创新和发展的一个重要瓶颈。</p><h3>二、专业领域广泛,企业级助手 Amazon Q 发布亮相</h3><p>在最近举行的亚马逊云科技大会上,亚马逊云科技宣布了一项令人振奋的消息——推出了 Amazon Q ,这是一种新型生成式 AI 支持的助手。Amazon Q 专注于满足办公场景的需求,具备专用性,旨在提供更为精准和个性化的服务。</p><p><img width="723" height="294" src="/img/bVdbBMm" alt="image.png" title="image.png"></p><p>在这个背景下,Amazon Q 助手崭露头角。相比其他智能助手,Amazon Q 助手着眼于企业应用,为企业提供了更广泛和深度的开发支持。其独特的功能和定制化选项使得企业能够更好地整合人工智能技术,满足特定行业和业务需求。这种企业级的 AI 助手不仅能够提高开发效率,还能为企业创新和竞争力的提升提供有力支持。</p><h3>三、满足个性化支持业务需求和开发需要</h3><p><img width="723" height="251" src="/img/bVdbBMp" alt="image.png" title="image.png"></p><p>Amazon Q 是一项拥有丰富的亚马逊云科技知识和经验的服务,能够为开发人员和 IT 专业人员提供了多种访问方式,包括亚马逊云科技管理控制台、文档页面、IDE 以及 Slack 等。同时呢它也是模式和最佳实践方面的专家,支持客户轻松探索新服务和功能,更快地构建、了解技术、解决问题和升级应用程序。</p><p><img width="723" height="291" src="/img/bVdbBMr" alt="image.png" title="image.png"></p><p>Amazon Q 的核心功能之一是通过简洁的答案、引文和来源链接帮助用户了解亚马逊云科技功能、研究服务的工作原理,找到构建解决方案的最佳方式,并选择适合使用案例的最佳服务。在 IDE 中使用 Amazon CodeWhisperer 访问 Amazon Q ,它将专业知识与对客户代码的理解相结合,帮助开发人员解释编程逻辑、调试、测试和优化代码。</p><p><img width="723" height="293" src="/img/bVdbBMu" alt="image.png" title="image.png"></p><p>除了以上功能,Amazon Q 还提供了更多的功能,包括更快地开发功能、代码转换等。通过 40 多个内置连接器,Amazon Q 支持与常用数据源的集成,为员工提供量身定制的帮助,解决问题、生成内容并采取与业务相关的操作。</p><p>Amazon Q 具有以下特点和优势:</p><ol><li>使用便捷高效: 开发者可以在亚马逊云科技平台的任何地方使用,帮助开发者能够更轻松、更快速地探索新服务和功能、学习不熟悉的技术以及构建解决方案</li><li>个性化业务支持: Amazon Q 通过 40 多个内置连接器,为企业提供个性化支持,连接公司数据、信息和系统,满足业务用户的个性需求。</li><li>Amazon QuickSight 的整合: Amazon Q 与 Amazon QuickSight 协同工作,通过生成式 BI 功能快速构建引人入胜的视觉效果,提高业务分析师和用户的工作效率。</li><li>客户服务优化: 在 Amazon Connect 中,Amazon Q 通过实时对话和公司内容,为客户服务代理提供智能建议,提升客户服务水平。</li><li>供应链智能化: 即将推出的 Amazon Q 助手在供应链中提供智能答案,帮助库存经理和供需计划人员了解供应链情况,同时优化假设场景。</li></ol><h3>四、测试使用指南</h3><h4>1. 准备工作</h4><p>1.进入(<a href="https://link.segmentfault.com/?enc=rOtKIE8JdOdg1IPkjp2Tqg%3D%3D.2LV7JF9axhHkdqtFONMQiGyJMAT%2BbuChCSqRsu6t2D333uIKixRqaLjPM3Rvd8uipES8mzFQ7VGRyv4WN9hHErO9oprG%2BiPskZZemVPco%2Fl2f3tP7ilExIjiCgDxSDy8ScPf%2FyDeTEmzGd%2B4VjzG%2Bohoy%2BNCyjoYD3Tg3nWWJ9woXB0ozsdvTtieAHLN6V8etThni4IWNJ7r4YgbhP4gW3f5g%2B10bBI89Z8UAaA5WbOVMOsx%2B75F4Bkr1WQ5dr3Gr9KHLAlGP8Griptw%2FOfA2B5qXwGaoecAO3g8lJINFlEt27liRTFc7lQoiv14laH5bCzWPcWaYEHApnN0JlTqg4Y3HwIUCfrMABYWLKSCOzrjAGlO06cXnr3uuqytMfPUk0I%2BIZ12Ib8nuJWCalieIvP%2FP5ueMvc%2FWZK1DOUPR9a3VEpiQGIlp6kPYFOb3fxlGmjKVWASVTfDEOT9d3PUb8WzwiExcjwher5BL545N%2FykgiEVGNLkUNFM1syQSl3SVg3MwPECT87QZEExjsn%2FaWgSTuIvnF4013d1rxsrnzD1a4zLL%2FxQviaug9Tm7UFepkSlYlqRJpVAQ9w8NAHMLw%3D%3D" rel="nofollow">官网地址</a>),进行账号登录,没有账号的朋友需要先完成账号注册。</p><p>2.在控制台搜索栏搜索 Amazon Q 服务( <a href="https://link.segmentfault.com/?enc=ERyrxXcxtWN%2BqKknc6Rd5g%3D%3D.giXml0vq9bZ544UKwZDCo%2FYmbsWNT6I8rwDs1IyDDSGn%2FWgDFscKhsk6lII0pW8nNuW04QQ6pZy35RMYvQTnQew1X8MGW6s1boQ14S9IXW%2FptoBihIAi6xewq%2FqCgUO7" rel="nofollow">Amazon Q 使用文档</a>)</p><p><img width="723" height="228" src="/img/bVdbBMN" alt="image.png" title="image.png"></p><p>3.进入 Amazon Q 服务界面</p><p><img width="723" height="325" src="/img/bVdbBMR" alt="image.png" title="image.png"></p><h4>2. web 端使用体验</h4><p>1.通过点击右边第二个按钮即可唤醒 Amazon Q (注意此处为 Amazon Q 预览版)</p><p><img width="723" height="340" src="/img/bVdbBMV" alt="image.png" title="image.png"></p><p>2.<code>注意</code>: 对于 Amazon Q ,输入的对话字符应该是大小写字母和特殊字符组成,同时还支持编程语言 C++ 和 C#</p><p><img width="723" height="518" src="/img/bVdbBM0" alt="image.png" title="image.png"></p><p>3.可以点击 Get start 对指定用户进行权限预配,注:已经存在的用户</p><p><img width="723" height="256" src="/img/bVdbBM1" alt="image.png" title="image.png"></p><p>4.接下来教你如何创建用户,通过在顶部搜索栏搜索 IAM 服务</p><p><img width="723" height="497" src="/img/bVdbBM2" alt="image.png" title="image.png"></p><p>5.来到 IAM 服务主页,可以对用户组,用户,策略,角色等进行相关设置</p><p><img width="723" height="338" src="/img/bVdbBM5" alt="image.png" title="image.png"></p><p>6.在创建用户之前,可以根据需要创建对应的策略,策略可以分为选择可视化或者 JSON 格式 (根据自己的需要来进行创建策略)</p><p><img width="723" height="394" src="/img/bVdbBM6" alt="image.png" title="image.png"></p><p>7.策略创建完之后,在创建用户的时候,可以添加对应的策略,来赋予用户对应权利</p><p><img width="723" height="398" src="/img/bVdbBM9" alt="image.png" title="image.png"></p><p>8.创建完毕之后,可以查看和登录对应用户账号,之后可以回归到第三步骤,来为指定用户分配权限</p><p><img width="723" height="395" src="/img/bVdbBNc" alt="image.png" title="image.png"></p><h4>3. 编译器端使用体验</h4><p>1.在 vscode 中插件市场中搜索亚马逊云科技,通过安装引入服务</p><p><img width="723" height="337" src="/img/bVdbBNh" alt="image.png" title="image.png"></p><p>2.安装完毕之后可以看到三个服务,点击体验使用</p><p><img width="723" height="380" src="/img/bVdbBNQ" alt="image.png" title="image.png"></p><p>3.体验使用之后,就会通过浏览器打开链接,通过邮箱验证登录,进入 Amazon Q</p><p><img width="723" height="326" src="/img/bVdbBNX" alt="image.png" title="image.png"></p><p>4.验证完毕之后,会显示成功字样</p><p><img width="723" height="339" src="/img/bVdbBOe" alt="image.png" title="image.png"></p><p>5.回到vscode中,我们可以看到 Amazon Q 服务已经开启了</p><p><img width="723" height="381" src="/img/bVdbBOk" alt="image.png" title="image.png"></p><p>6.通过选中代码,点击右键,然后选择 Explain ,解释功能,以更通俗易懂的方式解释你的代码</p><p><img width="723" height="353" src="/img/bVdbBOI" alt="image.png" title="image.png"></p><p>7.通过选中代码,点击右键,然后选择 Refactor 功能,重构提高代码的可读性和效率,以及进行其他一些改进</p><p><img width="727" height="390" src="/img/bVdbBO4" alt="image.png" title="image.png"></p><p>8.通过选中代码,点击右键,然后选择 Fix 功能,修复帮助你调试和修复代码问题</p><p><img width="723" height="350" src="/img/bVdbBPd" alt="image.png" title="image.png"></p><p>9.通过选中代码,点击右键,然后选择 Optimize 功能,优化:增强代码的性能</p><p><img width="723" height="401" src="/img/bVdbBPr" alt="image.png" title="image.png"></p><h3>五、未来构想和总结</h3><p>通过对 Amazon Q 的使用,我深感其整体体验流程非常出色。<strong>其功能性能明显针对企业级应用而设计,能够在 Web 端轻松部署,通过官方文档的指导使得使用更为便捷</strong>。在编译器方面,通过在 vscode 插件市场下载并安装 Amazon Q 助手,不仅能够通过对话解决问题,生成内容和提供策略,还能根据公司信息、代码和系统进行个性化的指导和答案。</p><p><img width="723" height="501" src="/img/bVdbBPt" alt="image.png" title="image.png"></p><p>亚马逊云计算与人工智能技术的融合,充分展现了对于未来云端技术发展的前瞻性思考和实际创新。<strong>Amazon Q 通过提供多种访问方式,包括亚马逊云科技管理控制台、文档页面、IDE 以及 Slack 等,使得用户能够更灵活地利用云服务</strong>。这种多样化的访问途径为开发者提供了更便捷的体验,将云计算的优势最大限度地赋予开发人员,从而加速了新服务和功能的探索,降低了技术学习门槛。</p><p><img width="723" height="285" src="/img/bVdbBPv" alt="image.png" title="image.png"></p><p>通过人工智能技术,Amazon Q 能够为用户提供精准的、个性化的帮助,解决了在复杂亚马逊云科技体系中可能遇到的问题。这种智能化的支持不仅简化了开发过程中的繁琐步骤,还提高了解决问题的效率,为开发者提供了更为高效的工作流程。</p><p><img width="723" height="264" src="/img/bVdbBPw" alt="image.png" title="image.png"></p><p>Amazon Q 与 Amazon QuickSight 、Amazon Connect 和亚马逊云科技供应链的整合展示了未来云端技术的趋势,即在不同服务之间实现更紧密的协同。这种协同不仅使得数据和信息能够得到更全面的综合,还为不同业务场景提供了更智能的解决方案。这预示着未来云计算不仅将关注于提供更多功能性服务,还将强调服务之间的融合和协同,以实现更为全面和智能的应用场景。</p><p>总的来说,亚马逊云计算在 Amazon Q 的技术和实践创新中充分展示了对于云端技术发展的深刻洞察和实际落地。未来,随着人工智能技术的不断进步和云计算的日益成熟,我们可以期待更多这样融合创新的服务,进一步推动云端技术朝着智能化、高效化的方向发展。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=y6erlIJUY3GBOOBs%2F%2FtzqQ%3D%3D.aiWl2xpGbq43ODi077dXFrATFzq5kN7dyW9xKPPkVVnl44tzWsDVezm3mUl0TyOW6nokE0nqZePEl5rwymIVNOJTa1s%2F%2ByDMoCvkI540%2F5Jx1G6Y1s6BgHahfCzZ0%2FB%2B8Elan%2Fpm2YR%2BrXb%2F6eoT3Z125oeSP2wRLIs0tDH1wv%2B7YeMsz5TokrmC3lvlkMyg" rel="nofollow">https://dev.amazoncloud.cn/column/article/658979c85d096603bb1...</a></p>
在探索创意中进一步了解生成式人工智能:PartyRock —— re:Invent 2023 产品测评
https://segmentfault.com/a/1190000044671657
2024-03-01T10:11:22+08:00
2024-03-01T10:11:22+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>写在最前面</p><blockquote>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道</blockquote><p>活动链接:<a href="https://link.segmentfault.com/?enc=iyOAr%2BuXX%2F8647Y30%2FB0Og%3D%3D.OWT7zE%2FnKbfP3cEAwhmMnu4dSDrEAoKXq7FhumwfR7mvn69dNBOZuL4OeQPN0OdhyesrUy2K5ovMNrXsHd%2B0tnYRElgjfnGcJfB9UV59hws%3D" rel="nofollow">https://devpress.csdn.net/awstech/656049279820e81a16d9533b.ht...</a></p><p>本博客将围绕方向一进行创作。</p><blockquote><a href="https://link.segmentfault.com/?enc=LKrA7jvAJfd2T%2BzuGPKImg%3D%3D.OI5gplfSA%2BXKOWA6rldow0VcoUoG6LkUGN5FGUQdQKV6Zi91GjAoUGrT4J20MPgcOMri9%2BCggSxJ%2FyaonVtWKSBAIg7VY2yrqCc4uPRO0%2BW7%2FeGZ4ZloEGlUtwxRMOge" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=QTzPEcDSSIXUMwj55v237w%3D%3D.%2BpzzTYCmOiqn0r%2BBzrm1pX8T9iWgyIfrvWMhz1LZ%2BSsvQs1g5Avbfx8oPTk%2B7aUI%2FBlL44WMegURrT5IYrpg%2FO2v%2B1J9%2BoLONEspO9wtg17R%2ByoovNkt3EfizehXR%2BnxCD9YHCSGKjm9tHM37JrQ7w%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img width="723" height="364" src="/img/bVdbAol" alt="image.png" title="image.png"></p><p>2023年,生成式人工智能(AI)多次成为热点话题。如果想在轻松有趣的环境中探索这一领域,并且想要亲手构建一些游戏,那么 PartyRock 是一个很好的选择!</p><p>这个平台提供了一个独特的实验空间,可以自由地进行尝试,学习生成式 AI 的关键技术和提示工程的精髓,无需编程基础就能开始 AI 创作之旅。</p><p>PartyRock 鼓励用户之间的互动和协作,除了可以在这里轻松构建迷你应用程序,还可以与朋友们分享创作的 app。可以从别人共享的应用程序开始,通过调整和优化,将其变成自己独特的作品,增加了创作的乐趣。</p><p>现在访问 <a href="https://link.segmentfault.com/?enc=2pQZJrfDMfx1oCWtCY3nGg%3D%3D.bcImRfEMXt9vqmQG3vQGF2ImgiKGgsW0RZ9s%2BfJCRUyoGbmc3MMaFTdNoRQIUin0" rel="nofollow">https://partyrock.aws/?trk=cndc-detail</a> 即可快速体验 PartyRock,并且限时免费哦!</p><p>可以输入对想要构建的应用程序的描述,然后使用 PartyRock 的生成式人工智能 LLM 为我们做好构建准备,并且支持二次编辑完善 app。</p><p>PartyRock 不仅提供了一个构建应用的强大平台,而且还为用户带来了前所未有的灵活性和创新可能性。无论是初学者还是经验丰富的开发者,都可以在这个平台上发挥创意,构建属于自己的独特应用程序。</p><p>快来 PartyRock 构建你的第一个应用程序吧!</p><p>欢迎体验我的 app【<a href="https://link.segmentfault.com/?enc=%2BwI0PBsdrBhx5eh8TEyovw%3D%3D.RyvBz8m8OTh3KT%2FUos%2FpyCmc%2BOYup9qoAKJt%2BnqMntepZ%2B5hRiKj%2FAxQtzdWZuSy%2FhpYuWgVy5NhcOWFcnD7JJo3IZlWOk3DjwFQQz4oi8eFjO3SQKvxrPZNN1w3MmAG1sLLhOQtH8bh3sru8fwKlomIcKzRJu2aswi2M%2BM6ORljP1dHNUYqpbPzVUZ49VZr" rel="nofollow">CybersecuritySimulator网络安全威胁的情景模拟</a>】</p><h3>关于 PartyRock 生成 app 相关想法的分享</h3><p>在探索 PartyRock 平台中 app 生成的过程,了解到了 LLM(大型语言模型)的应用+其设计的 prompt 提示词,在实现 app 逻辑方面的独特价值。</p><h4>优点</h4><p>先说优点:PartyRock 借助 LLM 大模型,让我们能够利用其先进的自然语言处理能力,来更快、更高效地解析和生成用户友好的界面和功能。 LLM 的一个显著优势在于,其对语言的深度理解和生成能力,这使得在开发过程中能够轻松地构建出符合用户直觉的对话和指令。 此外,LLM 的多样性和适应性使得 PartyRock 能够在多种不同的应用场景中发挥作用,从而提供了极大的灵活性和扩展性。</p><h4>局限</h4><p>但这也是 PartyRock 的局限所在,LLM 在处理更为复杂的逻辑或特定技术需求时,可能不够精确或深入。</p><p>例如在构建加解密 app 的过程中,发现他对于解密功能就应用的不太好。在解密功能的应用中,这种局限性变得尤为明显。由于加解密过程通常涉及复杂的算法和密钥管理,LLM 可能无法充分理解和实现这些专业化的要求。</p><p>推理在实现类似的特定功能时,特别是涉及高度技术性和精确性要求的场景中,如果提示工程设计的不够精准,LLM 的应用效果大概率会不尽人意。</p><h4>未来展望</h4><p>从我看来,LLM 作为一种强大的工具,它在应用程序开发中的价值不容小觑。</p><p>PartyRock 是一个很好的开始,让我们体验了新时代 LLM 构建 app 的样例。</p><p>虽然 LLM 为应用程序开发带来了前所未有的便利和灵活性,但在涉及特定领域专业知识和复杂逻辑时,它仍需要与传统编程方法和相关逻辑的深度知识相结合。这种结合使用可以帮助克服 LLM 在处理复杂任务时的局限性,从而实现更加精准和高效的应用程序设计。</p><h4>PartyRock 中 app 生成描述的注意事项</h4><p>我一共尝试了两个 app 的生成,其中另一个 app【加解密】不太成功。</p><p>尝试简单的分析了一下,有这么几个影响 LLM(大型语言模型)自动生成有效应用代码的关键因素,大家生成自己的 app 时可以注意一下:</p><ol><li><strong>描述不够详细</strong>:在开发任何软件或应用程序时,清晰、详细的需求说明至关重要。 我的描述虽然涵盖了基本功能,但没有提到一些关键的技术细节,如密钥的生成、存储和管理方式。在加密和解密过程中,密钥扮演着核心角色,它决定了加密的安全性和解密的可行性。不同的加密算法(如对称加密、非对称加密)对密钥的处理方式也不同,这些都需要在需求中明确。</li><li><strong>加密和解密算法的选择</strong>:在应用程序的描述中,没有指定使用哪种加密算法。有多种加密技术,如 AES、RSA、SHA 等,它们各有特点和适用场景。没有具体的算法说明,LLM 难以决定采用哪种加密方法。</li><li><strong>技术实现的复杂性</strong>:即使在清晰的需求指导下,加密/解密应用的实现也涉及到复杂的编程和安全策略。这可能超出了 LLM 直接生成完整、可运行代码的能力范围。</li></ol><p>综上,PartyRock 是一个很好的执行者,但好像不具备思考命令正确与否的能力。这似乎也是 LLM 目前的通病,如果不通过额外的提示工程引导,很少能意识到命令的错误,甚至指出命令的错误。</p><p>在我的实验中,没有生成设想描述功能之外的“自动修正”功能,比如其他的优化方向安全性考虑:在应用描述中,我没有提及如何保证加密过程的安全性,比如防止密钥泄露、保护加密文本免受未授权访问等,对安全设计进行考虑,那么 PartyRock 也不会自行打补丁。</p><p>因此,为了提高 LLM 在此类任务中的效果,可以考虑提供更详细的技术要求。这样, LLM 就能提供更准确的代码生成或设计建议。</p><h3>关于 PartyRock</h3><p>PartyRock 是一个用户友好的平台,让你在享受轻松有趣的体验的同时,深入了解生成式人工智能。无需任何编程技能或创建特定的亚马逊云科技账户,就可以在 PartyRock 上进行实验,详细了解生成式人工智能,学习提示工程的精髓,并构建并分享迷你应用程序。</p><p>也可以从现有的共享应用程序模板开始,通过简单的调整和个性化设置,快速构建并增强自己的应用。</p><h4>进入 PartyRock</h4><p>首先,访问 <a href="https://link.segmentfault.com/?enc=HBZnP6ZfPu8zDJYzXLrT5w%3D%3D.AUGgFMVod8L191Jv%2B5Wfd7EgztPbTkVMMXnwzs6aGlhdEegDn1Jn8LA0LY6kpp3t" rel="nofollow">https://partyrock.aws/?trk=cndc-detail</a></p><p><img width="723" height="437" src="/img/bVdbAoq" alt="image.png" title="image.png"></p><p>点击登录,使用 Apple、Amazon 或 Google 账户登录。</p><p><img width="723" height="437" src="/img/bVdbAor" alt="image.png" title="image.png"></p><p>经过身份验证后,就进入了 PartyRock 的首页。</p><p>可以查看一些示例应用程序,也可以单击构建自己的应用程序开始操作。</p><h4>构建应用 app</h4><p>在这篇文章中,我将展示如何使用 PartyRock 构建应用程序。只需要简单描述想要创建的应用类型,PartyRock 的生成式人工智能技术就能帮助准备好基础框架。</p><p>当然,如果想要更深入地了解和掌握,也可以尝试手动构建每个小部件。感兴趣的朋友可以自行尝试 ~</p><p><img width="715" height="409" src="/img/bVdbAos" alt="image.png" title="image.png"></p><h3>一个成功的 app:CybersecuritySimulator 网络安全威胁的情景模拟</h3><p>接续前文对 PartyRock 平台的介绍,接下来我们将探索具体如何构建一个app。</p><h4>构建应用</h4><p>本文设计的 app 主题为:专注于网络安全教育的应用程序 CybersecuritySimulator,希望通过这个应用提供基于真实世界的网络安全威胁情景,让用户在模拟环境中学习和应对网络攻击。</p><p>然后,我们对应用 app 的预期功能进行梳理,以输入到 PartyRock 中,让其帮助准备好基础框架。</p><h4>核心功能</h4><p>[app 描述]互动剧本:设计一系列基于真实世界网络安全威胁的情景模拟。模拟一次网络攻击,让用户选择如何应对。</p><ul><li><strong>交互场景</strong>:用户将以文本冒险游戏的形式面对各种网络安全挑战。场景包括检测钓鱼电子邮件、保护弱密码,以及响应勒索软件攻击。</li><li><strong>教育反馈</strong>:在每个决定之后,LLM 都会提供反馈,解释为什么该选择在网络安全实践方面是好是坏。这将把每个场景变成一个学习机会。</li><li><strong>渐进式难度</strong>:随着用户的进步,挑战会变得越来越难,引入更复杂的网络安全概念。</li></ul><p>一般提示工程输入英文时会有更佳的理解和表现,因此我们将上述功能转换为英文,并输入到 PartyRock 的 App bulider 中。</p><p><strong>Core Functionality</strong></p><ul><li>Interactive Scenarios: Users are presented with various cybersecurity challenges in the form of a text-based adventure game. Scenarios can range from detecting phishing emails, securing a weak password, to responding to a ransomware attack.</li><li>Educational Feedback: After each decision, the LLM provides feedback explaining why the choice was good or bad in terms of cybersecurity practices. This turns each scenario into a learning opportunity.</li><li>Progressive Difficulty: The challenges become progressively harder, introducing more complex cybersecurity concepts as the user advances.</li></ul><p><img width="718" height="405" src="/img/bVdbAot" alt="image.png" title="image.png"></p><h4>测试应用</h4><p>让我们来看看 PartyRock 能否提供帮助。</p><p>输入提示并单击生成应用程序。</p><blockquote>这个应用程序在几秒钟内就已准备就绪,超级快!</blockquote><p>然后输入一些内容,了解输出是否能够满足我们的需求:</p><p><img width="723" height="1156" src="/img/bVdbAou" alt="image.png" title="image.png"></p><p>看起来不错!</p><p>这里可以点击 edit,二次编辑该应用</p><p><img width="723" height="312" src="/img/bVdbAov" alt="image.png" title="image.png"></p><p>这里可以看到,主要是应用 LLM 模型,并设计 prompt 提示词来完成 app 的各个应用逻辑的</p><p>优点在于,借助 LLM 大模型,我们能够利用其先进的自然语言处理能力来更快、更高效地解析和生成用户友好的界面和功能。 LLM 的一个显著优势在于,其对语言的深度理解和生成能力,这使得在开发过程中能够轻松地构建出符合用户直觉的对话和指令。 此外,LLM 的多样性和适应性使得它能够在多种不同的应用场景中发挥作用,从而提供了极大的灵活性和扩展性。</p><p>这也是他的局限所在,例如在下一个加解密的 app 中,他对于解密功能就应用的不太好。LLM 在处理更为复杂的逻辑或特定技术需求时,可能不够精确或深入。在解密功能的应用中,这种局限性变得尤为明显。</p><p>由于加解密过程通常涉及复杂的算法和密钥管理,LLM 可能无法充分理解和实现这些专业化的要求。这可能导致在实现特定功能,特别是涉及高度技术性和精确性要求的场景中,LLM 的应用效果不尽人意。</p><p>从我的观点来看,虽然 LLM 为应用程序开发带来了前所未有的便利和灵活性,但在涉及特定领域专业知识和复杂逻辑时,它仍需要与传统编程方法和相关逻辑的深度知识相结合。这种结合使用可以帮助克服 LLM 在处理复杂任务时的局限性,从而实现更加精准和高效的应用程序设计。</p><p>让我们来拆分看看它是如何工作的。</p><p><strong>功能1:用户欢迎</strong></p><p>输入用户名后,生成每个用户专属的欢迎词</p><p>输出:Hello there! Welcome, it’s nice to meet you. I’m Claude, an AI assistant created by Anthropic. How may I be of assistance today? Please feel free to ask me any questions you have, and I’ll try my best to help.</p><p><strong>功能2:网络安全威胁场景</strong></p><p>测试测试网络安全威胁场景这个功能实际交互能力。可以看到,LLM 给出很详细的分析,并且是结合实际的。</p><p><img width="723" height="286" src="/img/bVdbAow" alt="image.png" title="image.png"></p><p>那么自动生成的 prompt 提示词是如何设计的呢?点击查看:</p><p>You receive an email claiming to be from your bank. It says your account has been compromised and asks you to click a link to reset your password. What do you do?</p><p>这是一段很聪明并且简短的提示工程设计,PartyRock 一定程度上相当智能!</p><p><img width="723" height="396" src="/img/bVdbAoy" alt="image.png" title="image.png"></p><p><strong>功能3:教育反馈、情景回顾</strong></p><p>下面让我们来看看第三个功能,对上述对话的情景回顾,从而达到“复习”所学到的如何正确面对网络安全威胁情形的做法。</p><p>程序的回复如图所示。总分的结构,清晰明了的说明。</p><p><img width="723" height="282" src="/img/bVdbAoz" alt="image.png" title="image.png"></p><p>查看 prompt 提示词设计:</p><p>Provide 3 key takeaways from the phishing attack scenario the user just experienced, referencing their choices and outcomes in the [Phishing Simulation] chat.</p><p><strong>测试小结</strong></p><p>针对 PartyRock 自动生成的 “CybersecuritySimulator” 网络安全威胁情景模拟的提示工程设计,我认为它有几个显著的优点:</p><ol><li><strong>实用性与教育价值</strong>:这个设计通过模拟真实世界的网络安全威胁,提供了一个实用的教育工具。用户在面对各种挑战时不仅能学习到网络安全的基本知识,还能了解更高级的概念。这种通过实践学习的方法,比传统的教学方式更有效,能更好地吸引用户的注意力并加深理解。</li><li><strong>互动性与参与感</strong> :将网络安全教育融入到文本冒险游戏的形式中,大大提高了用户的参与感和兴趣。通过让用户在不同场景中做出选择,并立即得到反馈,这种互动性增强了学习体验的动态性和吸引力。</li><li><strong>渐进式难度设计</strong> :难度逐步提升的设计理念确保了用户可以从基础知识开始,逐渐深入到更复杂的网络安全概念。这样的结构既适合初学者,也能满足有一定基础的用户继续提升。渐进式的难度设置有助于用户按照自己的学习节奏逐步提高,而不会感到过于困难或失去兴趣。</li></ol><p>总体而言,这个提示工程的设计具有教育价值、互动性和适应性,适合用于提升公众的网络安全意识和应对能力。</p><p>可以看出,PartyRock 对我们之前提供的材料和核心功能的理解是非常贴切和到位的,可以很好的辅助构建属于自己的小应用程序。</p><h4>应用公开并分享</h4><p>对应用程序感到满意后,我们就可以将其公开并分享:</p><p><img width="723" height="102" src="/img/bVdbAoB" alt="image.png" title="image.png"></p><p>欢迎体验这个应用 <a href="https://link.segmentfault.com/?enc=5NtBq49u85xSpczZbRNwYw%3D%3D.ap6cQk5ut8%2BExoAAUJLu2LH%2B8qRtoWeblMmewjlsKXe9nl1kagz6wExGrdplQL1irkgNekLMq3x%2B9FZYAe0p7EusT4NQbAqmfpHOdNRvrS3UJudG34i7U4XW6lsorUHg0x2jOvpX1TknRiQAttmNMdILGB9XK6I%2BeywVAQmcicDWhlftrhuCMhPGt5EyK0Jh" rel="nofollow">https://partyrock.aws/u/yu222/WxSDoDBUs/CybersecuritySimulato...</a></p><p>也可以登录并单击调整,在此基础上自行开发更好的应用程序。</p><p><img width="723" height="376" src="/img/bVdbAoC" alt="image.png" title="image.png"></p><h3>另一个不太成功的 app:加解密</h3><p>上一个应用中,我们成功构建了一个比较理想的应用程序。但这是我经过多番磨合后,成功“摸清” PartyRock 的小九九,与他一起更默契配合后谱写的一曲美妙的乐章。</p><p>在熟悉 PartyRock 中,我们弹出了不少“杂音”——加解密应用程序,就是其中的一个。</p><p>下面我们来一起分析一下,是哪些因素导致“杂音”产生的吧 ~</p><h4>构建应用</h4><p>该应用程序是一个面向安全的应用程序,具有友好的用户界面,旨在执行三个主要功能:</p><ol><li><strong>加密</strong>:用户可以输入明文,应用程序将对其进行加密。然后,该应用程序将显示加密的文本以及使用的加密方法。并给出了加密过程的简单说明和示意图。</li><li><strong>解密</strong>:该应用程序允许解密加密的文本,将其返回原始的明文形式。重要的是,应用程序支持将文本解密回原始加密的明文的能力,以确保数据的完整性和一致性。</li><li><strong>复制功能</strong>:该应用程序的一个关键功能是“复制”按钮,用户只需单击即可轻松复制加密或解密的文本。此功能旨在方便使用,允许用户快速有效地处理加密或解密的数据。</li></ol><p>总的来说,这个应用程序旨在为需要加密或解密文本的用户提供一个直接而强大的工具,重点是可用性和对加密和解密过程的理解。</p><p>同样,将其转化为英文输入,辅助更好的理解我们的表达。</p><p>The app is a security-oriented application with a user-friendly interface, designed to execute three main functions:</p><ol><li><strong>Encryption</strong>: Users can input plaintext which the app will encrypt. The app then displays the encrypted text along with the encryption method used. It also provides a simple explanation and a schematic illustration of the encryption process.</li><li><strong>Decryption</strong>: The app allows for the decryption of encrypted text, returning it to its original plaintext form. It’s important that the app supports the ability to decrypt text back to the original plaintext that was encrypted, ensuring data integrity and consistency.</li><li><strong>Copy Functionality</strong>: A key feature of the app is a “copy” button, which enables users to easily copy either the encrypted or decrypted text with a single click. This functionality is designed for ease of use, allowing users to quickly and efficiently handle encrypted or decrypted data.</li></ol><p>Overall, this app aims to provide a straightforward yet powerful tool for users needing to encrypt or decrypt text, with an emphasis on usability and understanding of the encryption and decryption processes.</p><h4>测试应用</h4><p><strong>功能1:输入明文、生成密钥、一键复制</strong></p><ul><li>明文:The Encryption Courier app created by PartyRock is really cool!</li><li>密钥:Gsv Hmxirkgvnm Xnzivv wrr xvsfgsr yb RfkgblVnxp vh vsfqqb xnnq!</li><li>一键复制 Here is the plaintext encrypted with AES encryption:(下面是使用 AES 加密后的明文:) Gsv Hmxirkgvnm Xnzivv wrr xvsfgsr yb RfkgblVnxp vh vsfqqb xnnq!</li></ul><p><img width="723" height="329" src="/img/bVdbAoG" alt="image.png" title="image.png"></p><p>这里我们尝试应用密码学知识,对他生成密码的过程进行解密,辅助理解应用功能的底层逻辑。</p><p>下面是分析过程:(不感兴趣的 uu 可以跳过~)</p><p>加密信息 "Gsv Hmxirkgvnm Xnzivv wrr xvsfgsr yb RfkgblVnxp vh vsfqqb xnnq!" 看起来像是使用了凯撒密码。这是一种替换密码,其中明文中的每个字母都会按照字母表向下或向上移动固定数量的位置。</p><p>为了验证这一点并确定使用了哪种位移,我们可以尝试对给定的密文进行解码,直到我们得到明文 The Encryption Courier app created by PartyRock is really cool!</p><p>让我们解码这条信息,以确认编码策略并识别使用的位移。</p><p>事实证明,使用凯撒密码正确解码你的信息需要移位25位。解码后的消息为 “Htw Inyjslhwon Yoajww xss ywtghts zc SglhcmWoyq wi wtgrrc yoor!”</p><p>然而,这与预期的明文 “the Encryption Courier app created by PartyRock is really cool!” 并不匹配。看起来编码策略可能不是简单的 Caesar 密码,或者它涉及到一种不同类型的替换或变换。</p><p><strong>功能2:加密</strong></p><p>在加密过程的简单说明和示意图中,有很好的结果展示。这赖于 LLM 强大的知识库,能够很好的对加解密的过程进行理解,并且转换输出。</p><p><img width="723" height="415" src="/img/bVdbAoH" alt="image.png" title="image.png"></p><p><strong>功能3:解密</strong></p><p>可以在图中看到程序输出的解密结果。</p><p>整体来说,解密的结果还行,但部分语句存在差错,可能是由于输入和输出是两个 LLM 导致的。</p><p><img width="723" height="931" src="/img/bVdbAoI" alt="image.png" title="image.png"></p><p><strong>测试小结</strong></p><p>这个应用的构建测试,对于解密功能就应用的不太好。展现了 PartyRock 的局限所在: LLM 在处理更为复杂的逻辑或特定技术需求时,可能不够精确或深入。在解密功能的应用中,这种局限性变得尤为明显。</p><p>但这似乎不难理解,我们对原因进行分析:由于加解密过程通常涉及复杂的算法和密钥管理,LLM 可能无法充分理解和实现这些专业化的要求。这可能导致在实现特定功能,特别是涉及高度技术性和精确性要求的场景中,LLM 的应用效果不尽人意。</p><p>从我的观点来看,虽然 LLM 为应用程序开发带来了前所未有的便利和灵活性,但在涉及特定领域专业知识和复杂逻辑时,它仍需要与传统编程方法和相关逻辑的深度知识相结合。这种结合使用可以帮助克服 LLM 在处理复杂任务时的局限性,从而实现更加精准和高效的应用程序设计。</p><h3>进阶:使用 PartyRock 和 Amazon Bedrock 构建 AI 应用程序</h3><p>参考:<a href="https://link.segmentfault.com/?enc=24C8CwLjk35lCUyTIyaesA%3D%3D.j4%2FzlZX0Byn0lJ%2BjKFFqlnuUN14yhj%2FWzNsC%2FINAZiQCTHJ2AzVxSdB7nlGUo0%2BPkQuzPMygeRnaywKr9V3g4dJLx8fq0g9GZ0KRnnK2fNadw4kekv2dz1l6lR1S24k9" rel="nofollow">生成式 AI 工具迎来王炸升级,应用开发新时代已至!</a></p><p>Amazon Bedrock 这个也很有趣!能调用更多的 LLM 模型。感兴趣的朋友可以了解一下: <a href="https://link.segmentfault.com/?enc=lkDMyZixsGcmaB3hSLzxiQ%3D%3D.kNGMDhHw7VZnN5jfdB4ISwiRBLcMPnDwhpClfTQXW4gieCzudHy70NgwPv1KRYzzTVzgt7HmM4ziPCdh4zPidsFOxeYwT7GdB7OERfSnkqI%3D" rel="nofollow">Build your first generative AI application with Amazon Bedrock</a> 部分预览:</p><blockquote><p>Troy Cui: 基于 Amazon BedRock 来看,它存在的意义在于亚马逊云科技帮助我们筛选市场上最优秀的模型,将这些模型提供给我们,使得我们自己无需再进行繁琐的连接步骤。现在,只需通过一个 API 即可直接访问这些模型。</p><p>这一次,Amazon BedRock 最直接的改进之一是对这些模型进行了大量更新,比如增加了对 Claude 2.1 和 Llama2 70b 的支持。其中,Claude 2.1 模型在处理复杂的总结和推理方面非常强大,支持 200k 上下文 token,而我们还进一步加强了对整个稳定性方面的支持,提供了强大的扩展性。</p></blockquote><p><a href="https://link.segmentfault.com/?enc=2BnC5GtM9TJ7Kay4QB%2BbHg%3D%3D.pdCXUfbZwFvyn16%2BGsvRlk%2FxRVofebA2E0SyU1EVJTfv9lPxXxeKslulHZOoU%2FrXdCAbD36%2FSaeKxWhVGyuVnIgOe2ZxHVpPp1dlm%2B09s39q7hRIKfb6NKrJ2Ido7wF7" rel="nofollow">使用 PartyRock 和 Amazon Bedrock 构建 AI 应用程序</a> 部分预览:</p><blockquote><p>宋洪涛: 帮助开发者借助于生成式 AI 的应用来提升个人的效率,以及持续推动生成式 AI 的普惠化,是亚马逊云科技一直以来的愿景。基于此,除了上面产品之外,Swami 博士在演讲中还带来一款与 Amazon Bedrock 名字相似的产品—— PartyRock。那么,这款产品到底有什么作用?</p><p>王晓野: PartyRock 的底层是基于 Amazon Bedrock 研发的。简单来看,它相当于是一个“游乐场”,让开发者感受到生成式 AI+Agent 的能力所散发的巨大潜力,以及让众多开发者发挥想象,去创新创造。</p></blockquote><p>Troy Cui: 我认为可以将其视为一个体验区,甚至不需要亚马逊云科技的账号,可以在 PartyRock 上尝试网络体验。</p><blockquote>袁滚滚: 我强烈推荐尝试一下 PartyRock,它实际上是基于 Amazon BedRock 打造的一站式 AI 应用生成工具。你甚至无需注册亚马逊云科技的账户,就能够免费使用亚马逊云科技的云资源,轻松生成令人惊叹的 Web 和 App 应用,并可以与他人分享。更有趣的是,它在线上已经提供了一些示范应用,有些甚至功能异常强大,底层采用了 Claude 2 的先进模型技术,让人感到非常惊喜。</blockquote><h3>探索 PartyRock 的广泛功能</h3><p>在 PartyRock 平台上,创新和个性化的应用程序构建变得触手可及。</p><p>让我们一起速览 PartyRock 所提供的更多丰富功能和灵活性:</p><ul><li>空白应用程序:除了前面提到的 App Builder,还可以选择从零开始,挑选自己喜欢的小部件,并根据需求进行个性化设置。</li><li>个性化调整:无论是从自己的应用还是公共应用开始,可以通过调整和自定义,给应用程序带来新的生命。</li><li>聊天机器人小部件:通过设置提示作为交互的起点,应用程序可以更加智能和用户友好。</li><li>@ 引用小部件:在应用程序构建过程中,可以使用“@”符号轻松引用其他小部件,提高构建效率。</li><li>高级设置:例如,文本生成小部件允许您调整模型的温度和前 P 项参数,提供更精细的控制。</li><li>后台视图:PartyRock 的后台视图不仅轻松管理应用程序,还可以跟踪对 PartyRock 服务抵扣金的使用情况。</li><li>免费试用:亚马逊云科技为新用户提供了 PartyRock 的限时免费试用,无需提供信用卡信息或注册亚马逊云科技账户。此外,还可以通过后台追踪服务抵扣金的使用,确保费用在控制之下。</li><li>模型访问权限:随时间推移,PartyRock 将提供更多模型的访问权限。</li><li>持续开发:PartyRock 正致力于开发更多小部件和功能。敬请期待,以获取最新信息和更多功能的推出。</li></ul><p>快来 PartyRock 构建你的第一个应用程序吧!</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=HMqLnxdIybQFAHuelDQC5Q%3D%3D.xRA4A75uPI1pxNH%2FOXYxkw1zIfWLKxAJVqX5dwsQA2CdDnn5zbFD2ySdCyBscSkPfg8T2qF0wgXgEwe6K%2F1TeWlrNkbYy0kjmSymry22xUIp%2BHyDkM%2BzTJVNtuCgrvs3OpN8em03DcLNFi1FFTEYfkrqmWpeVfqh8hOMuLmOBKQX47GRoPxak7Fex0bDkWKD" rel="nofollow">https://dev.amazoncloud.cn/column/article/65897c1879476548e3e...</a></p>
深析新旧产品突显Express One Zone在性能上的优势
https://segmentfault.com/a/1190000044667214
2024-02-29T07:58:37+08:00
2024-02-29T07:58:37+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。</blockquote><h3>一.亚马逊云科技 2023 re:Invent 全球大会</h3><p>随着数据的快速增长,高效、可靠的云存储解决方案变得越来越重要。在这个背景下,亚马逊云科技推出的 Amazon S3 Express One Zone 提供了全新的存储体验,它不仅具备了极高的速度,而且具有强大的安全性,为用户的数据存储和管理带来了革命性的改变。</p><p><img width="723" height="427" src="/img/bVdbzhQ" alt="image.png" title="image.png"></p><p>各位读者大家好,我是一见已难忘,在本次大会中,亚马逊云科技发布 Amazon S3 Express One Zone-面向性能关键型应用程序的超高速云对象存储 。</p><blockquote><a href="https://link.segmentfault.com/?enc=199ppaJOCPYhUgXzZCW9iw%3D%3D.HkSWyj%2B9DbOUsWYQhH7zYhgJNnHefafDPnc0h4U26OlhVxT%2FYtQR%2FyHXxZ4Hmbrxee7op4vtcG1lrkMB5Zd85qvOseSMVMu88VbDbqY5%2BB21M%2BwHFC98JtIZk%2FbOnpJN" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=SyjLsZpgVGSoWv%2FP%2FEScVA%3D%3D.qIHO2ZidPDRLJCFNZ659Ois8HVkzBTxprsKWcVaTHElZyw4xTkFhY2f2ISDZbMIzAm8UNQxPJtAdm8J5deYjyqubyC%2B43v3Gkt6FgvxWvM2lL3x0uIEbyTvpZMXgsw%2B%2F7cP9oPo3Zw8GJGk%2FBdwOjg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>今天在 Amazon S3 Express One Zone 官网看到推荐使用 Amazon S3 Express One Zone 搭配 Amazon SageMaker 模型训练的使用思路,那今天我们就来深度体验探索一下基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战—以猫狗识别模型为例,并且探索项目采用 Amazon S3 标准版与 Amazon S3 Express One Zone 的差距~</p><h4>1.1 Amazon S3 Express One Zone-面向性能关键型应用程序的超高速云对象存储</h4><p>Amazon S3 Express One Zone 是一款专注于高性能的单可用区存储服务,为经常访问的数据和对延迟敏感的应用程序提供可靠的毫秒级数据访问性能。</p><p>相较于 S3 Standard,S3 Express One Zone 提供了10倍的数据访问速度提升和50%的请求成本降低,同时具备灵活的扩展性,支持处理每分钟数百万个请求的需求。可以选择将存储与计算资源放置在同一可用区,以进一步优化性能,降低计算成本,提高工作负载的运行速度。</p><p>可以将 S3 Express One Zone 与 Amazon SageMaker 模型训练 、Amazon Athena、Amazon EMR 和 Glue Data Catalog 等服务结合使用,从而加速机器学习和分析工作负载。</p><p>Amazon S3 Express One Zone 工作原理图:</p><p><img width="723" height="340" src="/img/bVdbzhR" alt="image.png" title="image.png"></p><p><strong>Amazon S3 Express One Zone 官网:</strong></p><p><a href="https://link.segmentfault.com/?enc=nTfe3aGi8J6UiEBDzui04Q%3D%3D.Wyn%2Fn5YFLFvAEpysFWZfIKMpbS7Kh1L5nFoFaL8IdPe0JNc%2FwLkzyQ4ephg0O%2B7dnJAGCYlfreDOSisUgcUKKnakvKJzGCztQOQ%2BiWq3P4M%3D" rel="nofollow">高性能存储 – S3 Express One Zone</a></p><p><strong>1.1.1 与传统标准版 Amazon S3 相比</strong></p><p>Amazon S3 Express One Zone 与 Amazon S3 相比,特点主要表现在性能和延迟方面。S3 Express One Zone 具有持续的极低延迟,最多可以达到标准版 S3 的十倍性能,每秒能够处理数十万次请求,并始终保持几毫秒的延迟。</p><p>它主要面向延迟敏感型工作负载,比如金融交易分析、实时广告推荐、欺诈检测、机器学习训练等场景。对于这些场景经常需要在短时间内发起数百万次的数据访问,并且延迟要求还很高,S3 Express One Zone 可以协助显著缩短数据密集型应用程序的运行时间。</p><p>另外,S3 Express One Zone 可以处理任何规模的对象,但对于较小的对象来说尤其作用明显。这是因为对于较小的对象,第一个字节的处理时间与最后一个字节的处理时间非常接近。在所有存储系统中,较大的对象需要更长的时间进行流式处理,因为在传输过程中需要下载更多的数据,并且因此存储延迟对对象读取总时间的影响较小。</p><p>与大型对象相比,较小的对象可以从较低的存储延迟中获得巨大的优势。由于 S3 Express One Zone 具有持续的极低延迟,因此与 Amazon S3 相比,读取小型对象的速度最多可以提升10倍。</p><h4>1.2 Amazon SageMaker</h4><p>Amazon SageMaker 是亚马逊云科技提供的一项机器学习(ML)服务。它旨在帮助开发人员和数据科学家轻松构建、训练和部署机器学习模型。SageMaker 提供了一个端到端的机器学习平台,涵盖了从数据准备和模型训练到模型部署和推理的整个机器学习工作流程。</p><p>Amazon SageMaker 官网:<a href="https://link.segmentfault.com/?enc=WPViegegNbiQs6bWv%2B%2F%2FsA%3D%3D.uCOjtn04btV9nzd8OjMnEovkA6zYGjHP15MVGGZBotbgin4IUGfFZZ8GPBwRwzGHFTckrumy5244nSWeaIZ%2BkA%3D%3D" rel="nofollow">Amazon SageMaker 机器学习_机器学习模型构建训练部署-亚马逊云科技云服务</a></p><h3>二.基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战—以猫狗识别模型为例</h3><h4>2.1 项目背景</h4><p>随着数据规模的迅速增长,图像分类在许多领域都发挥着重要作用。在这个项目中,我们将利用亚马逊云科技的两项关键服务,Amazon S3 Express One Zone 和 Amazon SageMaker,来构建一个猫狗图像分类模型。这个项目旨在展示如何利用高性能的云对象存储服务和机器学习平台,快速而有效地构建和训练一个图像分类模型。</p><h4>2.2 模型必备</h4><p>开始项目时请准备:</p><ol><li>准备亚马逊云科技账号,开通本文所需功能权限。</li><li>超大数据集(包含训练集25000张,测试集图片12500张)。</li><li>本文所需的模型代码、依赖环境等。</li></ol><h4>2.3 Amazon S3 Express One Zone 创建和配置</h4><p>亚马逊云科技推出的 Amazon S3 Express One Zone 提供了前所未有的存储体验,它凭借极高的速度、强大的安全性、高可用性和可扩展性,为用户的数据存储和管理带来了革新,它的创建和配置也算相当的方便快捷,如果有使用 Amazon S3 标准版的经验几乎不会遇到什么困难。</p><p>在进行 Amazon S3 Express One Zone 的创建和配置之前,需要先登录亚马逊云科技的账号,到控制台搜索 S3,点击进入。如下图:</p><p><img width="723" height="354" src="/img/bVdbzhX" alt="image.png" title="image.png"></p><p>1.创建一个存储桶。如下图:</p><p>说明:使用 S3,无需支付最低费用。只需为使用的内容付费。</p><p><img width="723" height="352" src="/img/bVdbzhY" alt="image.png" title="image.png"></p><p>2.填写需要的配置信息,如下图,需要注意的是要选择右边的目录存储桶,这个就是我们需要的 Amazon S3 Express One Zone。</p><p>我的存储桶名称叫:dog-and-cat。加上后缀全称为:dog-and-cat--use1-az4--x-s3。</p><p>推荐用于低延迟应用场景。这些存储桶仅使用 S3 Express One Zone 存储类,可在单个可用区内更快地处理数据。</p><p><img width="723" height="329" src="/img/bVdbzhZ" alt="image.png" title="image.png"></p><p>3.创建完成会有以下提示,我们还可以在 Amazon S3 的存储桶中点击目录存储桶,即可看到我们刚刚创建的。</p><p><img width="723" height="328" src="/img/bVdbzh0" alt="image.png" title="image.png"></p><p>4.配置存储桶策略</p><p>如果在后续的操作中遇到权限等问题,我这里也是亲自操作给到了解决方案:</p><p>在“存储桶策略”部分,可以添加一个新的策略或编辑现有策略。</p><pre><code>{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}</code></pre><p>your-bucket-name 替换为存储桶名称。</p><p>或者使用亚马逊云科技 CLI 设置存储桶策略:</p><blockquote>amazon s3api put-bucket-policy --bucket your-bucket-name --policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":"","Action":"s3:GetObject","Resource":"arn:aws:s3:::your-bucket-name/"}]}'</blockquote><p><strong>本节心得:</strong></p><p>Amazon S3 Express One Zone 的创建和配置相当便捷,特别是对于那些已经有 Amazon S3 标准版经验的用户。文档提供了一个详细而清晰的步骤指南,使用户能够快速而顺利地创建和配置 Amazon S3 Express One Zone 存储桶。</p><p>这种平滑的过渡使用户能够更轻松地迁移到更高性能的存储解决方案。</p><h4>2.4 Amazon S3 Express One Zone 存储模型数据</h4><p>完成上面配置之后,我们就可以存储我们本次训练模型的数据了。上传的方式也有很多种,我们可以上传压缩包,也可以直接上传文件夹,也可以使用亚马逊云科技的一些根据上传等等。</p><p>如下图是我上传的一批图片数据集,本批上传2205张。本项目完整超大数据集(包含训练集25000张,测试集图片12500张)</p><p><img width="723" height="330" src="/img/bVdbzh1" alt="image.png" title="image.png"></p><p>目录结构如下:</p><p><img width="723" height="273" src="/img/bVdbzh2" alt="image.png" title="image.png"></p><p><strong>本节心得:</strong></p><ol><li>亚马逊云科技有多种上传数据的方式,包括上传压缩包、直接上传文件夹、亚马逊云科技的上传工具包以及利用提供的其他的第三方工具等等,十分便捷。</li><li>存储在 Amazon S3 Express One Zone 中的数据集的组织方式。这对于用户在后续操作中能够更容易地定位和管理他们的数据集是很有帮助的。</li></ol><h4>2.5 Amazon SageMaker 部署创建</h4><p>Amazon SageMaker 创建模型的创建也是十分的方便快捷。</p><p>1.我们首先到控制台搜索 Amazon SageMaker 点击进入,创建笔记本实例:</p><p><img width="723" height="326" src="/img/bVdbzh3" alt="image.png" title="image.png"></p><p>2.我的实例名称叫 dog-and-cat,与我的主题贴合。需要注意的一点就是在角色那块,需要设置我们的特定存储桶 “dog-and-cat--use1-az4--x-s3 ”。创建实例后(等待 5-10min 左右)就可以点击打开 Jupyter 了。</p><p><img width="723" height="325" src="/img/bVdbzh5" alt="image.png" title="image.png"></p><p><img width="723" height="352" src="/img/bVdbzh6" alt="image.png" title="image.png"></p><p>3.在 Jupyter 中点击我们的 conda_python3 创建一个文件就可以开始写我们的模型代码了。</p><p><img width="723" height="352" src="/img/bVdbzh7" alt="image.png" title="image.png"></p><p><strong>心得总结:</strong></p><ol><li>Amazon SageMaker 的创建模型过程开始于控制台,通过搜索和点击的方式即可轻松进入。这种直观的导航使得用户能够快速找到并启动他们所需的操作,提高了整个使用体验。</li><li>笔记本实例创建完成,等待5-10分钟后就可以点击打开 Jupyter 了。这个步骤的迅速完成使用户能够尽快进入模型代码的编写阶段,提高了整体工作效率。</li><li>文在 Jupyter 中可以通过点击 conda_python3 创建文件开始编写模型代码。这种集成的环境简化了模型开发的流程,用户无需额外配置环境,直接在熟悉的 Jupyter 界面中进行代码编写。</li></ol><h4>2.6 图像分类代码撰写训练模型部署</h4><p>1.我们的图像分类代码撰写部署环节就更多的考验我们人工智能领域的相关技术。首先我们需要检查一下 jupyter 里有没有缺什么模块包,我们提前对其进行一个安装。</p><blockquote>pip install tensorflow</blockquote><p><img width="723" height="341" src="/img/bVdbzh8" alt="image.png" title="image.png"></p><p>2.设置目标存储桶:本模型训练会频繁的读取 Amazon S3 Express One Zone 里的数据,我们需要先设定 S3 存储桶。</p><pre><code>import sagemaker
sess = sagemaker.Session()
bucket = "dog-and-cat--use1-az4--x-s3"
sess = sagemaker.Session(
default_bucket = bucket
)
# 打印默认的 S3 存储桶名称
print(f"Default S3 bucket: {bucket}")</code></pre><p>3.要从 Amazon S3 存储桶中读取文件,可以使用 boto3 库,这是 SDK for Python。</p><pre><code>import boto3
from botocore.exceptions import NoCredentialsError
# 替换为你的亚马逊云科技访问密钥ID和秘密访问密钥
aws_access_key_id = 'your_access_key_id'
aws_secret_access_key = 'your_secret_access_key'
bucket_name = 'dog-and-cat--use1-az4--x-s3'
file_key = data/training'
s3 = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
try:
s3.download_file(bucket_name, file_key, 'local_file.jpg')
print(f'Successfully downloaded file from S3 to local_file.jpg')
except NoCredentialsError:
print('Credentials not available')
</code></pre><p>4.训练模型代码较长,这里说一下核心代码块:</p><p>将本地文件(在这里特指训练集数据和日志文件)上传到 Amazon S3 存储桶中,以便在云环境中进行存储和后续处理。</p><pre><code># 创建S3客户端
s3 = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
def upload_to_s3(local_path, bucket, s3_path):
for root, dirs, files in os.walk(local_path):
for file in files:
local_file_path = os.path.join(root, file)
s3_file_path = os.path.join(s3_path, local_file_path[len(local_path):])
try:
# 上传文件到S3
s3.upload_file(local_file_path, bucket, s3_file_path)
print(f'Successfully uploaded {local_file_path} to {s3_file_path}')
except NoCredentialsError:
print('Credentials not available')
# 上传训练集数据到S3
upload_to_s3(train_dir, bucket_name, 'data/train/')
# 上传日志到S3
upload_to_s3(logs_train_dir, bucket_name, 'log/')</code></pre><p>5.如果想要达到最好的效果 MAX_STEP = 2000 应该为20000,但是由于训练时间太长原因,现在设置为 2000。</p><p><img width="723" height="352" src="/img/bVdbzh9" alt="image.png" title="image.png"></p><p>在经历的一段时间后的训练模型结果:</p><p><img width="708" height="540" src="/img/bVdbzia" alt="image.png" title="image.png"></p><p><strong>本节心得:</strong></p><ol><li>通过 SageMaker Session 对象和 Boto3 库,设置了用于存储训练数据和模型的 S3 存储桶。这是在云环境中进行训练所必需的步骤。</li><li>为了在云环境中进行训练,需要将本地文件上传至 S3 存储桶。通过自定义的 upload_to_s3 函数实现了这一步骤,涉及训练集数据和日志文件的上传。</li></ol><h4>2.7 图像分类代码撰写测试模型部署</h4><p>测试模型和上文的训练模型都使用 S3 Express One Zone 里的图像数据,测试集图片12500张。连接 S3 Express One Zone 和存取的代码相同,这里列举部分核心代码以及模型测试结果。</p><pre><code>test_img = input_data.get_files(test_dir)[0] # 获取测试集的图片路径列表
image_array = get_one_image(test_img) # 从测试集中随机选取一张图片
# 将这个图设置为默认图,会话设置成默认对话,这样在with语句外面也能使用这个会话执行。
with tf.Graph().as_default():
BATCH_SIZE = 1 # 这里我们要输入的是一张图(预测这张随机图)
N_CLASSES = 2 # 还是二分类(猫或狗)
image = tf.cast(image_array, tf.float32) # 将列表转换成tf能够识别的格式
image = tf.image.per_image_standardization(image) # 图片标准化处理
image = tf.reshape(image, [1, 208, 208, 3]) # 改变图片的形状
logit = model.cnn_inference(image, BATCH_SIZE, N_CLASSES) # 得到神经网络输出层的预测结果
logit = tf.nn.softmax(logit) # 进行归一化处理(使得预测概率之和为1)
x = tf.placeholder(tf.float32, shape=[208, 208, 3]) # x变量用于占位,输入的数据要满足这里定的shape
# 修改成自己训练好的模型路径
logs_train_dir = 'log/'
saver = tf.train.Saver()
with tf.Session() as sess:
print("从指定路径中加载模型...")
ckpt = tf.train.get_checkpoint_state(logs_train_dir) # 读取路径下的checkpoint
# 载入模型,不需要提供模型的名字,会通过 checkpoint 文件定位到最新保存的模型
if ckpt and ckpt.model_checkpoint_path: # checkpoint存在且其存放的变量不为空
global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] # 通过切割获取ckpt变量中的步长
saver.restore(sess, ckpt.model_checkpoint_path) # 当前会话中,恢复该路径下模型的所有参数(即调用训练好的模型)
print('模型加载成功, 训练的步数为: %s' % global_step)
else:
print('模型加载失败,checkpoint文件没找到!')
# 通过saver.restore()恢复了训练模型的参数(即:神经网络中的权重值),这样logit才能得到想要的预测结果
# 执行sess.run()才能运行,并返回结果数据
prediction = sess.run(logit, feed_dict={x: image_array}) # 输入随机抽取的那张图片数据,得到预测值
max_index = np.argmax(prediction) # 获取输出结果中最大概率的索引(下标)
if max_index == 0:
pre = prediction[:, 0][0] * 100
print('图片是猫的概率为: {:.2f}%'.format(pre)) # 下标为0,则为猫,并打印是猫的概率
else:
pre = prediction[:, 1][0] * 100
print('图片是狗的概率为: {:.2f}%'.format(pre)) # 下标为1,则为狗,并打印是狗的概率
plt.imshow(image_array) # 接受图片并处理
plt.show() # 显示图片</code></pre><p>训练结果:</p><p><img width="723" height="485" src="/img/bVdbzie" alt="image.png" title="image.png"></p><p><img width="723" height="516" src="/img/bVdbzif" alt="image.png" title="image.png"></p><p>这是在训练为步数的情况下的测试结果,基本满足了我们的模型要求,当然模型也有很大的改进空间。</p><p><strong>本节心得:</strong></p><p>使用了 S3 Express One Zone 中的图像数据进行模型测试,测试集包含12500张图片。与训练模型阶段相似,通过 Boto3 库连接 S3 Express One Zone 并获取测试集的图片路径列表。</p><h4>2.8 采用标准版 S3 和 S3 Express One Zone 分别测试对比实验</h4><p>为了 S3 Express One Zone 对比传统的 S3 标准版的性能提升差距,我特意使用了3个亚马逊账号来分别跑模型,测算他的训练时间差距,操作过程如上文。</p><p><img width="723" height="222" src="/img/bVdbzih" alt="image.png" title="image.png"></p><p>以下是我用3个账号跑了2天多的时间记录(因中间账号权限原因有的操作耽误了些时间,可能有一些时间记录误差,但依然有参考意义)Amazon S3 标准版和 Amazon S3 Express One Zone 为本次实验的唯一变量,其他的环境和代码均相同。</p><p><img width="723" height="353" src="/img/bVdbzii" alt="image.png" title="image.png"></p><p>将数据进行可视化,我们可以直观的看到采用 S3 Express One Zone 的训练时间要低于标准版 S3 的训练时间。</p><p><img width="723" height="439" src="/img/bVdbzij" alt="image.png" title="image.png"></p><p><strong>数据分析:</strong></p><p>训练时间减少百分比=[(采用 S3 训练时间−采用 Amazon S3 Express One Zone 训练时间) /采用 S3 训练时间]×100</p><ul><li>对于 2000 张训练集,训练时间减少了约 11.8%。</li><li>对于 5000 张训练集,训练时间减少了约 20.8%。</li><li>对于 10000 张训练集,训练时间减少了约 4.5%。</li><li>对于 20000 张训练集,训练时间减少了约 11.2%。</li></ul><p>可以看到除10000张下降幅度较小,其他均在10~20左右,10000张可以受到了其他因素干扰,但在宏观可以看到采用 Amazon S3 Express One Zone 训练时间下降是明显的。</p><p>我在查阅了一些资料后,对这个结果有了一定的理解。照成这个结果的原因有下(一定程度上也受其他的影响,但整体来看还是可以表现出 Amazon S3 Express One Zone 的特点)。</p><ol><li>Amazon S3 Express One Zone 提供了极低的延迟和比 S3 Standard 存储类低50%的请求成本,这意味着 Spot 和按需计算资源可以更高效地使用,并且可以更早关闭。</li><li>由于其延迟极低,因此对于需要快速访问和处理大量数据的大语言模型和其他基础模型训练任务来说,S3 Express One Zone 可以提供极佳的性能。</li><li>由于 S3 Express One Zone 的低延迟和高性能特性,这可以使得训练过程更加快速和高效。</li><li>官网是使用 Amazon Trainium2 进行基础模型的训练,该芯片专为分布式训练而设计,可以将训练时间缩短高达40%。(我这里虽然不是 Amazon Trainium2 进行基础模型的训练,但是依然缩短了10~20左右)。</li></ol><h3>三.总结与心得</h3><h4>3.1 心得-测评有感</h4><p>这次深入的体验探索了一下发布会说的新功能,确实很惊艳,不愧为老牌IT科技公司,发布的产品都是有革命性质的,给我带来了不少的震撼,通过本次的模型实验我总结了下面几个优点,这几个最让我震撼!</p><ol><li>Amazon S3 Express One Zone 专注于高性能的单可用区存储服务,提供了极高的速度和低延迟。这种性能的提升对于需要快速访问和处理大量数据的应用程序来说非常重要。</li><li>与传统的 S3 Standard 存储类相比,S3 Express One Zone 不仅提供了性能优势,还降低了请求成本。这意味着用户可以在不牺牲性能的情况下,更经济高效地管理他们的数据,亚马逊这次真的是做了一款好产品!</li><li>Amazon S3 Express One Zone 其便捷性和用户友好的操作。这种灵活性使得用户能够快速、顺利地创建和配置存储桶,平滑过渡到更高性能的存储解决方案,这对我们用户来说非常友好,有相关经验的朋友是可以直接上手的!</li><li>我通过图像分类项目的实战,成功想大家展示了 Amazon S3 Express One Zone 在机器学习领域的应用。这种实际应用案例使得产品更具说服力,能够直观地展示其在解决实际问题时的优越性能。看我上面的实验过程就知道了,我把 Amazon S3作为实验唯一变量之后,得出使用 Amazon S3 Express One Zone 普遍可以降低10%~20%的训练时间,虽然用没有使用 Amazon Trainium2 进行基础模型的训练,达到官方降低40%,但是我实验数据也体现了新产品性能的提升不是一点半点的!</li><li>我通过与标准版 S3 的性能对比实验,详细记录了不同训练集大小下的训练时间,并验证了采用 S3 Express One Zone 训练时间的明显降低。这样的实验证明了产品在实际使用中的优越性能。</li></ol><p>可以看第2.8节 采用标准版 S3 和 S3 Express One Zone 分别测试对比实验过程,完整的论述证明了这一事实观点,本次 S3 Express One Zone 给我带来了极大的震撼!</p><h4>3.2 总结</h4><p>到最后的总结阶段了,本文采用了 Amazon S3 Express One Zone 官网看到推荐使用 Amazon S3 Express One Zone 搭配 Amazon SageMaker 模型训练的测评思路,用基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战—以猫狗识别模型为例,并且探索项目采用 Amazon S3 标准版与 Amazon S3 Express One Zone 的差距。完整的描述了具体的使用过程,最后也将 S3 作为实验变量对官方给出的一系列优点进行了核实验证,从我的实验角度来看,本次亚马逊云科技发布的新产品:Amazon S3 Express One Zone。是相当震撼的,是一个革命的、创新的、里程碑的产品,下面我总结了一下本文的内容,感谢大家阅读学习!</p><ul><li>亚马逊云科技推出的创新产品 Amazon S3 Express One Zone。该产品专注于高性能的单可用区存储服务,以提供极高的速度和低延迟,适用于对数据访问性能要求高的应用程序。相较于传统的 S3 Standard 存储类,S3 Express One Zone 提供了显著的性能提升和请求成本降低。通过在图中展示工作原理,文中详细介绍了其优势和适用场景。</li><li>在通过基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战案例,用3个账号分别测试 Amazon S3 标准版和 Amazon S3 Express One Zone 性能提升结果可以看出,Amazon S3 Express One Zone对比 AmazonS3 标准版性能和延迟方面提升很大。</li><li>结合 Amazon S3 Express One Zone 和 Amazon SageMaker 进行模型训练。以猫狗识别模型为例,详细介绍了项目的背景、所需材料、Amazon S3 Express One Zone 的创建和配置、模型数据的存储以及 SageMaker 的创建和配置等步骤。整个过程中,突出了 Amazon S3 Express One Zone 的便捷性和高性能。</li><li>使用 SageMaker 进行模型的创建、训练和部署。通过清晰的步骤和代码演示,展示了如何在 SageMaker 中进行模型的各个阶段,包括数据的上传、模型的训练和测试。整个过程中,SageMaker 提供了便捷的平台,简化了机器学习工作流程。</li></ul><p>Amazon S3 Express One Zone 在性能和延迟方面的优势为用户提供了更高效的云存储解决方案。</p><p>通过实际项目的经验,我成功实现了该产品在图像分类领域的应用,并通过对比实验验证了其性能优势。随着技术的不断发展,这样的创新产品将为用户在大数据处理、机器学习等领域带来更好的体验,我们一起期待亚马逊云科技的下一次新产品问世!</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=RYulz%2BMxvX4p7PgQMSUfug%3D%3D.H1iaiBYZirY9qkGCPJmvc4H%2FzhrWDz5ZRkYUZQwobeGq0VNC7qi0VlNYsEk3syGN3aUBvThidwNE%2FzZe7u%2FMPZeJ3voo%2B7iDuORVg4yEnI1VNdVW%2BJtXtvKdQd7X8Kq3HX0cRYhAUPcI96CQKdmzqBZ9vBUaQjk%2Bl%2B%2FfKpQirc90215aIBsC8essT4hpfotS" rel="nofollow">https://dev.amazoncloud.cn/column/article/65896f6a79476548e3e...</a></p>
2023 re:Invent AI 生成产品体验,从 Bedrock 到 Amazon Q
https://segmentfault.com/a/1190000044663843
2024-02-28T08:07:06+08:00
2024-02-28T08:07:06+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p><img width="723" height="313" src="/img/bVdbyQP" alt="image.png" title="image.png"></p><h3>引</h3><p>如果你也有如下问题,那么接下来的文字会一一为你解答</p><ol><li>一套数据集,如何微调不同类型的开源大模型?—— Bedrock</li><li>如何只有产品说明书,如何构建一个智能问答机器人?—— Q</li><li>哪里还有免费的 GPU 算力——在线 Jupyter 平台?—— SageMaker</li></ol><blockquote><a href="https://link.segmentfault.com/?enc=u6RoMg6LmQYVOhHlow0AGw%3D%3D.Z6AqX8CFDv4WRLU6SdEYhFMaN9RVVwUV8v81vgHIuEv9ue798J6i%2FDINUKpXCSwtdN63qKRimaox5FYCg%2F6BZloxCmCvhUketHam0FSIe8hbO9u59oR97QWi4lNbCVse" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=E%2FjjR8xhVO83XfjxU3p6og%3D%3D.VCwYOmVLV8u1PAbpVJ8gqBjgVg3909aHhFryzt2pkhOR5yk3WU%2FQ9HFmE4q6B9dvTXY1LBLfuF8vXAmn3rWTJBDd%2FLt8vl6%2FzqTvPaGQ1CRXWiA0qignvkXkwEVpvnZ2GDCNMqHHl4GPM41ISYKmwQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>发布会</h3><p>亚马逊云科技 re:lnvent 发布会,在 2023 年11月底于拉斯维加圆满召开,介绍了一些云产品的升级,以及自研芯片的升级、性能提升。当然今年的重头戏就是 AI,此次升级了<a href="https://link.segmentfault.com/?enc=0MOQUpetiHDveLVhxuV%2BuQ%3D%3D.KnxLdOa5wwSCZccELjzWGMAnGn%2FbpQGGpLE9XD5W7Y5CwCLPDLT3mNyes%2BAfxxvbDrGPXOtBZSGtyt%2BfhRqEGw%3D%3D" rel="nofollow">Bedrock</a>服务提供了更多功能,并推出了企业级 AI 助手——Q),对于 ML 研究者,升级后的 <a href="https://link.segmentfault.com/?enc=aMaK3khhW0GxIrVduW1Qng%3D%3D.PM0plvtNAjx20s42%2Bwp7CZB3wbEmjKV6P0vWQZVw3fbu3b%2FvPcftf69FYluf6Z%2FD%2F01Vq%2F1qn7dII%2Fs2tn8AqA%3D%3D" rel="nofollow">SageMaker</a> 提供了和 Jupyter 一致的机器学习(ML)环境。</p><h3>AI 云服务</h3><p>此次发布会,我最关注的亚马逊的 AI 服务,我发现它在这上面做了非常多的差异化功能,相较于 openAI,微软、Google 等 AI 云服务公司,亚马逊云的 AI,这些功能是独居特色的的:</p><p>保护用户隐私、不会用用户的数据来训练<br>支持定制化得模型数据<br>对 fine tunning 优化,不需要太多专业知识就能微调大模型<br>模型价格便宜,微调之后的模型成本有所提升,但依然比 GPT3 便宜。</p><blockquote>在当前 AI 淘金潮中,亚马逊坚持做最好的——“铲子”</blockquote><h3>面向开发者</h3><blockquote>如何让普通 IT 人员也能上手 AI 产品</blockquote><p>作者我作为后端研发,天天 CURD 做业务。对于 AI 大模型,只会用用聊天机器人,用文字描述生成图片。至于如何训练、调试大模型我是丈二和尚——摸不着头脑,大家都在聊,AI 赋能产品,作为一名普通 IT 人员,当前只能“玩玩”它,至于产品赋还把握不住。当前时间点,但凡一个降低 AI 使用门槛的工具开源,那都是 10k Star 级别的热度,例如: lang-chain, hinese-LLaMA-Alpaca, LLaMA-Factory</p><p>所以,作为普通人,是非常愿意接触 AI 的,但目前开源 AI 产品对于普通人来讲,还是有非常高的使用门槛。现在就有很多云服务商就开始做人与 AI 算法产品之间的衔接工作。</p><h3>Bedrock</h3><p><a href="https://link.segmentfault.com/?enc=9cC1hwF9QXJgzTvRqGTmAg%3D%3D.zfIZZAA3%2FD3OS6CJcY2mz%2Fb6iqmbue%2Bb%2FqE7rGtMeNm3UKfGOpRYO8A2F2zB%2Bg7wkVPwllpZmHv4862b8V95og%3D%3D" rel="nofollow">Bedrock – Amazon</a> 提供一个简单的入口,让大家能够快速构建起生成式人工智能应用程序。它的能力有这几个方向:</p><ul><li>文本生成</li><li>聊天机器人</li><li>向量搜索</li><li>文本摘要</li><li>图像生成</li></ul><p>Bedrock 采用了市面上优秀开源的模型,来完成如上工作。模型有:</p><ul><li>Jurassic-2</li><li>Claude</li><li>Command</li><li>Stable Diffusion</li><li>Llama 2</li></ul><p>当然亚马逊自己也研发了大模型——Titan</p><h4>小试身手</h4><p>我们要试用大模型,还需要申请模型权限,其实就是勾选一下。</p><p><img width="723" height="431" src="/img/bVdbyQZ" alt="image.png" title="image.png"></p><p><strong>Chat 模型</strong></p><p>这里体验了一下 LLama 2 13B, 具体使用情况如下:</p><p><img width="723" height="418" src="/img/bVdbyQ0" alt="image.png" title="image.png"></p><p><strong>文生图</strong></p><p>使用 SDXL 1.0 生成了一张 <code>1024\*1024</code> 图片,耗时 20s 左右。</p><p><img width="723" height="425" src="/img/bVdbyQ2" alt="image.png" title="image.png"></p><p>我又试用了一下 亚马逊的 Titan Image G1 模型, 同时生成了3张 <code>1024\*1024</code> 图,大概花了30+s</p><p><img width="723" height="418" src="/img/bVdbyQ3" alt="image.png" title="image.png"></p><blockquote>对了,如果一下生成多张图片,批量下载时会压缩成一个 zip 包再下载。但我用过后,发现这个 zip 包解不开,感觉这个压缩有问题,如果大家也遇到了,可以点开图片,一张张单独下载,就好了。<br>关于: Amazon Bedrock Image playground,the zip of the generated image cannot be extracted</blockquote><h4>微调</h4><p>相较于我们平常用的 <code>ChatGPT3.5、4</code> 两代通用模型, 亚马逊提供了可定制性、可微调,可以使用保存在云上语料库、知识库进行训练(fine tunning)。</p><p>也就是说你可以通过使用大量的数据微调大模型,让模型学习到新的东西,你再向模型提问时,就不需要提供冗长的上下文信息了,这样可以节约大量的 token,还能提高模型响应速度。</p><p><strong>创建 Fine-tunning 任务</strong></p><p>通过 Custom models 选择 Fine tuning job 就能</p><p><img width="723" height="431" src="/img/bVdbyQ4" alt="image.png" title="image.png"></p><p>微调任务,你只需要提交数据集即可,数据集的格式,你可参看这个文档。<a href="https://link.segmentfault.com/?enc=HHigV00JwNNDFVY95gCKFg%3D%3D.S1aGh0e9NjoI7L6hc%2FY0V8iYj7qyHlVuMbgpUewNJ0xBo%2F4IHSjScTSi2HeecJ0mnXTD%2B8DIOjNPVUN%2BmyMSObHERhAr%2BMlRc0CXKfrlHlI%3D" rel="nofollow">dataset format</a></p><p><img width="723" height="597" src="/img/bVdbyRm" alt="image.png" title="image.png"></p><p>这样就创建好 微调模型任务了,然后这个模型就是为你定制的,要是用这个 微调模型,还需要额外购买时间的,这个费用也不低,如果你的用量大,微调模型的性能是能抹平这部分成本的。</p><h4>价格</h4><p>Bedrock pricing</p><h4>Meta Llama 2</h4><p>按需和批量定价 </p><p><img width="723" height="262" src="/img/bVdbyRy" alt="image.png" title="image.png"></p><p>模型定制(微调)的定价:</p><p><img width="723" height="208" src="/img/bVdbyRB" alt="image.png" title="image.png"></p><p><strong>Stability AI</strong></p><p><img width="723" height="212" src="/img/bVdbyRH" alt="image.png" title="image.png"></p><p>相较于 GPT 系列,价格要便宜很多,因为模型大小可选,通用型不如 GPT,但提供了定制、预训练、微调功能,提供更具性价比的模型服务。</p><h4>优势</h4><p><code>Bedrock</code>提供一站式的:多种开源大模型,以及配套的模型微调,dataset 预处理功能。在 Bedrock 你只需要熟悉一个模型的使用、调优、数据投喂功能,那么你就能使用其他所有同类型模型了,如果是自己调适多个模型,那么不同模型的 dataset 格式、调优参数都是巨大的时间成本。</p><p>在重度、商业化使用条件下,是占有成本、速度优势的。如果你有海量大模型使用请求,并且每次请求都要带上长长的上下文信息,那么不妨试试微调大模型。</p><h3>企业级 AI 助手——Q</h3><blockquote>Amazon Q 是基于 Amazon Bedrock 构建一款完全托管的生成式 AI 驱动的企业聊天助手</blockquote><p>最近登录亚马逊后台时,我就发现 Q 已实装到亚马逊云的控制台了。是的,它的主要形态就是聊天助手。通过聊天的形式为你提供服务,就是 IM 客服。</p><p><img width="723" height="436" src="/img/bVdbyRJ" alt="image.png" title="image.png"></p><p>借助 Q 的能力,能够帮助普通用户快速了解亚马逊云服务,如果可能它还会提供对应的链接地址,大家点击就能跳转到对应的页面。让一般用户在没有专业的亚马逊技术售前的协助下,也能完成一些工作,这就是为 console 平台“增效”了。</p><h3>定制自己的 Q</h3><p>亚马逊云控制台里的 Q,可以说是 Q 的最佳实践。那么接下来,我就带大家来定制一个 IM 技术客服。</p><h3>创建 应用</h3><p>访问 <a href="https://link.segmentfault.com/?enc=gN%2Bz%2FRPoppdV71Jq%2BoSKeQ%3D%3D.zpnyl0IfKIjrofT5DP%2B1VJEoGj1HBJdkhDYCzYgEvPl%2B4uBKjo7FzrLSFpu%2F8uoJFY1RC9fYY9hkvTY2VOGxsg%3D%3D?trk=cndc-detail">Amazon Q 控制台</a>, 创建一个应用</p><p><img width="723" height="464" src="/img/bVdbyRK" alt="image.png" title="image.png"></p><p>目前 Q 还是预览版,没有全球发布,所以制定地区可用,这里选的 弗吉尼亚。</p><h4>第一步:命名</h4><p>这里使用默认值,不用改,点下一步。授权可能会耽搁点时间,等一会儿就好。</p><p><img width="723" height="480" src="/img/bVdbyRL" alt="image.png" title="image.png"></p><h4>第二步:Retriever 选择</h4><p>如果不清楚就直接选择 native retriever。</p><p><img width="723" height="534" src="/img/bVdbyRM" alt="image.png" title="image.png"></p><h4>第三步:数据源</h4><p>数据源空过,直接脱到底创建。</p><p><img width="723" height="514" src="/img/bVdbyRN" alt="image.png" title="image.png"></p><h3>体验</h3><p>点击刚刚创建 Q application,进入到这个应用</p><p><img width="723" height="530" src="/img/bVdbyR2" alt="image.png" title="image.png"></p><h4>空白的体验</h4><p>点击 <code>review web experience</code> 就进入了一个聊天室。</p><p>当前,我们还没有上传任何文档,也没有配置 retriever,我们问它几个问题试试。</p><p><img width="723" height="486" src="/img/bVdbyR3" alt="image.png" title="image.png"></p><p>它直接回复没有数据源,不知道。</p><h4>数据源添加</h4><p>回到我们的应用主页面,点击 <code>Add data source</code></p><p><img width="723" height="524" src="/img/bVdbyR4" alt="image.png" title="image.png"></p><p>这里我们选择上传文档,点击 <code>Upload docs</code></p><p><img width="723" height="520" src="/img/bVdbyR9" alt="image.png" title="image.png"></p><p>关于数据源,我选择了 <a href="https://link.segmentfault.com/?enc=guhCqqy3q23QVt7s2ODEyw%3D%3D.M10oM0CxocbsENsANYGsD3Qoj8nQhWg1Y3ZG8zW1Ijhwx7RVO4d1pybM0elLJ3jN?trk=cndc-detail">Codis</a> 的文档。</p><p><img width="723" height="517" src="/img/bVdbySc" alt="image.png" title="image.png"></p><p>上传文件, 他是支持 markdown 文件的,我就上传了 tutorial_en.md, FAQ_en.md 两个文件。</p><p><img width="723" height="528" src="/img/bVdbySd" alt="image.png" title="image.png"></p><h4>学习后的对话</h4><p>上传文档后,我们再来问问 Q。可以看到它能根据我们提供的文档,进行回答了。</p><p><img width="723" height="592" src="/img/bVdbySe" alt="image.png" title="image.png"></p><p><img width="723" height="514" src="/img/bVdbySf" alt="image.png" title="image.png"></p><p>后面还跟上了数据源,也就是它的回答依据是哪些文档。</p><h4>中文</h4><p>大家都看到了我一直都在使用的英文和它交流,因为目前的预览版对中文的支持还不那么好,我这也上传了些中文文档,然后进行对话提问,结果如下。</p><blockquote><p>还是比较期待它能完全支持中文,到时候就能赋能国内业务了。</p><p><img width="723" height="785" src="/img/bVdbySg" alt="image.png" title="image.png"></p></blockquote><h3>感受</h3><p>相比于其他 AI 产品,需要准备大量数据集,预训练,参数调优,以及服务部署。</p><p>你只要投喂文档、数据给 Amazon Q ,他就能成为某方面的专家,按照你的文档回答问题,你可以说它是一个更聪明的搜索引擎,或者智能客服。</p><p>整个体验下来,我觉得不懂 IT 的朋友也能上手,目前亚马逊对它的定义是——生成式 AI 驱动的企业聊天助手。从它的易上手程度、以及智能程度。我觉得它可以用作:</p><ul><li>个人知识库助手</li><li>企业知识库搜索入口</li><li>智能客服</li><li>售后技术顾问</li></ul><p>刚刚是在亚马逊的 Web 上体验了 Q,它当然提供了 API 供你介入自己应用内部。</p><h4>响应速度</h4><p><strong>10词/秒</strong> 左右</p><p>我在 Web 端体验是这样的速度。不同于 ChatGPT 一个个字得吐,Q 是生成完所有文字后一次性返给前端,所以给人感觉是有点慢。但这个输出速度,其实和人打字速度差不多了。</p><h4>价格</h4><p><a href="https://link.segmentfault.com/?enc=M1UnhHU6EXkLI6dJ1AQ%2FYA%3D%3D.bWUWYrVVxU%2BnRcOvJINsVMxAB7Ps%2B5lClLnEC%2BSpVpAA8xSiVjoo4QWqaxTuEL3VtmWxiRC8meZlrVRA1idZOA%3D%3D" rel="nofollow">Amazon Q pricing</a></p><p><img width="723" height="288" src="/img/bVdbySl" alt="image.png" title="image.png"></p><h4>AI 技术顾问</h4><p>就拿 AI 技术顾问为使用场景,我们把产品的使用文档,以及常见问题,以及解决方案投喂给 Q,Q 就可以按照用户的提问,帮文档去查找解决方案,并告诉客户。</p><p>是的,当你提供的云服务控制面板报错时,不需要让客户到处去百度,xx 云平台报错该怎么办了,这个时候,右下角弹出一个 Q ,咨询下客户遇到了什么问题,就能引导客户自行解决问题了。</p><p>相较于传统技术支持:</p><ol><li>免费版没有技术支持</li><li>标准版工作日工单支持(工单还要排队</li><li>专业版 工作日通过IM技术支持。</li></ol><p><img width="723" height="389" src="/img/bVdbySm" alt="image.png" title="image.png"></p><p>借助 Q 可以做到7*24小时 秒级支持我们的客户!便宜的价格可以让 Q 下放到标准版,甚至 使用版。</p><p>对于一些专业、有一定使用门槛的产品,借助 Q 是能够降低产品的使用难度,特别是在试用阶段,在新用户遇到困难并立马解决,是能提高成单率的。</p><h4>增效</h4><p>想象一下你需要客服,来解决售后问题,客服在客户和技术人员之间沟通解决问题,并把这些问题记录下来,慢慢得你积累了很多问题集——F&Q。慢慢地,客服反馈有些问题看看产品说明就能解决,但客户就是要打电话咨询。</p><p>这个时候,你把这些售后问题投喂到 Q 的 dataset,Q 就立马成为一名经验丰富的客户,能够帮客户解决一些常见问题了,解决不了的再接入到人工客服了。</p><h3>SageMaker</h3><p>SageMaker 提供专为数据科学家和开发人员高效地准备、构建、训练和部署高质量 ML 模型而构建的机器学习 (ML) 功能。</p><p>当团队内的数据专家,想进一步对数据做分析时,无需把数据下载到本地,亚马逊提供了在线 Jupyter 平台,通过它你可以在任何终端访问 Notebook 进行数据分析工作,一切运算都在云端,数据通过 S3 访问,让你无需担心本地磁盘,以及算力。</p><h3>创建 Notebook</h3><p>访问 <a href="https://link.segmentfault.com/?enc=x0FNuhrGJ9A4W2DF59WwRQ%3D%3D.2FPzpWaMv38ZSJ%2FRHOdvCdkiLhP2FpD1cEZv8qZYtGBEf3AEwZh3i6QxRsIqJb2v?trk=cndc-detail">SageMaker</a>,翻到 Notebook, 点击 <code>Create notbook instance</code></p><p><img width="723" height="630" src="/img/bVdbySr" alt="image.png" title="image.png"></p><p>这里填了的不用改,只需要填一下名字就行了。</p><p><img width="723" height="733" src="/img/bVdbySs" alt="image.png" title="image.png"></p><h3>打开 Jupyter</h3><p>创建好 notebook 实例后,点击 <code>Open Jupyter</code> 就能到一个你熟悉的界面了</p><p><img width="723" height="473" src="/img/bVdbySt" alt="image.png" title="image.png"></p><p>是的,这就是 亚马逊云提供服务的 Jupyter。你看到的 Running 状态,就是我没有关闭那个实例,所以,你不用了的话记得手动关闭运行时,它不会自己关,程序会一直为你保存工作状态,随时衔接工作。哎,这样就不用写额外代码去保存中间状态了。(PS:说的就是你 Colab)</p><h3>访问 S3 数据</h3><p>那么如何访问 S3 数据呢</p><p><img width="723" height="582" src="/img/bVdbySv" alt="image.png" title="image.png"></p><p>通过如上代码,说明 SageMaker 是和 S3 打通了的。只需要配置好数据权限,数据分析人员就能自己拿数据进行分析工作了。</p><h3>SageMaker Studio</h3><p>对了, 亚马逊还推出了 <a href="https://link.segmentfault.com/?enc=t8opsq7dKKkkmdd1WPnTOw%3D%3D.Z1eJdc2ZC%2F0P9BjF9gVCZHviMN5PZ4pA4pI2qDkyFTXzYL7TJ5DmjiB3k%2FuFixOb?trk=cndc-detail">SageMaker Studio</a> 一个免费的机器学习(ML)开发环境。独立于亚马逊的账号体系,目前是需要申请的,我的申请一天就过了,还是挺快的。(想白嫖的早点申请,😄)</p><p><img width="723" height="567" src="/img/bVdbySC" alt="image.png" title="image.png"></p><p>用过 Colab,Kaggle 的同学,可以试试这个平台。每天免费4个小时的 GPU 算力,如果你只用 CPU 的话,那么会有8个小时运行时可供你用。</p><p>这个免费算力发放策略和 Colab 比较像啊,访问不了Google 的同学可以试试这个。</p><p><img width="723" height="483" src="/img/bVdbyT9" alt="image.png" title="image.png"></p><p>启动运行时之前,会让你填手机号,我填的国内的+86手机号,是可以畅通使用的。</p><p><img width="723" height="478" src="/img/bVdbyUc" alt="image.png" title="image.png"></p><h3>访问速度</h3><p>目前,我访问 Studio 没有网络障碍,大家放心冲。</p><h3>生态</h3><p>这场 AI 热潮,亚马逊云不仅仅是提供了大模型给大家使用,还围绕达模型的训练、调优、运行提供了一整套服务。</p><p><img width="675" height="594" src="/img/bVdbyUe" alt="image.png" title="image.png"></p><h3>安全</h3><p>作为云服务商,亚马逊非常重视用户的数据安全,并且公开承诺不会用客户的数据去改进他们的模型,至于他们怎么改进模型,估计是基于自己的业务。</p><p><img width="723" height="397" src="/img/bVdbyUj" alt="image.png" title="image.png"></p><p>还有生成的内容安全,由于 AI 生成模型,参数众多,可能你都不知道训练出来的模型,可能学到了什么坏毛病,关于这一天,Bedrok 提供了跟踪,以及完善的日志功能,并切发现错误会帮你屏蔽内容输出,同时也会检查用户的输入,</p><p><img width="723" height="446" src="/img/bVdbyUk" alt="image.png" title="image.png"></p><p>例如:我在玩文生图时,有几个词汇过于涩涩就直接告警,不给我生成图片。</p><p><img width="723" height="346" src="/img/bVdbyUl" alt="image.png" title="image.png"></p><p><strong>跑得快不一定赢,不跌跟头才是成功</strong></p><p>在国内环境下,这些功能都是必须的,它已经先一步帮我们想到了。</p><h3>最后</h3><p>看过发布会,体验过 Q 之后,个人感觉距离 AI 产品更近一步了。在当前隐私泄露严重,滥用个人信息的环境下,生成式 AI 这个婴儿在一旁嗷嗷待哺(数据投喂),还有一个云服务商把客户的安全、隐私放在第一位,是难能可能可贵的。</p><blockquote><p>本文参与了<a href="https://segmentfault.com/a/1190000044413526?trk=cndc-detail">「构」向云端 | 亚马逊云科技 x 思否 2023 re:Invent 构建者征文大赛</a>,欢迎正在阅读的你也加入。</p><p>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre,知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道</p></blockquote><p>文章来源:<a href="https://link.segmentfault.com/?enc=%2FOzTMt5DSqtlKq53keQU%2FA%3D%3D.xBzCI7PaHAcUp8YJREtbfGIy%2FA1clpQJciTkh0Nj3mvbj8JvYk7hMm6XPxDjV1VcIDw%2BgndNWK8Ug0ynpsv8rByM3%2B7b3xR1qm80JqiTJNsE8kPL6WUOhrxtO664%2Fnj5nC1HeV331zxzKKNlY7Mtgdft%2Bil01u%2FkEVomIVM3y2LYM8HfzKOgCi%2FzPdoDjXLf" rel="nofollow">https://dev.amazoncloud.cn/column/article/658991b05d096603bb1...</a></p>
开发者利器: 从 Amazon CodeWhisperer 到 Amazon Q
https://segmentfault.com/a/1190000044660572
2024-02-27T08:02:44+08:00
2024-02-27T08:02:44+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p><img width="723" height="313" src="/img/bVdbxOJ" alt="image.png" title="image.png"></p><p>自 ChatGPT 火爆以来,生成式 AI 助手也是层出不穷,目前自然是以 Microsoft Copilot(基于 GPT)普及度最高了吧。看着微软风光了这么久,其他云厂商怎么可能会甘愿落后?</p><p>最近,来自亚马逊云科技的 re:Invent 2023 大会的明星产品:Amazon Q,就算是对这个生成式 AI 助手老大哥 Copilot 的强力回应了吧。</p><blockquote><a href="https://link.segmentfault.com/?enc=4NtbiaVUg6RvIkDPj6lxTA%3D%3D.QzwAVT44S07HTzQyEpJknezTAoS3pLVS3qHP%2B%2FSsAAlq%2F5XKMAC5J1aNb%2BB9Fg4RvTsLKqjs%2FYq2M7E7MhhuADPYjd5oWFFdeXRqWLRfTZyEIpYP8e%2BvbCtBZHLMG4Rk" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=tt6sT7%2BQBfwgBYd8Cz6bvQ%3D%3D.f2MPtsRXej2ZurVB%2FFtC2uRASWnt5YsYAI3C7i4GUovUcAa1%2FgFGTSQCafCJM7mvoonJgVRJ3cI%2FIhZeVPC%2F025Qna%2Fbgb9GKOcYlVZUDiM0%2FZd%2FLSbvdy6jfRDRZ1c72X61sV5jlgjX7dgk5%2BJzjA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>小试牛刀: Amazon CodeWhisperer</h3><p>亚马逊云科技之前提供 Amazon CodeWhisperer 用于 IDE 以及命令行的 AI 生产力工具。</p><p>而作为亚马逊云科技推出的最新力作,Amazon Q 集成了 Amazon CodeWhisperer 的功能,为开发人员提供更强大的功能和更出色的使用体验。</p><p>此前, 我也一直在我的日常开发中使用 Amazon CodeWhisperer,为什么不用 Copilot?很简单,CodeWhisperer 的免费额度太给力了,注册上手也很容易。</p><p>这里也简单也分享下使用方法:</p><ul><li>注册个 codewhisperer 号,AI 代码生成器-AmazonCodeWhisperer-Amazon</li><li>IDE(如 Goland)安装插件,连接账号即可</li><li>使用 Tab 键就可以让代码飞起</li></ul><p><img width="723" height="269" src="/img/bVdbxOK" alt="image.png" title="image.png"></p><p><img width="532" height="371" src="/img/bVdbxOL" alt="image.png" title="image.png"></p><p>Amazon CodeWhisperer 已经满足我的日常开发需要,这几天推出一个 Amazon Q 更让我们作为开发者兴奋不已。</p><h3>更强大的 Amazon Q</h3><p>Amazon Q 可以很好地集成在 Amazon CodeWhisperer,为开发人员提供了更强大的助力。根据亚马逊云科技首席执行官亚当·塞利普斯基的介绍,Amazon Q 不仅在功能上进行了拓展,<strong>还增加了允许程序员在构建应用程序时进行自然语言对话的功能</strong>。这种对话式的提问方式使得开发过程更加直观和高效。</p><p>Amazon Q 在选择 <a href="https://link.segmentfault.com/?enc=xsZnJrBtzKyY8J%2FM5hpncQ%3D%3D.yimpVyhLGonbOoPXwV4Ia%2Bnb0GCNvQl0y17vEYjCtYKJGvTk0%2BP1mkgrje%2FyJ1sw" rel="nofollow">Amazon EC2</a> 实例方面也发挥了关键作用,帮助开发人员准确选择他们想要运行的实例类型,提升了开发流程中的智能化和准确性。同时,<strong>Amazon Q 的生成式 AI 助手还能够直接处理控制台内的故障排除和错误解决,相当于在 DEVOPS 的职责上承担了更多的责任,使开发人员更专注于创新和问题解决。</strong></p><p>更令人期待的是:<strong>Amazon Q 具备代码转换的能力,类似于 IBM Watsonx,可以将 COBOL 代码转换为 Java 等目标代码。这种功能的引入无疑为开发人员提供了更多可能性,促使他们更灵活地进行代码维护和升级。</strong></p><p>说了这么多,让我们来一起体验下 Amazon Q 吧!</p><h3>Amazon Q 初体验</h3><p>首先,在你的 VSCode 里 找到 Amazon Toolkit 插件,并快速地链接到你的亚马逊云科技账户</p><p><img width="723" height="453" src="/img/bVdbxOR" alt="image.png" title="image.png"></p><p><img width="588" height="448" src="/img/bVdbxOS" alt="image.png" title="image.png"></p><p><strong>So easy, 你的 Amazon Q 助手上线啦 !</strong></p><p><img width="723" height="430" src="/img/bVdbxOW" alt="image.png" title="image.png"></p><h3>Amazon Q 能做什么</h3><p>先问个简单的问题吧!</p><blockquote>What can Amazon Q help me with?</blockquote><p>我们来看下 Amazon Q 的回答:</p><p>I'm Amazon Q, a generative AI assistant. Learn more about me below. Your feedback will help me improve.<br>What I can do:</p><ul><li>Answer questions about Amazon</li><li>Answer questions about general programming concepts</li><li>Explain what a line of code or code function does</li><li>Write unit tests and code</li><li>Debug and fix code</li><li>Refactor code</li><li>What I don't do right now:</li><li>Answer questions in languages other than English</li><li>Remember conversations from your previous sessions</li><li>Have information about your AWS account or your specific Amazon resources</li><li>Examples of questions I can answer:</li><li>When should I use ElastiCache?</li><li>How do I create an Application Load Balancer?</li><li>Explain the and ask clarifying questions about it.</li><li>What is the syntax of declaring a variable in TypeScript?</li><li>Special Commands</li><li>/clear - Clear the conversation.</li><li>/dev - Get code suggestions across files in your current project. Provide a brief prompt, such as "Implement a GET API." Only available through CodeWhisperer Professional Tier.</li><li>/transform - Transform your code. Use to upgrade Java code versions. Only available through CodeWhisperer Professional Tier.</li><li>/help - View chat topics and commands.<br>Things to note:</li><li>I may not always provide completely accurate or current information.</li><li>Provide feedback by choosing the like or dislike buttons that appear below answers.</li><li>When you use Amazon Q, Amazon may, for service improvement purposes, store data about your usage and content. You can opt-out of sharing this data by following the steps in AI services opt-out policies. See here</li><li>Do not enter any confidential, sensitive, or personal information.</li><li>For additional help, visit the Amazon Q User Guide.</li></ul><p>我根据自己日常的需求,测试了 Amazon Q,也和你分享一下:</p><h3>代码相关</h3><p>再问问问代码开发相关的问题吧!</p><p><img width="723" height="582" src="/img/bVdbxPa" alt="image.png" title="image.png"></p><h3>算法题</h3><p>来个面试经常考的算法题</p><p><img width="723" height="428" src="/img/bVdbxPb" alt="image.png" title="image.png"></p><h3>解读源码</h3><p>再扔给它一段 Kubernetes 的代码看看,帮我解读下源码?</p><p><img width="723" height="471" src="/img/bVdbxPc" alt="image.png" title="image.png"></p><p>很详细地帮我罗列了这段代码的内容要点!不错不错~</p><p>如果你不是很熟悉亚马逊云科技的服务, Amazon Q 也能很好地帮你解释你该如何使用该资源服</p><p><img width="723" height="421" src="/img/bVdbxPd" alt="image.png" title="image.png"></p><h3>复杂案例</h3><p>来个复杂点的案例吧, 如果你有建站的需求</p><p><img width="723" height="478" src="/img/bVdbxPg" alt="image.png" title="image.png"></p><h3>高效提问</h3><p>如果你想使用亚马逊云科技的 Serverless,却不知如何用的话,问一问就好啦!</p><p><img width="723" height="416" src="/img/bVdbxPh" alt="image.png" title="image.png"></p><p><strong>真是亚马逊云科技的个人全能小组手啊!</strong></p><h3>谈谈云计算和 AIGC 人工智能</h3><p>这次亚马逊云科技的 re:Invent 2023 大会的明星产品 Amazon Q 的推出,标志着亚马逊云计算和人工智能领域的进一步创新。</p><p>以下是我对于 Amazon Q 的一些看法,也展望一下未来:</p><h4>1. 融合云计算和人工智能:</h4><p>Amazon Q 的亮相显示了亚马逊云科技在整合云计算和人工智能方面的深厚实力。 Amazon Q 不仅依托亚马逊云科技云基础设施提供高度可靠的计算资源,还集成了强大的生成式人工智能,<strong>为开发者提供更智能、更便捷的开发体验,非常方便。</strong></p><h4>2. 自然语言对话的未来:</h4><p>Amazon Q 中加入的自然语言对话功能为开发者提供了更自然、更直观的开发交互方式。这标志着人机交互的未来可能更多地通过自然语言来实现,使得开发者能够更轻松地与系统进行沟通,加速应用程序的开发周期,<strong>这对需要小步快跑敏捷开发的团队是非常有帮助的。</strong></p><h4>3. 开发者助手的演进:</h4><p>Amazon Q 不仅仅是一个生成式 AI 助手,更是一个全方位的开发者助手。它不仅能够协助选择正确的云资源和 EC2 实例,还能够进行代码转换和故障排查。这种多功能性使得开发者在开发、部署和维护应用程序时得到更全面的支持。<strong>进一步解放了开发者的生产力,让开发者能更专注业务本身,而不是运维和故障排查</strong>。</p><h4>4. 跨应用程序的整合:</h4><p>Amazon Q 作为业务应用程序的生成式 AI 助手,支持与各种应用程序和服务的整合,包括 ServiceNow 和 Jira 等。这种跨应用程序的整合有望提高开发效率,简化工作流程,使得企业能够更灵活地运用各类应用服务。<strong>尤其对做海外应用的公司来讲帮助很大!</strong></p><h4>5. AI 在云服务管理的应用:</h4><p>Amazon Q 不仅限于开发领域,还在云服务管理方面发挥着积极作用。通过连接到信息存储库、代码、数据和企业系统,Q 能够进行对话、解决问题、生成内容、获取见解并采取行动。这将为企业提供更智能、更高效的云服务管理手段。<strong>我们就准备打造公司内部的 AI 知识库,提高销售人员的对产品的学习效率。</strong></p><h4>6. 未来的开发者工具:</h4><p>Amazon Q 的集成到集成开发环境(IDE)中,如 Visual Studio Code 和 JetBrains,显示了未来开发者工具的趋势。通过在 IDE 中进行自然语言对话和获取帮助,开发者将更容易地融入 AI 的支持,提高编码效率。<strong>这也一定是必然之路,进一步提高开发者的效率</strong>。</p><h3>总结一下</h3><p>我觉得 Amazon Q 的推出不仅是亚马逊云科技在人工智能领域的一次创新,也代表了云计算与人工智能深度融合的发展方向,这对于促进开发者创新、提高开发效率以及推动云服务管理的智能化发展都具有积极的意义。</p><p><strong>我已从 Amazon CodeWhisperer 到 Amazon Q了!你呢?</strong></p><blockquote><p>本文参与了「构」向云端 | 亚马逊云科技 x 思否 2023 re:Invent 构建者征文大赛,欢迎正在阅读的你也加入。</p><p>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre,知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道</p></blockquote><p>文章来源:<a href="https://link.segmentfault.com/?enc=kxd31ZSFkQ1psEBs3lvRZQ%3D%3D.TtjOzbpMoqv%2FEW7ubmgwAQOft5kV8GWs60ibYcynRTQx9oMTCM9w6eX5hR1cP0XNCkQyJfUZ22jydDzJZdIhoP79jeaGyuLJumj5s54BMXFaJa3y8zSET%2FiYthLTdvm0EsGScx%2Fl230vhTiNYXqECEv5YuxEoB4Zw0suutyIThVltOETAqcDM6dQJHM2QHPm" rel="nofollow">https://dev.amazoncloud.cn/column/article/658989b75d096603bb1...</a></p>
2023 re:Invent 用 Amazon Q 打造你的知识库
https://segmentfault.com/a/1190000044658014
2024-02-26T11:12:24+08:00
2024-02-26T11:12:24+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p><img width="723" height="313" src="/img/bVdbxJ8" alt="image.png" title="image.png"></p><h3>前言</h3><p>随着 ChatGPT 的问世,我们迎来了许多创新和变革的机会。一年一度的亚马逊云科技大会 re:Invent 也带来了许多前言的技术,其中 Amazon CEO Adam Selipsky 在 2023 re:Invent 大会中介绍 Amazon Q 让我印象深刻,这预示着生成式 AI 的又一个里程碑。</p><blockquote><a href="https://link.segmentfault.com/?enc=pqRJihlph2JxvVv1o0nn1A%3D%3D.cvsDPWM1zqTV8b3PS5vLaB6tygFabQBrOWl9%2BPTa%2Fjl%2BMw40x%2Be5udWg7i2AiBoT1sYrs34NKDjhUjQf%2FODSq3UXr%2BfLLY%2FFt%2F5rj3I8i2G8QCuf0NeSLxObxu2hrEix" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=UmEhZx5KprAcIpY4e4wn2Q%3D%3D.mSgRcbJz%2FSHqzFVnPoqWHtS5On9qFwdemZx8jmL%2BmCkMgTY6atH%2BljmkQJmDxZ2guanVxK0mk0NI2J9j3VCUZJg60syryoogesM398q0CWvmtDmMIz%2Fs4mZKtbfwiqjQzFfoJwPPt5PeUr%2F8c8UZTg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在本文中,我们将探讨 Amazon Q 是什么以及它能为我们做些什么。我们还将详细介绍如何使用 Amazon Q 来构建知识库,并分享一些实际案例。无论是个人学习,还是团队协作,Amazon Q 都将是您的理想之选。</p><p>让我们一起深入了解 Amazon Q,并探索如何在知识库建设中充分发挥其潜力。</p><h3>Amazon Q 是什么</h3><p>Amazon Q 是一款基于生成式人工智能的助手,通过连接如代码仓库、网址、数据库、文档、email 等各种信息库来帮助企业或者个人以自然语言对话的方式,提供历史数据检索、摘要生成、内容撰写等。</p><h3>Amazon Q 与通用生成式 AI 的区别</h3><p>通用的生成式 AI 最大问题在于内容来源于互联网的公开数据,无法针对特定的数据源进行训练,比如无法跟企业内部数据,业务相结合,也无法满足个人的个性化需求,记得当时玩 ChatGPT 遇到最大的问题在于数据源的限制,为了让 ChatGPT 学习某个特定的技能,需要将内容拆分再提供给 ChatGPT 学习,这大大限制了生成式 AI 的能力。因此 Amazon Q 较 ChatGPT 而言有以下优势:</p><ul><li>与特定业务相结合;</li><li>支持多种数据源;</li><li>将权限引入生成式 AI 中,在企业中可以根据组织架构对人员设置不同的访问权限;</li><li>使用 <a href="https://link.segmentfault.com/?enc=5UnZqhVLdVBgcPUhexF5vA%3D%3D.Ggo7m1KRa6jroRKHcDFN2KKlXE%2BSKQyJkm3lhmI2P7ekh0PsyW6H%2FhQFJuEXoytV?trk=cndc-detail">Amazon Kendra</a> 可以将已训练完成的数据源进行共享,大大缩短训练时间。</li></ul><p>接下来我们用 Amazon Q 打造一个 Rust 知识库。</p><h3>用 Amazon Q 打造知识库</h3><h4>第一步</h4><p>打开 Amazon Q 登录或创建账号,进入如下页面。在页面的开头就清晰描述 Amazon Q 的工作方式。点击【Create Application】,填写 Application 基本信息,点击【Create】进入下一步。</p><p><img width="723" height="295" src="/img/bVdbxKg" alt="image.png" title="image.png"></p><h4>第二步</h4><p>为应用程序选择索引器。有以下两种索引器:</p><ul><li>native retriever</li><li>existing retriever</li></ul><p>很遗憾,未能从官方文档中了解到这两种索引器的使用场景。但经过操作发现,native retriever 只能在当前应用下使用,existing retriever 一旦创建可以被多个应用使用。第一次使用我选择了 native retriever。</p><p><img width="723" height="360" src="/img/bVdbxKi" alt="image.png" title="image.png"></p><h4>第三步</h4><p>添加数据源,Amazon Q 提供了多种数据源,我选了其中的 Web crawler ,填写数据源名称、url 等关键信息。其他信息按照提示填写。特别注意 Sync scope,尽可能缩小范围,避免爬取诸多无用的页面,进而影响索引速度和内容相关性。</p><p><img width="723" height="221" src="/img/bVdbxKj" alt="image.png" title="image.png"></p><h4>第四步</h4><p>点击【Sync now】后,需完成两个步骤:</p><ol><li>抓取页面内容</li><li>为页面创建索引</li></ol><p>网页数量越多,完成以上两步的时间就越久。</p><p>比较耗时的步骤在于创建索引。所以尽可能缩小爬取范围。其中:</p><ul><li><a href="https://link.segmentfault.com/?enc=PNrrwj9G7r7IDkAaT0vaKw%3D%3D.zwE7U4b0KlC70q43O3Clu1E5CGb0%2FDPweWjXMIspuPvroysvvxkz7QbGeRfad7QF?trk=cndc-detail">rust_book1</a>:rust 语言圣经中文版</li><li><a href="https://link.segmentfault.com/?enc=1emkSUmEbeN3MDTJd5j4dw%3D%3D.%2Fx0BNOLEAoj1XjB4EhoHjQ984Pmymg429sCMRF8oN7g%3D?trk=cndc-detail">rust_book2</a>:rust 语音官方文档(英文版)</li><li><a href="https://link.segmentfault.com/?enc=NYKpdaywB0JkC7uUAGa28g%3D%3D.99Frsz6vOS3E7g%2FQECngO4M6z5t3CkWP0ykAUAiDfhjG5SlcdIjvnIOMSZjv%2FWSL?trk=cndc-detail">rust_book3</a>:rust 语音官方文档(中文版)</li><li><a href="https://link.segmentfault.com/?enc=Q4QlE%2F0qqtU6eYPsmTLbWQ%3D%3D.tSAUfRCqcmocduBHYE8gELTLVihWhvA9QG%2F%2FJZtTLVE%3D?trk=cndc-detail">rust_book4</a>:Rust 语言实战(英文版)</li><li><a href="https://link.segmentfault.com/?enc=xdI28SSNDWYeBTtKASW91w%3D%3D.xMoLAeLQIIbDxRd2PZc36Q4VNwKgHTWJCYdbPBIR31Q%3D?trk=cndc-detail">rust_book5</a>:Rust 语言实战(中文版)</li></ul><p><img width="723" height="332" src="/img/bVdbxKl" alt="image.png" title="image.png"></p><h4>第五步</h4><p>点击【Preview web experience】进行预览,将会打开一个对话界面进行测试。也可以通过最后一步使用 IAM 集成符合 SAML 2.0 的外部身份提供商 (IdP) 的方式进行部署对外通过访问。</p><p><img width="723" height="191" src="/img/bVdbxKp" alt="image.png" title="image.png"></p><p>测试结果如下,确实如官方文档所言目前仅支持对英文文档进行索引,虽然能用多种语言进行对话,但英语对话的效果最佳。</p><p><img width="723" height="684" src="/img/bVdbxKr" alt="image.png" title="image.png"></p><h3>总结</h3><p>Amazon Q 旨在改变企业与数据交互的方式。该可以帮助用户解答特定于业务的问题,而不需要手动搜索。Amazon Q 可以通过亚马逊云科技管理控制台、公司文档页面、Slack 等多个渠道访问,并保证数据隐私和安全。</p><p>想象在公司内的几个场景:</p><ul><li>一个新人,想要了解公司的业务</li><li>A 项目现在谁负责,都有谁参与</li><li>A 项目 B 业务板块怎么操作,文档在哪</li><li>……</li></ul><p>当有了 Amazon Q 这一切都会发生改变,我们期待的未来已来~</p><blockquote><p>本文参与了<a href="https://segmentfault.com/a/1190000044413526?trk=cndc-detail">「构」向云端 | 亚马逊云科技 x 思否 2023 re:Invent 构建者征文大赛</a> ,欢迎正在阅读的你也加入。</p><p>授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre,知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道</p></blockquote><p>文章来源:<a href="https://link.segmentfault.com/?enc=OqwLwSCxArLINT2CECoMBg%3D%3D.hSgFezLwawQF8oA%2BIpDCVXYq6kIwvVnahgVfh0BIr4Ikk%2FTBoAvbRyEoQYQccrNi92TYakjB0drdySGxTCH2Uh5aNbMJj4H9%2B1k7YlzBOBYPqBUbRTOk5SbD9E1zX%2F5pSdbxJI8DziJuYO387CQ2UB1HJh%2FOsBnWl4LhHkx9S5Muwb2Vb%2FIDxovIDhNp4vc9" rel="nofollow">https://dev.amazoncloud.cn/column/article/658986055d096603bb1...</a></p>
猜字谜|构建生成式 AI 应用实践(一)
https://segmentfault.com/a/1190000044653701
2024-02-23T20:40:19+08:00
2024-02-23T20:40:19+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>在 2023 亚马逊云科技 re:Invent 之后,细心的开发者们也许已经发现有一个很有趣的动手实验:开发一款可部署的基于大语言模型的字谜游戏:</p><p><img width="576" height="594" src="/img/bVdbwCP" alt="image.png" title="image.png"></p><p>该款游戏使用了文生图模型为玩家提供一个未知的提示词,玩家需要根据模型生成的图像来猜测该提示词,来完成游戏。该动手实验完整地展示了如何在亚马逊云科技上完整构建生成式 AI 应用程序。</p><blockquote><a href="https://link.segmentfault.com/?enc=EUM89%2FrAP9ggAqEhliMlhg%3D%3D.FcYUtvwV8mkofcO70fbgmlOathwZq5ZTfyZZTtgOxzfBuJs55KTbA3n6kQNudXocCz6%2BIJnvh2mA2vzRBo1%2BprXCmBBdT4b5f0NZbaj5IGaS%2BngCCdAth%2Fm5OjLTROld" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=5UbXCns%2Fv4YBIL7SZeOlHg%3D%3D.eZcDNCV3G6tSuaT3amIXYf7UjeucODGvbsLX10xUYV9yhq4v8a0oIIIhNQftUvsVH%2BPudqDJrDkrM%2FePlFehX3kGLSKUWPxmoGHuBfyYX0fnrK%2B108zj1W2YyJmTutcnUE8k7siCXZsuVEgIUNgYPA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在<strong>构建生成式 AI 应用程序实践”系列内容中</strong>,我将通过三篇博客来介绍这个有趣的动手实验,并由此展示完整构建基于大模型的生成式 AI 应用的代码实践,以帮助生成式 AI 开发者们来完整了解构建生成式 AI 应用开发的整个流程,这些工作包括:</p><ul><li><strong>构建和部署前端程序(包括使用亚马逊云科技 CDK 部署 Streamlit 应用等)</strong></li><li><strong>构建和部署后端程序(包括部署实现不同场景功能的三个大模型等)</strong></li><li><strong>面向生产环境的持续集成和持续部署(CI/CD)</strong></li></ul><p>本文是这个系列的第一篇,将概要介绍如何创建 Amazon SageMaker 笔记本实例,获取完整的前后端程序代码,实验涉及的组件和实现代码文件等内容。</p><h3>创建 Amazon SageMaker 笔记本实例</h3><p>你即将开始使用 Stable Diffusion 基础模型结合生成式 AI 和 Amazon SageMaker JumpStart 创建一个猜谜游戏。需要确认你的亚马逊云科技账号已<strong>准备就绪</strong>。</p><p><img width="723" height="300" src="/img/bVdbwCQ" alt="image.png" title="image.png"></p><p>亚马逊云科技账号准备就绪后,首先需要创建一个名为“stable-diffusion”的 Amazon SageMaker 笔记本实例(此处作者创建了一个名为“stable-diffusion”的实例)。实例创建后,需要等待大约 10 分钟,直到其变为“InService”状态。如下图所示:</p><p><img width="723" height="109" src="/img/bVdbwCR" alt="image.png" title="image.png"></p><p>此处示例显示创建的笔记本实例类型为 ml.m5.xlarge,作者在 ml.t3.medium 笔记本实例也成功完成过这个实验。创建实例时,注意为实例配置合适的 IAM 角色,使其具有访问 S3 和 SageMaker 的权限。如下图所示:</p><p><img width="723" height="80" src="/img/bVdbwCS" alt="image.png" title="image.png"></p><h3>在 Amazon SageMaker 中获取完整程序代码</h3><p>在上一节中,我们已经创建了 Amazon SageMaker 实例,现在将使用 JupyterLab 终端提取为该实验准备的完整程序代码。点击“Open JupyterLab”进入 JupyterLab Launcher 面板,如下图所示。</p><p><img width="723" height="131" src="/img/bVdbwCT" alt="image.png" title="image.png"></p><p>点击“Terminal”进入 Terminal 界面。由于代码位于:s3://aws-jam-challenge-resources/genai-charades/generative-charades.zip</p><p>因此,我们输入如下命令来获取程序代码包,并解压包获得完整程序代码:</p><pre><code>$ cd /home/ec2-user/SageMaker
$ aws s3 cp s3://aws-jam-challenge-resources/genai-charades/generative-charades.zip .
$ unzip generative-charades.zip</code></pre><p>如下图所示:</p><p><img width="723" height="132" src="/img/bVdbwCU" alt="image.png" title="image.png"></p><p>解压代码包后,在 JupyterLab 左侧会看到一个 generative-charades 的目录(如下截图所示),这个目录下就是我们这个实验的全部代码。从这篇开始的系列博客,我们将一起分析这套代码是如何实现一个生成式 AI 的完整应用的。</p><p><img width="723" height="833" src="/img/bVdbwCV" alt="image.png" title="image.png"></p><h3>应用程序组件构成概述</h3><p>该生成式 AI 驱动的猜谜游戏将由三个大模型,以及其它组件共同构成。</p><p>首先,我们需要一个<strong>文字生成图像的大模型</strong>来担当图像生成器的工作。在本例中,这个模型还应该能够部署成为一个独立的端点,这样任何想要玩游戏的人,不需要在他们的机器上安装 GPU 即可开展游戏。</p><p>其次,我们需要一个<strong>文本嵌入的大模型</strong>来做评分裁判的工作。在本例中,我们将使用这个文本嵌入模型,把用户提供的答案与实际正确答案进行比较,以反馈给用户最终结果;另外,这个模型也应该能够部署成为一个独立的端点,以响应来自大量游戏玩家的猜谜请求。</p><p>最后,我们还需要一个<strong>文本生成的大模型</strong>来做提示生成的工作。因为我们计划可以选择性地提供一个机制,向用户提供提示,但又不泄露精确的正确提示词本身。</p><p>综上所述,该生成式 AI 驱动的猜谜游戏各组件逻辑图,如下图所示:</p><p><img width="691" height="556" src="/img/bVdbmv0" alt="image.png" title="image.png"></p><p>除了三个大模型做主要功能担当之外,以上架构图还展示了我们为实现完整应用程序而需要的其它各组件,包括:</p><ul><li>S3 做游戏所需的模型构件提供对象存储等</li><li>ECS 和 Fargate 封装了游戏所需的服务等</li><li>Cloudfront 为游戏提供内容缓存等</li></ul><p>这些功能我们将通过下面两个 Notebook 和大家一起逐步完成部署。</p><h3>应用程序部署代码概述</h3><h4>Notebook #1 – 部署三个基础大模型作为后端</h4><p>第一个 notebook 是 deploy_charades_endpoints.ipynb,如下图所示:</p><p><img width="387" height="213" src="/img/bVdbwCW" alt="image.png" title="image.png"></p><p>这个 notebook 将逐步实现如何部署三个大模型作为后端支撑。</p><p>以部署文本生成图像的大模型为例,我们将使用 Stable Diffusion 1.5(或 2.1)基础版的大模型。以下代码将通过 SageMaker Jumpstart 将 SD 1.5(或 2.1)基础版模型部署为 Amazon SageMaker 端点。</p><p>由于 Amazon SageMaker 托管基于 Docker 容器,因此为了将我们的模型部署为端点,我们需要一个 Docker 容器以及用于调用模型进行推理的脚本。Amazon SageMaker 端点的架构如下所示:</p><p><img width="723" height="383" src="/img/bVdbwCX" alt="image.png" title="image.png"></p><p>幸运的是,Amazon SageMaker Jumpstart 提供了所有这些功能。当我们运行以下代码单元段时,它将打印出我们使用的 Docker 容器、源代码的位置以及我们将要部署的模型 URI:</p><pre><code>from sagemaker import image_uris, model_uris, script_uris, hyperparameters
from sagemaker.model import Model
from sagemaker.predictor import Predictor
from sagemaker.utils import name_from_base
# deploy
# model_id = "huggingface-txt2img-runwayml-stable-diffusion-v1-5"
model_id = "model-txt2img-stabilityai-stable-diffusion-v2-1-base"
# sd_endpoint_name = name_from_base(f"jumpstart-example-infer-{model_id}")
sd_endpoint_name = f"jumpstart-{model_id}"
# Please use ml.g5.xlarge instance type if it is available in your region. ml.g5.xlarge has 24GB GPU compared to 16GB in ml.p3.2xlarge and supports generation of larger and better quality images.
inference_instance_type = "ml.g4dn.2xlarge"
model_version = '1.1.0'
# Retrieve the inference docker container uri. This is the base HuggingFace container image for the default model above.
deploy_image_uri = image_uris.retrieve(
region=None,
framework=None, # automatically inferred from model_id
image_scope="inference",
model_id=model_id,
model_version=model_version,
instance_type=inference_instance_type,
)
# Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(
model_id=model_id, model_version=model_version, script_scope="inference"
)
# Retrieve the model uri. This includes the pre-trained nvidia-ssd model and parameters.
model_uri = model_uris.retrieve(
model_id=model_id, model_version=model_version, model_scope="inference"
)
# To increase the maximum response size from the endpoint.
env = {
"MMS_MAX_RESPONSE_SIZE": "20000000",
}
print("deploying image uri:", deploy_image_uri)
print("deploying source uri:", deploy_source_uri)
print("deploying model uri:", model_uri)</code></pre><p>以上代码段的作者实际运行输出如下所示,供参考:</p><p><img width="723" height="104" src="/img/bVdbwCY" alt="image.png" title="image.png"></p><h4>Notebook #2 – 部署前端和实现CI/CD</h4><p>第二个 notebook 是 CDK-notebook.ipynb,如下图所示:</p><p><img width="389" height="214" src="/img/bVdbwC1" alt="image.png" title="image.png"></p><p>Amazon SageMaker 端点为三个基础大模型创建完成后,我们还需要使用 亚马逊云科技云开发工具包 (CDK) 来 部署 Streamlit 应用。</p><p><strong>亚马逊云科技云开发工具包 (CDK) </strong>是一款开源软件开发框架,可使用代码定义云基础设施并通过 CloudFormation 进行配置。它由两大主要部分组成:</p><ol><li><strong>CDK Construct 库</strong>:包含一系列预先编写、模块化且可重复使用的代码片段,称为构造 (construct)。开发者可以使用、修改和集成这些构造块,快速开发基础设施。该库旨在简化使用服务构建应用程序时,定义和集成各个服务所需的复杂性。</li><li><strong>CDK 工具包</strong>:用于与 CDK 应用交互的命令行工具。您可以使用它来创建、管理和部署 CDK 项目。CDK 支持 TypeScript、JavaScript、Python、Java、C#/.Net 和 Go 等编程语言。开发者可以使用任何一种支持的语言来定义可重复使用的云组件 (construct),然后将它们组合成栈 (stack) 和应用 (app);最后将 CDK 应用部署到 CloudFormation,以配置或更新资源。</li></ol><p>亚马逊云科技云开发工具包 (CDK) 的工作原理如下图所示:</p><p><img width="723" height="544" src="/img/bVdbwC2" alt="image.png" title="image.png"></p><p>在这个 notebook 中,我们将学习 CDK 的基本概念,并构建一个模板,用于部署一个基于我们刚刚生成的模型和 UI 的整体解决方案,从而打包我们的猜谜游戏。</p><p>在下一篇文章中,我们将详细介绍如何使用 Amazon SageMaker 来部署这个游戏需要的三个大模型:</p><ul><li>文本生成图像模型—Stable Diffusion 1.5(或 2.1)</li><li>文本嵌入模型—<a href="https://link.segmentfault.com/?enc=SEO%2F91Zn8Qhy%2BbMyVUortA%3D%3D.hMuluES8SKX37oXQICluwnMQPhZo3r6jaUZf9evhaqF4b6k9p4bW4cErOiYiR05HyW01VPov5GQqCjMsVlVZn%2BPh8IfOIEwHqNY%2Flwdfw9w%3D" rel="nofollow">MiniLM L6 v2</a></li><li>文本生成模型—Falcon 7B Instruct</li></ul><p>敬请期待。</p><p>请持续关注 Build On Cloud 专栏,了解更多面向开发者的技术分享和云开发动态!</p><p><img width="723" height="488" src="/img/bVc6qhK" alt="" title=""></p><p>原文链接:<a href="https://link.segmentfault.com/?enc=zE7yCdWND27ioPn1kp%2Fy9Q%3D%3D.zR5YMvx1N8hluEo%2BRxT07%2FZ7AGk5B3dH62Z%2Fbq0gS%2BHSfWb6wY7pOPB8QERjuBMnu4Dy6irGZZUisKgcWVXBPaHc8yyFX8ttEPUUivSTx4axBVaxVLYOFyBiSTr2MUm10MvabiGf6mGcSpsuUk2u4J3Kdd4ozIUEEod8YQYzastoEQLD6y%2FV5Qk8sKOE%2FS38" rel="nofollow">https://dev.amazoncloud.cn/column/article/65d88f59e3b3f210762...</a></p>
记录 re:Invent 大会,使用 PartyRock 编写我们第一个 AI 应用以及心得
https://segmentfault.com/a/1190000044653576
2024-02-23T19:39:14+08:00
2024-02-23T19:39:14+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>如果说 2023 年什么应用技术最火,那么说是 OpenAI 为代表的 ChatGPT 在 AI 方面的突破和发展,是完全没有任何的争议的。</p><p>随后,各大云厂商以及应用集成商甚至垂直领域的服务提供商都有了对应的 AI 模型。我们开玩笑的说,这个好比多年前的百团大战一样,各种的 AI 相关的应用奔涌出现、百花争艳,一夜之间就好比钱江潮水汹涌而来。</p><blockquote><a href="https://link.segmentfault.com/?enc=8BrqYzhsKsF8t%2BCpimS5Lw%3D%3D.5riqSjhIJaOcqzx7Dc5b1ZxF8%2FqxU3TAzbo70YJBntbYZ5MF7nFGBVf9gYQFvTy9WnIb1qXGzoadc8qCc98AhC4DX3njtlh2aOSCcbSiRRW93vgHlAJxyQ%2BRGDp3%2BCfg" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=UDBR9%2FcuDtJQnq1KUmhqTQ%3D%3D.f30wSVBtV5NJmu5yd6lcQAwRdpngs011ghwLuJqbyC%2FvXDhFRnemyUxf2g%2Fc95MwGcvyVq4w0vgW4grdDtbV6fen%2ByShpI3Zz%2Fappl6TFds8XgOkH2mhsT3YI%2FwKCeZpeIkbopRg60yYheWWAcDj6ggiRshSm8t0No5HJ3XZGyA%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>其中生成式的 AI ,可能是相对来说最让人感到期待的 AI 相关的领域之一。 但实际上,生成式的 AI 并不是非常新鲜的事物,早在 ChatGPT 出现已经成熟之前,就已经有研究甚至大规模的部署和应用。</p><p>我们往前数将近十年前,微软发布 Windows 10 时期,就有打算将 <a href="https://link.segmentfault.com/?enc=8oRVKoF0ldhHLOljVLR4YQ%3D%3D.8t8IENLtZrbypYQAGkHvHV8X9fi0HBFqm2w1rgprhFNPqfe7Ig%2FbrtBUmxaFJjQ9GizdHWnjsvv4m6PvAx4ZeNVk1yWI36goL2ubNBgytpj68SDvWV9X37zOAJh1Mhsc?trk=cndc-detail">Cortana</a><br> 作为语音和自然语言文本的处理前端,作为人机界面的交互用于下一代的 Windows 平台。</p><p>同在电商领域,阿里云相关的云服务商也在做各种的尝试,用于提供商家精确的自动化售前、售后服务等应用。由于偏向垂直领域的精耕细作,始终没有在全行业形成广泛的影响力。</p><p>那么为什么,生成式的 AI 发展了那么久,只有在近几年才能突破技术和业务重围,来到大众面前并惠及行业呢?</p><p><strong>或许,re:Invent 大会上推出的 PartyRock 这个服务,给与了我们新的启示。</strong></p><p>传统的 AI 服务,在人们的印象中其实简单的应答,使用对话式的机制来和用户沟通,这是非常常规以及容易让人接受的方式。</p><p>而 PartyRock 采用“叠叠乐”的方式,让各种功能模块使用 Widgets 相连接,各种 Widget 输入和输出数据,然后处理封装成具体的 AI 应用。正如 PartyRock 自我介绍的那样:“ Everyone can build AI apps. ” 。下面我简单的演示下如何在非常短的时间内我们自己搭建、编写以及分享我们自己的 AI 应用。</p><h3>PartyRock</h3><p>我们一起来体验下亚马逊云的 PartyRock 给我们带来的惊喜。在下面的例子中,我们要实现的功能很简单:告诉 AI 我们需要或许某个网站的内容,然后帮忙概括成三句话,以及对应的关键词,然后再告诉另外个 AI 根据这些关键词生成对应风格的图片。于是,我们就能够根据网站的 URL 生成对应网站的“ 第一印象 ”了。</p><p>作者已经将对应的应用发布到了 PartyRock 的网站上,心急的朋友可以先点开体验下:<a href="https://link.segmentfault.com/?enc=R%2BGS3ojzqht5fN3tz4CruA%3D%3D.mx7fmc3q7qymbO1q2ZfgHOSLTGjVigNLlXHyh5igSs29ZJSioqBsYm9Vn3TZ01BaSE85bhOa1nnMoBxq7A696jEEVmS%2F1wALDbpQ0GjFF1k6O%2BPIPRTbTYxJ1iOfuHsH" rel="nofollow">https://partyrock.aws/u/mingcheng/omWF-0b60/What-is-your-webs...</a></p><p>好,我们说回到这里,如果按照传统的技术栈可能觉得这个需求有点炸裂,因为光是提取网站内容这块我们就必须编码找个 HTTP 请求库,然后正则匹配然后在筛选多余的信息,留下关键词等......</p><p><strong>在 PartyRock 中并不需要如此的麻烦。</strong></p><p>例如,我们在一个 Widgets 中输入 URL 网址以后,再到另外个 Widgets 中告诉 AI 根据我们输入的 URL 获取对应的内容,例如我们使用以下的 prompt :</p><pre><code>Summarize this website into 3 sentences where from [Website URL] . Output as keywords list.</code></pre><p><img width="723" height="463" src="/img/bVdbwAL" alt="" title=""><br>然后,我们就可以在 Widgets 上得到两个数据元素以及对对应的输出,是不是非常的简单?接下来,我们根据这些获取的关键词去生成对应的网站图片,也是类似的操作:<br><img width="723" height="463" src="/img/bVdbwAN" alt="" title=""><br>然后就可以把 Widget 生成的内容传到另外个 Widgets 中,同时调用不同的 AI 模型去处理并串联起来了。</p><p>自此,我们的第一个非常简单的 AI 应用就编写好了,是不是非常的简单!例如,我们使用下这个应用,输入笔者自己的博客地址,然后看看它能帮我的网站生成什么样的关键字和图片:</p><p><img width="723" height="428" src="/img/bVdbwAO" alt="" title=""></p><p>看来从结果的角度上来说,作为码农的笔者和 PartyRock 生成的内容还是非常匹配的。最后,如果你有需要也可以像笔者一样,在 PartyRock 上发布对应的应用,供其他小伙伴一起分享和使用。</p><p>我们总结下,<strong>PartyRock 是真正做到了 “ Invent ” 这个关键词的:</strong></p><ul><li>首先,它使用简单的 Widget 串联用户的输入和输出,以及对应的 AI 能力,打破了传统人们对于 AI 就是问答机器人的传统印象;</li><li>其次,对于真正需要 AI 能力的小伙伴来说,即便不需要更多的专业技术背景和知识,但是满世界去寻找不同的 prompt 是件感受非常不好的事情,RartyRock 在一定程度上解决了这个问题,并能够将 prompt 弱化增强了用户的体验;</li></ul><p>然后,对于传统的用户流来说,PartyRock 除了 AI 相关的能力以外,还能串联我们传统的其他数据处理和输出能力,可谓是一举多得。</p><p>PartyRock 这个服务的推出,绝对不是亚马逊云的灵光乍现,是基于多年的技术沉淀以及充分了解客户的需求,才能推出如此王炸的产品。</p><p>生成式的 AI 能够让普罗大众迅速理解和接受并从 AI 相关的技术获得利益,我们在各种信息充斥的今天,需要不停的梳理、查找以及过滤各种的信息(有些资源甚至还有版权相关的限制),但是忽略了信息本身是不停的生产和处理的过程。</p><p>生成式的 AI 免去了使用以及验证各种数据的后顾之忧,同时也能给用户真正带来“数字化助理”的体验。同时,云计算是目前整个数字化行业的基石,因此只有具体的 AI 功能是完全没有根基的,需要整个相应的云服务联动才能形成完整的解决方案。</p><p>例如,我们在开发和生成 AI 相关的应用的时候,从我们技术人员的角度上看来,光是使用 PartyRock 生成简单的 AI 应用还不够,还需要接入我们目前所拥有的业务。</p><p>那么这不仅仅需要用到 AI 相关的服务和接口,还需要服务器、网关、数据库、CDN 等传统云计算领域的能力根基。这块亚马逊云自然是提供了不可替代的资源以及能力,并且有充分和大量的案例作为支撑。</p><p>同时,光有云计算领域的能力还不完全足够,对应的开发者资源也需要配套同步。对于我们来说,只有提供了丰富的文档、示例代码才能减轻和优化开发成本,专注于开发业务本身。</p><p>很高兴的看到在亚马逊上 re:Invent 大会上,同样提供了有着丰富的<a href="https://link.segmentfault.com/?enc=v8LBn4%2Bv76cNZgGs0Yax5Q%3D%3D.sNqMVLa2E%2BMr7KQYF5MMR5wWe9J4z0A6ZrQFQSXcUM%2FqOCrtJ4xubcZ15%2Fmr4NxqAHVsR3Z8HSgx8MlP%2Fdbw5g%3D%3D?trk=cndc-detail">开发者文档、SDK、API</a> 等资源,图文并茂能够快速的实现我们的设想以及功能。</p><p>这让我们 Z 时代的程序员其实相比我们这些“老派”的程序员有着不同的思路,他们更多的会基于 AI 核心功能的封装和实现,利用自然语言和处理能够在原本需要大量开发时间和精力的研发任务,能够在短期内实现,这就是 AI 带给我们开发者思路上的转变。</p><p>最后,将要过去的 2023 年绝对是 AI 爆发的元年,亚马逊云科技作为这一领域的重要玩家,除了发布 PartyRock 等 AI 相关的产品,其他对于 AI 技术本身的态度也格外惹人关注。</p><p><img width="723" height="331" src="/img/bVdbwAR" alt="" title=""></p><h4>亚马逊云的 CTO Werner Vogels 给出的答案是:AI for good。</h4><p>更具体一点理解就是是:要让 AI 一直为人类所用,我们需要用好的数据训练它达到好的目的。所以,从亚马逊云 re:Invent 大会上的提供的各种思路以及产品看来,这从某种程度上消除了我们对这一技术未来的担忧,让我们能够更尽情拥抱 AI 时代的到来。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=tG9WSWakmqzHtf%2B5AfQycw%3D%3D.nS7KRXMhgOCB3%2BadOm3OMXbt6IDWjW14kw08t73o3sB%2F9kvZKjfIMjkQui0wl1iH33BJNOlniTHszCKXsmwnyhubLz1f0jPq%2FZl2zwkkcSDaIaErHQOPrYASnL2aWzIV%2BY8a5RR4B27%2FejVS6MeX%2FaDgeDUXT5MKH0Sro3792IGMp9ZqbfybfARlYKnZHnsc" rel="nofollow">https://dev.amazoncloud.cn/column/article/658967d05d096603bb1...</a></p>
龙年大吉,新的一年开启你的职业飞跃之旅
https://segmentfault.com/a/1190000044649859
2024-02-22T17:21:13+08:00
2024-02-22T17:21:13+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p><strong>龙年伊始,万象更新,祝大家开工大吉!</strong></p><p>新的一年,你是否有很多期待和计划等待实现呢?别在等待啦,增强职场实力,步入云职场快车道,升值加薪不是梦!亚马逊云科技培训与认证是职场弯道超车的有利帮手,相关数据显示如下:</p><ul><li>69% 的专业人士曾表明,亚马逊云科技培训帮助他们增加了收入,74% 的人认为 亚马逊云科技认证是获得更高收入的原因。</li><li>超过80%的专业人士表示亚马逊云科技培训与认证提高了他们的工作保障<em>[1]</em></li></ul><p>除此之外,亚马逊云科技多项认证被收录至职业资格认证目录和清单<em>[2]</em>。</p><p>小编汇总了最新的培训与认证讯息,希望可以在学习和考证之旅中,祝大家助一臂之力!</p><blockquote><a href="https://link.segmentfault.com/?enc=NIgb2yHd%2FNuckyqiU1UTNQ%3D%3D.kXkEz%2F7Ik%2F3gbFsy3YknkSaG1D1FECwk47nc3HcTdbFI37WylafrvI6ihOSy3282WucssuPZ%2B2eEMYxYWfR0ahrRxHxWWM5cFp3BrfTTSmLiytIOWdmz1Dnl6YvMNjdU" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=2iB%2FZ8RJQPs3ck3V9S71qg%3D%3D.OW2V%2FErpFLXZgH8zuiwGNfoYVWFSBla%2FgVTZBoI0wgP28e8e5g0BdnmrTd2KCC87aKlCXNBkUDACHqvCip7Fmk7kiBR%2BtT9yYemVnm81zX3Xcl6Jb5tAzyl2oHifhmLsgL5PZoglWyFiNSziSX0Wpg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><strong>“一次不过、免费再考” 的限时活动火热进行中</strong></p><p>如果你还没有报名考试?<br>如果你对考试一次过没有信心?<br>如果你想获取免费的“补考”机会?<br>快来获取“一次不过,免费再考”的优惠码<br><strong>快来领取优码</strong>: <a href="https://link.segmentfault.com/?enc=3%2BTbEYna9VgTOyNujexzrA%3D%3D.njGZS%2FAyYjteoKJZmTF8YPMQIFFuGS8Uzr7w20IycyWSQ6AJSVX6JKGJoYxa%2BvK23Pb9UmSy7LbJmCNXc01org%3D%3D" rel="nofollow">https://www.pearsonvue.com.cn/aws/freeretake?trk=cndc-detail</a></p><p><strong>优惠码使用小 tips</strong></p><ul><li>首次认证考试必须在2024年4月15日之前完成,免费再考必须于2024年6月30日前完成,以确保优惠码可以有效使用。</li><li>您必须在首次报名认证考试时使用该代金券代码,并于结账时全额支付首次考试费用。如果您的第一次考试失败,当第二次报名参加同一认证考试时,将自动套用该免费优惠。</li><li>本优惠不得合并使用其他优惠或抵用券。每位考生仅限使用一次。</li></ul><p>迫不及待要加入考取认证的队伍中了吗?3月份线上直播备考训练营来了,亚马逊云科技资深技术讲师讲解最精华的知识点,带领大家“真题”训练,更有答疑互动,随机掉落惊喜等环节,<strong>快点击图片速速报名吧</strong>。</p><p><a href="https://link.segmentfault.com/?enc=js1iGaA1cbo2K%2FuMjDRHKw%3D%3D.pME2yEoYqGErHpf1Aq2oRIs97qLuvcxF3QaHLydVkvHTMuZ4RPJDFFoQTWEk5yZ7Yo2VfKl6SOuCsXOnrkl46Aqs1N8tl7QnwPLThr3BsIGqJEF18cPwRNrQZDF4coiaVQLxUqHmD602hhqMzVNUOSWb1g7tdopWfaUNfl%2F9e77eu7%2BgFIcIuMWkR%2F5BErbr9A5lFfMlPppCLX%2Ff8RKjuiripa1FCUGg5CUHPgfdess%3D" rel="nofollow"><img src="/img/remote/1460000044649861" alt="图片" title="图片"></a><br><strong>直播时间:2024年3月5日 | 14:00 – 16:00</strong><br><strong>课程介绍:</strong> 本在线研讨会的内容是亚马逊云科技部署架构课程,面向准备参加 AWS Certified Solutions Architect – Associate 考试的人员。 该考试用于检验考生在亚马逊云科技云上设计和部署可扩展、高度可用且具容错能力的系统方面的技术专业知识。<br><strong>合适客群:</strong></p><ul><li>准备参加 AWS Certified Solutions Architect - Associate 考试的解决方案架构师</li><li>学习过亚马逊云科技云部署架构课程(或具备同等水平的知识)</li><li>具备至少一年的在 亚马逊云科技平台上设计和部署可扩展、高度可用且具容错能力的系统的实践经验</li><li>至少在一种高级编程语言方面具备深厚的知识</li></ul><p><img src="/img/remote/1460000044649862" alt="图片" title="图片"><br><strong>直播时间:2024年3月19日 | 13:00 – 17:00</strong><br><strong>课程介绍:</strong> AWS Certified 解决方案架构师 — 专业级认证验证了您在亚马逊云科技平台上设计分布式应用程序和系统所需的高级技能和经验。该在线研讨会结合了亚马逊云科技高级架构培训课的内容来检查考试范围,并指出特定的研究领域,从而帮助您准备考试。此外,每个学科领域的样题可以帮助您理解考试概念,您可以学习如何轻松地排除错误答案。我们建议您在参加在线研讨会之前完成亚马逊云科技上的高级架构课程。<br><strong>合适客群:</strong><br>准备参加 AWS Certified 解决方案架构师——专业级考试的解决方案架构师</p><p><strong>上期备考训练营学员留言</strong></p><ul><li>“从老师流畅地讲解,可以感受到老师的经验非常丰富,还能结合生活案例,通俗易懂地让我们了解上云的知识。”</li><li>“通过这次课程,我对亚马逊云科技的云计算技术和解决方案有了更深入的了解,包括亚马逊云科技的基础架构、亚马逊云科技的服务目录、安全性、网络、存储、数据库等等。”</li></ul><p>【注】<br>[1] 数据翻译源于 Enterprise Strategy Group, Understanding the Value of AWS Training and Certification to AWS Partner Organizations, Sept. 2021.<br>[2] 亚马逊云科技解决方案架构师-专业级认证入选《北京市境外职业资格认可目录(3.0 版)》<br>10项亚马逊云科技认证入选重庆市《重庆市境外职业资格认证书清单》和上海市《浦东新区境外职业资格证书认可清单 2.0 版》。<br>3项亚马逊云科技认证入选《厦门市国际职业资格比照认定职称资格目录(2023 版)》</p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=KE%2FKx4Sz9tC0rPVxzSyCig%3D%3D.%2FMvNEB1nchs%2B60%2BGqb4S2s%2BUPGacKX%2FC7irrB2eQt568XWeDWkDZ6GRmPUlu%2F9Yt35sR0RZ%2BSN83pQHoTJxQyf2FB%2FiKrci59hCD7uyZFAeNIdb5rtD8GInixO3OYJ7YCuzWowtEZCiW7H9PDCtP2wPwLwjUwmavGZJ%2B27Xx%2B3kB%2FMfL7Guzdbr7hnFoez5L" rel="nofollow">https://dev.amazoncloud.cn/column/article/65d70372e3b3f210762...</a></p>
2023 re:Invent 用 PartyRock 10 分钟构建你的 AI 应用
https://segmentfault.com/a/1190000044646025
2024-02-21T16:30:02+08:00
2024-02-21T16:30:02+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>前言</h3><p>一年一度的亚马逊云科技的 re:Invent 可谓是全球云计算、科技圈的狂欢,每次都能带来一些最前沿的方向标,这次也不例外。在看完一些 keynote 和介绍之后,我也去亲自体验了一些最近发布的内容。其中让我感受最深刻的无疑是 PartyRock 了。PartyRock 真的算是做到了:能让任何人快速的构建一个属于自己的 AI 应用。当然,本文最后也分享我对于其他在 re:Invent 上提到的一些看法和思考。</p><p>那么,不多说,先来看看今天的主角 PartyRock。</p><blockquote><a href="https://link.segmentfault.com/?enc=xcPwczJ2YzOqzGVBxqm4JQ%3D%3D.oVNPRpOZYECB72yClKMSi6vqp3QnoqnR6V4dq7vZ27kO66Nzo9IVXeRPCpK7dZ0468ccdZy4IO5n3jKkz4Zto0XXzHsVbDY%2B1KjqXfuB1OunMzgzvYx5nMct8dnD4YSN" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=TsFcQDpQPrwZM41iYDnURg%3D%3D.EKkhlaaGqqm281yMCAl%2BJ6vxCj8qINP460JzhdqwmU%2FUsWTjyKoKxHydiQbJHpT5EjMWH4NssJxTinYLMrnf7s4xPmc8TTAJeCalXo3ceKAGThpq3ELKDY7kClWiKrxlrR%2BAZpEXkP87vsjRUMkVwA%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>PartyRock 简介</h3><blockquote>Everyone can build AI apps.</blockquote><p>去年到今年 AI 相关的应用层出不穷,GEN AI 已经太多了。到目前为止,其实我本人已经有点审美疲劳了,因为该看的都看的差不多了,所以说实话体验之前,我并没有对 PartyRock 带有很大期望,最多是体验完了之后厚脸皮来一句 “不过如此”。结果体验完成之后发现我说的是:</p><p><img width="440" height="202" src="/img/bVdbuA3" alt="image.png" title="image.png"></p><h3>使用体验</h3><p>下面我就用我自己制作的两个应用和一个官方的应用来说明一下它的使用体验。</p><h4>构建第一个应用 - 选词填空</h4><p>制作的过程其实非常简单,几乎 10 分钟就搞定了。</p><p><strong>步骤 1</strong><br>点击创建应用之后,在它给出的输入框里面输入你想要做的应用的功能描述,比如说,我最近在学英语,我第一想法就是做个选词填空的应用出来,于是我就在 App builder 的输入框里面输入如下的内容,然后点击 Generate app 就开始生成了。</p><p><img width="700" height="388" src="/img/bVdbuBb" alt="image.png" title="image.png"></p><p><strong>步骤 2</strong><br>根据生成的内容,你自己按需求修改一下描述和内容,这里最后下方的答案输入部分我做了一些提示词的修改,其他我也就没动了。</p><p><img width="723" height="466" src="/img/bVdbuBi" alt="image.png" title="image.png"></p><p><strong>步骤 3</strong><br>然后就可以测试一下了,在第一个框 ( Words to choose from ) 输入一些单词,在右边 ( Sentences ) 就会生成对应的题目。</p><p><img width="723" height="164" src="/img/bVdbuBj" alt="image.png" title="image.png"></p><p>然后你可以在下面 ( Answer ) 作答并验证答案是否正确。</p><p><img width="723" height="164" src="/img/bVdbuBl" alt="image.png" title="image.png"></p><p>整个过程,需要我动脑的地方就是在想我应该如何描述我的应用,实际生成的效果很不错,我很满意。</p><h4>构建第二个应用 - 扩写生成图片</h4><p>第一个应用我们是依赖的 AI 直接帮我们生成的,虽然很简单,但是对于我们开发者来说,与其去想描述,不如直接动手来的快。于是这次我们从零开始(选择 “ Start from an empty app ” 选项),自己搭建一个应用试试看。这次我想试试有关于图片生成的能力,对于 AI 生成图片来说最麻烦的是写描述词,于是我想让 AI 先帮我扩写,然后再利用扩写的内容去生成图片。</p><p><strong>步骤 1</strong><br>第一步添加 widget ,其实我们在上面看到的一个输入框就是一个 widget ,目前 PartyRock 提供了下面几种可以使用的 widget 。</p><p><img width="723" height="233" src="/img/bVdbuBm" alt="image.png" title="image.png"></p><p>我们需要 3 个 widget,一个用户输入 ( User Input ) ,一个文本生成 ( Text Generation ) ,一个图片生成 ( Image Generation ) 。</p><p><img width="723" height="333" src="/img/bVdbuBn" alt="image.png" title="image.png"></p><p><strong>步骤 2</strong><br>然后,我们就需要编写 AI 生成的提示词了,点击每个 widget 右上角的编辑,就可以输入对应的提示词,还可以选择不同的模型。其中最重要的是,你可以使用 @ 符合直接引用其他 widget 生成的内容,比如,我需要根据用户输入的内容进行扩写,那么我在提示词里面就可以直接引用用户输入的部分;比如,我想根据扩写的内容生成图片,我就可以利用 “ @Description ” 引用扩写的内容。如下图 Prompt 中高亮的部分。</p><p><img width="723" height="501" src="/img/bVdbuBr" alt="image.png" title="image.png"></p><p><strong>步骤 3</strong><br>测试一下,下图就是我输入的一句描述,经过扩写最后生成了图片,当然模型不同最后效果也不一样。</p><p><img width="723" height="329" src="/img/bVdbuBu" alt="image.png" title="image.png"></p><p>此时你就可以发布你的应用了。</p><h4>ChatRPG</h4><p>让我觉得最巧妙的一个应用,是官方给出的 ChatRPG 。这个应用利用了 AI 对话的功能来完成了一个对话形式的 RPG 游戏,你可以通过对话的形式选择不同的路径 ( A B C ) 来获得不同的结局,并且最为巧妙的是,它利用了几个 AI 的联动,整个 RPG 的过程会生成不同的场景图片,让整个游戏的过程更加有了带入感觉。</p><p><img width="723" height="470" src="/img/bVdbuBI" alt="image.png" title="image.png"></p><h3>精妙的地方</h3><p>说完了体验,来说说 PartyRock 精妙的地方。</p><ol><li>AI build AI : 第一点我觉得妙的地方是自举,也就是自己构建自己,利用 AI 的能力去构建 AI 应用本身。一方面体现 AI 本身的能力强大,另一方面让也大大降低了入门的门槛,让小白用户也能快速上手。</li><li>remix:PartyRock 提供了 remix 的功能,你可以直接复制( remix )一个别人已经发布的应用,直接修改里面的参数或者提示词来完成你的应用。这无疑是最快的创建应用的一种方式了。</li><li>引用变量:这我觉得是 PartyRock 的灵魂,通过@引用其他 AI 完成的工作,从而实现不同 AI 之间的联动。你甚至可以通过这样的方式构建一个自己的工作流,让 AI 进行协作,让需要来回对话好几次的事情一步到位。现在提供的 widget 还比较少,我觉得随着后面的更新,当 widget 有很多的时候会碰撞出更多的火花。同时,这也给我们提供了一个不同 AI 之间协作的一个不错思路,我觉得这样的思路带给我的思考比产品本身还有意思。</li></ol><h3>其他产品</h3><p>当然,这次 re:Invent 提到了其他很多的产品和思考,这里就对其中几个我非常感兴趣的产品谈谈我的拙见。</p><p><strong>Serverless</strong></p><p>我关注最多的一定是 serverless ,我一直都觉得 serverless 一直一种对开发友好也对运维友好的结局方案。而这次 re:Invent 发布的 Amazon ElastiCache Serverless 让我也有了新的思考。Amazon ElastiCache Serverless 是根据应用程序流量模式自动的扩展容量的缓存服务,而对于缓存这样的热点数据来说,有过实际业务场景的同学都知道如果 Redis 突然内存满了是一种什么样的体验。而 ElastiCache 的自适应压力的工作负载模式可以很好的解决这个问题,而且兼容 Redis。</p><p>产品本身的意义很大,而带给我的思考是,在未来是否当 serverless 足够成熟之后是否会出现一直数据源的集合产品,自动会根据数据的访问情况来自动路由到对应合理的存储模式中呢?比如,热点数据会自动路由到 cache 而平常数据路由到 mysql,而冷数据当到达 “冰点” 时自动归档以减少消耗?而对于上层应用来说使用完全透明?当然里面的问题很多,不过我觉得随着 serverless 的发展或许这也是可以想象的。</p><p><strong>AI</strong></p><p>Amazon Bedrock 、Amazon CodeWhisperer 和 Amazon Q 是这次 re:Invent 提到有关 AI 的一些产品。比如本文提到的 PartyRock 应该就是建立在 Amazon Bedrock 之上的。当然,我也第一时间去试用了一下 Amazon CodeWhisperer 和 Amazon Q ,不过给我的感觉还没有那么的惊艳,或许是还在 beta 阶段,智能程度一般,相信体验过的小伙伴感受也差不多。而且由于目前支持的开发语言还不多(我常用的 golang 还没有)。</p><p>不过,re:Invent 上一直强调了另一个有关 AI 的关键点就是,安全。“ 生成式 AI 一定应该是安全的 ”。这里的安全有两个方面,一方面是生成的内容一定应该是安全的,不能出现违法的内容;另一方面是作为模型基础的训练数据应该是安全的。比如,企业内部基于自己内部代码和数据来建立的模型,进行使用,对应的数据不应该被公开或者出现在别的人生成内容中。所以,安全应该是未来 AI 前进的基石。</p><p>我在体验 PartyRock 的时候也发现了下面的提示,如果出现不安全的单词,图片是不会生成的:</p><p><img width="723" height="128" src="/img/bVdbuBW" alt="image.png" title="image.png"></p><p><strong>THE FRUGAL ARCHITECT</strong></p><p>亚马逊 CTO Werner Vogels 博士今年在 re:Invent 上的主题演讲提到了 <strong>THE FRUGAL ARCHITECT(节俭/节制架构)</strong>。提到了<strong>成本</strong>应该在架构设计之初就应该被考虑进去,并且一直作为一个考量指标。</p><p>去年到今年一个词在国内大厂一直被提及 “降本增效”,结果最近演变成为了 “降本增笑”。是的,由于成本的缩减,往往带来的就是服务的不稳定,这是所有工程师都不想见到的。我就想到之前听到一个说法是,如果一个并发问题能通过加服务器来解决,那么领导会更愿意通过加服务器来解决而不是重构代码,因为养开发的成本往往高于服务器。而我也经历过一次 k8s 的降本,虽然有时候确实是因为 request 设置的不合理导致的成本超标,但实际改起来的时候真的是心惊肉跳,因为你真的不知道这个服务的并发明天会不会就坐火箭。所以,<strong>成本、安全、性能 一直都是一种权衡(trade off)</strong>,用流行的话说就是 “并不是我不知道两地三中心安全,而是单中心更有性价比😭”。</p><p>其实,有时候并不是不考虑,而是无法预估流量的大小,谁都也无法预测你的应用什么时候会火。所以亚马逊云科技提供的 Lambda,ElastiCache 都是那种按成本去设计的。而对于上云来说最大的一个问题就是成本不可控,随着服务的类型越来越多,并且很多服务都是按量付费,预算与实际往往会有比较大的差异。所以,最让我感兴趣的是,这次 Werner Vogels 提到的 Management Console 内可以<strong>展示应用级别的成本</strong>,之前我们可能只能知道某个使用的服务成本很贵,而现在我们能知道<strong>具体那个应用在使用的成本最大</strong>。这种观测能力对于使用者来说是更加友好的,我能最大程度的去观测我的应用成本的占比,从而精准的控制我的成本,而不是盲目的去找压力。</p><p>总之,在我认为 THE FRUGAL ARCHITECT ,给我的思考是你必须<strong>有能力</strong>去时刻关注成本,<strong>无法观测的系统将导致无法估量的成本</strong>。</p><h3>总结</h3><p>最后总结一下,这次 re:Invent 不仅给我们展示了一些最新的应用和服务,更多的给我们带来了一些亚马逊云科技对于最新技术方向的一些思考,接触这些前沿技术给我的架构解决方案又多了一些积累,相信明年的大会也会一样精彩。</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=T8x2j1Ju4bd9G6Nuug32KQ%3D%3D.9rNJArYhnvmtOmxTQQHlsIqT%2BcTqIS0d9EdXeKeOjfg%2FpcpvKwsTPTkKH29D0vNMbiHY1yA0bcRfHoH6GK3ak7eMy%2BOCwRjhS%2BM%2FdbMjwTqrEmly%2BBgqy3NsY6RwV8zCdJCBC2Tbhv98ehbCRlT0URz%2B72KXYRdPvgQ%2FL39KCBRUBzt1fBwXzAVoPHi0Mu%2FO" rel="nofollow">https://dev.amazoncloud.cn/column/article/658965055d096603bb1...</a></p>
re:invent 2023 Amazon Q 初体验
https://segmentfault.com/a/1190000044639405
2024-02-19T16:01:52+08:00
2024-02-19T16:01:52+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>前言</h3><p>亚马逊云科技在2023 re:Invent 全球大会上宣布推出 Amazon Q , 在主题演讲中,亚马逊云科技 CEO Adam Selipsky 将其描述为能够“轻松聊天、生成内容和采取行动”,“一种新型的生成式人工智能助手,旨在工作中为你提供帮助”。 Selipsky说,考虑到这个聊天机器人的对话特性,Q 这个名字来源于“问题”( question )这个词。这也是对詹姆斯·邦德小说中角色 Q 和《星际迷航》中强大人物的模仿。</p><blockquote><a href="https://link.segmentfault.com/?enc=nn6Cloh%2FhSh3DgK5xZmU2Q%3D%3D.76ezUBqLnF%2FnQl8ERmYzbdRWHcp8Xs%2F%2BGlQazdITA9i4duRE8ViyaE6sLNG5d5v2pWQ4an3KBXiFByW1w1i4S5JhvWjfeIiIm%2Fod3X%2Be9d1af9WaG3b9nPtTMDUpmFnr" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=1%2Ba6fG1qe%2F23SLVDnBkLIg%3D%3D.daUKIJeo9Mxr%2Fh0iTEdaLAOpeT%2BEqnuD65PbKyVE6cdolc%2B1uXO64oHZDH8K377U0nRcsYIh4Iy8r7Ur0BbJ1Fc3lqtINiDmeJow6uKy5QxYWF8SW35lDAHgR80lsIHbMtqPM4uxqxpnnDgmsT%2FG%2Bw%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img src="/img/remote/1460000044639407" alt="图片" title="图片"></p><blockquote>Amazon Q 专注于工作场所,而不是面向消费者。它旨在帮助员工完成日常任务,例如总结文档、填写内部文件以及回答有关公司政策的问题。Amazon Q 将与其他企业聊天机器人竞争,包括微软 Copilot 、谷歌 Duet AI 和 ChatGPT Enterprise。</blockquote><p>看介绍和用途,Amazon Q 想做企业用户的生意,个人用户还是不挣钱啊,据说微软他们那用户量高达 150 万的 AI 编程工具 GitHub Copilot,平均每个月在每个用户身上都要倒贴 20 美元,最高能达 80 美元。亚马逊从企业用户着手,思路还是不错滴,下面就好好体验一下,看看这个 " Q " 能不能重塑我的工作方式😂</p><h3>一、Amazon Q 聊天功能初体验</h3><h4>1. 如何体验 Amazon Q</h4><p>输入 <a href="https://link.segmentfault.com/?enc=2IjD82tuRSJdiJ8s0t90%2FQ%3D%3D.QaCdp88Ohfhhz%2FBPTs3MmWMDAigiBw54FCi1e3rWdtSCAHHbSqd%2BOq5jpYlItm7%2F" rel="nofollow">https://aws.amazon.com/q?trk=cndc-detail</a>,然后点击 Get started with Amazon Q today</p><p><img src="/img/remote/1460000044639408" alt="图片" title="图片"></p><p>接着点击 Get started</p><p><img src="/img/remote/1460000044639409" alt="图片" title="图片"></p><p>这个时候会要求登录亚马逊账号,登录账号后,在控制台右侧会有一个 Amazon Q 的 preview 版,可以对话和亚马逊云科技相关的问题,相当于高级的搜索文档助手</p><p><img src="/img/remote/1460000044639410" alt="图片" title="图片"></p><h4>2. Amazon Q 文档助手的 AI 聊天能力</h4><p>2.1 基本对话理解能力</p><ul><li>看回答提示不支持中文,对中国开发者貌似不太友好</li></ul><p><img src="/img/remote/1460000044639411" alt="图片" title="图片"></p><ul><li>而且从回答提示看,这个亚马逊云科技内部的回答助手目前只支持 C++ 和 C#</li><li>支持最大 1000 字符的输入,记得昨天(11.29)最开始发布的时候支持最多 200 字符</li></ul><p>2.2 技术方面回答能力</p><ul><li>官方说能解答常见的错误和异常问题,先来个栈溢出</li></ul><p><img src="/img/remote/1460000044639412" alt="图片" title="图片"></p><p>看回答结果,和其他的 AI 聊天机器人大差不差,区别在于最后的 Sources ,点进去是个能访问的网页,这点做的不错,一般大模型回答的问题不太准确,辅助真实网页,至少能解决提问者的一些困惑,提问者后续去顺着这个网页的回答去找,也能有一个最终正确的方向。</p><ul><li>情感解析能力,用哈姆莱特的一句话试试:</li></ul><p><img src="/img/remote/1460000044639413" alt="图片" title="图片"></p><ul><li>写个算法看看,冒泡排序<br><img src="/img/remote/1460000044639414" alt="图片" title="图片"></li></ul><p>看来算法类和涉及人类情感的问题也无法回答,只能问和亚马逊云科技相关的内容,所以控制台的 Amazon Q 适合找文档,解决亚马逊云科技服务相关的问题,比如这个就能回答的很完善:</p><p><img src="/img/remote/1460000044639415" alt="图片" title="图片"></p><h3>二、Amazon Q 搞的定代码?</h3><p>下面就来看看 Amazon Q如何"重塑"工作方式的吧</p><h4>1 Amazon Q 集成 Visual Studio Code</h4><p>1.1先安装 Amazon Toolkit</p><p><img src="/img/remote/1460000044639416" alt="图片" title="图片"></p><p>1.2 然后登录亚马逊云科技账号,接着就能在前端代码中使用 Amazon Q 了</p><p><img src="/img/remote/1460000044639417" alt="图片" title="图片"></p><p>1.3 具体能干哪些事?<br>1.4 解释工作区的代码:选中代码部分,然后在 chat 对话框中输入描述信息,就能描述所选中代码的内容</p><p><img src="/img/remote/1460000044639418" alt="图片" title="图片"></p><ul><li>用对应的代码语言来写算法:除了提供代码的解释,还会提供一个相关算法的博文网址链接</li></ul><p><img src="/img/remote/1460000044639419" alt="图片" title="图片"></p><ul><li>看看能不能利用 Vue 写前端功能:这个代码实际上还是需要修改,没法直接用。。。</li></ul><p><img src="/img/remote/1460000044639420" alt="图片" title="图片"></p><p>下面来看看在 Java 上面的使用咋样</p><h4>2. Amazon Q 集成 IntelliJ IDEA</h4><p>2.1 在 plugin market 搜索 Amazon Toolkit</p><p><img src="/img/remote/1460000044639421" alt="图片" title="图片"></p><p>2.2 安装完成后就会在左侧任务栏中看到亚马逊的标志,点击后就能找到 Amazon Q 了</p><p><img src="/img/remote/1460000044639422" alt="图片" title="图片"></p><p>集成的最大输入字符是 4000,基本上能满足输入需求,再来看看基本的代码辅助功能:</p><ul><li>解释 Java 代码:</li></ul><p><img src="/img/remote/1460000044639423" alt="图片" title="图片"></p><ul><li>写个算法看看:</li></ul><p><img src="/img/remote/1460000044639424" alt="图片" title="图片"></p><p>哈哈哈,出现问题了,看来刚发布,还需要优化一下啊</p><h3>小结</h3><p>整体来说,回答的效果不如 GPT-3.5 ,日常代码辅助不如 Copliot 。如果说只针对企业用户,对于企业内部的数据集进行模型微调,当成一个文档助手还是不错的。</p><p>作者: 亚马逊云科技 Builder</p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=3daIn9XzKk21pTfllkGm5Q%3D%3D.IbbTmifXyzuW6x1PDokz%2FZXjXrExH3Cl4Jx88vzxWmW7Y%2B7JKLEX%2FwhFAhzUMYa64zAosU7KnXeWjarWbODV%2BS3m3XfOSxagPaUOkcxbdeQPk7hD7XSUGw22oWQOjuM9PWwc0MxmYEYkAmUus0qrhYOvJRR0BGSTWrtq15UBKhXS0zKwQbq00hqy2jOZxgyn" rel="nofollow">https://dev.amazoncloud.cn/column/article/65894caf79476548e3e...</a></p>
Amazon Application Composer 正式发布!
https://segmentfault.com/a/1190000044636749
2024-02-18T14:33:50+08:00
2024-02-18T14:33:50+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>今天,我们非常欣喜地宣布现已在 Amazon Application Compose 中推出 Amazon Step Functions Workflow Stud 。通过这款全新的集成应用,工作流与应用程序资源开发便可整合到统一的可视化基础设施即代码 (IaC) 生成器。 对于使用 Amazon Step Functions Workflow Studio 创建工作流与使用 Amazon Application Composer 定义资源,现支持在它们之间无缝转换。在此次新品发布时,也支持在开发过程的任何阶段创建和管理所有资源。利用 Amazon Application Composer 可视化整个应用程序,然后使用 Amazon Step Functions Workflow Studio 放大工作流详细信息;所有这些操作均在一个界面完成。</p><p><img width="723" height="432" src="/img/bVdbsdq" alt="image.png" title="image.png"></p><blockquote><a href="https://link.segmentfault.com/?enc=LDfnimb1RZd5JwIb08k%2Fuw%3D%3D.4rs3Y%2F%2BKxTL6SGA4TGH00peKar8fO%2FIQBDTnd6KtqKdilkKaro4mXoi6UbkOHmdwY3gXZunKgxLXoL%2FNkmEtKugYIZ%2FvuAOcskbMGcXSsmVdlLKyTdHGa%2BmPXU8NR%2FK0" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=CCKHgnSjQtsrAB78IjytsA%3D%3D.hlyIfgA5FfhYAGQhrbbjzB7n0FppftONwuumXmYHBqbZO4vGUpGcfKzVvzDGCt6OtTAcpl9Kv1nlrmCVgeQeYMhkZgtFpwOAV2dpp9V1cRdAbCPKWCDZz4cuXbLStzQBjn%2FR2g1w7dn6Sk9yN1gb4Q%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>无缝构建工作流与现代应用程序</h3><p>为帮您设计和构建现代应用程序,Amazon Application Compose 于 2023 年 3 月应运而生。通过 Amazon Application Composer,从由部署就绪的 IaC 支持的亚马逊云科技服务,使用可视化生成器编写和配置 Serverless 应用程序。 在构建现代应用程序的各种用例中,还需确定微服务的业务流程,将任务关键型业务流程自动化,创建响应基础设施变化的事件驱动应用程序,或构建机器学习 (ML) 管道。为解决这些难题,可采用 Amazon Step Functions;这是一项完全托管的服务,它能助您轻松利用可视化工作流,协调分布式应用程序组件。为简化工作流开发,我们早在 2021 年推出 Amazon Step Functions Workflow Stud;这是一款低代码的可视化工具,在 220 多种亚马逊云科技服务中,非常适合利用 12000 多个 API 操作快速对工作流进行原型设计和开发。对于要使用 IaC 部署工作流的客户,虽然 Amazon Step Functions Workflow Studio 简化了工作流的构建过程,但又必须手动定义状态机资源,并将工作流定义迁移到 IaC 模板。</p><h3>相得益彰:Amazon Application Composer 中的 Amazon Step Functions Workflow Studio</h3><p>通过这项新集成,现可利用拖放界面,在 Amazon Application Composer 中设计 Amazon Step Functions 工作流。从原型设计到生产部署和现有工作流程及迭代,这项集成加速了处理路径。</p><p><img src="/img/remote/1460000044636751" alt="图片" title="图片"></p><p>先使用 Amazon Application Composer,编写现代应用程序。在画布中,通过添加 Amazon Step Functions 状态机资源,添加工作流。借助这项新功能,可通过直观界面直观设计和构建工作流,以便将工作流步骤连接到资源。</p><h3>工作原理</h3><p>我将为您逐步解说如何在 Amazon Application Composer 中使用 Amazon Step Functions Workflow Studio。在本演示中,假设需要构建工作流并与现有 Serverless API 集成,改进电子商务交易处理。</p><p>首先,导航到 Amazon Application Composer。鉴于现有一个项目,其中包含 Amazon Application Composer 中的应用程序代码和 IaC 模板,因此无需从零开始构建任何内容。</p><p>打开“菜单”,并选择“项目”文件夹,从而在本地开发计算机中打开文件。</p><p><img src="/img/remote/1460000044636752" alt="图片" title="图片"></p><p>然后,选择本地文件夹路径,Amazon Application Composer 将自动检测现有的 IaC 模板。</p><p><img src="/img/remote/1460000044636753" alt="图片" title="图片"></p><p>然后,在画布中,Amazon Application Composer 会将图表可视化。个人比较喜欢此方法的一个原因是,Amazon Application Composer 会激活本地同步模式;这样,将自动同步 IaC 模板的任何更改,并将其保存到本地项目。</p><p>此处显示了简单的 Serverless API;它在 Amazon API Gateway 中运行,也会调用 Amazon Lambda 函数,并与 Amazon DynamoDB 集成。</p><p><img src="/img/remote/1460000044636755" alt="图片" title="图片"></p><p>现准备开始对 Serverless API 实施部分更改。另一个路由已在 Amazon API Gateway 中配置,同时添加 Amazon Step Functions 状态机,以便开始构建工作流。</p><p><img src="/img/remote/1460000044636756" alt="图片" title="图片"></p><p>此操作将在 Amazon Application Composer 画布中,打开 Step Functions Workflow Studio。Amazon Step Functions 控制台与 Workflow Studio 的体验相同。在画布中,将操作、流和模式添加到 Step Functions 状态机。</p><p><img src="/img/remote/1460000044636757" alt="图片" title="图片"></p><p>开始构建工作流,这是在 Workflow Studio 中使用导出 PNG 图像导出的结果。</p><p><img src="/img/remote/1460000044636758" alt="图片" title="图片"></p><p>但作为开发人员,这恰好也是这项新功能真正发挥作用之处。在工作流定义中,利用各种亚马逊云科技资源,例如 Amazon Lambda 函数和 Amazon DynamoDB。如需引用在 Amazon Application Composer 中定义的亚马逊云科技资源,可使用 Amazon CloudFormation 替换功能。</p><p><img src="/img/remote/1460000044636759" alt="图片" title="图片"></p><p>借助 Amazon CloudFormation 替换功能,使用 Amazon CloudFormation 约定添加替换;对于 IaC 模板提供的值,这也是对其的动态引用。此处使用占位符替换,便于在后续步骤中将其映射到 Amazon Application Composer 画布中的亚马逊云科技资源。</p><p>此外,也可为 Amazon DynamoDB 表定义 Amazon CloudFormation 替换。</p><p><img src="/img/remote/1460000044636760" alt="图片" title="图片"></p><p>在该阶段,工作流让人满意。要查看作为 <a href="https://link.segmentfault.com/?enc=aqLZY1LNFQUzWgzdfbfUQw%3D%3D.Gzkn6ei%2Fsnwk%2BkANMwn5GHqGYGtZTIMvmHtXBG3lEj8JdSwaSO5PJoHTMpx0M8txL4vQDrAHtJluG0as0Y%2Fi2SYrjBs58IVXAQ51ok22opsHt0%2BhQQqXLq%2BrBvNyZBNx" rel="nofollow">Amazon Step Function</a> 状态机定义的亚马逊云科技状态语言,也可打开“代码”选项卡。现无需手动将此定义复制并粘贴到 IaC 模板。仅保存工作仅可,然后选择“返回 Application Composer”。</p><p><img src="/img/remote/1460000044636761" alt="图片" title="图片"></p><p>此处显示了在可视化图表和状态机定义部分中,Amazon Step Functions 状态机已完成更新。</p><p><img src="/img/remote/1460000044636762" alt="图片" title="图片"></p><p>对于在 Workflow Studio 中定义的资源,如果向下滚动,将找到该资源的 Amazon Cloudformation 定义替换。即可在此处手动替换映射,也可以使用画布。</p><p><img src="/img/remote/1460000044636763" alt="图片" title="图片"></p><p>要使用画布,仅需将相应的资源拖放到 Step Functions 状态机和 Application Composer 画布。连接 Inventory Process任务状态与新 Amazon Lambda 函数。此外,Step Functions 状态机任务可引用现有资源。</p><p><img src="/img/remote/1460000044636764" alt="图片" title="图片"></p><p>在选择“模板”时,状态机定义会集成其他 Amazon Application Composer 资源。通过该 IaC 模板,使用 Amazon Serverless 应用程序模型命令行界面 (Amazon SAM CLI) 或 CloudFormation 轻松部署。</p><p><img src="/img/remote/1460000044636765" alt="图片" title="图片"></p><h3>须知</h3><p>以下是一些其他信息:</p><p>定价 — Amazon Application Composer 中的 Amazon Step Functions Workflow Studio 无需另行付费。</p><p>可用性 — 所有提供 Application Composer 的亚马逊云科技区域均可使用此功能。</p><p>Amazon Application Composer 中的 Amazon Step Functions Workflow Studio 简化使用体验,可将工作流程集成到现代应用程序。</p><p>请开始使用;有关此功能的更多信息,请访问 Amazon Application Compose 页面。</p><p>使用愉快!</p><hr><p><strong>作者:Donnie Prakoso</strong><br>Donnie Prakoso 是一位软件工程师,同时也自称是咖啡师,更是亚马逊云科技的首席开发大使。在科技行业拥有超过 17 年的经验,从电信、银行到初创公司。他本人现专注于帮助开发人员了解各种技术,将他们的想法落地。他非常喜欢喝咖啡,喜欢讨论从微服务到人工智能/机器学习的任何话题。</p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=06NaQOz%2Bcue8byzo9A9r0w%3D%3D.mOKmZFieh14Yl7SomcIsmAjB4x3HJ%2FQMj7Tnlm3yn8jKa2E1zmtBY5UhninwXmWNjtkOTPN08%2Fj68Kg%2Bbr2ayebMRNOPbdDv29xl6410c6lt8dXprtSASJ1v2WNIM4rT5Z%2Fq0XbLb60DvAM3%2Fio%2BhZwgHtsY4aQvZN%2BXFG2Id9ncq80FsdHEb7U%2BvRjsfgKs" rel="nofollow">https://dev.amazoncloud.cn/column/article/657034c1b872070f424...</a></p>
全新 Amazon S3 Express One Zone 高性能存储类服务,震撼发布!
https://segmentfault.com/a/1190000044620618
2024-02-05T11:29:14+08:00
2024-02-05T11:29:14+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>全新的 <a href="https://link.segmentfault.com/?enc=pDcfL44BImforAMmER%2B0pw%3D%3D.Ll0uY%2FXpSHc2OXgGU2ZHNMfe95BXhPd%2BNJq6wGL%2B8MPInJwXiNWS3860xIW60IW0oWP53Xo2E6lmwuHeZDZ88g%3D%3D" rel="nofollow">Amazon S3 Express One Zone</a> 存储类旨在提供比 S3 标准存储类高 10 倍的性能,并支持每秒处理数十万个请求,其个位数毫秒延迟也惊人的一致;这款产品非常适合频繁访问的数据和要求苛刻的应用程序。对于单个亚马逊云科技可用区,其中专门构建的硬件支持存储和复制对象;允许您共同定位存储和计算( Amazon EC2 、 Amazon ECS 和 Amazon EKS )资源,以进一步减少延迟。</p><blockquote><a href="https://link.segmentfault.com/?enc=WL2eUQ3j80jB%2BnU4PVNb%2Fw%3D%3D.PvNTSto%2FLik%2FcE9Bt6ZSwRNFLUC7vyP0AsR1Jxn2jKcZPrbxVl%2Bv04tSNFGFGmEcDKqEPROAKKUWrtpltLZsPVte1oveRHJI0%2FPQrr8RyM5frwumyPQ5IgCvnCeOKTYC" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=ZoCHdWb%2BbTXFSyLw3FNz3w%3D%3D.nbppbiq3gj6hfI6adgBqNGPsredwXVeK%2F8YAtrec%2FfWYOzjpLobu692U%2FLYQByAjOB62p6XEHs6X7KWPJhkb3aW8QwfUqGx045vLPEuRpsTbK11fiGaunFpwzN4BbYwrOwLwrZ2BlZoND72SK%2BMhTg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>Amazon S3 Express One Zone</h3><p>在计算与存储方面,Amazon S3 Express One Zone 存储类的延迟非常低,这有助于显著缩短数据密集型应用程序的运行时间,特别是使用数百或数千个并行计算节点处理大量数据,从而进行人工智能/机器学习训练、财务建模、媒体处理、实时广告投放、高性能计算等。通常,这些应用程序保留数据的时间相对较短,但数据会在该时段频繁访问。</p><p>新存储类处理对象的大小不限,但对较小的对象格外有用。这是因为对于较小的对象,首个字节的时间与最后一个字节的时间非常接近。在所有存储系统中,大型对象的流式传输时间更长;由于传输过程需要下载大量数据,因此存储延迟对读取对象的总时间影响不大。因此,在较低的存储延迟方面,与大型对象相比,较小的对象收到的益处颇丰。由于 S3 Express One Zone 始终保持极低的延迟,因此与 S3 标准版相比,读取小型对象的速度增幅可达 10 倍。</p><p>Amazon S3 Express One Zone 的延迟极低,请求成本又比 S3 标准版存储类低 50%,这表示 <a href="https://link.segmentfault.com/?enc=SDq%2BzaBc4wO4Iaq8VV6BnQ%3D%3D.c09g%2FJLgmTLcQpak72xDI3yviSFb9G5euci%2B4xudC%2B3aY1q7E1wwYPlOW5l6a4Le" rel="nofollow">Spot</a> 和<a href="https://link.segmentfault.com/?enc=I3KUBy0ceb5pULLYULfKbw%3D%3D.sPYgLhjNRel8PhOUsN7bFW4rhOUgKtD4vYgkuFrVggCWupy5S3p4PVBIpEKSqTYla7OGqTmVozT0c0S5DzxpLZzbqP6bDQ2%2FlEv0nw3hVbi8hGmXTVgTUxgxsipwAXqv" rel="nofollow">按需</a>计算资源的使用效率更高,最终实现全面降本。</p><p>对于选择的单个可用区,其中包含每个 Amazon S3 Express One Zone 目录存储桶中,支持使用一组常用 S3 API 函数进行访问: <a href="https://link.segmentfault.com/?enc=RsPl35q%2FKrTNSRsY1HJdiA%3D%3D.J48ROcgK%2BJf9UVsCjOpV%2BSgb%2BxGUwdHT9qD2ByH%2FvjFB%2BqTEGB3NFkZiM%2BlQQq9m57iAXJLx8cxy6KkvF3WydKIltUOAEIMuKz3OxyU5C1M%3D" rel="nofollow">CreateBucket</a> 、<a href="https://link.segmentfault.com/?enc=57rwUZRLWrSxz1B%2FBSKHbA%3D%3D.0d2SPxnM9Ix2nYAaJFe4P%2FBZKZB799Mj5N8ODysIlykUcNIxQ2ewOQXOrL9pap%2B1PZGdz6xaLucnC9ttNWc80LxcJ69ZOF1PBmoxvudfLMw%3D" rel="nofollow">PutObject</a> 、<a href="https://link.segmentfault.com/?enc=9P4FNOXkSQRrbhycu%2BIEqw%3D%3D.OYSO0DOU6a%2BlHEQrJFThY9s%2Fh2BWWn4use51%2B%2F9Qeq3BDtLgMIRbjzYMmE2FQ%2FIVUa450iNFTQZVSxMgQnuhvE7FCcJXZigX9RIG%2BgsnPtc%3D" rel="nofollow">GetPorject</a> 和 <a href="https://link.segmentfault.com/?enc=VSzjcItF1Jeo%2BwmA7u5ijg%3D%3D.SccCyqWYktk9GlxS4%2FQJAMBeOMEmngv9NjtgQQQvN%2FFFw7EpFZsxS4IZtCQs5L2CImJjVH2qphzjdVS59oQmn1kooWrVi45N4lPcWugKogQ%3D" rel="nofollow">ListObjectsV2</a> 等。此类存储桶也支持一组认真选择的 S3 功能,其中包含<a href="https://link.segmentfault.com/?enc=L8yeHpOBzMRavaXXu4WtrA%3D%3D.Lar2oc3Y5aKzZLIT9PBjD0Asrfvtbgc19f23fVzu%2BtRDlYYrP%2Bx4m2d3NbNe9jHhi6OPKVMPng1YX5%2Be2YhccgnC5udVPXCc4trsn7YT3%2B9jqIFevgZvCOEStRcFZeB%2FzqPXmnIjjfat3IwilXhqtfuAB%2BoBuqSxWeCqhJ4BREM%3D" rel="nofollow">字节范围提取</a>、 <a href="https://link.segmentfault.com/?enc=WFpFNopO8drdWaRRu%2BFtrA%3D%3D.Y%2B7cFInqYjAwq16u5j8ij3%2BzxVr1ntUIid67N6hWAPUMP3h3qHyvnNwIFhqs6m4eBj2aCs0BpGWRVAcwLiUCZo%2BP9yLOHgrkx7dcW%2F44Y1A%3D" rel="nofollow">多部分上传</a>、<a href="https://link.segmentfault.com/?enc=TCypKoaLEuE5CfpbZFCjaQ%3D%3D.32WPrltDfpZ8lRD9%2Fe9XyZbUqag454tKQIVOmALYyEs03qyzyF6lh%2BpMS1ejDr%2B7PrhTI5%2BM9dx%2FSjrFh9F2OetXwpC88DgPdVyWz3jI5jg%3D" rel="nofollow">多部分复制</a>、<a href="https://link.segmentfault.com/?enc=LH1%2F2CzHyfAkDx8924eNag%3D%3D.qX3qBE50LgSYDLtT0yu91YAyiUAAzslWjjrDHxUE5fsFVgjlNdEmbZlqZqfOrlEPSnvMsIzEvKT3mOfeaMphqRGcVy4wVFQHBr2NuMN4A4y8R6FYlF7C0g39dSO4QPXh" rel="nofollow">预签名 URL</a>,以及<a href="https://link.segmentfault.com/?enc=p0JZR%2FhQ7G4vfNFDl3GMkA%3D%3D.lritzGJwMi%2BAaDvgzMVL29P7CMxb4W6efd4oaDn1g13dx9sgMPwT693wNSIdI7MnzLK5a37vaVrMdQyl1bktdRbiJ9iv9wkYsCwOF9uy1ukt0nySa3N384fKlkEeBGFZ" rel="nofollow">适用于 S3 的 Access Analyzer</a>。对象可直接上传,编写使用 <a href="https://link.segmentfault.com/?enc=d7jXK0bQ9cDxAzjmQDb4VA%3D%3D.dENjszUG7bU4o%2B9NJN5YF9uKZoc%2B3%2BP6xnoNsbSkqCHyHoMzwSO5g3bYXwg6Azb%2BacFgc70BUBywptlv0lmFaKlFogcvoW6%2F20nMdojWpmY%3D" rel="nofollow">CopyObject</a> 的代码,或使用 <a href="https://link.segmentfault.com/?enc=NWI%2FYk0gv2qAW7p1clQcOQ%3D%3D.wDOcqhgOiy8Hc3DBO81YrMAn0hHYL%2FBkg%2B18f0z7F70bLvW1HPg%2FPpQjFccLoTebeVnNBuUswb%2FNEh2n6hV%2FfQ%3D%3D" rel="nofollow">S3批处理操作</a>。</p><p>要以高效和可扩展方式减少延迟及利用此存储类,我们引入了一种新存储桶类型、新身份验证模型和存储桶命名约定:</p><p><strong>新存储桶类型</strong> — 新目录存储桶特定于该存储类,支持每秒数十万次请求。命名空间分层,并通过类似目录的方式存储对象键名称。路径分隔符必须是“/”;对于为 ListObjectsV2 提供的任何前缀,必须以分隔符结尾。此外,在不先对结果排序的情况下,列表操作会返回结果,因此无法执行“开始后”检索。</p><p><strong>新身份验证模型</strong> — 新<code> CreateSession</code> 函数会返回会话令牌,这将为特定存储桶授予 5 分钟访问权限。对于存储桶或存储桶内部对象执行操作的其他 S3 API 函数,为它们发出的请求必须包含此令牌,但 <code>CopyObject</code> 除外,原因是需要 IAM 凭据。亚马逊云科技 SDK 的最新版本会自动创建会话。</p><p><strong>存储桶命名</strong> — 在亚马逊云科技区域中,目录存储桶名称必须具有唯一性,且必须按照特殊格式的后缀指定可用区 ID。若基础存储桶名称是 <code>jbarr</code>,且该存储桶位于可用区 use1-az5(美国东部(弗吉尼亚北部)区域的可用区 5),<code>CreateBucket</code> 应命名为 <code>jbarr--use1-az5--x-s3</code>。虽然存储桶位于特定可用区,但也可从该区域的其他可用区进行访问;对于从一个可用区的计算资源到相同区域内部另一个可用区的目录存储桶的请求,此类行为不收取任何数据传输费用。</p><h3>Amazon S3 Express One Zone 实际运行情况</h3><p>重点介绍要使用的新存储类。命令行是需要重点介绍的内容,但也会涉及亚马逊云科技管理控制台和 API 访问。</p><p>EC2 实例在 us-east-1f 可用区运行。使用 <a href="https://link.segmentfault.com/?enc=vTFrtjX%2FWUAlWowBhMKB0A%3D%3D.s5z8HcLfs1qNR%2Frbq3jlh9NTQd5lhk3ZukmA3wmyL28%3D" rel="nofollow">jq</a> ,将此值映射到可用区 ID:</p><pre><code>$ aws ec2 describe-availability-zones --output json | \
jq -r '.AvailabilityZones[] | select(.ZoneName == "us-east-1f") | .ZoneId'
use1-az5</code></pre><p>存储桶配置 (<code>s3express-bucket-config.json</code>) 已创建,并包含 ID:</p><pre><code>{
"Location" :
{
"Type" : "AvailabilityZone",
"Name" : "use1-az5"
},
"Bucket":
{
"DataRedundancy" : "SingleAvailabilityZone",
"Type" : "Directory"
}
}
</code></pre><p>在安装<a href="https://link.segmentfault.com/?enc=YE25yAUCvcF4M3YhwX4PUw%3D%3D.UqUvZD9vsetljiZ80%2FdgLU5sZT0NumYEiAgpT3gSg%2Bo%3D" rel="nofollow">亚马逊云科技命令行界面(Amazon CLI)</a> 的最新版本后,也将创建目录存储桶:</p><pre><code>$ aws s3api create-bucket --bucket jbarr--use1-az5--x-s3 \
--create-bucket-configuration file://s3express-bucket-config.json \
--region us-east-1
-------------------------------------------------------------------------------------------
| CreateBucket |
+----------+------------------------------------------------------------------------------+
| Location| https://jbarr--use1-az5--x-s3.s3express-use1-az5.us-east-1.amazonaws.com/ |
+----------+------------------------------------------------------------------------------+
</code></pre><p>然后,目录存储桶如常用作其他 CLI 命令的目标(第二个 <code>aws </code>是解压亚马逊云科技 CLI 的目录):</p><pre><code>$ aws s3 sync aws s3://jbarr--use1-az5--x-s3
在列出目录存储桶的内容时,StorageClass 将变为 EXPRESS_ONEZONE:
$ aws s3api list-objects-v2 --bucket jbarr--use1-az5--x-s3 --output json | \
jq -r '.Contents[] | {Key: .Key, StorageClass: .StorageClass}'
...
{
"Key": "install",
"StorageClass": "EXPRESS_ONEZONE"
}
...
</code></pre><p>在单独的选项卡中,适用于 S3 的管理控制台会显示通用存储桶和目录存储桶:</p><p><img width="723" height="350" src="/img/bVdbn1i" alt="image.png" title="image.png"></p><p>如上所示,单击“导入”按钮,将现有存储桶的内容(或内容的前缀子集)导入目录存储桶。选择源存储桶,单击“导入”,然后输入参数;这些参数将用于生成源存储桶的库存,并创建 <a href="https://link.segmentfault.com/?enc=NKZhnpNm%2FQPe6LFBPRfGng%3D%3D.0XnxlhiCh3wb0RMUK72U%2FHh4qC9KyTDOpyLDQrGBqv%2Bps4Bo469PKz8o0JPElQtIhKCnCRvxxjKaQxpBSA%2FtkA%3D%3D" rel="nofollow">S3 批处理操作</a>作业。</p><p><img width="723" height="1184" src="/img/bVdbn1k" alt="image.png" title="image.png"></p><p>作业已创建,并开始执行:</p><p><img width="723" height="321" src="/img/bVdbn1n" alt="image.png" title="image.png"></p><h3>须知</h3><p>以下是一些关于该 S3 存储类的重要信息:</p><p><strong>区域</strong> — 美国东部(弗吉尼亚北部)、美国西部(俄勒冈州)、亚太地区(东京)和欧洲(斯德哥尔摩)区域现已支持 Amazon S3 Express One Zone,并计划随时间推移拓展到其他区域。</p><p><strong>其他亚马逊云科技服务</strong> — 可同时使用 Amazon S3 Express One Zone 与其他亚马逊云科技服务(含 <a href="https://link.segmentfault.com/?enc=QQsDAStNy%2BEn%2BbnavA59iA%3D%3D.N4sGtlbRawTZ5PL%2F%2BkUKdvS3bzquMKxPdwG89it5VoT7oxDax1cDd3RvBsvvGRiG" rel="nofollow">Amazon SageMaker 模型训练</a>、<a href="https://link.segmentfault.com/?enc=JMEy88FqRteWPiXtgCERLg%3D%3D.RTFelyIVpomNxpTzLcFwzcGwMW4nNuZ%2B%2Bc9jpIgeyUo%3D" rel="nofollow">Amazon Athena</a>、<a href="https://link.segmentfault.com/?enc=Q1HgjD4FvPjW4O8mixdaGQ%3D%3D.85xJ0LQO4%2BVgyyWFgupNMUfD3HRmxcSl5rwURA44lC4%3D" rel="nofollow">Amazon EMR </a>和 <a href="https://link.segmentfault.com/?enc=Bb0LmVyHqCNbgPdzrD9fLA%3D%3D.kWC0N%2B7vQtmFOxIHP9Blk3GyqGIdloe%2BmRG0rh9BaPI%3D" rel="nofollow">Amazon Glue</a> 数据类别),从而加速机器学习和分析工作负载。此外,也可使用<a href="https://link.segmentfault.com/?enc=mGLtsqvAZh0HT7TsizaJZQ%3D%3D.d0DJClXHQNWL4udUIQPVvFU%2BI435v1rSNowj8C%2F9evk%3D" rel="nofollow">适用于 Amazon S3 的 Mountpoint</a>,并以面向文件的方式对 S3 对象进行处理。</p><p><strong>定价</strong>— 与其他 S3 存储类相同,定价采用“即用即付”模式。在美国东部(弗吉尼亚北部)区域,费用为 0.16 美元/GB/月,每个对象的最小计费时间为 1 小时;部分请求类型需要另行付费。对于任何请求,其中超过 512 KB 的部分,需按每 GB 费用另行付费。有关更多信息,请访问 <a href="https://link.segmentfault.com/?enc=JUbkpV%2BzYr%2BcXmyY7KFdCA%3D%3D.ioBZiK9X7YNcfoKigPQVJacZSLBB0u1lUc9AMxu8Iz58w1QQEHe9ZkxkwUwqCdTCX3svI1eULGPCdrIp4TaffQ%3D%3D" rel="nofollow">Amazon S3</a> 定价页面。</p><p><strong>持久性</strong> — 在极个别情况下,如果全部或部分亚马逊云科技可用区丢失或损坏,One Zone 存储类的数据也会丢失。例如,火灾和水灾等事件会使数据丢失。除了这些类型的事件外,One Zone 存储类也会使用与区域存储类相似的工程设计,避免对象受到独立磁盘、主机和机架级别故障的影响;每个存储类旨在提供 99.999999999% 的数据持久性。</p><p><strong>SLA</strong> — Amazon S3 Express One Zone 旨在提供 99.95% 的可用性,其可用性 SLA 高达 99.9%;有关更多信息,请访问 <a href="https://link.segmentfault.com/?enc=p0guWmmBRyaqS58xw0auQQ%3D%3D.gybAE%2FVqJsyrEBtkiorbetZpn9eV5qk8E6HntaIcQGI%3D" rel="nofollow">Amazon S3 服务级别协议</a>页面。</p><p>这款全新的存储类产品现已推出,立即体验吧!</p><h3>了解更多</h3><p>Amazon S3 Express One Zone</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=SmYJVw2Fk%2FbaPAPrfHKHXQ%3D%3D.AvtY7yhO%2Bz5ah9ypZBKowYzqt8r4DjkNO8THAT3Zn8puIJtBjItQRpXov5SbF4xm52YJy0BPqIRAOBOPbg1pYZJA%2FWSnAseZZVcu8wiRlZvdJ%2FExBTvEKnyfnWkoFssG7%2FW9p79xbalnFDNWxRRJoVkzoF8WeFaGzJ7%2FrM%2BuF%2BscsD5vJtU9bSZ3QTs5gi5u" rel="nofollow">https://dev.amazoncloud.cn/column/article/65703ff11fc09c50f98...</a></p>
利用 AI 赋能云安全,亚马逊云科技的安全技术创新服务不断赋能开发者
https://segmentfault.com/a/1190000044620523
2024-02-05T10:59:40+08:00
2024-02-05T10:59:40+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<blockquote><em>文章分享自亚马逊云科技 Community Builder:李少奕</em></blockquote><p>2023年6月14日,一年一度的<strong>亚马逊云科技 re:Inforce 全球大会</strong>在美国安纳海姆落下了帷幕。re:Inforce 是亚马逊云科技全球最大的盛会之一,汇集了来自全球各地的安全专家,共同学习、讨论云安全创新技术,主要围绕了六大话题:应用安全、数据隐私保护、安全合规、身份验证与授权、网络和基础设施安全与威胁检测和事件响应等话题。作为开发者社区代表,作者和亚马逊云科技的安全产品团队一同参与了本次大会。</p><blockquote><a href="https://link.segmentfault.com/?enc=414wr5Yyb2eWmhpSakZ9fQ%3D%3D.hDXn1nVxszCL95TUmSxwl9NZItRMWkoFEfQUEiXXzmjLAxclO0YTg7IcIQp9Il6AZU4rD2XSvNO8U0TIF1DRkmWmrOLlJKNCSZXQZnzSOeRwwEHVF2eXDbTR2y3KQcIC" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=4Bg8sI6C%2BcX8GkpFhfcATg%3D%3D.ROi%2FsmMkYD4%2B67BydfsA1Hw7OkieFTVJqZvA68ubr5INIHVu7vi%2FP9kvq7ycFEVzknoy8RAgmHyfjZjbUiMCPhRtAc3Zeb8ibnrKj95Jw4XON0jGWzIZQyDM%2BaCPjaGjf2S7ApJKJ%2BEXlYbHUkHBAQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>随着国内《个人信息保护法》、《数据安全法》、《网络安全法》等安全领域法律法规的出台,安全与合规成为了企业业务发展进程中的刚需。数据安全、数据治理都成为了企业在云上迁移、数字化转型过程中要面对的挑战。这次 re:Inforce 全球大会的举办以及大会中发布的创新安全服务,就为企业解决安全合规问题提供了更好的实践方案。</p><p><img width="723" height="543" src="/img/bVdbnZm" alt="image.png" title="image.png"></p><h3>“安全是我们的首要优先级”</h3><p>在今年6月的亚马逊云科技 re:Inforce 全球大会上,<strong>亚马逊云科技首席信息安全官 CJ Moses</strong> 强调“安全是我们的首要优先级”,这表示出亚马逊云科技对于云安全的重视程度。云安全已经不再是简单的业务要求,更是成为了主动、自发且持续的思维观念,早已发展为业务的核心竞争力之一。</p><p><img width="723" height="574" src="/img/bVdbnZo" alt="image.png" title="image.png"></p><h3>“用云本身的安全保障云上用户业务的安全”</h3><p>CJ 首先介绍了亚马逊云科技是如何利用安全技术创新,实现从底层芯片 Nitro System、虚拟化层 Nitro Hypervisor 到应用层 DevSecOps 的深层全栈式安全保护,让云上用户的服务安全“无懈可击”。</p><p>同时,他介绍了亚马逊云科技如何帮助用户将安全左移,协助用户将安全保护在程序设计阶段就考虑其中,并贯穿开发、构建、测试、发布整个开发生命周期,让开发者实时发现并修复程序中的漏洞、威胁以及弱点,增强代码安全、减小安全攻击面,实现云上的 DevSecOps。代表性服务有在 IDE 中实时扫描代码,检测漏洞并给出修复建议的开发插件 <strong>Amazon CodeWhisperer</strong> 和集成在整个开发生命周期的代码审查工具 <strong>Amazon CodeGuru Secuirty</strong>。</p><ul><li>Nitro System</li></ul><p><a href="https://link.segmentfault.com/?enc=x869Dse2sH9egPEaePFIDg%3D%3D.zLzTT6YSVtcm6wmC9aIR3UhEH8qim5GjWeRiiDVZiydCQHnP8EkrR5lP23lpSg70D97N%2FwbpgGhW%2FVHyu89ROA%3D%3D" rel="nofollow">https://aws.amazon.com/cn/ec2/nitro/?trk=cndc-detail</a></p><ul><li>Amazon CodeWhisperer</li></ul><p><a href="https://link.segmentfault.com/?enc=VU6KbQE7en6UN6VjVWLpig%3D%3D.UUcacM2wO9Vt8gtx6vLorZfs%2Be%2FmTjk%2BsLqe2GFWn7V7AQwBRSGy9q3mxIXW7ARgfYsNanDZyFNSKyWOa0oUzw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/codewhisperer?trk=cndc-detail</a></p><ul><li>Amazon CodeGuru Secuirty</li></ul><p><a href="https://link.segmentfault.com/?enc=oiK9bj7e%2BrDR7ga%2BONxf4g%3D%3D.jMWFyg4aMXktRrGCk7d%2FyRDi10mMbBOPI%2F83UyoZfe%2F5DvXbS1ZtB2FbDb3xhQOVVvncbZjS9m1F61QQmKCULw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/codeguru?trk=cndc-detail</a></p><p><img width="723" height="688" src="/img/bVdbnZs" alt="image.png" title="image.png"></p><h3>“利用 AI 赋能云安全,进而赋能开发者”</h3><p>谈到云安全,当然不能少了最近大热的 AI/ML。这次亚马逊云科技 re:Inforce 全球大会里,CJ 也介绍了在大语言模型时代下,由于黑客可以利用生成式 AI 编写恶意代码,会让安全攻击/威胁的成本和门槛变得更低。亚马逊云科技正积极地从白帽角度将 AI/ML 的创新技术融入其云安全服务中,以应对频繁出现的威胁活动。</p><p>用户可以利用安全服务中的 AI/ML 技术实现云上安全防护,如亚马逊云科技4月发布的大语言模型<strong> Amazon Bedrock</strong> 来开发自己的安全威胁与恶意程序猎杀、安全事件分析模型,用于 Amazon Lambda 中代码及其依赖包漏洞扫描的 Amazon Inspector Code scans for Lambda 以及集成到 IDE 以及 CI/CD 发布流程的静态代码工具<strong> Amazon CodeGuru Security</strong>,在整个开发流程中进行 SCA、SAST、DAST 代码安全性测试。</p><ul><li>Amazon Bedrock</li></ul><p><a href="https://link.segmentfault.com/?enc=9HLOvHG94aZV5p3JZbfTZA%3D%3D.WgTnyWBzNCzf4MKaKDcHqZ%2B9wAB7FmU%2FRWxddaS8nn3oLN%2BkkcSwM0aV1rS1bGLUhUVcAyzZOvdEmnaH3aOijQ%3D%3D" rel="nofollow">https://aws.amazon.com/cn/bedrock/?trk=cndc-detail</a></p><ul><li>Amazon Inspector Code scans for Lambda</li></ul><p><a href="https://link.segmentfault.com/?enc=OPJE4creuoi2pvrqSl6FBw%3D%3D.EIwreVZrhCt8FCLLiy9e0ucVRIwGlB%2BCU0vPahqybL%2FgDNQxw4tp7lF9ywwAsM6mS59mYaVC4ZZn03IHID0RSw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/inspector/?trk=cndc-detail</a></p><ul><li>Amazon CodeGuru Secuirty</li></ul><p><a href="https://link.segmentfault.com/?enc=Xmvc2A2DmaTdU7uPnbzdTw%3D%3D.%2FQ3Qr%2FpQb%2BXapJv%2Fl8PqXCHhXfTPIObOe%2BJuUnq%2B1J3DPkmr1G%2BAPTkkGnH%2BtBSsiwwukV87DtiOPq%2B3a2YFew%3D%3D" rel="nofollow">https://aws.amazon.com/cn/codeguru?trk=cndc-detail</a></p><h3>亚马逊云科技的安全技术创新服务</h3><p>在今年6月的亚马逊云科技 re:Inforce 全球大会上,也发布了能帮助开发者和企业构建安全云上系统的热门安全服务,提升安全在云上的可见性,保护云上的用户数据安全。</p><p>安全基础设施的搭建和维护管理过去曾一度成为企业安全阻力,如企业内部的 SIEM 系统、身份验证与授权模块等。并且,在当今网络威胁日益活跃、IT 架构变得越来越庞大复杂的大背景下,云上的事件和系统访问权限管理也变得更加有难度。这次发布的系列云服务,就能帮助企业大大减轻这部分负担。</p><h4>Amazon Security Lake</h4><p>在5月末,Amazon Security Lake 服务正式上线。Security Lake 可以将用户在亚马逊云科技上、本地以及自定义源头的安全相关数据集中到以 S3 为底座的数据湖中。用户可以在组织账户下将跨账户和不同区域的数据集中统一管理,便于维护,让用户更全面地了解整个组织内的安全数据,提升用户云上的安全可见性。同时用户可以将数据自定义地放在一个可用区或者多个区中以满足数据监管的要求。Security Lake 采用了 Open Cybersecurity Schema Framework (OCSF) 开源标准,该服务自动地将来自亚马逊云科技和多种第三方服务的安全数据转化为 OCSF 统一标准格式,提升安全事件查询和响应的效率。</p><p>用户可以将 Security Lake 与 OpenSearch 集成作为云上 SIEM 解决方案,也可以将其与 Athena 集成用于安全事件和威胁分析,或者将其与 Amazon SageMaker 集成利用自定义 ML/AI 模型做威胁和恶意软件的检测。</p><ul><li>Amazon Security Lake</li></ul><p><a href="https://link.segmentfault.com/?enc=LUHEhVCapQKu7ZEDukChwg%3D%3D.zv%2FgtTLA96QVFLjjH4fx77BKNXJ%2B0pp6VQwATyYgzYtU9UGW1ix0yoA24Tsbqmx8MPokXgJcyCihK%2BCf1g%2BjOw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/security-lake/?trk=cndc-detail</a></p><ul><li>Open Cybersecurity Schema Framework(OCSF)</li></ul><p><a href="https://link.segmentfault.com/?enc=D4XEknO1Xc5j8U0smHsrEg%3D%3D.RPLjPnuTLArs5moXC5FNKtzmzBFDG0vhumWZTwSr7Ja760yXOImdVKdT36D%2BldQJaRgowOJgoScuyRStnIQcaxQaKNLqexqH6aFy2TJekt3Mu8IsrmkNzeuko5RJ92Ad8nXneFtMnTXkGiZiCecg3CzUVfuGLoWYzR6ksZe5Z8s%3D" rel="nofollow">https://docs.aws.amazon.com/security-lake/latest/userguide/op...</a></p><ul><li>OpenSearch</li></ul><p><a href="https://link.segmentfault.com/?enc=6iGWXyp%2FsxuE3LWHl7xpYA%3D%3D.yZtgVzYmQ9uMYSSTlIbzreL9xeCphfnmlqk78UFUiGgqHFvBj%2BOFIRhStCaIVbtjy%2FaLWmkW3CigzyyJpE%2FODTf4e2uH3kiNwGEl80E23C4%3D" rel="nofollow">https://aws.amazon.com/cn/opensearch-service/?nc1=h_ls?trk=cn...</a></p><ul><li>零信任网络</li></ul><p><a href="https://link.segmentfault.com/?enc=ABHAazqQB9AnaWDB0RGLug%3D%3D.HRr33PGbjpDESXfdXDF48Q%3D%3D" rel="nofollow">https://www</a>.amazonaws.cn/en/knowledge/what-is-zero-trust-network/?trk=cndc-detail</p><p><strong>亚马逊云科技高级首席工程师 Becky Weiss</strong> 也为大家介绍了如何利用亚马逊云科技身份验证和网络服务构建企业<strong>零信任网络</strong>。零信任模型是目前安全领域最热门的话题之一,随着网络安全行业监管要求的加强,以及网络边界逐渐模糊的大背景下,每次用户的系统访问都需要进行持续的动态验证和精细化授权,限制系统内横向移动,更好地保护敏感信息和云上资产。她介绍了以下两个云服务帮助用户构建零信任安全框架:</p><h4>Amazon Verified Access</h4><p>这项服务可以在让用户在不使用 VPN 的情况下,将个人设备接入到企业网络中,访问企业内网中的内部服务。该服务基于用户身份和设备状况的等信息验证应用程序请求,并为每个系统应用定义细颗粒度访问策略,大大简化企业零信任框架的搭建。</p><ul><li>Amazon Verified Access</li></ul><p><a href="https://link.segmentfault.com/?enc=YTCpHn5ibhtQ5ieT87xfxg%3D%3D.bbNZKSxRpV%2F%2BJ2uUhFwXd1hSd2Gd0p0PbeBOvCnTuAQdW%2FDZ4%2F60tHMAAH%2Fs2eyKuqnkPvN%2BVczaoSXmCXCEhw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/verified-access/?trk=cndc-detail</a></p><h4>Amazon Verified Permission</h4><p>这项服务将零信任的能力延展到了用户自己开发的应用程序里,用于开发人员授权用户的资源访问,在应用开发阶段就落地零信任。</p><ul><li>Amazon Verified Permission</li></ul><p><a href="https://link.segmentfault.com/?enc=J9uS5KKooGWzUg6x9nuZmw%3D%3D.znLUC6ISpS%2FNDqsyEigdVx4FdlkZiMJkMSD6vCSxXr%2Bv1pnals3qVrObe9%2F7sh76w5h6SciOyXDELHVgaqnDbw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/verified-permissions/?trk=cndc-detail</a></p><h3>现场云安全开发者实验展区</h3><p>今年6月的亚马逊云科技 re:Inforce 全球大会,为开发者们准备了多场安全动手实验和项目展示环节:</p><ol><li><strong>持续评估IAM用户冗余权限实现云安全合规(IAM354: Refining IAM permissions like a pro)</strong></li></ol><p>本次实验是由 Professional Service Team 的 Senior Security Consultant: Bohan Li 主讲,主要内容为如何利用 IAM Access Analyzer、Lambda、EventBridge 等服务,通过 Python 脚本自动化持续主动检测 IAM 冗余权限(包括涉及服务和操作),实现云上的最小权限原则。最后产生权限审计报告,通过 SNS 服务发送至合规团队审计,实现云上安全可见性。</p><p><img width="723" height="550" src="/img/bVdbnZO" alt="image.png" title="image.png"></p><p>安全合规对于用户的权限评估有着特殊的要求,如金融合规 PCI-DSS 要求7.2.4就指出涉及到银行卡敏感信息处理、存储和传输业务的交易服务供应商需要每半年去评估云上系统的用户权限。首先是通过监控用户权限的最近访问时间,删除特定时间内(通常是90天内,详见 PCI DSS 要求8.1.4)未使用的权限,保障用户云上用户权限满足最小权限原则,防止过量授权导致云资源的未授权访问。同时也需要监控业务关键权限的使用情况,保证获授权的人员只能被分配与其角色匹配的权限(PCI DSS 要求7.2.2),保证最小权限原则(PoLP),降低云上误操作以及未授权非法行为带来的危害。同时,整个流程需要体现云上安全的可见性,需要有权限审计报告提供给内部合规团队做自我评估。</p><p>在亚马逊云科技上,开发者可以通过下图中的安全解决方案实现关于权限持续评估的需求。该解决方案主要由两大部分组成,第一部分是通过 generate_service_last_accessed_details 和 get_service_last_accessed_details 两个 Boto3 API 获取各项云服务的最后访问信息,列出特定时间内未使用的 IAM 权限并生成审计报告。第二部分是在用户添加 IAM 权限或权限修改时,通过 EventBridge 做事件规则匹配触发 Lambda,Lambda 会提取 Event 事件中的权限信息获取具体的策略文档,并与事先定义的业务关键权限列表做匹配,如匹配命中则通过 SNS 向权限管理员发送报警。</p><p><img width="723" height="555" src="/img/bVdbnZR" alt="image.png" title="image.png"></p><p>开发者可以扫描如下二维码在线参与该项实验 WorkShop 自己进行练习:</p><p><img width="723" height="311" src="/img/bVdbnZS" alt="image.png" title="image.png"></p><ol start="2"><li><strong>利用亚马逊云科技 IoT Device Defender 服务检测并阻止设备入侵</strong></li></ol><p>这个实验是由澳洲亚马逊云科技 Professional Service 团队的 Cloud Architect: Xin Chen 和 Bin Liu 带来的物联网安全解决方案。参会的嘉宾们可以亲自充当“黑客”,尝试利用远程设备入侵模拟无人驾驶汽车的智能车,并了解亚马逊云科技是如何利用人工智能帮助用户实现物联网设备多层安全防护,打造安全物联网平台。</p><p><img width="726" height="976" src="/img/bVdbnZX" alt="image.png" title="image.png"></p><p>在这个物联网安全解决方案中,物联网设备为两个配备了树莓派的4轮驱动智能车,用其来模拟无人驾驶汽车,并通过亚马逊云科技 IoT Core 服务将它们注册至云端,建立安全的 MQTT 数据链接。这两辆智能车被设置在在一个圆形预定义的轨道上运行。同时该方案利用了亚马逊云科技 IoT Device Management 服务远程管理并保持卡车系统的更新,作为预防控制的一部分。参与展示的嘉宾将扮演一个“黑客”,通过远程控制器接管其中一辆卡车实施侵入。这个方案利用 IoT Device Defender 服务持续收集并监控来自设备的安全数据,用户可以自定义 Security Profile 来选择监控物联网设备的指标,并利用该服务原生的机器学习技术实时监测重要指标的异常去数据判断是否有黑客入侵。若检测到设备入侵,该服务将安全发现导入到亚马逊云科技 Security Hub 的展示系统安全状态同时,会触发 SES 邮件通知向管理员警报,最后通过 SNS 消息触发 Lambda 脚本,创建 IoT Device Management 服务中的任务远程自动修补漏洞和重新控制被攻陷的卡车,以此实现快速自动化事故检测与响应,实现用户业务的连续性。</p><p><img width="723" height="368" src="/img/bVdbnZ0" alt="image.png" title="image.png"></p><ul><li>IoT Core</li></ul><p><a href="https://link.segmentfault.com/?enc=b42Lqm7JOJ7QUjaM%2FAfFtg%3D%3D.gk09dYCSksGv7AA6pI85l97D2x0KzJ49aGiGRc8qgy95b60QIWqOjeYQQs7uYFXUt8qXJcPpU%2BVdXOw%2BeNaspQ%3D%3D" rel="nofollow">https://aws.amazon.com/cn/iot-core/?trk=cndc-detail</a></p><ul><li>IoT Device Management</li></ul><p><a href="https://link.segmentfault.com/?enc=HBkzY4%2F1yUYAPFCkrkk0bg%3D%3D.%2F0MaZRehlpM%2BBZfbtNGuQtY%2FCerMeDodLoAwJ3NfacDD2KXnA0Qk%2Bn8kifhCW2XHIqN52CiLl1Y2ga77VXjGvfcwIsl4sNhB1LGGWNGBguc%3D" rel="nofollow">https://aws.amazon.com/cn/iot-device-management/?trk=cndc-detail</a></p><ul><li>IoT Device Defender</li></ul><p><a href="https://link.segmentfault.com/?enc=ESIGdeeDOxjyz8en1uwFdA%3D%3D.vnVWjVRRkuDjCv5FSogkrn%2BfMANiKaHw5CyDMljZ5ogN%2BZJhqUZKZWEtrIK59RyPz0KK%2B6UEOQPILxTkNYBG8g%3D%3D" rel="nofollow">https://aws.amazon.com/cn/iot-device-defender/?trk=cndc-detail</a></p><ul><li>亚马逊云科技 Security Hub</li></ul><p><a href="https://link.segmentfault.com/?enc=Y8T9l79coT6AW1WDa4zLjA%3D%3D.yVdTL8Z4bYE4zpsx6JF2NQg4XYXrvzTg1QU%2FoBtpef2F9ofTpsdmy%2Bmdz2MTvplbxQVcdgUN46kAVNP4iFiyGw%3D%3D" rel="nofollow">https://aws.amazon.com/cn/security-hub/?trk=cndc-detail</a></p><p>文章来源:<a href="https://link.segmentfault.com/?enc=K%2FIF%2BkemupD4QbMdYeKLBA%3D%3D.RLLriT2zt%2B5Lsjjkhnc%2FL5EZB1yLW0juaOS%2FQoLFDZZ37luzf1qF0mU6Tp7wMK0hSKMj6A%2BhHhtYw%2BPQ%2F%2FUBKlwbn7jMYWOGfJxidRzFGYKs9fKsdj8FqGwHOBeqRL0ZELeMl84wuFZreW7%2B%2FFQAIhoqLYvdHRrPtZu0GeXkHnlD40RU8wMoek28yBRpx9ZQ" rel="nofollow">https://dev.amazoncloud.cn/column/article/64efcdf58c1c711c157...</a></p>
由亚马逊云科技 Graviton4 驱动的全新内存优化型实例 Amazon EC2 实例(R8g),现已开放预览
https://segmentfault.com/a/1190000044616111
2024-02-04T10:08:16+08:00
2024-02-04T10:08:16+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>下一代 <a href="https://link.segmentfault.com/?enc=SlTdyjTE1LAnBB1RDxNDjw%3D%3D.uLc0%2BM%2BBqUwB2vhrf8px1Je6ISg2rvYxreWAlC4P1IMnlhzclk9I73ed56Gg3REtPW2MW08yodunrTKgyzdWKQ%3D%3D" rel="nofollow">Amazon Elastic Compute Cloud (Amazon EC2)</a> 实例的预览版现已<a href="https://link.segmentfault.com/?enc=lubr8RAXdesDqb7gJiuC2A%3D%3D.xj0z%2F6kH16g%2FQVIe8NgfxIcmbz3L7O5R%2BZM8RywYOP5nVXUSPL7OrLwQdrnHxP4mBkXQeisKsmzRo5G%2F1LnrtOwHhuMChaaXVEgC4dfh1M2OcYHRe4i8PRD7umTzfvOxUlOW3nUgNHfYEiKNWlq1wbBXWCHCSivE5%2FQJTXEqsWY%3D" rel="nofollow">公开</a> 提供。全新的 <a href="https://link.segmentfault.com/?enc=cs5KQ6Pj%2FGLR9ScE2GB%2F4g%3D%3D.dUrOepD2BqfJnbCkz5cNqFR2Kqmdtk0ksw31rEeJvWZPL%2BCP2Th6fA2r5yg%2Fqpj0IUYGJ1mei9coo4VGptMIFg%3D%3D" rel="nofollow">R8g</a> 实例 搭载新式 Graviton4 处理器,其性价比远超任何现有的内存优化实例。对于要求较高的内存密集型工作负载,R8g 实例是不二之选:大数据分析、高性能数据库、在内存中缓存等。</p><blockquote><a href="https://link.segmentfault.com/?enc=QrGGixJsiSc7H4OwpdWLOg%3D%3D.HVHJOnsHae6Kqkchn506q1VtC79srEeC0YIx0o4l5g6UbZ7ZnkEsg5ThIq4S%2BegfwhRl39rJj7ehJfRI2K5WGb%2BpUzJ0cethvlzYbrWt793bAtJoDyRTytZmwEwfSnMS" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=vUKDjI79kIXzHYq39OYikA%3D%3D.PNSmc8J4i8%2FPu2jxTuCmqJCkyB9dDdb4AxGg%2BXPjTk%2Fz52bg6Fxvqh6hK3GGh0k5jHwpLY6M9I%2FSpdi%2B%2FV%2Ftw%2FZFShRsjPJwaLwpM2OUk3ymNA%2FUppjav9JpbwFzRMlkRiTQlEmdrgwJNoRrlCAtVw%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3>Graviton 发展史</h3><p>现简要回顾 Graviton 处理器的发展史:</p><ul><li><strong>2018 年 11 月</strong> – Graviton 处理器在 A1 实例中<a href="https://link.segmentfault.com/?enc=JYHm1L%2FjACmAl3hlVzYKAg%3D%3D.wL7euIusV%2FlaNIMRZ7APWUXDY5Ibw8Xgpj7C%2BvI7F2JNJN%2BH6bpuyIhzQLF8jGn6HwOMds9%2BOFW0fzizwAn4B1mkoBuBJu0ci4qhgUrx6RoZJrJFafocA0jhtVMZra%2BkZaFU2mT0rANSQGt3isKnByuyDO%2FvAjoF0uuTbsXpmYA%3D" rel="nofollow">首次应用</a>;该款处理器专为性能和成本优化,横向扩展工作负载的成本降幅高达 45%。</li><li><strong>2019 年 12 月</strong> – Graviton2 处理器首次上市,与之同时亮相的还<a href="https://link.segmentfault.com/?enc=1R8rm4qH2kBFlNyN2GAeNg%3D%3D.UoZSLPvxuxpBhrJtsgYtegX%2FlZcB95kBeaXedWhObVx%2B9%2B7D%2FqZben63UjpYItpBgQsCRXdQGIuGIYxnS428hJKxX9zCf3pvhpnIVoANBrFbz2dfpZdUbjZpugpP1PsXxOp%2BUD9NndffMWke9TVlD9mYdeWKMirzsGmksTAHwoj8tdKsIbi3krRnD2CwH4tBKqsy7K6kVKCT4zvTrE29Vw%3D%3D" rel="nofollow">包含</a> M6g、M6gd、C6g、C6gd、R6g 和 R6gd 实例;与同类非 Graviton 实例相比,性价比提高 40%。在性能方面,第二代处理器的是第一代的 7 倍,浮点性能也是第一代的 2 倍。</li><li><strong>2021 年 11 月</strong> – Graviton3 处理器<a href="https://link.segmentfault.com/?enc=7I3Pitu2tE%2BsWyo7xCNGSQ%3D%3D.cBk7JhgbndQdGYet8ZxaiSMwmPQGfFp8w%2FG5FJwTjwVVwk%2BFSUUdOpIBGbyzYzZ4DYIzm8Tmwy%2Bn2Sfvc%2Ft884FBMi5mePCFG6zuYaypoEdYSyqsLGXU4izskWfx8s2GCUqdkL9IAQLLbOGpqdV523h8hg60W3qNIaHswdlaFqHvayvZfSBbOt5q3aeG5qje" rel="nofollow">首次亮相</a>,同时还有计算优化的 C7g 实例。除了计算性能增幅高达 25% 之外,与上一代处理器相比,本代的浮点和加密性能再次增加 1 倍。</li><li><strong>2022 年 11 月</strong> – <a href="https://link.segmentfault.com/?enc=L31W4aqOZQ8cpEEbT0Na0w%3D%3D.od6S7FuAAsbSD0RnxjdVoE6AAw6sZD4SuWki4fkYUGI67j3SwqQGDKv4egoMADDj%2BHsD86SflGcNzwZAV5rFwruFAn5TlVaY%2B7prJMdQ720L9UfVWxcGuZmE%2BCRT0cZAfG4Yk7UUx%2FtKVMqLRHmOoDUU2eAMwFRIl6y9QNCO6V4%3D" rel="nofollow">宣布</a>推出 Graviton 3E 处理器,这款处理器专用于 Hpc7g 和 C7gn 实例,矢量指令处理性能比 Graviton3 高 35%。 现如今,对于排名前 100 位的 Amazon Elastic Compute Cloud (<a href="https://link.segmentfault.com/?enc=j3rW7Itdzmm4O%2BD%2B2HmZKQ%3D%3D.QS92OBa%2BrUqSeQCBjRc51Q7fg3ZVpRJaqXXQbyAy6UTkO%2FvqG%2FisYMVVJFAcNt%2FN" rel="nofollow">EC2</a>) 客户,他们每个人都会使用 Graviton,选择范围涉及 Graviton 提供支持的 150 多个实例。</li></ul><h3>全新的 Graviton4</h3><p>我非常荣幸为您介绍创新<a href="https://link.segmentfault.com/?enc=WqE7yVtyLxqIKs2xH0HKKQ%3D%3D.He4oSO%2FtKP5aosw6d9hAR7VmmP8ohCFDk9HHcA4eFpiTCvhedCDbM3e8Y%2FJLdHbyKOSj14Lb%2Fvw%2BViPvOld2pg%3D%3D" rel="nofollow">定制芯片</a>设计中的最新产品 — 高能效 Amazon Graviton4 处理器。</p><p><img width="347" height="219" src="/img/bVdbmQE" alt="image.png" title="image.png"></p><p>Graviton4 搭载 96 个 Neoverse V2 核心,每个核心具有 2 MB 的 L2 缓存,同时提供了 12 个 DDR5-5600 通道;这些组件相互协作,从而使数据库速度比 Graviton3 快 40%,比 Web 应用程序快 30%,比大型 Java 应用程序快 45%。</p><p>此外,Graviton4 处理器也未舍弃前几代的所有安全功能,同时还新增了一些十分重要的功能,其中包含加密的高速硬件接口和<a href="https://link.segmentfault.com/?enc=iOUZ25ukJbB1SzHNYk7ixw%3D%3D.AytBMQLtaMPeXHsGCiWUGI47%2FApyGhFccj0DMElKJ2itBFH5S6sNyRPyDmw46OmtrhD9y%2FDTEHOx0W6U%2BbprCAxBRPoYDdGuIvQ3McYn2DgApF4tzEU7jX%2FqfsVdPlBz8h1r2KJWVB%2BWLgZKsRVZFdusN4%2BMt9jlOvr4gKXCsy1nsqSiVl57TEINWmM9TJK%2B" rel="nofollow">分支目标识别</a>(BTI)。</p><h3>R8g 实例大小</h3><p>第 8 代 R8g 实例的大小多种多样;vCPU 数量增幅多达 3 倍,内存量也是第 7 代 (R7g) 内存优化实例(由 Graviton3 提供技术支持)的 3 倍。</p><h3>加入试用预览版</h3><p>搭载 Graviton4 处理器的 R8g 实例</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=CPXtfv8zt6mbFZE3vV0p9w%3D%3D.iqGHxuw1zW8ddf8R3T6rXDGmXIZvIsDKiP8WbHPzvQKnaCj75OHIJPM9KQMoJNxjtbgzjj3yUMiBKWA1HyrpGMOV3UoivLzG76yiq4cT%2FbRR0la%2Bus8J2Z%2BldxbURyn4z%2FJxFVsIo2GZuejUeCxG7KZkAj8%2FVZmIgZQIdgZFz0pNGR23GqYDwGPSjWq%2BJ%2Brh" rel="nofollow">https://dev.amazoncloud.cn/column/article/65713b58e1a2aa6fd35...</a></p>
Amazon Bedrock 知识库现可提供完全托管的 RAG 体验
https://segmentfault.com/a/1190000044614977
2024-02-03T12:19:18+08:00
2024-02-03T12:19:18+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p><a href="https://link.segmentfault.com/?enc=nV8aT3ysRsDeUzigfWLAkQ%3D%3D.b8jqYZZmWA%2BFBwOW%2BcFTHAsymEAuzd01GiXF9yyy2FioHEHFw3RIy2%2FbjG2iU4eehwEQcLUp4LgFrBgTas3Ii96c2K1wl674z6T%2BlUUU3oDpVeAXpaV1hvyRjEN3R4DqYwIYDvSd0X%2FJFDQiGZd5iVw9uR5pzj4e8bWoUMZMQVXNSZeK%2Bugq8uGs%2B2wP%2BNCr" rel="nofollow">Amazon Bedrock 知识库预览版已于9月问世</a>。从今天开始,<a href="https://link.segmentfault.com/?enc=lR9Njjl5dfOTUlE26t33Ew%3D%3D.dqZCOx%2FtqaLJ9FFWXdO8Z3327n%2BdIIl6V926hJcqdbQqS5neNcomQ0Hcq2n8gn%2BQd2NA8m7sLJA9b%2FVvWpXStg%3D%3D" rel="nofollow">Amazon Bedrock 知识库正式全面发布</a>。正式推出。</p><p>借助知识库,可安全地将 <a href="https://link.segmentfault.com/?enc=MfkoN4KIyzdnEir%2FeQ1P7g%3D%3D.NHgdLVi2dO%2BVlNeowBAsM7Dvtwk2c1QxmIaGUXaUi0hr96WDKkL1I8sho2%2FfTUs6dXLnvPBXG4CEeDfz9vXxzg%3D%3D" rel="nofollow">Amazon Bedrock</a> 中的基础模型 (FM) 连接到贵公司的数据,供检索增强生成 (RAG) 使用。模型生成的响应更具相关性、更加特定于上下文以及更准确;访问其他数据在其中发挥重要作用,无需不停地重新训练基础模型。对于从知识库检索的所有信息,它们均附有来源归属,从而提高透明度,并最大限度地减少幻觉。若对其工作方式感兴趣,请查看<a href="https://link.segmentfault.com/?enc=IptPtn86%2BZoRzlu1cHUiyA%3D%3D.%2B6eGqGI%2FonValOBubvrKr9d%2BmOHV%2FJUZVrO3d0nf865Akyj98xzJcGtg29hBD8VtfNAxe9d2DuzozUEU0irrmTOkujSuemrw5D1lWqHgj8XvbaS2sZAJtJq%2FK6MIJlAedwMzBTuVRHwdCddedNJ%2BzK8MKxqb6ViO3ESmSpsZ9pqDCjLh3pTNwNvJXwUXDRvW" rel="nofollow">之前的帖子</a>,其中包含关于 RAG 的入门介绍短片。</p><blockquote><a href="https://link.segmentfault.com/?enc=NmjL8tkl0wVXIOBA5yGVzw%3D%3D.t%2FF5cFwXg1RCwHhuIgq6wyvn4PkhkE4cT0n5AN7FjNHx9rvlkUecst8rVpKoXKWbOOj9aAByc%2FHhgTzNLcuF4fGrckecLZ8AX%2BODE2B2R33GX5Hmf19EMEllUuPYUNZU" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=m2FDK5zzeWO7hh%2FCIumKzQ%3D%3D.ewo5zLJ4qvYg3AkJ3BJrrCc0diXozU8rXu8slI0QMZDdLi8eFW1UfboRbOa7iK%2BCoF3oxrLmLOnWuXdaaGf8z12x5hZzVGsbDIzIBCJM%2BSvdUwx1LW2DFbDct5Ovw3QVu5xAwCgpIKEaaBvx5jduyg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在今天的产品发布过程中,知识库具有完全托管的 RAG 体验,以及在 Amazon Bedrock 中开始使用 RAG 的简便方法。目前,知识库管理初始向量存储设置,处理嵌入和查询,并提供创建 RAG 应用程序所需的来源归属和短期内存。如果需要,也可自定义 RAG 工作流,从而满足特定的用例要求,或集成 RAG 与其他生成式人工智能 (AI) 工具和应用程序。</p><h3>完全托管的 RAG 体验</h3><p>适用于 Amazon Bedrock 的知识库会管理端到端 RAG 工作流。指定数据位置,选择嵌入模型,将数据转换为向量嵌入,然后通过 Amazon Bedrock 在账户中创建向量存储,以便存储向量数据。在选择此选项(仅控制台支持)时,Amazon Bedrock 将在账户的 Amazon OpenSearch Serverless 中创建向量索引,不必自行管理任何内容。</p><p><img width="723" height="442" src="/img/bVdbmwl" alt="image.png" title="image.png"></p><p>向量嵌入包含文档内部文本数据的数字表征形式。每个嵌入旨在获取数据的语义或上下文含义。Amazon Bedrock 负责在向量存储中创建、存储、管理和更新嵌入,同时确保始终同步数据和向量存储。</p><p>目前,Amazon Bedrock 也支持 RAG 的 2 个新 API,这用于处理嵌入和查询,同时提供创建 RAG 应用程序所需的来源归属和短期内存。</p><p>通过全新的 <code>RetrieveAndGenerate</code> API,直接从知识库检索相关信息;在 API 调用中指定基础模型,Amazon Bedrock 便可根据结果生成响应。以下内容将围绕工作方式。</p><h3>使用 RetrieveAndGenerate API</h3><p>要试用,导航到 <a href="https://link.segmentfault.com/?enc=aWMA40UV7KS1W%2FvjSsM1LA%3D%3D.XHw%2FQkXNqzrlFe2r3E6A0qyshEe9jaMAoIq6wEcabkUROTPSzEcwS%2FGg%2FYEdFdOWehHgQEI5R5Vpc%2Fvzn2vpIA%3D%3D" rel="nofollow">Amazon Bedrock 控制台</a>,创建并选择知识库,然后选择“<strong>测试知识库</strong>”。在本演示中,创建知识库,从而访问<a href="https://link.segmentfault.com/?enc=JymvnmUQ4Tp9XmenNk3tWQ%3D%3D.s5Ck1Fy9NUK5peZtxbMANU71ciVehCPn3%2F13i5a38nQbwt4kNmd%2BWxH9bYy7clS0gWBaXaWNj3%2B5YI8A0fBjSg%3D%3D" rel="nofollow">亚马逊云科技生成式 AI</a> 的 PDF 文件。选择“选择模型”,指定基础模型。</p><p><img width="723" height="173" src="/img/bVdbmym" alt="image.png" title="image.png"></p><p>然后,提问,“何为 Amazon Bedrock?</p><p><img width="723" height="382" src="/img/bVdbmyn" alt="image.png" title="image.png"></p><p>Amazon Bedrock 会在在后台将查询转换为嵌入,查询知识库,然后利用搜索结果作为上下文信息扩充基础模型提示,并返回基础模型生成对问题的回复。对于多轮对话,知识库管理对话的短期内存,从而提供更多上下文结果。</p><p>以下快速演示介绍了如何同时使用 API 与<a href="https://link.segmentfault.com/?enc=%2FtwZsLu1rV3THKSEGSdUTg%3D%3D.nsIB87ZPZ5YuvzOGCaTBsOub7grwGjL3KaqXMlsAL%2FUJpiacu6keL%2Br17LSdt4r4zcEluh8DP3vMIDfGErsY%2FQ%3D%3D" rel="nofollow">适用于 Python 的亚马逊云科技开发工具包 (Boto3)</a>。</p><pre><code class="Python">def retrieveAndGenerate(input, kbId):
return bedrock_agent_runtime.retrieve_and_generate(
input={
'text': input
},
retrieveAndGenerateConfiguration={
'type': 'KNOWLEDGE_BASE',
'knowledgeBaseConfiguration': {
'knowledgeBaseId': kbId,
'modelArn': 'arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1'
}
}
)
response = retrieveAndGenerate("What is Amazon Bedrock?", "AES9P3MT9T")["output"]["text"]</code></pre><p><code>RetrieveAndGenerate</code> API 输出包含生成的响应、来源归属和检索的文本块。在演示中,API 响应如下所示(为简洁起见,已编辑部分输出实施):</p><pre><code>{ ...
'output': {'text': 'Amazon Bedrock is a managed service from AWS that ...'},
'citations':
[{'generatedResponsePart':
{'textResponsePart':
{'text': 'Amazon Bedrock is ...', 'span': {'start': 0, 'end': 241}}
},
'retrievedReferences':
[{'content':
{'text': 'All AWS-managed service API activity...'},
'location': {'type': 'S3', 's3Location': {'uri': 's3://data-generative-ai-on-aws/gaia.pdf'}}},
{'content':
{'text': 'Changing a portion of the image using ...'},
'location': {'type': 'S3', 's3Location': {'uri': 's3://data-generative-ai-on-aws/gaia.pdf'}}},...]
...}]
}</code></pre><p>生成的响应如下所示:</p><p>Amazon Bedrock 是一项托管服务,这将通过简单 API 为生成式 AI 提供 Serverless 体验。该款产品支持访问亚马逊云科技和第三方的基础模型,从而执行文本生成、图像生成和构建对话代理等任务。对于通过 Amazon Bedrock 处理的数据,它们需要保持隐私和加密。</p><h3>自定义 RAG 工作流</h3><p>若要进一步处理检索的文本块,查看检索的相关性分数,或自行开发文本生成的业务流程,请使用新检索 API。使用该 API,用户查询会转换为嵌入,搜索知识库并返回相关结果,便于您更妥善地控制根据语义搜索结果构建自定义工作流。</p><p><strong>使用检索 API</strong></p><p>在 Amazon Bedrock 控制台中,切换开关,禁用“<strong>生成响应</strong>”。</p><p><img width="723" height="179" src="/img/bVdbmyo" alt="image.png" title="image.png"></p><p>然后,再次提问“何为 Amazon Bedrock?”这次,输出展示了检索结果,其中也有文本块来源的源文档链接。</p><p><img width="723" height="522" src="/img/bVdbmyp" alt="image.png" title="image.png"></p><p>下方将介绍如何同时使用检索 API 与 boto3。</p><pre><code>import boto3
bedrock_agent_runtime = boto3.client(
service_name = "bedrock-agent-runtime"
)
def retrieve(query, kbId, numberOfResults=5):
return bedrock_agent_runtime.retrieve(
retrievalQuery= {
'text': query
},
knowledgeBaseId=kbId,
retrievalConfiguration= {
'vectorSearchConfiguration': {
'numberOfResults': numberOfResults
}
}
)
response = retrieve("What is Amazon Bedrock?", "AES9P3MT9T")["retrievalResults"]</code></pre><p>检索 API 的输出包含检索的文本块、源数据的位置类型和 URI,以及检索分数。分数将有助于确定与查询匹配度更高的区块。</p><p>在演示中,API 响应如下所示(为简洁起见,已编辑部分输出):</p><pre><code>[{'content': {'text': 'Changing a portion of the image using ...'},
'location': {'type': 'S3',
's3Location': {'uri': 's3://data-generative-ai-on-aws/gaia.pdf'}},
'score': 0.7329834},
{'content': {'text': 'back to the user in natural language.For ...'},
'location': {'type': 'S3',
's3Location': {'uri': 's3://data-generative-ai-on-aws/gaia.pdf'}},
'score': 0.7331088},
...]</code></pre><p>要进一步自定义 RAG 工作流,请定义自定义区块策略,并选择自定义向量存储。</p><p><strong>自定义区块策略</strong> — 为高效从数据中检索,一种常见做法是先将文档拆分为可管理的区块。模型的理解和信息处理能力进一步增强,从而改进相关检索和生成语义连贯的响应。适用于 Amazon Bedrock 的知识库可管理文档的区块。</p><p>在为知识库配置数据源时,现可定义区块策略。默认区块会将数据拆分为区块,其中最多 200 个令牌,并专为问答任务优化。在不确定数据的最佳区块大小时,使用默认区块。</p><p>此外,也可选择指定自定义块大小,其中内容与固定大小的区块重叠。若知晓数据的最佳区块大小和重叠范围(基于文件属性、准确性测试等),应当使用固定大小的区块。在建议的 0-20% 范围内,区块间的重叠区域有助于提高准确性。重叠范围越高,相关性分数降低。</p><p>若选择根据每个文档创建一个嵌入,知识库会将每个文件保存为单个区块。如果不希望 Amazon Bedrock 对数据进行区块划分,例如若要使用特定于用例的算法离线区块数据,使用此选项。常见用例包含代码文档。</p><p><strong>自定义向量存储</strong> — 也可选择自定义向量存储。可用向量数据库选项包含<a href="https://link.segmentfault.com/?enc=b7Igmfnzh4iGJuoARmcLvg%3D%3D.DPGe991KITzU1UTfTXVNnhDiLyrNMwEDSJXrXV9KA7dQEgS5Ph2XjXfbiuPWcT5MaDCRfHNb%2FyHVtgNWw0bntXJ1YATOk%2B7x0fkyhL77gDDQmf5It96BA1kvzEga7RpA" rel="nofollow">适用于 Amazon OpenSearch Serverless 的的向量引擎</a>、<a href="https://link.segmentfault.com/?enc=WhLsKtN%2FIUOu8byKm0i4sA%3D%3D.XFguqzXpknVyNzqWccL06sEgXnIQP4GmfGwx97CMCS5J7wuMbuXsdyYBj%2BAjJfIc" rel="nofollow">Pinecone</a> 和 <a href="https://link.segmentfault.com/?enc=LwDc5R46JeGBAX0N9pTtCw%3D%3D.tq%2FdQamacOr01Mt5Ce2Jou%2Bp9R26rnnuhpN4ZpHJouLgbGsSIjPAz9cXpnaUIQZY" rel="nofollow">Redis Enterprise Cloud</a>。要使用自定义向量存储,必须从支持的选项列表创建全新空向量数据库,并附上向量数据库索引名称,以及索引字段与元数据字段映射。该向量数据库应专属于 Amazon Bedrock。</p><p><img width="723" height="539" src="/img/bVdbmyw" alt="image.png" title="image.png"></p><h3>集成 RAG 与其他生成式 AI 工具和应用程序</h3><p>AI 助手可执行多步骤任务并访问公司数据源,从而生成相关性和上下文感知更高的响应;若要构建此类助手,可集成知识库与 适用于 Amazon Bedrock 的代理 。也可使用 LangChain 的知识库检索插件,集成 RAG 工作流与生成式 AI 应用程序。</p><h3>可用性</h3><p>亚马逊云科技区域美国东部(弗吉尼亚北部)和美国西部(俄勒冈州)现已支持适用于 Amazon Bedrock 的知识库。</p><h3>了解更多</h3><ul><li><a href="https://link.segmentfault.com/?enc=dtgsRdRPIXFxvN%2FUzwjyWQ%3D%3D.Zn9tykhtlyFBjFgXUjdhj3tWmfyxZ4a1tST%2BWuX2WUy09dXNYYGURS3f%2FWbtEsiLd75nfVnfYy7cnrREQ9XdPQ%3D%3D" rel="nofollow">适用于Amazon Bedrock 的知识库</a></li><li><a href="https://link.segmentfault.com/?enc=0tt5piZHRtaSTPI7kpBkLA%3D%3D.om8EFTGXVfsxIhd5uIIP2GM2Boe92k30%2BVCFdDByp%2Fk5LI4mI0seGd0yIkmz3XDcxur9uDUp0Z%2BfBTQzeTbNp4Q5%2FqQaAAT1sMDRQ%2F%2FHBuxmf4eObFgXVyapdrBFxYl4" rel="nofollow">知识库用户指南</a></li><li><a href="https://link.segmentfault.com/?enc=4x4XEzFFAEBZqiEi3l%2Bllw%3D%3D.8O%2FBgYAfauqJ2evNoOkd801mixdIj3Sy5QaBhZKewSzunmJxcpc23gNj49gl8m93PCA%2BSPwGn6cdmoBVxdm%2FFg%3D%3D" rel="nofollow">控制台中的 Amazon Bedrock</a></li></ul><p>文章来源:<a href="https://link.segmentfault.com/?enc=5W%2FmYVndo8mDrVKiPcbSJw%3D%3D.CP5fF96rR1zjSPuogBGPbqv4JpIPiougvvHyPejmkCzGMkrWlSEXSoA71ikWqNXAequIGV1YIwJKWw884EnCMLDsd8Y7W9nYkffEbBowDfwbYrXae8LzRXAB41x9fkzmOl6MXa1of1Rz3pshrtDxFz5rOAhXGB3I6%2BoFsvQEdkIS8Y0FnMVcvqRP719xC0Pl" rel="nofollow">https://dev.amazoncloud.cn/column/article/65715b6ce1a2aa6fd35...</a></p>
起心动念 | 生成式 AI 开发实践系列的开端
https://segmentfault.com/a/1190000044614820
2024-02-03T09:38:17+08:00
2024-02-03T09:38:17+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>生成式 AI 和大模型的技术变革力量,正在逐渐影响着我们当下这个时代,全球各行各业都呈现百舸争流、万象更新的趋势。在 2023 年,我们通过各种面向开发者的活动,收集到了大量开发者关于基于生成式 AI 的开发内容需求和建议反馈。开发者们都期待我们在 2024 年推出更多关于生成式 AI 开发实践的系列内容。</p><blockquote><a href="https://link.segmentfault.com/?enc=I66McNTQ8VecqEG%2F7qBApg%3D%3D.k9dqouJUt9LgWfzHWD1AwtplB1093XCzNECqQV89fpTf9WdxWxQCj1iVN2vbZ4O9UKYxWm3vjJEQ%2BgN9yfa2VMLjpF%2FOuvJCMbYlKgb6vLVmdb8c%2FHbcR%2FweCd%2FvYS0f" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=TWWh7QZ1a1Ogdg6qTykTUA%3D%3D.6ZRx3ennWWMTQ9%2BWOoKEOVIF2E%2BRPGDIYMMqt719mKEsb7X23r2YU0L9OXLovYJf0J32vaNl8qNwd0DzdO3%2Bdu9x0hS5KIdtZNZ0EcpglNLDmKZSRzAUbubWCwXerVZ2dW%2BwFt6Px2fDVeePIMFhBQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>根据来自于过去一年的开发者的需求建议上的深度思考,我们确定了以下三个围绕生成式 AI 开发实践的内容系列,希望在 2024 年里,对开发者们在生成式 AI 应用领域的开发实践有所帮助:</p><ul><li>构建生成式 AI 应用开发实践系列</li><li>开源大语言模型的优化实践系列</li><li>亚马逊云科技上的生成式 AI 开发实践系列</li></ul><h3>构建生成式 AI 应用开发实践系列</h3><p>在亚马逊云科技 re:Invent 2023 以及之后的 reCap 巡展中,细心的开发者们也许已经发现有一个很有趣的动手实验:</p><p><strong>开发一款可部署的基于大语言模型的字谜游戏。</strong></p><p>该款游戏使用了文生图模型为玩家提供一个未知的提示词,玩家需要根据模型生成的图像来猜测该提示词,来完成游戏。该动手实验完整地展示了如何在亚马逊云科技上完整构建生成式 AI 应用程序。</p><p>这款游戏的后端使用了三个大模型,包括:</p><ul><li>文本到图像的模型</li><li>文本嵌入(Text Embedding)模型</li><li>文本生成模型</li></ul><p>整个游戏的主要拓扑结构图如下所示:</p><p><img width="691" height="556" src="/img/bVdbmv0" alt="image.png" title="image.png"></p><p>本系列计划用 3-5 篇博客的篇幅,完整阐述如何构建基于大模型的生成式 AI 应用实践,来帮助开发者们全面了解构建 生成式 AI 应用开发的完整流程,包括:构建前端程序、构建后端程序、以及代码面向生产环境的持续集成和持续部署(CI/CD)等方面内容:</p><ul><li>生成式 AI 应用设计概述</li><li>文本到图像模型的设计</li><li>嵌入模型的设计</li><li>文本生成模型的设计</li><li>生成式 AI 应用 CI/CD 实践</li></ul><h3>开源大语言模型的优化实践系列</h3><p>该系列的策划起源自我们在 2023 年亚马逊云科技 re:Invent 上的演讲分享——<a href="https://link.segmentfault.com/?enc=zSEKUO8icpLJ6Rzox4v2yw%3D%3D.jZ5fxCCpcsMPAkQ81%2FxhRTKiIJqSV5nwXMZwvGG9Ahjkrv1lLgQWK0OzNaCBfUfMRTQVWwBoKoJNo4o4wwKy0V5J%2F%2BVjxHyRgOKLq61yMHxKWvft9CHru6gPoOB5CIh4zd8xb%2BnjrOl7qFASZJXYMQBBIrlqqNGZTxlHxMZ%2BTg34qUf4yxILikiHcnaMxR%2FZeS1heXhaRDdUO4WCIoG%2FWAbWz4PuM0swQvmthmBt8iVVd6qF8JIoWC7Y6mg78qDrTeTnEU%2F1jtN1RGniDgD3p927o9Rdr9PtYcV9RNThDXSJHcq4bOvTXX3MuooCvwg9" rel="nofollow">使用 Amazon SageMaker 优化开源大语言模型的部署和微调</a>。</p><ul><li>《<a href="https://link.segmentfault.com/?enc=PXdNxRfrKQXzPq%2B1mkh%2FPA%3D%3D.bSLJ71Mrmrwg2wL4ifv2JX2PoZZPCqAPevn353mUHRWPFWU%2BWLVPNZ%2BTzNHit0kATn15aRtOCF9KnpDkjYdRjnyGCP%2FJExdTaASDwT4yDONNN66LA8LAADSlpksdstdjivpHg2ZV3NC0wfww6yybA52fpfF0Y2LaObNfWI8mFzDT2KwqCjLz9lpQ5yyEXf3301lc2zlraVyuEpZK9qb2%2Bs2FbpQkWty09RNB9Cz6TzCrorDe7FG%2B0NdxyHo47VFktHyWatXe5oNUNOC%2BhqIDycE4Vp7IGn13zJDAvGoj0jaefTgxXOeznhqcsV4RGsau" rel="nofollow">使用 Amazon SageMaker 优化开源大语言模型的部署和微调</a>》 演示文稿下载:<a href="https://link.segmentfault.com/?enc=SMcTYR5Z5qOe9m%2F%2B371QoA%3D%3D.8epJincgpcBkt%2Fmx5NxOc%2Fe27BBUoptNZQdbDTFAPAkxR8pSNnxp4OQkGmQRsX7cfFEPYTykPZvyiXcDXHrcudAiV0s778TQZPNy56M67ieokSzB8kRsU%2F4J8R3yE7tPaCoGU%2BdDVlqbhGmvfjFi0r9UilolMFi66CuftSObR4dYbTF1CN0mxlfhFFJg3S8%2FumfHO4GHq%2FKiTp7e7XDal2BXSC%2BiB9I%2BKCfFfnfl7GY%3D" rel="nofollow">https://d1.awsstatic.com/events/Summits/reinvent2023/BOA402dd...</a></li></ul><p>在技术分享中,我们和世界各地的开发者们一起探讨了大语言模型的模型部署和微调优化领域,包括:模型编译、模型压缩、模型分布式训练、模型推理批处理等方面的行业最新论文和发展趋势,以及通过两个实际代码展示了 Amazon SageMaker 如何高效简化大语言模型的部署和微调流程。如下图所示:</p><p><img width="723" height="372" src="/img/bVdbmv1" alt="image.png" title="image.png"></p><p>分享结束后,很多开发者和我们沟通联系,希望我们可以把这个话题延展地更深入一些,因为和开源大模型优化相关的很多子领域,在过去一年行业进步迅速,很多优秀的论文和想法脱颖而出。因此,我规划了这一系列,通过 4-6 篇博客来分享我在开源大语言模型优化领域的心得和体会,话题包括:</p><ul><li>模型编译</li><li>模型压缩</li><li>模型分布式训练</li><li>模型部署</li><li>模型推理优化</li></ul><h3>在亚马逊云科技上的生成式 AI 开发实践系列</h3><p>从 2023 年开始,在生成式 AI 领域涌现了很多优秀的书籍和在线课程。为帮助开发者可以系统了了解如何利用亚马逊云科技在云基础设施、数据存储、数据处理以及数据分析等诸多方面的优势,我们特别规划了这个系列的内容。</p><p>我们希望在 2024 年里通过 8-12 篇技术博客和大家逐步分享行业的最新进展和在亚马逊云科技上的开发实践,主要内容规划如下:</p><ul><li>生成式 AI 用例、基础知识、项目生命周期</li><li>提示工程和上下文学习</li><li>大型语言基础模型</li><li>模型量化和模型的分布式训练</li><li>模型微调和模型评估</li><li>参数高效微调(PEFT)</li><li>使用 RLHF 进行强化学习微调</li><li>优化和部署 生成式 应用程序</li><li>检索增强生成 (RAG) 和代理</li><li>多模态基础模型概述</li><li>使用 Stable Diffusion 模型进行用户可控的模型生成和微调</li><li>使用 Amazon Bedrock 的生成式 AI 开发实践</li></ul><p>敬请期待!</p><h3>特别推荐</h3><p>除了今年的内容分享预告,我也希望给开发者们推荐以下学习资源,与开发者共勉。</p><p><strong>书籍《Generative AI on Amazon Web Services》</strong></p><p><strong>难度:初级/中级</strong></p><p>该书的作者为来自亚马逊云科技的同事 Chris Fregly、Antje Barth 和 Shelbee Eigenbrode 等。 </p><p>书籍主要内容包括了:生成式 AI 的生命周期,包括用例定义、模型选择、模型微调、检索增强生成、通过人类反馈的强化学习以及模型量化、优化和部署等。如果开发者计划利用亚马逊云科技的诸多服务,在云端设计和开发生成式 AI 的应用的话,非常推荐此书。</p><p>书籍链接:<a href="https://link.segmentfault.com/?enc=DpdcYCsqnL7Mn7lPQE5LUQ%3D%3D.HAtPfYrvhtVr417kgQqMhuQhl8f8f6oOnVUkknqalwGli5gdhpv%2FssPiGI5oropOdIlA9Fn3vYdLZ60aLIRUMcwB3wI8WPLTL4yCucMvz%2Bwf4WV8lba0f3q%2FcpANuKwVk0rIOeCh1UsImwy%2FGhaGvpbYH9462t3HtcS%2B8J6XFWM%3D" rel="nofollow">https://www.amazon.com/\_/dp/1098159225?trk=cndc-detail</a></p><p><strong>在线课程《Generative AI with Large Language Models》</strong></p><p><strong>技术难度:中级</strong></p><p>吴恩达创办的 DeepLearning.AI 一直在提供各种面向 AI 领域的精品课程。而在大语言模型领域,笔者非常推荐 DeepLearning.AI 与亚马逊云科技合作推出这门在线课程。</p><p>这门在线课程的主要内容是讲授生成式 AI 的工作原理,以及如何部署面向真实世界应用的生成式 AI 模型。这门课的对象主要是针对中等水平的生成式 AI 开发人员,所以需要有一定的编程基础并且对机器学习有一定的了解。此外,官方建议课程的学习时间是三周,也是一个比较长的学习周期。</p><p>在线课程链接:<a href="https://link.segmentfault.com/?enc=ZOf9zJDm88GM5k9%2Fv6QKYg%3D%3D.xk%2BHo3fEEa1h2G1vac8VqMx5WBrE%2BsNiKb1v6qcuUJJglltRQp7%2F0h4bmq2YRWIY%2F3iPFVWt35djKCy8e%2B%2BVlEQy%2Bwo7YHwUDDQvZWrk3uWiZIRRhAR8GWyLWKv%2BUtL47aJjtIW6JX3eKktKqRlJxQ%3D%3D" rel="nofollow">https://www.coursera.org/learn/generative-ai-with-llms?trk=cndc-detail</a></p><p><strong>在线课程《Hands-on Machine Learning with Amazon Web Services and NVIDIA》</strong></p><p><strong>技术难度:中级/高级</strong></p><p>该在线课程是 DeepLearning.AI 与亚马逊云科技合作的又一重要课程,专为数据科学家和开发人员等 ML 实践者设计。课程要求注册课程的开发者,具有机器学习工作流程的基础知识。</p><p>在该课程中,开发者将了解如何让使用 Amazon SageMaker 和 NVIDIA GPU 加速的 <a href="https://link.segmentfault.com/?enc=fK8m338uelDT%2BYEF5b5fng%3D%3D.Mi5yEpm9DlrXkACwtsBGudnLWzTzod4dD6fqW62wqIrS%2BSTAf0fgYSj7IgyAcvVlBM54za09w38zXsWJHNjOWKIp3heDH%2BByH317M9Pv5pK2NWI4BJMjFx48ouB%2F9Rg8" rel="nofollow">Amazon EC2</a> 实例构建、训练和部署可扩展机器学习模型的实践经验。</p><p>课程首先概述了 Amazon SageMaker 和 NVIDIA GPU。然后指导开发者通过运行由 GPU 驱动的 Amazon SageMaker 笔记本实例进行实践操作。学习内容包括:如何准备用于模型训练的数据集、构建模型、执行模型训练以及部署和优化 ML 模型等生成式 AI 模型训练的完整流程。</p><p>在线课程链接:<a href="https://link.segmentfault.com/?enc=rfoQ1Tt2eT%2FaRfS1rHmCSA%3D%3D.tix%2FklzNCyjBPHn1Jp%2B2PYSgksZwcmT5FmshDN9WhTwv%2BH%2F4dX%2B1BkCn%2FqV%2BRkbWX0yrRQLPTDjpWDCxtYI1MmOgvrpNC%2FUshpSPA%2FSHQQDDKNdxuVmAIChh0uxOihKh343cAu4O36K3iCy6Os7xBQ%3D%3D" rel="nofollow">https://www.coursera.org/learn/machine-learning-aws-nvidia?trk=cndc-detail</a></p><p>最后,祝福各位开发者龙年新年快乐,阖家幸福,万事如意!</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=XZ5624IaIp%2B88n8Rm01LlQ%3D%3D.B2rGjfut%2B4JNmptHqJzTwfTK9u3AZzu3x4IncspAMgO0wtbaBOrisuy%2F1Bh2BTvMF5WIUsrf3wCzWLatSwrFj3TEMhaaSC%2FOJ%2BnsZkhWaqmvz%2FTEr6e9emdUX0DVle7s5esRLkJMjsAF6%2BHWt6IMp0WlspdWgLg3W5%2FQaGJgrrlYXmN%2Fp6XRK5HICZQz4gKF" rel="nofollow">https://dev.amazoncloud.cn/column/article/65bd9436cfa5835dd40...</a></p>
新型生成式 AI 助手 Amazon Q(预览版)上线
https://segmentfault.com/a/1190000044611438
2024-02-02T10:13:38+08:00
2024-02-02T10:13:38+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>今天,我们宣布推出 Amazon Q,这是一种新型的生成式人工智能助手,专门用于满足办公场景需要,可以根据客户业务进行定制。客户可以使用 Amazon Q 进行对话、解决问题、生成内容、获取见解并采取行动,所有这些都基于客户自身的信息存储库、代码、数据和企业系统。Amazon Q 为员工提供即时、相关的信息和建议,帮助他们简化任务、加速决策和解决问题,并帮助激发工作中的创造力和创新能力。</p><p>Amazon Q 为用户提供定制化方案,用户可以根据产品使用方式定制功能、定价和选项。Amazon Q 可以根据企业既有的人员、角色和权限对每位用户交互进行个性化定制。亚马逊云科技绝不会使用客户内容来训练底层模型。也就是说,亚马逊云科技始终确保企业信息的安全性和保密性。</p><blockquote><a href="https://link.segmentfault.com/?enc=iMnzRa%2FeqXLbAmnvpG5%2BLg%3D%3D.yJ%2BUhMOh2Ym0RuJlcgjmxSzUiEzYwJJPBu9o%2BsZLqASjuT4zwJXrpLL60QQqF6aJoJPk%2Bkif%2FKhfC%2BXi3aeoKXeeQytEXmi7%2FuGBoyW6MVID9GeiaKigvqQnH6cZaG6Q" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=HIeRvpeSgeWklj%2FjXR7qNA%3D%3D.AyN%2BDkivelCK7RSXEBXJEzggDTbOET9KWuUzGd%2BkidRFUX6yCndYo8GEAM576UPyH3mMd4xsr0fSHkwloKAt9VjI2iSttOOjSQs0FRBqfOBP7bcO%2FXmH0vV9rz0PaYTx3Y20Fswt%2BHdAO2d8RYeOEw%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>我将通过本文向您简要介绍如何在一般业务中使用 Amazon Q。</p><ul><li>有关开发人员和 IT 专业人员如何使用 Amazon Q 的信息,请参阅:Amazon Q 为 IT 专业人员和开发人员推出生成式 AI 助手(预览版)</li><li>有关业务分析师如何在 QuickSight 中使用 Amazon Q 的信息,请参阅:新型生成式 AI 助手 Amazon Q(预览版)助力 QuickSight 实现更快、更简便的数据洞察</li><li>有关联络中心坐席如何在 Connect 中使用 Amazon Q 的信息,请参阅:包括 Amazon Q 在内的新型生成式 AI 助手助力 Amazon Connect 云联络中心改善服务</li></ul><h3>Amazon Q 是您的业务专家</h3><p>让我们通过几个例子,来了解 Amazon Q 如何通过简单的自然语言提示帮助企业用户完成任务。作为营销经理,您可以使用 Amazon Q 将新闻稿转换为博客文章,撰写新闻稿摘要,或根据已有的新闻稿拟写一封电子邮件。Amazon Q 会搜索企业内容,其中可能包括企业内部风格指南,以生成符合公司品牌标准的答案。您也可以使用 Amazon Q 生成定制的社交媒体提示,通过各个社交媒体渠道来推广您的内容。您还可以使用 Amazon Q 分析营销结果并提供报告摘要以供领导审查。</p><p><img width="723" height="502" src="/img/bVdblCM" alt="image.png" title="image.png"></p><p>在下面的示例中,我部署了 Amazon Q,授权 Amazon Q 获取我在 2023 年发布的亚马逊云科技新闻博客文章,并将 Amazon Q 命名为“亚马逊云科技博客专家”。</p><p><img width="723" height="527" src="/img/bVdblCR" alt="image.png" title="image.png"></p><p>谈回到我上面举的例子,假设我是一名营销经理,我希望 Amazon Q 帮助我创作社交媒体帖子,来推广公司最近发布的博客文章。</p><p>我输入了以下内容:“总结 Antje 最近发布的亚马逊云科技周报文章中的关键见解,并创作一篇吸睛的社交媒体帖子。这篇帖子不仅要突出最重要的观点,还要鼓励读者互动。同时需要考虑到我们的目标受众,并符合我们的品牌形象。这篇帖子要做到简洁、翔实、引人入胜,鼓励读者点击并阅读全文。请确保内容可分享,并包含相关标签,以扩大曝光量”。</p><p><img width="723" height="415" src="/img/bVdblCS" alt="image.png" title="image.png"></p><p>Amazon Q 会在后台搜索经授权的数据源中的文档,并根据我的博客文章,创建相关且详细的社交媒体帖子建议。Amazon Q 还指出了它参考的文档。本示例中,它参考的是一篇相关文章的 PDF 文件。</p><p>作为管理员,您可以阐明上下文内容,限制不相关的话题,并规定是否仅使用可信赖的公司信息,还是使用底层模型中的知识来加以补充。仅使用可信赖的公司信息有助于减轻幻觉现象。幻觉现象是一种常见的现象,即底层模型生成的答案听起来似乎合理,但却是基于错误的或不存在的数据生成的。</p><p>Amazon Q 提供细粒度访问控制,仅使用基于员工访问级别的数据或根据员工访问级别进行操作。Amazon Q 还提供引用和参考的原始来源,来核查事实并确保可追溯性。您可以选择 40 多个兼容流行数据源和企业系统的内置连接器,包括 Amazon S3、Google Drive、Microsoft SharePoint、Salesforce、ServiceNow 和 Slack。</p><h3>如何根据客户业务定制 Amazon Q</h3><p>要根据您的业务定制 Amazon Q,请在控制台上导航到 Amazon Q,在左侧菜单栏中点击“应用程序”,然后点击“创建应用程序”。</p><p><img width="723" height="465" src="/img/bVdblCT" alt="image.png" title="image.png"></p><p>具体步骤如下:</p><p>步骤1:创建应用程序。提供应用程序名称,并创建新的或选择现有的亚马逊云科技身份与访问管理(IAM)服务角色,允许 Amazon Q 扮演该角色。我将我的应用程序命名为 <code>Amazon-Blog-Expert</code>。然后,点击“创建”。</p><p><img width="723" height="550" src="/img/bVdblCV" alt="image.png" title="image.png"></p><p>步骤2:选择检索器。检索器在对话过程中实时从索引中提取数据。您有两个选项:使用 Amazon Q 原生检索器,或使用现有的 Amazon Kendra 检索器。原生检索器可以连接到 Amazon Q 支持的数据源。如果您使用过 Amazon Kendra,您可以选择现有的 Amazon Kendra 检索器,将相关数据源连接到您的 Amazon Q 应用程序中。我选择了原生检索器。然后,点击“下一步”。</p><p><img width="723" height="468" src="/img/bVdblCX" alt="image.png" title="image.png"></p><p>步骤3:连接数据源。Amazon Q 配置了兼容流行数据源和企业系统的内置连接器。本示例中,我选择了Amazon S3,选择 S3 存储桶中的 PDF 博客文章作为数据源。</p><p><img width="723" height="1000" src="/img/bVdblCY" alt="image.png" title="image.png"></p><p>数据源同步完成后,并且检索器显示的文档数也是正确的,您就可以预览体验网页并开启对话。请注意,数据源同步的时间取决于索引数据的数量和大小,可能需要几分钟到几个小时不等。</p><p>您还可以连接企业系统访问管理插件,包括 ServiceNow、Jira、Salesforce 和 Zendesk。Amazon Q 可以通过这些插件完成用户任务,例如开具支持工单或分析销售预测数据。</p><p><img width="723" height="450" src="/img/bVdblC1" alt="image.png" title="image.png"></p><p><strong>预览和部署体验网页</strong></p><p>在应用程序概览页面,点击“预览体验网页”。这时会打开体验网页,可以在对话界面与定制的 Amazon Q Amazon-Blog-Expert 对话。最后一步是部署 Amazon Q 体验网页。您可以使用 IAM 集成符合 SAML 2.0 标准的外部身份提供商(IdP)。Amazon Q 支持任何符合 SAML 2.0 标准的身份提供商。Amazon Q 通过服务启动的单点登录(SSO)对用户进行身份验证。</p><p><strong>体验预览版</strong></p><p>Amazon Q 目前在美国东部(北弗吉尼亚)和美国西部(俄勒冈州)这两个亚马逊云科技区域提供预览版。您可以访问产品页面,了解如何让 Amazon Q 成为您的业务专家。</p><p>此外,您还可以查看 Amazon Q Slack Gateway GitHub 存储库,了解如何通过 Slack Bot 应用程序使用 Amazon Q。</p><p><img width="723" height="432" src="/img/bVdblC8" alt="image.png" title="image.png"></p><p>了解更多信息</p><ul><li><a href="https://link.segmentfault.com/?enc=YZ55F%2Fav7TjHPKj0YN%2F1uQ%3D%3D.rMl8j2Un909s9WRN3zCHxa3LXj1%2FS%2FTGHHw%2BojKC3Ct0MhqGVDUAjZ2MdH28gUok" rel="nofollow">Amazon Q 主产品页面</a></li><li><a href="https://link.segmentfault.com/?enc=XZwPl2gFnN8lCXSs59QW5w%3D%3D.WbfRTs7rXDYqkR8R54GzW5rUO3CiUh1lPBETemVuwxfoaXg4ZhNHQXOWd5Al42JlsmJd8rmPvZggkt4JAvDTcQ%3D%3D" rel="nofollow">Amazon Q 用于一般业务用途</a></li></ul><p>参阅更多关于 Amazon Q 的信息</p><ul><li><a href="https://link.segmentfault.com/?enc=nyV9r6iZaT740U2RdAzh8g%3D%3D.YsqYnRE8KOnyNIsJrD6vGOJ2YMHjAl2xp4X%2FlRPMu5anLs1Dw5YFtx6F7hXEJGA8fCc%2B5EmWqsBByeuy4gFhoI8Xjo5z4iLwwlU8kbMVsXuUop3sLy0g%2FAND7jx9egMV434K9bbRGujHenMxYhkZtnCFbIeKuRmKDJDIPErVp1xofqy03DezZcp%2FpPz1LiW%2F" rel="nofollow">Amazon Q 为 IT 专业人员和开发人员推出生成式 AI 助手(预览版)</a></li><li><a href="https://link.segmentfault.com/?enc=W4IRw9vPe7TkKryzoGbdCQ%3D%3D.5vxPxNQTUWN8aUIQ3hVxUxFpwIN2NgcZNxQTy4HfQmbFF2V1UB3Pti%2FkLA0YbVqIX1s7OGughHpPEoIlXcmONyPThRGVQj%2FKWmb3VhTwUGdU7zVSeU9pY6pIytLXNqzhJhtWTofrnpkCAkOyuW8JcuRq%2F9PbHBLaud0dkS68Eg2haeeW9Jg%2BKlsFdF1zp%2FaieUHO9MlIE8DzX65vOHINFg%3D%3D" rel="nofollow">Amazon Q 生成式 AI(预览版)助力 Amazon CodeCatalyst 提高开发人员工作效率</a></li><li><a href="https://link.segmentfault.com/?enc=s5%2Fl0FfN7NQ9%2FSzg%2BFpmaw%3D%3D.bLBJi8Wj0glSLX%2FRI8swJnhQRZmrLlh8E7i5BzR2AqFiO2fdtDZacMeRX%2FpqfCS7bLROtH9yyUeNEMPxAz7jCVvZ4JHcv1qEaRaM20EPmjYgLrrEzQROfDOZNb7G7vV05s1uE3%2FNyHYa8ln0NpEjlT0YV7uQGrON%2FoRMtfV7yVA%3D" rel="nofollow">Amazon Q 代码转换(预览版)助力 Java 应用程序升级</a></li><li><a href="https://link.segmentfault.com/?enc=tGBoSswbMHOt1XyoHbWbVA%3D%3D.rS2AokKKHN6XmeqM6%2F0b%2BA%2BgrvSuGlUqTUSVMeU%2Fcc6HtAoiHp3p8gY4JK898muDOPzllTHtALRVI4P3nwkQWnxK9BWI1mJ7caVsrhd8kl4to%2FWTP12Xi6D3nuyUmpCkP1NmJYs3cFuPk0tYi0gRDpTxvwI8LqQyo68B0Uhh1itcYVuZWY6BjHtloe9HnUu8gKrMPUhPriZGuUVEyKJt3g%3D%3D" rel="nofollow">包括 Amazon Q 在内的新型生成式 AI 助手助力 Amazon Connect 云联络中心改善服务</a></li><li><a href="https://link.segmentfault.com/?enc=wMp%2FsH54AvIqXC9vRrlRvg%3D%3D.w1oVJqvBtdOXeMGgGCa2CBxANtn6RpEbtzRQZ8c5wMZVAm3ztPUR6vKE3piM2a%2FBycZTr15y37kQs4GNyN0xdD4KwkUY6BnqtCLYakM8V0%2FeTt77FRadpBAfLDqB1XTuULU2okMxihRamLNiGgYUmbYIOCNRWBcXjcZXKrGxyRlid1RaeVJpM%2BwQHPoKPAePI9ffzyLLeyE7jFfnHrc9iw%3D%3D" rel="nofollow">新型生成式 AI 助手 Amazon Q(预览版)助力 QuickSight 实现更快、更简便的数据洞察</a></li></ul><p>— <a href="https://link.segmentfault.com/?enc=FvB8tYDZzHOSR%2BQjf5eDDQ%3D%3D.76DtGGRcO84VIKgu6wuxGZTEytYwf6uSVbHfr%2FIBY9Qvjx4vRyaOcLXk8EHIZKM7sXyEyBnZy2Yiw9TQolsWxw%3D%3D" rel="nofollow">Antje</a></p><p>文案:Introducing Amazon Q, a new generative AI-powered assistant (preview)</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=3JUbLTpOzkLanBCZd8Rh%2Bg%3D%3D.w%2BOvzVR2rLkl1S37IVT3ES%2BM2XFFuM%2FX0XBPzunMyUKtUCCIyBGCsqB0ns6IsSufCYYU%2B5FJeyY4TPEH4IW0nAElwP0JPQvJl%2F6BL2JO7mT7%2FQCS6AOnC7IlpTpVAol%2FRxgLWcm7e%2BCEpVBw0Z1cmmvKofb2I7ofvGNZHfDxQoaoiEtCdbqkQ5eMV62XnNjE" rel="nofollow">https://dev.amazoncloud.cn/column/article/65855d5f278f5f34ae0...</a></p>
Amazon Bedrock 的微调和持续预训练功能允许用户使用私有数据定制模型
https://segmentfault.com/a/1190000044608153
2024-02-01T11:00:02+08:00
2024-02-01T11:00:02+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>今天我很高兴地宣布,您现在可以在 <a href="https://link.segmentfault.com/?enc=406M5Dny7ED9yDSJpkNSeg%3D%3D.V3JbOqfQfjQUobbfAGYjRLRn5ZrA37LMEIaUQpgq2oPC3S7Z3LDUC%2FkukbZdQofj" rel="nofollow">Amazon Bedrock</a> 中使用自己的数据,安全并私密地定制基础模型(FMs),按照您所在领域、企业和用例的特定要求构建应用程序。借助定制模型,您可以创建独特的用户体验,体现企业的风格、观点和服务。</p><p>通过<a href="https://link.segmentfault.com/?enc=Q5pCGwlXejIdAdPor%2BkAIQ%3D%3D.jOa7pvV%2B52B0l7%2FTNd6Bd1HmIDEDSjEoQQWzGIXyFNyL2HCZ33xdyK0lkNSAD2RRcKyBroc6nNTy5EXdCShoNKlYs7XmgpXp03qzcIYuzFaGKjDUg1OM30SCdHz4joJ4" rel="nofollow">微调</a>,您可以通过私有的特定任务标注训练数据集来提高模型的准确性,进一步使基础模型(FM)专业化。借助<a href="https://link.segmentfault.com/?enc=nqcdrI9QOKJjqJx8rmEPVA%3D%3D.hPqMUIrw6fMWK88Gig74u8XxgEuYY38bsmmotJHaMCVWo%2BClJZlqQADPluJJjT2clhA%2Bknjly2412gMGgylodtfChYxlhNh7UO2grZKfJ7Wfj1EA6%2B2369neDnIwUBra" rel="nofollow">持续预训练</a>,您可以在安全的托管环境中使用私有未经标注的数据和客户管理密钥来训练模型。持续预训练有助于模型丰富知识,增强适应性,从而超越原始训练,提高面向特定领域的针对性。</p><blockquote><a href="https://link.segmentfault.com/?enc=TUWn3mgbcoeU3ahrwPfmYA%3D%3D.BdllloCAbL%2F7IhN01cLTkbWvJCQRuKr0FD0P5E5BrbJcNnp3ajMENHUQJ82pZLC9dmVTgKy30TEPhPxw7VqcvMw%2B9jeeQBo9xwtiKeEgTfgbPv9Ovbdx%2BtgjCLFvCi1k" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=Xt%2BwYmxJDyK4a9Ck1Kz6rA%3D%3D.V65%2BeT1ckGbZrsvU52H2aAwpcp3AWQ9FrUQhY7BnV0VfTMHqnyrgC3MzbDabYFUiUuxhFFuz%2FmhsqB7EYyHzbCq03Z%2FuWpxXFs9tjJ3t9gQlJM2qJmmAeXqeGofGWbrGDIfRIcRYepuOy6W%2BX1b01A%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>下面我们来快速浏览一下这两种模型定制选项。您可以使用 <a href="https://link.segmentfault.com/?enc=DbqlmMBwx6KxBqYzW9Ypgw%3D%3D.CshO0sxg76nBVS2TQ2Zl5OEXmYuZ7EfO0jTlE%2F7%2BFy1ILqQMWTmN8q%2FkfmGph%2B4xsr0P3ieJJFPwIrQPV0VfnQ%3D%3D" rel="nofollow">Amazon Bedrock 控制台</a> 或 API 创建微调和持续预训练任务。在控制台中,导航至 Amazon Bedrock,然后选择“<strong>定制模型</strong>”。</p><p><img width="723" height="724" src="/img/bVdbknM" alt="image.png" title="image.png"></p><p>微调 Meta Llama 2、Cohere Command Light、以及 Amazon Titan FMs Amazon Bedrock 现在支持微调 <a href="https://link.segmentfault.com/?enc=l7x5K76zxq2XWctsnQED3g%3D%3D.5Sp4%2Fu1tNP5qDhdAAUsmnDIizaIdDfsMnnsjxYYLtkZreRAdnKUK%2BL0FxD52SJFhW4B2ITIidMtK0lzMZtfrIw%3D%3D" rel="nofollow">Meta Llama 2</a>、<a href="https://link.segmentfault.com/?enc=IRmQ8ANBRcL7zeHiyO27gQ%3D%3D.HaPxLCCbIKXCfOJlH1%2FfBktro9nHUMikaWvOeDqgTtQFQ2IyaMYo9KZfNPZA1ikJotTZupBkvt3nX4paHq2u3w%3D%3D" rel="nofollow">Cohere Command Light</a> 以及 <a href="https://link.segmentfault.com/?enc=w2ptZ757u6khExA7mvZwOA%3D%3D.fzd9Y5Nn79dMquS5i2d0nXH%2Bqs0PI67XiM3oTjsFPA9aXerpcJf4pRv%2F5f58UWd%2F4lYmEmd5CfppE1m%2Bszm3Bw%3D%3D" rel="nofollow">Amazon Titan 模型</a>。要在控制台创建微调任务,选择 “自定义模型”,然后选择“<strong>创建微调任务</strong>”。</p><p><img width="723" height="407" src="/img/bVdbknO" alt="image.png" title="image.png"></p><p>下面是关于使用 <a href="https://link.segmentfault.com/?enc=3S20I1SIcNMI4vv9cPVUYQ%3D%3D.UEg5N%2B5wNM4Iaeme0jG9ak1K2oKOkwI%2B%2BOjKrgFXZsuX5oKw%2Bc00fefO9BfmmYCZxQcywc3zeK%2BM7empqQNQiA%3D%3D" rel="nofollow">Amazon SDK for Python (Boto3)</a> 的快速演示。我们对 Cohere Command Light 进行微调,以汇总对话。因为是演示,所以我使用了公开的 <a href="https://link.segmentfault.com/?enc=y3up1autNK1RpUPTbcsImQ%3D%3D.pIzxvZ6vfYbEHw7avAuRk%2F0R8gyt%2BXnyGsZ%2FhFQGAzek3Tpcrv7clV9wrgIVtw%2FqUJY8OxqtSQex6Yp71mKTX%2Bu3b5fD2xCm7pMimapIqNs%3D" rel="nofollow">dialogsum</a> 数据集,您也可以选择您所在企业的特定数据。</p><p>为了准备在 Amazon Bedrock 上进行微调,我将数据集转换为 <a href="https://link.segmentfault.com/?enc=QOYosMmsyJjkrC%2FOhoKZMw%3D%3D.%2BhADvbR0xavk%2FzMaImeE98gPjKoHjdtLufLLP870ZKiYUeNy%2B8ZPV9eRA%2BczgHrY" rel="nofollow">JSON Lines</a> 格式,并将其上传到 <a href="https://link.segmentfault.com/?enc=qKAXCfpj0%2FIUlRqwtbZZqg%3D%3D.giE8%2FEe0N78Q1e9%2BvBudNGWx%2Fpfv1Q15xos0ikVTSgazkwbfTB9HcQ0aLXUNUQSP" rel="nofollow">Amazon S3</a>。每一行 JSON 都需要一个提示字段和一个完成字段。您最多可以指定 10,000 条训练数据记录,但只需几百个示例就能看到模型性能的提升。</p><pre><code class="JSON">{"completion": "Mr. Smith's getting a check-up, and Doctor Haw...", "prompt": Summarize the following conversation.\n\n#Pers..."}
{"completion": "Mrs Parker takes Ricky for his vaccines. Dr. P...", "prompt": "Summarize the following conversation.\n\n#Pers..."}
{"completion": "#Person1#'s looking for a set of keys and asks...", "prompt": "Summarize the following conversation.\n\n#Pers..."} </code></pre><p>为方便起见,我编辑了提示和完成字段。</p><p>您可以使用以下命令列出支持微调的可用基础模型:</p><pre><code class="Python">import boto3
bedrock = boto3.client(service_name="bedrock")
bedrock_runtime = boto3.client(service_name="bedrock-runtime")
for model in bedrock.list_foundation_models(
byCustomizationType="FINE_TUNING")["modelSummaries"]:
for key, value in model.items():
print(key, ":", value)
print("-----\n")</code></pre><p>接下来,我创建了一个模型定制任务。我指定了支持微调的 Cohere Command Light 模型 ID,将定制类型设为 <code>FINE_TUNING</code>,并指向训练数据的 Amazon S3 位置。如有必要,您还可以调整微调超参数。</p><pre><code class="Python"># Select the foundation model you want to customize
base_model_id = "cohere.command-light-text-v14:7:4k"
bedrock.create_model_customization_job(
customizationType="FINE_TUNING",
jobName=job_name,
customModelName=model_name,
roleArn=role,
baseModelIdentifier=base_model_id,
hyperParameters = {
"epochCount": "1",
"batchSize": "8",
"learningRate": "0.00001",
},
trainingDataConfig={"s3Uri": "s3://path/to/train-summarization.jsonl"},
outputDataConfig={"s3Uri": "s3://path/to/output"},
)
# Check for the job status
status = bedrock.get_model_customization_job(jobIdentifier=job_name)["status"]</code></pre><p>完成任务之后,您的自定义模型将收到一个唯一的模型 ID。Amazon Bedrock 将会安全地存储您的微调模型。要测试和部署您的模型,您需要购买 <a href="https://link.segmentfault.com/?enc=uZGNriB0br%2BcXJJKX01NaQ%3D%3D.WR%2BLLiDM%2F7HK%2FHNsfc3Gf7XGepessOH%2B9sH%2FgnBNrf8AiXNVqi7SzWGBa1HwAna4kmVKiH4xW00vFu9fHFUIfHPTHCWVoIgXMNoI%2BhspepHVK5XhfHtMioF52P5qBIg0" rel="nofollow">Provisioned Throughput</a>。</p><p>我们来看看结果。我从数据集中选择一个示例,请求微调前的基本模型和微调后的自定义模型,总结出以下对话:</p><pre><code class="Python">prompt = """Summarize the following conversation.\\n\\n
#Person1#: Hello. My name is John Sandals, and I've got a reservation.\\n
#Person2#: May I see some identification, sir, please?\\n
#Person1#: Sure. Here you are.\\n
#Person2#: Thank you so much. Have you got a credit card, Mr. Sandals?\\n
#Person1#: I sure do. How about American Express?\\n
#Person2#: Unfortunately, at the present time we take only MasterCard or VISA.\\n
#Person1#: No American Express? Okay, here's my VISA.\\n
#Person2#: Thank you, sir. You'll be in room 507, nonsmoking, with a queen-size bed. Do you approve, sir?\\n
#Person1#: Yeah, that'll be fine.\\n
#Person2#: That's great. This is your key, sir. If you need anything at all, anytime, just dial zero.\\n\\n
Summary: """</code></pre><p>使用 Amazon Bedrock InvokeModel API 来查询模型。</p><pre><code class="Python">body = {
"prompt": prompt,
"temperature": 0.5,
"p": 0.9,
"max_tokens": 512,
}
response = bedrock_runtime.invoke_model(
# Use on-demand inference model ID for response before fine-tuning
# modelId="cohere.command-light-text-v14",
# Use ARN of your deployed custom model for response after fine-tuning
modelId=provisioned_custom_model_arn,
modelId=base_model_id,
body=json.dumps(body)
)</code></pre><p>下面是微调前的基本模型响应:</p><h2>Person2# 帮助 John Sandals 完成预订。John 提供了他的信用卡信息,而 #Person2# 确认他们只接受万事达和 VISA 卡。John 将入住 507 号房间,如果他有任何需要,将由 #Person2# 提供服务。</h2><p>下面是微调后的响应,更简短、更切题:</p><p>John Sandals 预订了一家酒店并办理了入住手续。#Person2# 拿走了他的信用卡并给了他一把钥匙。</p><h4>持续预训练支持 Amazon Titan Text (预览版)</h4><p>Amazon Bedrock 的持续预训练可用于 Amazon Titan Text 模型的公开预览版,包括 Titan Text Express 和 Titan Text Lite。要在控制台创建持续预训练任务,选择“<strong>自定义模型</strong>”,然后选择“<strong>创建持续预训练任务</strong>”。</p><p><img width="723" height="393" src="/img/bVdbknR" alt="image.png" title="image.png"></p><p>下面还是关于使用 boto3 的快速演示。假设您在一家投资公司工作,希望继续使用财务和分析师报告对模型进行预训练,使其更加了解金融行业术语。因为是演示,所以我选择了一组亚马逊股东信作为训练数据。</p><p>为了准备实施预训练,我将数据集转换为 JSON Lines 格式,并将其上传到 Amazon S3。我使用的是未加标注的数据,因此每一行 JSON 仅需提示字段。您最多可以指定 100,000 条训练数据记录,通常最少需要提供 10 亿个令牌才能看到积极效果。</p><pre><code class="JSON">
{"input": "Dear shareholders: As I sit down to..."}
{"input": "Over the last several months, we to..."}
{"input": "work came from optimizing the conne..."}
{"input": "of the Amazon shopping experience f..."}</code></pre><p>为方便起见,我编辑了输入字段。</p><p>然后,创建一个模型自定义任务,将定制类型设为指向数据的 <code>CONTINUED_PRE_TRAINING</code>。如有必要,您还可以调整持续预训练超参数。</p><pre><code class="Python">
# Select the foundation model you want to customize
base_model_id = "amazon.titan-text-express-v1"
bedrock.create_model_customization_job(
customizationType="CONTINUED_PRE_TRAINING",
jobName=job_name,
customModelName=model_name,
roleArn=role,
baseModelIdentifier=base_model_id,
hyperParameters = {
"epochCount": "10",
"batchSize": "8",
"learningRate": "0.00001",
},
trainingDataConfig={"s3Uri": "s3://path/to/train-continued-pretraining.jsonl"},
outputDataConfig={"s3Uri": "s3://path/to/output"},
)</code></pre><p>完成任务之后,您将收到一个唯一的模型 ID。还是由 Amazon Bedrock 安全地存储您的自定义模型。和微调一样,要测试和部署您的模型,您需要购买 <a href="https://link.segmentfault.com/?enc=HMM09nwAYd0a0pLgtjkSlg%3D%3D.%2FH%2BHsMC4sQ0MRgUJKrdR2UgxTffPH9yzpxO8s2WLcoN%2BYH0T8YJo1pfi6OhsG4IObY6w7vNGRM8y5hhfRmp0eUAw6FYQaA34ztseRQJXOQRQAOKa3rkzkRe3MEAYMxFb" rel="nofollow">Provisioned Throughput</a>。</p><h4>注意事项</h4><p>下面是一些重要注意事项:</p><ul><li><strong>数据隐私和网络安全</strong> —— 借助 Amazon Bedrock,您可以控制自己的数据,并且您的所有输入和自定义内容都是亚马逊云科技账户私有的。您的数据(例如提示、完成情况和微调模型)不会用于改进服务,也绝不会用来和第三方模型提供商共享。您的数据将保留在处理 API 调用的区域。所有数据在传输和静止状态中均进行了加密。您可以使用Amazon PrivateLink 在您的 VPC 和 <a href="https://link.segmentfault.com/?enc=y3QdZlBJb%2F56PQ9ljOnDcw%3D%3D.oQUdeinzPtMKJ9ecmVw%2FmdYOcNvG5FWK0WZREqXq5hu2%2FsKDd94xxzjrit2nc5zxwgYKyKWoBH9zfQat8SWOyg%3D%3D" rel="nofollow">Amazon Bedrock</a> 之间创建私密连接。</li><li><strong>计费</strong> —— Amazon Bedrock 对模型定制、存储和推理收费。模型定制按处理的令牌数量收费,即训练数据集中的令牌数量乘以训练周期数。训练周期是指在微调过程中,对训练数据集的一次完整遍历。您需要每月为每个模型支付模型存储费用。推理是按照每个模型单位使用的预配置吞吐量按小时收费。有关详细定价信息,请参阅 Amazon <a href="https://link.segmentfault.com/?enc=ibV43Sv%2Ba9fkT2qokHkkOA%3D%3D.MNUQNIpU83kuXumfv7fPydUV3H46RbzMXcl3Bs8PDNR2fGOU7w4iAPy%2Bd%2BRi8YqvmZk0CZkpAVPMbyfngGftqQ%3D%3D" rel="nofollow">Bedrock 定价</a>。</li><li><strong>定制模型和预配置吞吐量</strong> —— Amazon Bedrock 允许您通过购买预配置吞吐量在自定义模型上运行推理。这种模式可以保证稳定的吞吐量水平,作为交换,您需要承诺使用期限。您可以指定满足应用程序性能需求所需的模型单元数量。在最初评估自定义模型时,您可以按小时购买预配置吞吐量,无需长期承诺。如果没有承诺使用期限,则每个预配置吞吐量仅限使用 1 个模型单元。每个账户最多可创建两个预配置吞吐量。</li></ul><h4>可用性</h4><p>支持 Meta Llama 2、Cohere Command Light 和 Amazon Titan Text FM 的微调功能现已在美国东部(弗吉尼亚州北部)和美国西部(俄勒冈州)这两个亚马逊云科技区域推出。持续预培训现已在美国东部(弗吉尼亚州北部)和美国西部(俄勒冈州)这两个亚马逊云科技区域以公开预览版提供。更多信息,请访问 <a href="https://link.segmentfault.com/?enc=SJB2AwT8n35z2qJn%2F5AHUg%3D%3D.lKa%2FG63J7CN7290DhgtBle7yl2csRJa%2FKsmjUjFTIE5IIooTcoEentxYaTh4UYIKpF6ukGtAkmlDz0TT4%2FTakOs8x7mg022fx%2Bk%2FQVLKGvo%3D" rel="nofollow">Amazon Bedrock开发人员</a>体验页面,查阅《<a href="https://link.segmentfault.com/?enc=9lx11XGFCvlnmvP%2Byl1Aeg%3D%3D.loUihSy3sYyyK5kZAOsOx0Q%2FnyspVDpw%2BNE9ZoP9Ik914uDL4P%2FY3JmWvyHI4OdkLXqlESvPbal6owGPi3UMBw%2Bkcs2MIaPlrzXXOZhhAy5i166Yx6P0D0SQ1A9sd7gu" rel="nofollow">用户指南</a>》。</p><p><a href="https://link.segmentfault.com/?enc=ts%2FsN9wl5bfGOJc5eOXzxQ%3D%3D.o4Dty6RMP%2BWUMfKY1pC3rvPuiqUAwYV6jIqIfwqwLbh47deTETG2fMNevGLLNY%2F2KmspeS4cFJJFWlGO7E6%2Btg%3D%3D" rel="nofollow">立即开始使用 Amazon Bedrock 自定义您的基础模型!</a></p><p>文章来源:<a href="https://link.segmentfault.com/?enc=t4pFnAji1tLy8lnGBA3b5g%3D%3D.1Bfpt2umwr3JgN3zNi2htUn2I6uYyqcEufmyjV5AVFD3KQBhZqAOTyfcN5tPWLQjfT6x3dyZuvtdYakEunN192GQwClsKOuu9eoq9fZpC5QBTiGLckcHiudMF5rJ0i4XmlbM6l%2FdauwvBniYMYIF5Trs9%2F9gYYdqk1kqEQ%2BCKgB9mna2Is1%2Fc%2FTTM0bkBkMH" rel="nofollow">https://dev.amazoncloud.cn/column/article/657168310ddfe627e00...</a></p>
Picturesocial | 只要 5 分钟,发现容器编排的秘密武器!
https://segmentfault.com/a/1190000044608147
2024-02-01T10:58:35+08:00
2024-02-01T10:58:35+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>在上一篇文章《<a href="https://link.segmentfault.com/?enc=0FCBel1NgpBzolCtxo4S4A%3D%3D.mnhNckF4FF30TNe3IP78ZvURiTBPCVqJKzA67tflTMv%2FdEnaxLBfeAUEUyxDpn%2BKZGsOMtrLQAFDHEdh9VmxTRpp4rO3lgns%2FLWtbYa%2BYxw%3D" rel="nofollow">Picturesocial | 开发实践:如何在 15 分钟内将应用容器化</a>》,我们讨论了容器以及容器化应用程序所需的步骤。在不考虑将 container 部署到哪里的情况下创建 container,就像把家放在漂浮在海中的货运集装箱里一样,听起来既浪漫又可怕。如果想过上安全而惬意的生活,肯定需要电、水、煤气、食物、垃圾回收…..最好再有些社交活动。</p><blockquote><a href="https://link.segmentfault.com/?enc=Q1gt5%2BXOFnbVr%2BY3U9BTHA%3D%3D.r34dHllxPFAWikOvcKLX4Ngud29rl5Og5w6lmSaMaYSb%2FnL4w71%2BHHEar5LJz%2BqjNPJ2eFf5qWLvm9JM2cL1yNdNlXoh10VrlrixsIyNHw9OAzQy3uyTYFcEb8EVu6YY" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=OxnGBvLcRmBi3Xd1aDPfBQ%3D%3D.8ElNm60tnVSrF%2FR6bbmVQ3xma6GY7DmqblIFiW%2B3HAFuwIfEAVhjUaNy%2FiCsQESBddWS2NSoLXSlVLRQzuURBteHtQifAu4ySr7pLAfaMPLLqYrQirSvpWcCOarKEb9MIo3xrOejf1nMuLRntgT0FQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在这篇文章中,我们将了解 Kubernete ——一个容器的编译工具,帮你把漂浮在海上的集装箱改变成安全且舒服的家。这是 Picturesocial 架构中非常重要的部分。</p><p>Picturesocial 会有多个 API,我们希望它们在维护、部署和开发等不同阶段保持彼此独立。因此,我们决定使用容器化架构。</p><p>这其实没有那么复杂,它只是意味着你正在使用容器和容器编译器。Container Orchestrator 负责处理编排所需的所有容器、容器副本、网络、存储和基础设施的组件。对于容器编排器,如今最受欢迎的就是 Kubernetes。这要归功于其活跃的社区、持续有效的技术支持和丰富的生态系统。</p><p>我们称 Kubernetes 为 k8s,它是一款开源的容器编排器,其生态系统发展迅速,且广泛。Kubernetes 不仅帮助开发者管理容器的扩展和故障处理,还帮助开发者:</p><ul><li><strong>服务发现和负载平衡</strong>:允许在容器和基础架构之间对网络流量进行负载平衡,以及发现容器的新副本或要移除的故障容器。</li><li><strong>自动部署和回滚</strong>:可以选择要如何部署容器、如何处理更新以及如何防止因更新、基础设施故障或容器错误而造成的停机。</li><li><strong>自动打包</strong>:Kubernetes 将根据设置的限制来使用、优化和调整可用的计算能力。</li><li><strong>自我修复</strong>:如果容器出现故障,Kubernetes 将重启容器直到其正常运行,或者将其删除并创建一个新容器。</li></ul><p>从头开始部署和运维自己的 Kubernetes 集群并非易事,需要深入了解 Kubernetes、Linux、虚拟化、网络、安全等技术。于是,亚马逊云科技为开发者提供了 Amazon Elastic Kubernetes(Amazon EKS)服务。这是一款全托管式的 Kubernetes 解决方案,降低了开发者面向基础设施和 Kubernetes 配置、管理的复杂性,同时还确保运行环境安全的安全性。安全补丁会自动应用到运行的集群中。</p><h3><strong>Manifest (aka. YAML)</strong></h3><p>开发者可以通过两种方式实现与 Kubernetes 集群进行本地通信:Kubectl(Kube Control)或调用 REST API。两种方法都使用通用的 YAML 结构向集群发送 payload。</p><p>我们称之为 manifest,它包含了详细的指令用于:</p><ul><li>我们正在在部署什么</li><li>我们如何部署它</li><li>要暴露什么</li><li>我们如何暴露它</li></ul><p>以下是一个示例 YAML 模板,我们可以将其用于许多容器应用程序。下面介绍 manifest 的基本概念:</p><p><img width="728" height="976" src="/img/bVdbkmX" alt="image.png" title="image.png"></p><h3><strong>Label/标签</strong></h3><p>Kubernetes 内部的所有内容都需要一个标签,这是我们识别集群内所有资源的方式,也是我们使用 Kubectl 命令或 API 请求告诉 Kubernetes 要寻找什么的方法。</p><p><img width="723" height="120" src="/img/bVdbkm0" alt="image.png" title="image.png"></p><h3><strong>Pods</strong></h3><p>Pods 是 Kubernetes 中最小的对象,也是容器存在的地方。</p><p>一个 Pod 可以有多个容器,但建议采用 1 对 1 的关系来避免高度耦合的故障点。Pod 的一些重要注意特性如:</p><ul><li>Pod 是短暂的,这意味着如果里面的容器出现故障,最可能的结果是 Kubernetes 会删除该 Pod 并创建一个新的。当我们部署容器的新版本时,通常会创建新的 Pod,Kubernetes 将负责更新平衡服务的后端。</li><li>容器镜像必须被指定。它被定义为 repository name 和 image name,例如:[aws account id].dkr.ecr.[aws region].amazonaws.com/imageName</li><li>设置资源限制是一种最佳实践。我们有两种 boundaries:</li></ul><ol><li><strong>请求/Requests</strong>:这是 Pod 所得到的担保。就像你订比萨,有 30 分钟送达的保证一样。这并不意味着比萨不能更快送到,它只是一个指标,意味着单个送餐人可以处理的订单数量。对于 Requests 来说,它们指定了集群中计算资源分配的保证。如果你只有一个 Pod,那么很有可能你会得到比保证更多的计算资源;</li><li><strong>限制/Limits</strong>:这是任何 Pod 的硬性限制。如果我们指定了 limits,即使有可用资源,Pod 的消耗量也不会超过指定的 limits。同样用送货员的例子,就像告诉他们在任何情况下都不能同时配送 3 个以上的披萨。</li></ol><ul><li>我们在 Kubernetes 中常用的单位是:</li></ul><ol><li><strong>Mebibytes/兆字节 (MiB) 表示为 Mi</strong>:用作内存衡量值。要从 miB 转换为 MB,你需要 miB x 1.049;</li><li><strong>Millicores(mc) 表示为 m</strong>:用作 CPU 测量值。1 个 CPU 内核表示为 1000 millicores。例如,250m 是 ¼个 CPU core。</li></ol><p><img width="723" height="269" src="/img/bVdbkm9" alt="image.png" title="image.png"></p><h3><strong>ReplicaSet</strong></h3><p>Pod 本应根据不同的指标(例如 CPU 或内存消耗)被复制。在我们只设置 1 个副本时,也可以设置一个如下例所示的静态值。我们称这种副本设置和自动扩展规则集称为 ReplicaSet。</p><p><img width="723" height="165" src="/img/bVdbknb" alt="image.png" title="image.png"></p><h3><strong>Services</strong></h3><p>我们不建议开发者直接调用 Pod。如我们之前所讨论的,它们是短暂的,这意味着 Pod 名称和 IP 是动态的。</p><p>这就是 Service 的用武之地。它提供了从同一 ReplicaSet 调用一个或多个 Pod 的单一接入点。我们将重点关注两种类型的 Service:</p><ul><li><strong>LoadBalancer/负载均衡器</strong>:当我们需要将 ReplicaSet 暴露到 Kubernetes 集群外部时,会使用这种类型的 Service。可以是私有网络,也可以公开到互联网。就 Amazon EKS 而言,需要注意两点:</li></ul><ol><li>服务名称必须始终以字母开头并使用 “-” 作为分隔符,例如:picturesocial-pictures;</li><li>对于私有负载均衡器:必须有服务注释。以下示例指定该服务仅在内部公开:</li></ol><p><img width="723" height="304" src="/img/bVdbknc" alt="image.png" title="image.png"></p><ul><li><strong>clusterIP</strong>:当我们需要在 Kubernetes 集群内为使用者提供 ReplicaSet 时,会使用这种服务。这也是最常见的方法,因为如果将 Pod 保留在集群边界内,则会更安全。通过这种方式,可以为使用 Pods 添加更多的安全层,比如入口控制器、双向认证、API 网关等。我们将在以后的文章中解释更多这样的概念。</li></ul><p><img width="723" height="304" src="/img/bVdbkne" alt="image.png" title="image.png"></p><p>服务总能检测到后端的变化,因此,如果一个 Pod 离线或被一个新的 Pod 取代,服务将停止发送流量并重新路由到工作中的 Pod。这就是为什么我们强调,即使 API 仅由一个 Pod 组成,也必须使用 Services 进行同步通信,而不是直接调用 Pod。</p><p><img width="511" height="191" src="/img/bVdbknf" alt="image.png" title="image.png"></p><h3><strong>Images Namespace</strong></h3><p>Kubernetes 是一个多租户容器协调器。这意味着它为同时处理多个应用程序和环境的解决方案而设计。</p><p>这就是 namespace 的用武之地。Namespac 作为 Kubernetes 内部资源的逻辑分隔符,可以将资源(Pod、服务等)绑定到特定的 namespac 并设置特定的权限。例如,可以设置为 namespac A 中的 Pod 无法访问 namespac B 中的 Pod。</p><p>我建议将业务域的资源分组到一个 namespac 中,这样可以更轻松地找到所需的资源,也可以让团队在软件项目中独立维护特定的业务领域。</p><p><img width="551" height="281" src="/img/bVdbkni" alt="image.png" title="image.png"></p><h3><strong>Kubernetes 适合托管哪种类型的应用程序</strong></h3><p>任何情况下都使用 Kubernetes 就像开着 F1 赛车去超市。虽然我希望这样做,但还是有点扯。当我选择何时使用 kubernetes 时,会使用以下标准 (当然也需要根据实际情况进行调整) :</p><ul><li>我的容器化架构由至少 10 种不同的服务组成,这些服务在同一基础架构上独立运行和扩展。</li><li>我的服务存在于本地网络环境中的依赖关系,并且需要流量策略和身份验证才能调用这些依赖关系。</li><li>我正在与不同的团队合作,维护和开发同一应用程序的不同组件。</li><li>我需要控制计算、网络、网络策略、滚动策略和 Orchestrator 版本控制。</li><li>我需要一个使用一致的工具集和部署策略从本地扩展到云的解决方案。</li><li>如果满足以上两个或更多选项,那么 Kubernetes 是一个不错的选择。</li></ul><p>作为一篇科普类文章,这篇信息量略大,刚接触容器的开发者可能需要消化一段时间,但是我们希望帮助刚入门的开发者了解容器编译的工作原理并熟悉一些专用术语。在后续的 Picturesocial 系列文章中,我将通过一个具体的案例演示来展开这些概念是如何应用的。</p><p>下一篇文章,我们将一起学习如何使用 Terraform 实际创建 Amazon EKS 集群!</p><p><strong>希望你开心工作,努力生活~</strong></p><p><strong><em>往期推荐</em></strong></p><p><a href="https://link.segmentfault.com/?enc=RiuPFH1pFUqbS8ZPkjAg0Q%3D%3D.Nl4hVt8iqOq4o%2BTaG7Hu3EdgNRF7%2FIbDlQHRzEfiowWGUe7xtmPie5KkqcxDVoaxwFLOIDnbWznjCBqzIbTVEAk2s2fJp2ZFtnT5HQPN5dDY2xUssNzdvZADtfJ8fyC6qcf1DHMLYAPiMlEaRNa2VgQIJiqy0J2ZfxsiQYMuPmPZ9wdsDg%2FWWviEuGctXs6b7BV%2FUnl9yVg0dtA40VEg2Q%3D%3D" rel="nofollow">#架构模型最佳实践</a></p><p><a href="https://link.segmentfault.com/?enc=fpsK5mwF%2FODUDThch1aIYg%3D%3D.HdZNqn3VZkzFaQh9mCZX%2Fm%2F6Hixfofn1711sjcdrEQrXCzCo4PGfb8WH0ZHxbWdSQXeT5nTD0Hor5fcCgbSNQmRIv%2BRbogvV7jav0RkynQup0h%2FP7TbrFcImRbp3lygj28dtRrUoePjd1gUjCRl8OgsI4XsLwO4Zq6i0Esr0NO%2B7L9pfqH%2BEpqzYIHK%2FhLOXapA8%2Fa8qzIsBOm2W5DopYA%3D%3D" rel="nofollow">#GitOps 最佳实践</a></p><p><a href="https://link.segmentfault.com/?enc=6pVzP%2F8L%2BOzfsFaLNi6W4g%3D%3D.eB1LDmSZgXh8F1TDKI4bGy1LgPsCK83ckpEaqUNxAXGdt%2Ft1NO%2BMF%2Ba4plFVEkHGP0MjU4YrGGUIPKSitnOR6jBI5BAjpFw0CxH%2FlMMgMyWj1shSsjqxQW%2BHV0Exjbonjq9uMkgOtvHbN1R3ZLA0qjWT%2FL40qX80uZj3IXWJNeSY7ZUMmpkrcsLlT8CVyYn53ZSTA%2BScwCotBeQyxkjBkA%3D%3D" rel="nofollow">#亚马逊的开源文化</a></p><p><strong><em>文章作者</em></strong></p><p>Ana Cunha、Jose Yapur,</p><p>Developer Advocate, Amazon Web Services</p><p><strong><em>文章译者</em></strong></p><p>郑予彬</p><p>亚马逊云科技资深开发者布道师</p><p>文章来源:<a href="https://link.segmentfault.com/?enc=rWTyBzTylyevdqAST0Yrvw%3D%3D.qrnqAaYmJwDgix0eObxxDHXDjlpgWo%2BlDLj5TnjhbLQI%2FKVY2CRsq4JS0BcYlv1DuOABhMXfIboBHUYZEuPWMdk%2FCVe49wSuaBwNazoVhD2KFmlWzLt9FmjRORWPYx0QiRi8SvIQi%2BgwY06uxj4reNDqG9d1EyKjtJ%2BJ1P%2FJs8o8DKVX51WvbJF9nZATMg8W" rel="nofollow">https://dev.amazoncloud.cn/column/article/64c3333b10b28235bb8...</a></p>
使用 AI 构建面向未来的 DevOps
https://segmentfault.com/a/1190000044598459
2024-01-29T16:07:05+08:00
2024-01-29T16:07:05+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>从去年底开始,<strong>生成式 AI(AIGC)</strong> 作为热门话题,深入影响到了 IT 行业的各个领域和所有从业者。</p><p><strong>DevOps</strong> 是通过<strong>持续集成、持续部署、持续交付</strong>的方式,将开发和运营更好地整合在一起的流程,它的发展与架构的演进是紧密相连的。当前的架构逐渐在向微服务化的方向发展,出现了许多新的技术,如容器、无服务器、可观测等技术等,它们都推动了 DevOps 技术以及整个 DevOps 生态的发展。这些技术将安全、数据、智能等技术和 DevOps 集中在一起,使开发和运维能够更紧密地衔接在一起,使产品能够更快地迭代和演进。</p><blockquote><a href="https://link.segmentfault.com/?enc=tAdsb5vuzJnordaqde%2Fm1A%3D%3D.L0Ex5VFULzsApyQHPBGAEX6Py9LvGrZkCR%2FZX5Fw8weGa0OHKGSq2dKBvsI5915sJyDAtsENlSw1gkpV1AILvF4MVMrmC3YHXHVmQaWgSK4Aqs5nfVw7hAatGdRMyamhXYdNUc0ej31rFoMWsNRmUkDAMayUED3%2B78j7fYurai2s%2BndQ5DvzikNKw%2FXW8c2z" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=pW8CofCKoXxZ2Hyfi5PUSA%3D%3D.dPHjZcqFDHrg6Alzoef2Oxqnetu71GHTffe0mlvwpyrUsOVfiaJlJtkSKsbu3UB2tS%2FYOLLLx%2F6mzdSmwgc7TzDg4bJ%2B8oTTobJ5OC%2F040yP%2BpwTjVQMQGJz1iYIBKzc4hxf0DXKS8YsYTfffj2cVw%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p><img src="/img/remote/1460000044598461" alt="图片" title="图片"></p><h3>DevOps 的现代化</h3><p>从开发和运维两个维度来看,实现 DevOps 的现代化需要采取不同的策略。</p><p>在开发方面,我们需要更快速地迭代产品,减少编译和生成的时间,采用更多的低代码或无代码技术,将开发和测试尽可能地融为一体。</p><p>在运维方面,我们需要采用主动监控来减小噪声,提高运维效率,使得运维可以更好地帮助开发进行反馈,从而实现快速的迭代。<br><img src="/img/remote/1460000044598462" alt="图片" title="图片"></p><p>如果从代码的角度来看 DevOps 的话,可以将 DevOps 核心分为三大领域:</p><ol><li><strong>代码开发</strong>:如何利用人工智能技术来更好更快地开发出更精准、更高效的代码?虽然开发者数量不断增加,但仍然没有达到满足市场需求的程度,而人工智能技术可以辅助开发者更快地完成工作,来避免花费时间在重复性工作上。</li><li><strong>代码审核</strong>:如何使代码审核的流程更加便捷、更加自动,能更好地发现其中的错误,并且提供一个更佳的修复建议?人工智能技术可以帮助检测错误并提供修复建议,从而提高代码审核的效率和准确性。</li><li><strong>代码运行</strong>:如何更加智能地发现代码运行在实际生产环境中运行可能出现的错误,又如何改进运行中可能发现的性能缺陷?目前,智能监控和观测可以帮助快速发现并解决代码运行中的错误和性能缺陷。</li></ol><p><img src="/img/remote/1460000044598463" alt="图片" title="图片"></p><h3>面向未来的 DevOps</h3><p>人工智能技术在 DevOps 中的应用越来越广泛,尤其是生成式 AI 技术。</p><p>自从跨时代意义的 Transformer 论文在 2017 年发表之后,生成式 AI 就已经开始在学术界逐渐崭露头角。去年,OpenAI 推出的 ChatGPT,极大引发了全球关注。不仅如此,不同的厂商、社区、研究机构和公司都在生成式 AI 领域做了大量的工作。</p><p>5 年多来,大模型的效率和性能都有了显著提升,这使得大模型可以在越来越多的场合进行应用。</p><p>亚马逊云科技提供高效的开发者工具通过生成式 AI 为开发者提供帮助。</p><p><img src="/img/remote/1460000044598465" alt="图片" title="图片"></p><h3>Amazon CodeWhisperer</h3><h3>Amazon CodeWhisperer 的主要特点:</h3><ol><li><strong>多语言支持和 IDE 集成</strong>:CodeWhisperer 支持多种语言,包括 Java、Python、C 和 C++ 等,并且可以与主流的 IDE 集成,如 Visual Studio Code 和 IntelliJ 等。</li><li><strong>完全免费</strong>:该工具是完全免费的,只需要注册亚马逊云科技的 Builder ID 即可开始使用。</li><li><strong>避免偏见</strong>:CodeWhisperer 能够帮助开发者构建面向任何人群的应用。</li><li><strong>生成各种类型的代码</strong>:CodeWhisperer 能够生成各种类型的代码,甚至可以生成数据结构中的代码。</li><li><strong>高效生产力</strong>:使用 CodeWhisperer 可以有效提高开发者的效率。在 CodeWhisperer 生产力挑战赛中,使用该工具的参与者,完成所有任务的可能性提高了 27%,而相对于未使用该工具的参与者,这个概率速度增加了 57%。</li></ol><p><img src="/img/remote/1460000044598466" alt="图片" title="图片"></p><h3>CodeWhisperer 的三大主要功能:</h3><ol><li>代码生成:CodeWhisperer 可以生成任何类型的代码,包括数据结构中的代码等等。它具有自主学习能力,可以根据开发者的风格生成和其模式相匹配的代码,使得代码风格更加协调,帮助开发者提供更好的代码建议。使用 CodeWhisperer 可以大大提高开发者的效率。</li></ol><ol start="2"><li>参考跟踪:CodeWhisperer 可以根据函数生成相应的代码参考引用,即 reference 以及代码的引用源,为开发者提供多种建议。尤其对于企业商业化过程中需要选择开源数据和代码构建应用的典型应用场景来说,这个功能至关重要。</li><li>安全扫描:安全对于代码来说至关重要, CodeWhisperer 利用其 AI 能力进行代码扫描,检测代码中的安全漏洞,并提供修复建议。工具支持多种编程语言来扫描难以发现的安全建议。对于企业用户来说,可以进行身份认证和单点登录的配置,以便更好地进行权限管理和协作。</li></ol><h3>CodeWhisperer 是如何生成代码的呢?</h3><p><img src="/img/remote/1460000044598467" alt="图片" title="图片"></p><p><strong>首先</strong>,在 IDE 中编写一些代码,然后 IDE 自动将其发送到 <strong>CodeWhisperer</strong> 中。CodeWhisperer 会进行实时的代码建议,并给出源代码的参考,进行安全扫描。<strong>其次</strong>,它会返回代码建议,给开发者更多选择的权利。最后,开发者可以根据 CodeWhisperer 提供的多个代码建议进行选择,进行确认。</p><h3>Amazon CodeGuru</h3><p><strong>代码审核</strong>是软件开发过程中不可或缺的一部分。它有助于提高代码性能和错误处理能力,以及整体性能效率。</p><p>人工智能技术在代码审核中扮演着重要的角色,尤其是在发现低效率代码和进行日志和调试分析方面。</p><p>然而,代码审核也存在着一些挑战,比如:如何改进代码性能、缺乏行业标准和最佳实践等。开发者需要不断积累经验,对代码进行不断改进,以提高性能效率,并解决可视化最昂贵代码行的问题等等。</p><p><img src="/img/remote/1460000044598468" alt="图片" title="图片"><br>Amazon CodeGuru 是一项开发者服务,旨在帮助开发者提高代码审核和优化性能效率。它包含两个小组件:</p><ul><li>CodeGuru Reviewer 用于代码审核和修改建议;</li><li>CodeGuru Profiler 用于检测和优化最昂贵的代码行,提高代码性能。</li></ul><h3>CodeGuru Reviewer:自动化代码审核</h3><p><img src="/img/remote/1460000044598469" alt="图片" title="图片"></p><p>CodeGuru Reviewer 类似于人工审核,但使用了人工智能技术来加速整个流程。它支持 Java 和 Python 两种语言,和 Amazon CodeCommit、GitHub 等代码库。审核完成后,开发者可以根据修改意见进行代码修改,并将代码合并到原来的代码库中。</p><p>对于 Java 语言,CodeGuru Reviewer 提供了许多亚马逊的最佳实践,包括并发处理、资源泄露等。同时,它还支持安全问题的审核,以帮助开发者构建更安全的 Java 应用程序。对于 Python 语言,CodeGuru Reviewer 同样提供了许多最佳实践,包括如何更好地使用标准库、如何进行错误处理以及如何解决资源泄露等问题。</p><h3>CodeGuru Profiler:性能调优工具</h3><p><img src="/img/remote/1460000044598470" alt="图片" title="图片"></p><p>CodeGuru Profiler 用于查找性能最低的代码行,以帮助开发者优化代码性能。它支持 Java 和 Python 两种语言,在 Lambda、EC2、ECS、EKS、Fargate 等平台上运行。CodeGuru Profiler 安装一个小型代理程序来收集观测性数据,并将其传送到后端进行可视化分析。这个代理程序占用的 CPU 利用率不到 1%,对生产系统的影响几乎可以忽略。</p><p>CodeGuru Profiler 可视化展示了系统的性能数据,以帮助开发者发现性能瓶颈。它可以查找最耗时的代码行,并提供优化建议。这个工具可以帮助开发者在生产系统中解决性能问题,提高系统的性能和可靠性。</p><p>在 Amazon Prime Day 中,CodeGuru 得到了广泛的应用。通过 CodeGuru 的使用,整个系统的 CPU 效率提升了 300% 以上,成本降低了将近 40%。这使得整个系统的性能得到极大的提升,满足了更多消费者网购对于平台性能的需求。</p><h3>AI 实现可观测</h3><p>可观测性在 DevOps 中扮演着重要的角色,通过观测能够帮助开发者获取系统的修改建议、以及代码调整、开发测试的洞察等,可以帮助我们提升整个系统的运作效率。</p><p>在大规模运营中,我们需要对不同的指标进行观测,包括资源指标、监控指标和日志指标等。然而,随着系统越来越复杂,需要更多的资源来进行监测,为了避免出现问题,我们需要更加自动化、智能化的工具来帮助我们进行大规模运维。</p><p><img src="/img/remote/1460000044598471" alt="图片" title="图片"><br>选择要观测哪些指标是一个挑战,需要有针对性地监测应用和数据库等各个方面。有时候可能会漏掉一些问题,甚至对于开发者认为不会出现的问题也可能经常出现,这给 DevOps 团队带来了很多的困扰和加班的压力。因此,我们需要一个更加自动化、智能化的工具来帮助我们进行大规模的运维。</p><p><img src="/img/remote/1460000044598472" alt="图片" title="图片"></p><p>可观测性的成熟度模型通常被分为从 <strong>1</strong> 到 <strong>4 </strong>这样四个级别。</p><p>最简单的是基础设施监控,只实现一些基本的监控,提供了一些简单的可视性。而最高级别则是自我修复的能力,通过持续的反馈回路自动解决问题。然而,对于有些系统来讲,实现最高级别的自我修复能力可能是非常遥不可及的。因此,针对不同的系统和不同的能力,构建一个可观测性成熟度的矩阵可以不断提升自己的能力。</p><p><img src="/img/remote/1460000044598473" alt="图片" title="图片"><br>亚马逊云科技提供了很多能力和服务来帮助大家构建一个成熟的可观测性体系,从基本的 CloudWatch、CloudTrail 到高级的服务如 DevOpsGuru、CodeGuru Profiler、X-Ray 等等。此外,也有很多可观测开源项目可以在云上方便地使用。</p><h3>DevOps Guru 监控系统</h3><p>亚马逊云科技的 DevOps Guru 监控系统是一个完全托管的服务,由人工智能提供支持,帮助企业自动创建调整警报,进行异常检测,解决持续观测中的问题,提供预防性建议,以及将人工智能技术与大规模运营整合,提升企业开发者的 DevOps 能力。</p><p>在使用 DevOps Guru 监控系统时,我们需要确定要监控哪些资源。这里有很多要监控的资源,所以需要进行统一的策划和部署。可以使用标签、CloudFormation 或自定义边界来选择要监控的资源群,然后设置通知。有很多通知方式,包括 SNS、事件、桥接、系统管理器等等,可以帮助快速响应通知警报,定义整个代码群应用。</p><p>接下来,我们将进行两种洞察方法:<strong>被动式</strong>和<strong>主动式</strong>。</p><p>被动式洞察称为反应式洞察,会在适当的时候进行检测,使用数十个指标、事件、日志等来监测,发现因果关系,解决各种问题。</p><p>主动式洞察则是更前瞻性的,可以预测故障和问题,早期发现、早期解决,更好地服务运营。预防是比解决问题更为重要、也更复杂的过程。</p><p>因此,我们需要将被动式和主动式的洞察方式进行整合,构建更好的可观测性体系。</p><p>这是 DevOps Guru 洞察的一个示例:</p><p><img src="/img/remote/1460000044598474" alt="图片" title="图片"></p><p>这里可以看到全面的展示,包括不同的指标和曲线,展示系统的观测和运营情况。此外,还提供了修改建议的操作方式。使用 DevOps Guru,可以自动化地创建和监测资源的度量,为快速缓解提供前瞻性的意见,实现更多的机器学习驱动的主动洞察,为整个 DevOps 运营提供帮助。</p><p>使用 DevOps Guru,可以大幅度提升报警创建、报警维护运营问题的性能,包括问题缓解和主动报警情况下。可以自动化地创建和监测资源的度量,为快速缓解提供可前性的验意见。使用 DevOps Guru 之前,通常无法实现主动性的见解。使用 DevOps Guru 之后,有更多的机器学习驱动的主动见解,为整个 DevOps 运营提供了良好的帮助。</p><p>这是在亚马逊云科技的平台中使用 AIOps 进行监控的整体架构图:</p><p><img src="/img/remote/1460000044598475" alt="图片" title="图片"></p><p>这是一个非常开放、非常全面的生态系统,可以连接到很多不同的指标数据和源,监控不同的日志跟踪记录等。同时,还可以进行异常检测、增强洞察等,有各种各样的维度向开发者进行各种仪表的展示和报警。同时,和很多第三方平台相结合,帮助进行更好的运营管理和故障排查。</p><p>大模型技术的进一步发展,也在影响更多的 DevOps 领域。同时 DevOps 也在不断的影响大模型的训练、调优和部署,使得大模型可以得到更快的开发和应用,通常我们称之为 LLMOps。</p><p><img src="/img/remote/1460000044598476" alt="图片" title="图片"></p><h3>总结</h3><p>人工智能技术在 DevOps 中的应用越来越受到关注,可以通过代码生成、代码审核和监控观测三个维度来完全赋能 DevOps。希望能够通过本文的介绍为更多的 DevOps 开发者提供帮助。</p><p>请持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态!</p><h3>往期推荐</h3><p><a href="https://link.segmentfault.com/?enc=PY9AAjTwYYBjPW2vqgO8og%3D%3D.KAcvohwe0puSqGmhdZjLsyt%2Bz4HIzU9RKcsWSSml7BtNuvYVaON7xTK421FB0KygtXGEpMfC5prBbaQgwJDgIaU98bz%2FzWcPg8Nf%2BC3J859llSKOstDcGY3mHW6b0XlA5l5%2FKulAYB3KlPXFw5yfmyXQ55hYKlP9Npk%2Bv%2FSCLOoKdSTR9M%2Fp087mRl3o1AvaxisQzP%2BBaGlrSMeL12RJhQ%3D%3D" rel="nofollow">#GitOps 最佳实践</a></p><p><a href="https://link.segmentfault.com/?enc=NqQ47gFliWoy7EfLdMh8fA%3D%3D.aZI5%2B5g7O1VPO%2F0MZxCulUPPUnj9IRsNgmm6Hv%2BixHMXyuyho1NFAuRKVBtVHKnjWSQxbAaMsflgOCYKTOJy%2FoLyDdhTdGsQzW84pPV9TaWy5ZBUHwOF%2FhDcauqFrKtzdZg3Tc%2FCybS%2BWArxtWUyfasjQ94YaduefOu26Kq2CIBOIejdnMy%2B0z9AOFFnAa7uc8ECUZY%2FyoWe91Lk3T%2BPhA%3D%3D" rel="nofollow">#Generative AI 新世界</a></p><p><a href="https://link.segmentfault.com/?enc=P%2BuDnmkCLeMcZHFembHrsw%3D%3D.kWjynpYaw4HbSIYP7PVqhl%2BAWw8UDNyfPPrdaYY7l1XaAo%2BH9jezYIVmES4SeK5KzNIQp%2F4BEsVdqpviRZ9onr3MtCC5BhowenZ%2BSLOIRI6OnBuBChfdtRQdVkWmcST3JDhJum3Z8wmSrS3%2BiLmvpe9YYViDe24DsOi%2FqDXqs3YRwy0blrGWP0%2B91fKHQ%2BDmEGYjmXOtso8tz%2BEe0Opqkw%3D%3D" rel="nofollow">#架构模型最佳实践</a></p><p><img src="/img/remote/1460000044598477" alt="图片" title="图片"></p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=B7Xi2kjQ6M0mXfB5zjqGEw%3D%3D.2f536pSfahDLaEKy42YIoYDQZbLZNICKO9vsa2fCbVUrCjdbvxRaUlH1CYsrNjp3bpdoNTEduIMIe%2FV44e%2Bj1r62DrD1Iq2HrOGAFnYipqtd11Iq2m0yBR9H%2F9xrc1WRlVBOZ1wlq5drB9mYbFstIDCKJeUrKdbM0zcilFc6rJ7gQWwbC73slSJZLHmcykmP" rel="nofollow">https://dev.amazoncloud.cn/column/article/64b913bdc15bee3a7e83a408?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=SF</a></p>
亚马逊开源安全的技术发展之路
https://segmentfault.com/a/1190000044588394
2024-01-25T14:01:38+08:00
2024-01-25T14:01:38+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<h3>近几年,开源已经成为组织或者企业软件开发的重要策略之一。</h3><p>在 Gartner 2019 年发布的报告《Technology Insight for Software Conposition Analysis》中称,2019 年至少 96% 的代码库包含开源代码。Redhat 在 2021 年《The State of Enterprise Open Source》中就提到,当年已有 90% 的企业 IT 负责人正在使用开源工具,未来几年内采用开源软件的组织将增长至 75%。Sonatype 2022 年的《State of the Software Supply Chain》也提到:仅在 2022 年一年,包括 Java、JavaScript、Python 和 .NET 在内的四大生态系统下载量将超过 <strong>3 万亿次</strong>。</p><blockquote><a href="https://link.segmentfault.com/?enc=msuJ2wgnNz9DVtCDl1pw1Q%3D%3D.nCD3PhrXmn72XR2cbtFDwRSMRPbYdusfjUJnAu1JJjnMqVNt6PH6A2TfESsF%2FZbmRng3cHtZxrn7FzXGaNfC4S%2Bl7VIqBKyOFRM8jmtXVU5S54rY%2BMK%2FcDkgyyDeIkuFLuHckhw4z%2BQHJhPSCXAkTsWiWBKmG9oRUHo%2FAWNTIXv8AtWexpzVB9ykOUreutjG" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=Jx8odkEOp3918Ha92S0Wkw%3D%3D.YVaYUjfkaLcAIenawSbL755X9dz5cSTrOlb50vUpQGpAEoxil4HYlv48rXxcI1sl8lYdhYb0W3eW7XzWWZUwHBa%2F5FXs7%2FOTuTDKFOvVvQiIBYaJT%2BdYG%2FTHZdMjqEE0dFMnOohI2vHwzbGtQKlfSQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>尤其让我感到震撼的是来自世界上最大的代码托管平台 GitHub 于 OCTOVERSE 2022 的一组数据:截止到 2022 年,已经有 <strong>9400</strong> 万开发者活跃在 GitHub ,同时也有 90% 以上的公司在使用 GitHub。从这两个数字我们可以看出,GitHub 这个世界上最大的代码托管平台已经被开发者和软件公司们广泛的使用。更重要的是,在 2022 年开发者们共计提交了 <strong>4.13 亿次开源贡献</strong>,这意味着开源生态成长至今,已经具有一定的规模。</p><ul><li>Technology Insight for Software Conposition Analysis <a href="https://link.segmentfault.com/?enc=1gQ0t6CB%2BMa39IMl2quKrA%3D%3D.5n5QaHeU%2FZeqCDAgP5WrVkSQqsSDwIWl0Cj89h5kFB7jqcbZZlHUJXx3ZgwrfOi8ZqAFZg1dq2TQ8ixsb%2FLNPKKsDU8oUmw%2B9LZcUwEClGL64%2FRpswGCi3X1VADKBj4e" rel="nofollow">https://blog.sonatype.com/gartner-the-crucial-role-of-oss-lic...</a></li><li>The State of Enterprise Open Source <a href="https://link.segmentfault.com/?enc=diqOw%2FSJIYBHLFC4GN00ug%3D%3D.34tvqH2hjylDtkdwhbPHkDGfnYU0o0YWNuxJfajLdOxadKvshQN3hHKydsvm1QFBDbw31xdHfS5tTmwkkf5onjzRIv7pVO2VOfR%2FZ6nw52CHKVcrzvg1ZfmmGwgyd7f8Yeu6mLFkyqrR49eJBaH6z6dTqVdIri8Je%2FmZOTEm1i4%3D" rel="nofollow">https://www.redhat.com/en/enterprise-open-source-report/2021?...</a></li><li>State of the Software Supply Chain <a href="https://link.segmentfault.com/?enc=SMaZoNJvtuG54UzXBllOvQ%3D%3D.1Ss2cMwLW79Fbq%2F6jnsxv8YRfk4ArigrfK7lFC7AOy34FUU6ylOs2dWL4%2BVX3VZcwjrHtgfmiCZfhUn4nstZz8briVw31i5qeF2xmF%2F2QjtwR1TQHmEAYdKc%2FAI%2FIPT0" rel="nofollow">https://www.sonatype.com/state-of-the-software-supply-chain/i...</a></li></ul><p><img src="/img/remote/1460000044588789" alt="图片" title="图片"></p><h3>开源软件正面临着严峻的安全挑战</h3><p>正是因为开源代码如今的广泛使用,并具有一定的规模。开源软件也正面临着前所未有的严峻的安全挑战。这些安全挑战自于开源本身的属性,比如:</p><ol><li><strong>可访问性</strong>:相对于而传统软件的源代码的私有性,开源软件的源代码公开可访问,使其更易受到研究与攻击。</li><li><strong>依赖关系复杂</strong>:开源软件存在错综复杂的依赖关系,要确保一个应用程序所依赖的全部开源组件的安全修补是异常困难。这需要专门的工具与流程来支撑。</li><li><strong>新技术管理难度</strong>:新技术常首先通过开源软件出现,而新技术也意味着新的安全问题,这给开源软件安全带来更大难度。需要尽早识别新技术安全风险。</li></ol><p>有些安全挑战来自于开源的不断发展,比如:</p><ol><li><strong>漏洞管理挑战</strong>:随着开源软件项目数量越来越大,涉及的技术范围也越来越广,各类漏洞及其修复版本变得极其困难。这需要社区与企业共同努力。</li><li><strong>社区协作不足</strong>:是目前开源安全的另一个实际存在的问题和挑战。</li><li><strong>持续支持难以保障</strong>:当一个开源项目结束后,其安全支持和维护也难以持续保障,这会产生较长时间的安全隐患。这需要社区与企业共同制定长期支持策略。</li></ol><p><img src="/img/remote/1460000044588790" alt="图片" title="图片"><br>也正是开源代码本身的特性,以及其发展规模所带来的安全隐患,用传统意义上的安全手段进行防护和管理既不够敏捷,也缺少有效的工具。</p><h3>亚马逊云科技如何突破开源软件带来的安全隐患</h3><p>对于使用开源,贡献开源的亚马逊云科技来说,也面临一样的挑战。亚马逊云科技突破开源带来的安全挑战依靠独特的企业文化、有效的管理手段以及在开源项目中的安全实践。</p><h3>独特的企业文化</h3><p>亚马逊云科技如今面向构建者提供 200+ 服务的安全运行,面向开发者提供数十种安全的开源工具以及面向开源社区不断贡献开源项目并为这些开源项目的安全不断进行迭代,这一切离不开亚马逊独特的文化。</p><p>在亚马逊,有一种独特的员工组织方式,用以优化组织的创新和执行力,这就是 “两个比萨饼团队”,意即保持在两个披萨就能让队员吃饱的小规模团队。</p><p>我们知道 2021 年安全领域一个头条新闻就是广为流传的 Log4j 漏洞。在 2022 年 2 月的 ISC 安全大会上,Pulse Survey 问卷调查显示,52% 的团队花了数周或者一个月的时间来补救 Log4j 的问题,48% 的团队为了及时应对,放弃了周末或者是假期来实施补救工作。</p><p>而亚马逊云科技 Lambda 团队已经在 3 天内部署了一个补丁,以减轻对 Java 运行时的影响。虽然 Lambda 本身不包括 Log4j,但该补丁有助于减少用户的漏洞,不需要做出任何改变,就可以将用户置于完全保护的进程中。正是 Lambda “双pizza” 团队的及时响应帮助使用者快速响应了问题,避免问题的扩散。</p><h3>有效的管理手段</h3><p>亚马逊独特的企业文化为亚马逊云科技构建应用安全奠定了坚实的基础。“两个比萨饼团队”团队的敏捷性同时体现在开发团队的“配置”方式和他们去中心化的安全管理手段。</p><p>在开发过程中,对比传统的安全管理模式,去中心化的安全管理手段是将产品团队进行拆分,并在每个拆分的团队中配置安全专家。同时在每个包含安全专家的产品团队中设置安全卫士以及基线安全控制。并将生产上线前,安全测试和审核阶段的威胁模型前移到每个产品团队的开发过程中。</p><p>安全专家进驻到每个产品团队,让安全专家了解开发的整个流程,便于故障的快速排查和处理,在每个开发阶段设置安全卫士和基线安全控制有利用更细颗粒度的安全防护。将威胁模型后移大大加快了测试时间,缩短了应用上线的周期。</p><p><img src="/img/remote/1460000044588791" alt="图片" title="图片"></p><h3>开源项目中的安全实践</h3><p>亚马逊的安全文化与其在开源领域的发展起着深远影响,从大家熟悉的、全面提供内置安全的 <strong>Bottlerocket,Firecracker</strong>,到上个月发布的用于交付应用程序授权策略,实现细颗粒度访问控制的开源语言和 CDK---Cedar,以及基于 Rust 框架,用于构建重播物理内存快照的模糊测试器,以提高效率并减少模糊测试多种类型目标复杂性的 snapchange。</p><p><img src="/img/remote/1460000044588792" alt="图片" title="图片"><br>让我们通过几个具体的开源项目,来看亚马逊云科技的安全实践:</p><h3>Open Cybersecurity Schema Framework (OCSF)</h3><p>OCSF由亚马逊云科技联合 CrossRef、牛津大学、SANS 和 Splunk 等于 2020 年 10 月共同创建。OCSF 提供了用于描述安全工具功能的数据模式的初始集合,为实现网络安全工具和实践的互操作性和协作打下了基础。它为网络安全社区提供了一个全面而具有影响力的开源框架。做为 OCSF 的创始成员之一,亚马逊云科技不仅仅联合贡献了这个开源项目,还实现了:</p><ol><li><strong>开源多个 OCSF schema</strong>。例如:亚马逊云科技发布的 Amazon SecurityFinding 数据模式,用于表示亚马逊云科技的云产品与服务的安全调查结果。该 schema 已被 OCSF 采纳,成为 Vulnerability schema 的一部分。亚马逊云科技还开源了其他如 ComplianceCheck、SecurityHubIntegrations 等 schema。</li><li><strong>提供了验证 schema 工具</strong>。亚马逊云科技开发了一个名为 SchemaDefinitions 的开源工具,用于验证符合 OCSF 规范的 JSON schema 文件。该工具被广泛用于检验 OCSF 的 schema 标准并确保高质量。</li><li><strong>深度整合 OCSF</strong>。亚马逊云科技在多项产品与服务中广泛采用 OCSF 的 schema,如 SecurityHub、GuardDuty、Macie 等。这使得亚马逊云科技客户可以更加容易消费和分析来自 OCSF 的标准化数据。同时亚马逊云科技也将自己的数据输出按 OCSF 标准格式化,方便与其他工具集成。</li><li><strong>亚马逊云科技提供文档及培训</strong>。亚马逊云科技开发了丰富的文档来详细介绍 OCSF 框架及各个 schema,并提供了视频与在线培训课程。这大大降低了 OCSF 详情的学习成本,推动更广大的安全社区了解和采用 OCSF。</li></ol><p>亚马逊云科技在技术、社区、内容等多方面对 OCSF 提供了广泛而深入的支持与推动。OCSF 框架的发展离不开亚马逊云科技这样的行业影响着提供的各种资源与影响力。同时,亚马逊云科技采用 OCSF 也使自己的产品与服务在网络安全数据领域具有更好的互操作性与扩展性。</p><p><img src="/img/remote/1460000044588793" alt="图片" title="图片"></p><h3>Bottlerocket</h3><p><img src="/img/remote/1460000044588794" alt="图片" title="图片"><br>开发者常常会遇到只在 Linux 系统上运行容器的生产场景,这种场景并不总是需要一个完整的 Linux 发行版。他们更需要一个特定于容器、仅提供必要软件包的 Linux 系统,轻量级的操作系统也可以减少了部署时间。<br><img src="/img/remote/1460000044588795" alt="图片" title="图片"><br>2020 年 3 月 10 日,亚马逊云科技正式推出 Bottlerocket,它不是常规 Linux 发行版,如 Ubuntu,Fedora,而是一套用于托管 Linux 容器的新型专用操作系统。它不仅仅优化了系统部署的时间和对底层资源的占用,最关键的是,极简的系统将会带来强大的内置安全:</p><ul><li>Bottleroket 仅包含托管容器必需组件,最大限度地减少攻击面;</li><li>它使用只读的文件系统,在启动时通过 dm-verity 检查其完整性,来帮助防止基于 rootkit 的攻击;</li><li>没有 SSH、解释器(例如 Python)、Shell,使得攻击者将更难在系统当中寻找驻留点。</li></ul><h3>Firecracker</h3><p><img src="/img/remote/1460000044588796" alt="图片" title="图片"><br>Firecracker 是帮助开发者实现“创新简化”的另一个开源项目。</p><p>在 Firecracker 推出前,开发者告诉我们,当所有的容器都必须使用某个共享的操作系统内核时,现有的容器不能在应用程序之间实现充分的隔离,安全问题很难解决。于是就有了 Firecracker 的开源项目。</p><p>Firecracker 一种使用 KVM 的新型虚拟化技术。可以在不到一秒的时间内在非虚拟化环境中启动轻量级微型虚拟机 (MicroVM),充分利用传统虚拟机提供的安全性实现工作负载间的隔离。每个 Firecracker 的 microVM 仅使用大约 5.24 MB 的内存。这意味着单个虚拟 CPU 上可以运行数千个 Firecracker 的 microVM。</p><ul><li>KVM</li></ul><p><a href="https://link.segmentfault.com/?enc=JTVjOn0f3xxTr0JWP4D%2Frw%3D%3D.H7Z0cdi%2F%2BO6NLPubdzOwwbYPzNTRj4dlBZY6%2FCXT%2Bk4m0BhFRFlf9IoPPiAmQxHIxGw4NBfWJrLmFDjO7Vg4jeo%2Fm8qZIyFMwCeZP1V6PAs%3D" rel="nofollow">https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine?tr...</a> </p><p>Firecracker使得上层计算融入了潜水艇隔离仓的安全理念。如果 Serverless 服务是共享操作系统内核,那事实上是没有严格的安全隔离,不同租户使用共享 OS 内核就会有数据泄漏的隐忧。而 firecracker 通过 microVM,使得每个 Lambda 都在独立的 microVM 执行环境中运行,每个 Lambda 的 microVM 执行环境在 Lambda 的生命周期内使用,然后被销毁,不留下痕迹。这样可以保证:</p><ul><li>每个函数计算在一个或多个专用执行环境中运行。</li><li>每个执行环境承载一个并发调用,但在同一函数的多个串行调用中就地重用。</li><li>执行环境在硬件虚拟化虚拟机 (microVM) 上运行。microVM 专用于 Amazon 账户,但可以由账户内跨功能的执行环境重复使用。</li><li>MicroVM 被打包到亚马逊云科技拥有和托管的硬件平台 (Lambda Workers) 上。执行环境永远不会跨功能共享,并且 microVM 永远不会跨亚马逊云科技账户共享。</li></ul><p><img src="/img/remote/1460000044588797" alt="图片" title="图片"></p><h3>使用 Rust 提高开发的安全性</h3><p>对于开发者来说,对于底层资源的控制力,意味着开发效率和资源利用率。而安全性则是开发语言的另外一个关键维度。两者都很重要,但是两者确很难兼得。</p><p>控制力维度来说,C++ 是一门底层语言,离底层资源最近,因此开发者对底层资源调用拥有最大的控制力,可以直接管理内存、指针,因此它的性能也最强。同时是一门支持低级内存访问的语言,如果开发者没有严格遵循内存安全的最佳实践,很容易产生内存错误,是相对不太安全的。</p><p>而对于抽象程度更高的 Python 语言来说,通过强大的库生态系统,可以轻松完成各种功能开发,同时有 GC(Garbage Collection,即垃圾回收)自动内存管理机制,安全级别相对于 C++ 来说,要好很多。但难以获得对底层系统的精确控制,性能也相对较弱。</p><p>Rust 在控制力和安全性之间达到良好的平衡。相对于 C++ 来说,Rust 提供了一定的抽象,通过安全性保障让开发者无需过度关注底层细节,但有需要时,也可以通过 unsafe 块获得更高的控制力。</p><p>Rust 语言有严格的内存安全性保证,通过最终变量、借用检查器、所有权系统等手段防止大多数安全漏洞的产生,而内存破坏问题是公共漏洞披露系统 (Common Vulnerabilities and Exposures) CVE 安全漏洞的 68% 之根本原因。Rust 语言严格的内存安全性保证,防止大多数安全漏洞的产生,因此是编程语言中安全性较高的。</p><p><img src="/img/remote/1460000044588798" alt="图片" title="图片"></p><p>亚马逊云科技的开发团队使用 Rust 完成了多个重要服务的构建,包括 Firecracker、Bottleneck、Cedar 等,同时也致力于 Rust 开发经验的总结和向更多开发者推荐。自 2019 年起亚马逊云科技就作为 Rust 项目的赞助商提供资金支持;从 2020 年开始直接招聘 Rust 语言的维护者和开发者; 从 2021 年起成为 Rust 基金会的创始成员,参与 Rust 项目的组织建设与治理。</p><p>亚马逊坚信:领导者应具备创新能力和持续改进能力。他们需要不断创造价值与变革,并使每个系统和流程在结束时变得比最初找到它时更加理想和完善。</p><p>这是对待开源项目的态度,也是亚马逊云科技对待安全的理念。您也可以观看这一部分的视频演讲:</p><p>请持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态!往期推荐#开发者生态#亚马逊的开源文化#机器学习洞察<br><img src="/img/remote/1460000044588799" alt="图片" title="图片"></p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=U%2FxE8Ja6r3fe7bKXgJRaVw%3D%3D.cG9kRGS9lOfLRUrnHwsVrF1%2BrwA%2BD%2Bs6B3g8lH46Z%2Fm0yAXxtXiqDDd2Ff%2FmpiYtatgCo%2FgOuSo0fA%2BcUEgi7xUJwpDm0tuZjI0vK1rqm5svHREmkXPCM1RwiDBbLBbdzCshYX0zNzeOYl90%2B6W00DWGeFt77sJsE7YPbMMGs5%2Bi%2F43Knyvp%2B5WzGZvkI3kD" rel="nofollow">https://dev.amazoncloud.cn/column/article/64b122dd6d019c7607f...</a></p>
基础架构即代码 | 亚马逊如何在现实生活中实践 DevOps
https://segmentfault.com/a/1190000044576351
2024-01-22T10:33:20+08:00
2024-01-22T10:33:20+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>当我在 2005 年作为开发人员加入亚马逊时(那时 Amazon Web Services 还不存在),我从公司领了一个传呼机(如图 1 所示)。在亚马逊,开发人员不仅要设计实现一个具体的服务,还要负责这个服务的部署和管理。为了完成运营任务,开发人员需要轮流 “值班”,随时准备故障诊断和处理。传呼机就是值班用的。</p><p><img src="/img/remote/1460000044576353" alt="图片" title="图片"><br>图1: 亚马逊发给员工值班用的传呼机</p><p>这一切表明,亚马逊在 “DevOps” 这个术语出现之前就已经在实现 DevOps 的路上了。Amazon.com 在亚马逊云科技提供的平台上运行着成千上万个系统,来支持其全球市场业务、视频传递和其他消费者服务。当架构需要重新设计的时候,亚马逊开发人员就会考虑 DevOps,以便在值班期间更轻松地为客户提供最佳体验。</p><blockquote><a href="https://link.segmentfault.com/?enc=fla2vP34PNgJFwFgsyBBNQ%3D%3D.jG%2BPr8IDB9NpZ64jlxq5Ujd%2F62SLYLks%2Fp4wGHRzultrqbVNaLFH9ocm2jHgwgALVc4iXyhLyl8YASOWdnzgpEAW4bwXy%2FHPzWHgCzW%2FAU%2F2WVBfPPFlS5dciMc63dKL" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=FVEIn3kdLs7YSHPDvD8Bug%3D%3D.b6aWUnACGT5Xy5UsNerbKqfLn5LDM0woOz2kiFnWi9ikPrFtAo7deG6pnKrkTKUWo9OAK2WW8XL3FtdcsKGPNNs7fPh7WWFhAaa5%2FZdHolnosqeLbC3aPXNrZacyOr0dUbyDr5YJ0MSPHFufjhYclg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>在这篇文章中,我们将通过三个实用案例分享 Amazon.com 的研发团队如何通过 “<strong>基础架构即代码</strong>” 的方式来实现微服务的连续、自动、独立的部署。</p><p>这种方式将业务逻辑与微服务以及负责它们的团队对齐,使得问题能够更快地传达给正确的团队,并且可以实现更快地更改并推向生产环境,同时不会干扰其他组件。这加速了业务的创新,也减轻了值班的工作量。</p><h3><strong>IMDb</strong></h3><p>互联网电影数据库我们称之为 IMDb ,是世界上最流行的电影、电视和名人内容来源。</p><p>多年来,他们的后端一直是一个单体架构,运行在数百个 <a href="https://link.segmentfault.com/?enc=LL78YZRicENaeXtMjCWomA%3D%3D.8KnvcVDl8PE1EdwFPbH7uCbK4IH%2B8I%2F9QmgNpgj9oKMa9Ih51ZdkkwD%2FMQQzvcYWhadE7BEyhD6Da%2FqG937c%2Bzp%2FK8Lx%2BJxHU3VvRoLJb1lQ48ib6qUbe4c0GfKqQiYk" rel="nofollow">EC2</a> 实例主机上的 REST API。这种架构虽然有效,但不够灵活,这也意味着运维工程师需要面对繁琐的值班任务。</p><p>IMDb 的后端负责提供节目标题、演员姓名、星级评分汇总、图像、发布年份等等。GraphQL 是后端应用很好的选择。使用联合 GraphQL,后端可以被划分为多个微服务,每个微服务专注于特定的业务逻辑:一个用于服务图像,一个用于处理评级,另一个则知道哪些演员出现在哪些节目中。联合 GraphQL 使得每个服务只需要知道它自己的模式,同时客户断可以跨多个微服务完成数据请求。</p><p>以下是它的工作原理:</p><p>图 2 在左侧显示了一个 GraphQL 查询(缩写),用于在 Jackie Chan 页面上查询“知名作品”的插件,地址指向 <a href="https://link.segmentfault.com/?enc=7HlFXHaxfQBt3debweuuAQ%3D%3D.yyIK2hq1jrwBotz14to3fu8RppcKOuqksFpZKG0Z1rG6wWjhIMFDzw%2BUjpnMhB7mEbxR07EIrsbOC%2B8Woyu7lQ%3D%3D" rel="nofollow">https://www.imdb.com/name/nm0000329/?trk=cndc-detail</a>。 演员有以 nm 开头的 ID(例如成龙的 ID 是 nm0000329),而节目(包括电影或电视系列)有以 tt 开头的 ID。查询请求发送给网关,网关了解整个模式,拆分每个部分并路由到适当的微服务(称为图形元素),每个微服务都由 Amazon Lambda 提供计算。Lambda 是无服务器计算,这意味着无需配置服务器,直接运行您的代码。图 2 的顶部的微服务负责展示有哪些电影,下面的微服务负责关于电影的元数据(标题、年份等等),以此类推。</p><p><img src="/img/remote/1460000044576354" alt="图片" title="图片"><br> 图 2: IMDb 结合 GraphQL 在实际应用中的效果</p><p>网关和每个 graphlets 都是独立栈,可以分别部署。正如我们所看到的,每个 graphlets 的业务逻辑都是被明确定义的,负责这些 graphlets 的团队熟悉它和实现它的技术。一些 graphlet 是由旧服务创建的,并使用 Lambda 作为前端,以便能够将正确的响应形状适应 GraphQL 查询。其他 graphlet 是较新的,完全无服务器化的。旧的也可以被无服务器的替代,而不会对系统的其余部分造成任何干扰。因为没有了单体架构,问题发生在哪里以及哪个团队拥有解决方案变得更加清晰。现在,团队发现值班更轻松了。</p><h3><strong>Amazon Relay 面向卡车司机的移动应用</strong></h3><p>亚马逊另一个重要业务就是物流,这也是亚马逊最知名的业务之一。</p><p>在 Amazon.com 上购买的物品需要在正确的时间送达正确的位置。在配送中心、邮局和供应商之间,亚马逊在北美有数万个通过大卡车运输货品的转运站(图 3)。</p><p><img src="/img/remote/1460000044576355" alt="图片" title="图片"><br> 图 3: 亚马逊的 18 轮卡车,也称为“大型卡车”</p><p>多年来,亚马逊已经开发出了复杂的系统模型用来指导将物品投放到正确的位置,但这只是计算机中的程序模型。要实际移动物品,卡车司机需要知道什么时间?去哪里?拿什么?和将其放在哪里?这就是 Amazon Relay 应用的作用。Amazon Relay 应用(图 4)将复杂模型转化为具体可行的行动方式。</p><p>Amazon Relay: <a href="https://link.segmentfault.com/?enc=wuVCSkGaMFGie3ilkBd5CQ%3D%3D.KKGq%2BfWrLGV84RHGPIZPf31%2FrjRY697aYZkC8eTFvGmSFIw9sulHI8NxMvdW85rb" rel="nofollow">https://relay.amazon.com/?trk=cndc-detail</a></p><p><img src="/img/remote/1460000044576356" alt="图片" title="图片"><br> 图 4: Amazon Relay 应用程序为卡车司机提供了一切必要的信息。</p><p>与 IMDb 类似,Relay 团队设计了一个网关,应用程序与之通信,并将业务逻辑放入多个后端服务中,这些服务称为“模块”。例如,一个服务/模块确认配送中心的访问,并生成在图 4 中可见的门禁通行证,另一个服务/模块用于计算执行(司机何时去哪里)。网关和模块都是独立部署的且具有独立的流水线。</p><p>图 5 显示了他们是如何做到这一点的:</p><p><img src="/img/remote/1460000044576357" alt="图片" title="图片"><br> 图 5: Amazon Relay 应用程序使用网关和称为“模块”的独立后端服务进行工作。</p><p>通过 Amazon API Gateway,用域名作为外部访问的单一入口,并使用基于路径的路由,这样就使得每个调用都能准确对应相应的服务。因此,对 example.com/message 的请求面向运行消息功能的模块,而 example.com/navigate 请求面向导航模块。API Gateway 允许为从指定路径到指定 Lambda 创建对应的 API。新建模块是无服务器架构的,使用 Lambda、DynamoDB(NoSQL 数据库)和 SQS(队列服务)。更新旧模块,将 Lambda 放在前端,并与 API Gateways 进行集成。</p><p>Amazon API Gateway: -<a href="https://link.segmentfault.com/?enc=1cvdv%2F0TMptu5z0guOHKOA%3D%3D.Wj4wA0x1KgumooxPwCuotEOb8xtrdyP3K50zOIwlvV329YI4i53gKHg7%2F4x4jn1HDI5%2BPWnIOt4oQn8nxd%2F%2F0BPkthHmqDyaND%2BG8W60Ws3tHySLOTYKLgBef7pOZthv" rel="nofollow">https://docs.aws.amazon.com/apigateway/latest/developerguide/...</a></p><p>DynamoDB: -<a href="https://link.segmentfault.com/?enc=QmS0Cfle6o%2FBuLdmmRJrpA%3D%3D.BfOxxxPSQxikUJcvvdv%2Fs1m7qBu1SIUXyxhs9lI6L98BPxDjVv3RAsTg%2BMv%2FV1D2I1eFU7%2B75K%2Fd9jBux5qHktOTOsF8%2F43ZM2vnPxSJeZXfvsnl2EzOnsNMmyAEkK8qAxl9eVFFPTdBNXXpjutGuA%3D%3D" rel="nofollow">https://docs.aws.amazon.com/amazondynamodb/latest/developergu...</a></p><p>SQS: <a href="https://link.segmentfault.com/?enc=pRokSEk9BwTUusa6ABQC9g%3D%3D.FXxGemvNg1YTud7SkW0VxAFBkQslbK2Orysvmz4g%2BgVtaS7infVdC%2BILvZMp3ArM8T3GBABUCYKcGUR6V2E6osa6bCbphpKY2gsi70IsNAe7kIMZcp9cBk9T0FeEtLtLQXkzhN6UnkhRvAC9yZR1lg%3D%3D" rel="nofollow">https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSD...</a></p><p>团队使用多个 API 网关来隔离他们的应用模块,这使得他们能够独立部署各个模块,先部署对业务不那么关键的模块,如果出现问题可以回滚而不影响关键模块。这是通过利用各模块之间的隔离和分阶段部署实现的。</p><p>这种架构更容易实现多区域策略。无论东部还是西部的卡车司机,都可以从更低的延迟中受益,因为他们的请求被指引到更接近他们的 Amazon Web Services 区域。而这种多区域架构对灾难恢复策略也适用,在必要时刻,所有流量都可以路由到某具体的一个区域。有关 Amazon Relay 如何启用多区域的更多详细信息,请参见此视频:<a href="https://link.segmentfault.com/?enc=p9h4zrgijZ4oZX4OVKimXQ%3D%3D.DUeJhATG2gcDtyiiG3AE6EK3XexwirS2U3Pjh6CHqVYteFNZLEhWRkJMvwbjry5j4ZnepTgGDbMZaiGLl1hzSPSeTyNGLvE3%2FS4MUqLdiPNT4CCRZgZvjxGLojDvOVbCD4fWESCfRztEX0y1GhUkonq3mxKbAI96A5PaZq9%2FFdOgY%2B2r0wPi%2Bivm26nrqfK4RM8iT5dUSSG2kawOOlarpNljQOtJnSXwOcVdDZTocBo%3D" rel="nofollow">https://www.buildon.aws/posts/how-amazon-does-devops-in-real-...</a></p><h3><strong>配送中心</strong></h3><p>我们已经介绍了配送中心之间卡车的运行方式,现在让我们来谈谈配送中心本身。全球范围内,亚马逊运营着 500 多个配送中心。Amazon Fulfillment Technologies and Robotics 是设计、部署和运营支持这些配送中心服务的亚马逊部门。这包括收货系统以及确定物品在仓库中的位置、告诉工作人员在哪里找到满足客户订单的物品、生成运输信息、确定使用哪个包装盒等系统。</p><p>正如大家现在所预期的那样,每个服务都独立部署,除此之外,亚马逊还采用了仓储架构来实现更高级别的独立部署。在仓储架构中,每个仓储都是一个独立完整的服务、一个独立实例(图 6),仓储之间没有共享。根据某些关键的分区,入站请求会被指向特定的仓储。</p><p><img src="/img/remote/1460000044576358" alt="图片" title="图片"><br> 图 6: 采用仓储架构,每个仓储都是独立完整服务、独立实例,它们是独立的,不互相共享状态。</p><p>对于支持亚马逊配送中心系统,配送中心本身是自然的关键。配送中心之间不共享状态,因此将每个配送中心映射到特定的仓储是自然的选择。这样通过故障隔离来提高韧性的最佳实践。具体细节可以考虑图 7:三个配送中心比邻,服务于同一地理区域。</p><p><img src="/img/remote/1460000044576359" alt="图片" title="图片"><br> 图 7: Fulfillment Technologies and Robotics 分配配送中心给仓储,以便每个地理区域由分布在不同仓储中的配送中心提供服务。</p><p>如果有故障发生,无论是新部署软件中的缺陷,还是基础设施出现了问题,这个具有韧性的架构可以缓解这些故障,这也是仓储架构的存在的意义。故障仅会影响到存在问题的仓储,和他们所匹配的配送中心的运营。但其他仓储受到故障隔离的保护,可以继续正常地响应请求。在图示案例做,故障仅会影响我们组中的一个配送中心(图 8),但由于该地理区域的配送中心位于不同的仓储中,其他配送中心继续为该地区的客户提供服务。</p><p><img src="/img/remote/1460000044576360" alt="图片" title="图片"><br> 图 8:隔离将故障限制在一个仓储中,其他仓储正常运行。</p><p>每个仓储独立部署,且具有独立的自动化部署流水线。每个仓储都是后端服务的独立堆栈。图 9 显示每个仓储都部署在独立的 Amazon Web Services 帐户中,有一个用于测试的预生产(“pre-prod”)帐户和用于日志数据和跟踪的共享帐户。部署是顺序进行的,等待前一个仓库部署成功并稳定后才部署下一个仓库。</p><p><img src="/img/remote/1460000044576361" alt="图片" title="图片"><br> 图 9: 每个仓储都会按顺序在独立的 Amazon Web Services 帐户中部署。</p><h3><strong>持续、自动化、独立部署取胜</strong></h3><p>通过上述场景案例,我们看到亚马逊仓库物流系统是如何通过持续化、自动化和独立部署来提升敏捷性、运营效率和弹性的。这些关键理念也适用于云中的任何工作负载。DevOps 模式有助于团队快速创新、灵活响应市场变化并取得业务效益。</p><p>请持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态!</p><h4><strong>往期推荐</strong></h4><p><a href="https://link.segmentfault.com/?enc=ePlPuTLhfKlreFwKZG8hhw%3D%3D.XfVgGLOiOVIBWiKWalHfEZqLRXlfrS5Ldsjq%2B7H6tUC%2Bo3RJ0K08S%2FyvL6o8geAMP51dqUg%2B1EbKXxXc8Qe67Gmj0paAd7JusEt7M6SKrz87bhEB2flbkwIDVWr0E35wZjdflPCeM4QbL8CJfvNSyrNnUPya1oVYYhEvVw6t3ArNsLPIbfACDGOUKOGz6lMOVrYmOALdZab8dKRiKjFvBQ%3D%3D" rel="nofollow">#Generative AI 新世界</a></p><p><a href="https://link.segmentfault.com/?enc=HypsoKEJgVZONBj213O%2Bwg%3D%3D.%2FWb6teyuy9lnWb1iBO7EYMuvnIxUrCMQDDD%2FRntiRdGtImBd3T0lMS7OMJe%2BUuX6j6%2Fz8FtWt7Wn%2BKcPMrRasrGaoQscPadya0Q%2F2eA7djfNgk9ZxhVi1IixYNFq9AI8lHB6lQ9L7arAyQGNpnnFOy7LWtWB7%2BGFBEnBiDRWqZki78eGx7Mne8uyo4S1%2BjoHJUyY6hh8ldDHyEa27zQHEw%3D%3D" rel="nofollow">#架构模型最佳实践</a></p><p><a href="https://link.segmentfault.com/?enc=N5OfrExGHqlGvpGPIe%2FdKA%3D%3D.fs2lQ%2FYESjgpaUbOHtXQ2D1JUaWMOu4MxjxLqkt0JYAsEIZ14sc48T5Cv2dINIpwO9ler8KsDd3csd0xgZiAK2vyro2E5DrNhNj1w5QSznsdvcJK9feCh1WgNZI0US4kePMePQrpDCxGwzqydoK0aT6VCXtMe3keM%2BCzg619IMTdQzYH%2BxYc7REOohgqc5d5UElmJDKWVOEuHQugu8%2BVjw%3D%3D" rel="nofollow">#GitOps 最佳实践</a></p><blockquote><p>文章作者:Seth Eliot</p><p>Principal Developer Advocate, Amazon Web Services</p><p>文章译者:郑予彬</p><p>亚马逊云科技资深开发者布道师</p></blockquote><p><img src="/img/remote/1460000044576362" alt="图片" title="图片"></p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=x4UTmEuHcK7sYQQywzBdoA%3D%3D.mUOduQQ9vMAv8bGhb8oTkzVjaLV19SRgFKbGNiM%2FC9FSDpxLs9H9Tj3IOu7Ox1QPTJIlwMBHt4PHyTmxSRSAfw0xUo6iowjDwMDSp5LbI1IP8fc%2F9oQBfUsKsjRo9UwSh8GhDaA64HBh4aI6tvICPvGwof4VJGuiy9WVN482M%2BWhfjlFHu1q2f1R2pNjVTIg" rel="nofollow">https://dev.amazoncloud.cn/column/article/64a7b0ffcb09cf15dc4b02ca?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=SF</a></p>
“一次不过、免费再考” 限时活动开启,快来考取亚马逊云科技认证吧!
https://segmentfault.com/a/1190000044566684
2024-01-18T14:40:48+08:00
2024-01-18T14:40:48+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>为助力云计算人才的职业信心建立,亚马逊云科技推出 “一次不过、免费再考” 的限时活动。活动期间您可在第一次未通过的情况下,获得一次免费的 “补考”机会。首次认证考试必须在 2024 年 4 月 15 日之前完成,免费再考必须于 2024 年 6 月 30 日前完成,以确保优惠码可以有效使用。</p><p>自学担心考不过?我们也安排了线上课程帮助您通过考试,如果您对此感兴趣,快来关注即将推出的课程。</p><blockquote><a href="https://link.segmentfault.com/?enc=mslyoQHBsjacaaxMxlX%2Bgg%3D%3D.Sq1GpMUTEkqoW98xZQvjZCEKGlT7petySdZDnFsiy7fvHte9EFYS6NQAAySwweno2cfNyaO4tKQNz8wi7CT0xBKMcP0NHH1MGEgLwGxvwVMa0aLXNbDqEzMDcEybIqvT" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=ly71HSGur2LgI4hWECeIAQ%3D%3D.gDhZRO9UTMQfPs7R7LohaMYIziK9onrZUXF3CYyp1r9kRP07wQBVfF1rYe%2F3HHf9wo3sp9yO5ht3MXh%2B0bGei8cvifEObSOf51FN37%2FNZ%2FHKMhqGig%2B1OcFSc6%2BVvWAkUX2zHNyjZpzUHpMpwXZMNg%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><h3><strong>亚马逊云科技-云从业者加速训练营</strong></h3><p>2024 年亚马逊云科技云从业者加速训练营第一场已经开放报名,报名成功即可取得“一次不过,免费再考”的限期优惠码!</p><p>即刻点击<a href="https://link.segmentfault.com/?enc=9C2SQctAKAvsIc%2FqMAJ9kg%3D%3D.HZosVVuEPx0x9v%2Fk4Os8nHlcvWVqyRkgAnNWeAOFKYPMbmuWB9mk7%2FRLLIMiV%2FHkry9LjDN6M1yHk2Cv3dGbcqEMhCNolRmqcWiJR1YLVmHCHvg6acKWgwWNsan%2B5iHZGasF%2FFhnyRCS67Lg8mvaZCjmpgzx%2FTQOF3rjTE7Wiwd%2Br72UlYWV2dkoaAouN%2BKBkO2r%2B4hkE2jzN%2BKlqHTPmEYi6iAtrZDJwInNFpHcY7I%3D" rel="nofollow">报名参会</a></p><h4><strong>亚马逊云科技认证有什么帮助?</strong></h4><p>获得亚马逊云科技认证可以帮助您推动职业发展,无论是希望寻求新角色、展示您接手新项目的技能,还是成为团队的首席专家。亚马逊云科技认证考试由相关角色或技术领域的专家创建,因此备考其中一项考试可帮助您培养该领域熟练从业者确定的所需技能。</p><h4><strong>什么是云从业者加速训练营?</strong></h4><p>云从业者训练营是一个为初学者设立的免费课程,通过本课程,我们将一步步帮助学员学习亚马逊云科技云计算基础,并考取 AWS Certified 云从业者认证。该认证是由亚马逊云科技官方颁发的、国际及业界认可的认证,有效证明您拥有亚马逊云科技云端的专业基础知识以及云计算基本个人能力。</p><p>合适客群包括 销售人员 、法务人员 、营销人员 、业务分析师 、项目经理 、亚马逊云科技 Academy 学员 、其他 IT 相关专业人员</p><p>想进阶高级认证,请持续关注 3 月份即将上线的备考训练营直播课,内容包含 AWS Certified 解决方案架构师助理级和专业级,别错过哦。从学到考,更多内容欢迎参考一图带你读懂开发者技能成长秘籍。</p><p><a href="https://link.segmentfault.com/?enc=0Q5nbEqhVSvC87VjH8UgIA%3D%3D.J7xFyJWHkyUISxIh1xxlyQOC4kSgJU76KBYT694jg%2FdYB51UgawyZ5PoTvQ4Y7XmKC8EIzno2zcYNuBiGNVm0vfhEbc5VZU%2BrevfR91YAdnbThFFH1NAuvMjo0SEQ%2BWY" rel="nofollow">https://dev.amazoncloud.cn/column/article/6582aa58be2f831e772...</a></p><p><img src="/img/remote/1460000044566686" alt="图片" title="图片"></p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=cfIoFxEzLq%2FX0MElPi1XWQ%3D%3D.E%2FO43SziJvUVYAP6JMpN7bjNOJqnIuOVP2liMh983U5wdRyF71um6goz5kBbi9vccHODKhLhzA12Fhxt3kjWUxCmEDxtaJ7NhzDMHbc9qhEmdglZdadVVhjJT8cdNWmy70ARQZeYOG4y1phYFJkhVvltL%2BAsPwseH%2BcBeuoPvRpEXhuBxGqqVEQdxIdzILWx" rel="nofollow">https://dev.amazoncloud.cn/column/article/65a8c5790c244536093e1c07?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=SF</a></p>
Generative AI 新世界 | 文生图领域动手实践:预训练模型的部署和推理
https://segmentfault.com/a/1190000044565515
2024-01-18T09:55:40+08:00
2024-01-18T09:55:40+08:00
亚马逊云开发者
https://segmentfault.com/u/aws_aidevcommunity
0
<p>在上期文章,我们探讨了<a href="https://link.segmentfault.com/?enc=8IZeOsEYic0M%2F2BPJRMD3w%3D%3D.xTYUqlNcBriA4mi66RhmJ8s4tLkhfigMIjYCKx2zYIHN1%2FO7laX2Dko5hw5i%2BRc3x77s%2FhoM7n73vIOB9qntBAbyQ210gjtxumuVnIBGNhYyRXwY1ReOqhZ%2BITJ8EEF%2B" rel="nofollow">文生图(Text-to-Image)方向的主要论文解读</a>,包括:VAE、DDPM、DDIM、GLIDE、Imagen、UnCLIP、CDM、LDM 等主要扩散模型领域的发展状况。</p><p>本期我们将进入动手实践环节,我会带领大家使用 Amazon SageMaker Studio、Amazon SageMaker JumpStart 等服务,指导您在云中快速上手亲身体验大语言模型的魅力,并为有探索精神的小伙伴们准备了更高阶实验,以帮助您构建文生图(Text-to-Image)领域的大模型企业或科研应用。</p><blockquote><a href="https://link.segmentfault.com/?enc=MiL3wAwJ4OFBFNZepKXeFA%3D%3D.jFXcDTkTIjmmdU8KufH%2F%2Bz6KDniIAhEKCS6jCG6SrsrM2BT%2BdP1nW8jddOQgawF2z1prvtGIPqhK6i5bbrOJFwHgm43O4gflT3v0R%2F3oaUSKo0%2BufrbGe%2F1kpNkcEYQB" rel="nofollow">亚马逊云科技开发者社区</a>为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,<a href="https://link.segmentfault.com/?enc=QOKy5u3R1rU2khNFJL8N%2BQ%3D%3D.lSdIakB3lJ7DzTi%2FxzzMsg2Uf9mGRwN490gtzABuVWpYu4b2tFHFK8Nn3IfIGCUUZhkAtRnHt1SK21cPHzfbewy%2BVT6cyxs2xKTWMCvKE%2BdqP0zKPUM%2Bn2dqHL0sZDclUpgcZXoWEmX0K7aynTtVwQ%3D%3D" rel="nofollow">点这里</a>让它成为你的技术宝库!</blockquote><p>整个文生图(Text-to-Image)动手实践会分成两篇:</p><p>本篇将主要介绍<strong>预训练模型的部署和推理</strong>,其中包括:<strong>运行环境准备、角色权限配置、支持的主要推理参数、图像的压缩输出、提示工程(Prompt Engineering)、反向提示(Negative Prompting)</strong> 等内容。</p><p>下一篇将主要介绍预训练模型在客户数据集上的微调(Fine-tune),以及亚马逊云科技提供的更高阶的面向企业或科研单位生产环境级别的一些完整解决方案。</p><h3><strong>Amazon SageMaker JumpStart 介绍</strong></h3><p>Amazon SageMaker JumpStart 是一个机器学习 (ML) 中心,可以帮助您加速 ML 之旅。使用 Amazon SageMaker JumpStart,您可以访问预训练的模型,包括基础模型,以执行文章总结和图片生成等任务。预训练模型可针对您的使用案例和数据完全自定义,并且您可以使用用户界面或 SDK 轻松将其部署到生产中。此外,您可以在组织内访问预构建的解决方案来解决常见使用案例和共享 ML 构件,包括 ML 模型和笔记本,以加速 ML 模型的构建和部署。</p><p>Amazon SageMaker JumpStart 未使用您的任何数据来训练基础模型。由于所有数据都经过加密且不会离开您的虚拟私有云 (VPC),因此您可以相信您的数据将会保持私密和机密。</p><p>Amazon SageMaker JumpStart 提供来自不同模型提供商的各种专有和公开可用的基础模型。基础模型是包含数十亿个参数并在数 TB 的文本和图像数据上进行预训练的大规模 ML 模型,因此您可以执行范围广泛的任务,例如文章摘要和文本、图像或视频生成。由于基础模型是经过预训练的,因此它们可以帮助降低训练和基础设施成本,并支持针对您的用例进行定制。</p><h4><strong>在 Amazon SageMaker Studio 中快速上手 JumpStart</strong></h4><p>打开 Amazon SageMaker Studio,选择左侧菜单栏的 “SageMaker JumpStart” ,如下图所示:</p><p><img src="/img/remote/1460000044565517" alt="图片" title="图片"></p><p>这将打开一个新选项卡,显示 SageMaker JumpStart 支持的所有模型(包括解决方案、基础模型基本信息等),如下图所示:</p><p><img src="/img/remote/1460000044565519" alt="图片" title="图片"></p><p>选择 “Stable Diffusion 2.1 base” 这个文生图的基础模型,如下图所示:</p><p><img src="/img/remote/1460000044565520" alt="图片" title="图片"></p><p>在新打开的选项卡中,你将看到部署 (Deploy)、训练 (Train)、Notebook、模型介绍 (Model details) 这四个子选项,分别单击这四个子选项,可以帮助您快速进入相关部分进行配置,如下图示:</p><p><img src="/img/remote/1460000044565521" alt="图片" title="图片"></p><p>以部署 (Deploy) 为例,可以在 “Deployment Configuration” 中,自行定义运行 SageMaker 所需的机型、终端节点名等。</p><p><img src="/img/remote/1460000044565522" alt="图片" title="图片"></p><p>以及可以在 “Security Settings” 中定义在 SageMaker 中运行的角色 (role),控制这个角色的权限即可控制其访问亚马逊云科技资源的权限颗粒度;以及可以配置 VPC、加密 keys 等重要安全管理机制。如下图所示:</p><p><img src="/img/remote/1460000044565523" alt="图片" title="图片"></p><p>篇幅所限,我们就不对 SageMaker JumpStart 做更详细的介绍,有深入研究兴趣的同学可以参考一下资料:关于 Amazon SageMaker JumpStart 的官方页面,可参考:</p><p><a href="https://link.segmentfault.com/?enc=gjYp%2BbmJfz7FwrVoEkvcCw%3D%3D.7GJlOSeXyoy4FimsKXSV8%2BfRccasfAlXFCuac7pO%2FcKMnj9gX0657Zk4kznSfgchtSEnsqN74GZoR5yao%2B8I2g%3D%3D" rel="nofollow">https://aws.amazon.com/cn/sagemaker/jumpstart/?trk=cndc-detail</a></p><p>关于 Amazon SageMaker JumpStart 支持基础模型的最新更新,可参考:</p><p><a href="https://link.segmentfault.com/?enc=TJxP0eDecQ%2F%2B0klpSFYDhg%3D%3D.iJopYRDT3mE51hosbKPLhaTWpoDot2iHhlEktOWbZRlPF9qhmxSjWkNSVGk7W5kpDvWZL2cImZ3X8kSqBkVwxGzIrwSKtiCUZY3gcT59wDc%3D" rel="nofollow">https://aws.amazon.com/cn/sagemaker/jumpstart/getting-started...</a></p><h4><strong>在 Amazon SageMaker JumpStart 中运行 Notebook</strong></h4><p>本节我将带领大家在 Amazon SageMaker JumpStart 中运行 Notebook。</p><p>首先,参考下图选择 “Notebook” 子选项。</p><p><img src="/img/remote/1460000044565524" alt="图片" title="图片"></p><p>点击 “Open notebook” 进入 Notebook。</p><p><img src="/img/remote/1460000044565525" alt="图片" title="图片"></p><p>当 “Starting notebook kernel” 完成后,就可以运行这个示例的 Notebook 了!接下来的体验,和大家在其它各种环境中运行 Jupyter Notebook 是很类似的。</p><p><img src="/img/remote/1460000044565526" alt="图片" title="图片"></p><p>如果你计划在这个 Notebook 做的工作负载需要较多的 CPU 或者 GPU 资源,可以通过点击 Notebook 右上角的配置位置(如下图),来选择需要的 Notebook 实例类型、代码运行的 Image 环境、Python 版本等。</p><p><img src="/img/remote/1460000044565527" alt="图片" title="图片"></p><p>这个实验我们选择比较小的 “ml.t3.medium” 实例即可,如下图示:</p><p><img src="/img/remote/1460000044565528" alt="图片" title="图片"></p><h3><strong>SageMaker JumpStart 上部署模型和运行推理</strong></h3><h4><strong>代码说明</strong></h4><p>本实验的完整代码,可以在亚马逊云科技的 SageMaker 代码库中获得。</p><p>GitHub 地址如下:</p><p><a href="https://link.segmentfault.com/?enc=WgnPvsWSRTmdkFNdMVaNmg%3D%3D.1ESvmjEq2cBfWcHNy39dy1l1QecHwDXMPz2oR9FE1jDgSCSChrnClZOoWXM9mTwTwIpnLXknepPuy5J4z%2BkCRhgrrSKLVd0cuxJpNK%2FzxQy43V0xHVEcUWEMQB475ciuWdkHfQJqt7BmWEq8C%2FL615kY3uhW%2BBVLkzYfSD3MGx%2B49OK9rPR2c19N7iHiBG%2Bg97uFpS90Kp3e1C%2BI%2Fb2cbp0GpggMg9%2FF6JGLvx95DDw%3D" rel="nofollow">https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_to_image/Amazon_JumpStart_Text_To_Image.ipynb?trk=cndc-detail</a></p><p>以上全部代码分为两部分:</p><ol><li>预训练模型的部署和运行推理</li></ol><ol start="2"><li>预训练模型在客户数据集上的微调(Fine-tune)</li></ol><p>本章涉及第一部分:预训练模型的部署和推理。</p><h4><strong>环境和权限配置准备</strong></h4><p>这个 Notebook 在带有 Python 3 (Data Science) 内核的 SageMaker Studio 中,使用 ml.t3.medium 实例上进行了测试。<strong>要部署预先训练或经过微调的模型,可使用 ml.p3.2xlarge 或 ml.g4dn.2xlarge 实例类型</strong>。如果 ml.g5.2xlarge 在你所在的地区可用,我们建议使用该实例类型进行部署。</p><p>在运行这个 Notebook 的代码之前,需要先执行一些初始步骤进行设置,例如:安装 ipywidgets 库和最新版本的 sagemaker。代码如下:</p><pre><code>!pip install ipywidgets==7.0.0 --quiet
!pip install --upgrade sagemaker</code></pre><p>要在 Amazon SageMaker 上托管,我们还需要设置其对亚马逊云科技的相关服务授权,并对其使用进行身份验证。在这里,我们将与当前 Notebook 关联的执行角色配置了具有 SageMaker 访问权限的角色 (role)。</p><pre><code>import sagemaker, boto3, json
from sagemaker import get_execution_role
aws_role = get_execution_role()
aws_region = boto3.Session().region_name
sess = sagemaker.Session()</code></pre><h4><strong>预训练模型的部署</strong></h4><p>使用亚马逊云科技的 SageMaker JumpStart,我们可以直接在预训练模型上进行推理 (inference),而无须先在新的数据集上做微调 (fine-tuning)。</p><p>你可以继续使用默认模型配置,也可以参考以下代码,从生成的下拉列表中选择不同的模型版本。</p><pre><code>from ipywidgets import Dropdown
from sagemaker.jumpstart.notebook_utils import list_jumpstart_models
# Retrieves all Text-to-Image generation models.
filter_value = "task == txt2img"
txt2img_models = list_jumpstart_models(filter=filter_value)
# display the model-ids in a dropdown to select a model for inference.
model_dropdown = Dropdown(
options=txt2img_models,
value="model-txt2img-stabilityai-stable-diffusion-v2-1-base",
description="Select a model",
style={"description_width": "initial"},
layout={"width": "max-content"},
)
display(model_dropdown)</code></pre><p>以上代码的运行结果,如下图所示:</p><p><img src="/img/remote/1460000044565529" alt="图片" title="图片"></p><p>如果你好奇在 Sagemaker JumpStart 支持那些预训练模型,可以参考以下的完整列表:<br> <a href="https://link.segmentfault.com/?enc=SEQkB%2Fu4RC50oSyeR3WT7w%3D%3D.6328o5F1B0eqCkd01p45zRtd95482p1252EIl3f6Iah0jw2Hua%2BcSTks4PJStpblcBcl8ZZIBkSz9OBJFWwd7GjAARtny7Tk7Ium%2F5jilAWE1oaugoBz3nvc%2BE0RnLzR" rel="nofollow">https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrain...</a></p><p>首先,我们需要设置预训练模型的 deploy_image_uri 和 model_uri。为了托管预训练模型,我们将创建一个 sagemaker.model.Model 的实例并开始部署。</p><pre><code>from sagemaker import image_uris, model_uris, script_uris, hyperparameters, instance_types
from sagemaker.model import Model
from sagemaker.predictor import Predictor
from sagemaker.utils import name_from_base
endpoint_name = name_from_base(f"jumpstart-example-infer-{model_id}")
# Please use ml.g5.24xlarge instance type if it is available in your region. ml.g5.24xlarge has 24GB GPU compared to 16GB in ml.p3.2xlarge and supports generation of larger and better quality images.
inference_instance_type = instance_types.retrieve_default(
region=None,
model_id=model_id,
model_version=model_version,
scope="inference"
)
# Retrieve the inference docker container uri. This is the base HuggingFace container image for the default model above.
deploy_image_uri = image_uris.retrieve(
region=None,
framework=None, # automatically inferred from model_id
image_scope="inference",
model_id=model_id,
model_version=model_version,
instance_type=inference_instance_type,
)
# Retrieve the model uri. This includes the pre-trained model and parameters as well as the inference scripts.
# This includes all dependencies and scripts for model loading, inference handling etc..
model_uri = model_uris.retrieve(
model_id=model_id, model_version=model_version, model_scope="inference"
)
# To increase the maximum response size (in bytes) from the endpoint.
env = {
"MMS_MAX_RESPONSE_SIZE": "20000000",
}
# Create the SageMaker model instance
model = Model(
image_uri=deploy_image_uri,
model_data=model_uri,
role=aws_role,
predictor_cls=Predictor,
name=endpoint_name,
env=env,
)
# Deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class,
# for being able to run inference through the sagemaker API.
model_predictor = model.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
predictor_cls=Predictor,
endpoint_name=endpoint_name,
)</code></pre><p>创建以及模型部署需要 10 分钟左右的时间。特别提醒:在等待模型部署期间,请不要中断内核的运行。</p><p>运行以上代码后,你会在 SageMaker 控制台的 “Endpoints” 项,看到有端点在部署,状态为 “Creating”,如下图所示:</p><p><img src="/img/remote/1460000044565530" alt="图片" title="图片"></p><p>等待大约 10 分钟左右的时间,如果看到以下 “!” 返回,表示模型已经在 SageMaker 的端点部署完成:</p><p><img src="/img/remote/1460000044565531" alt="图片" title="图片"></p><p>这时如果你继续留意 SageMaker 控制台的 “Endpoints” 项,会观察到状态已经由 “Creating” 变成 “InService”,如下图所示:</p><p><img src="/img/remote/1460000044565532" alt="图片" title="图片"></p><p>现在模型已经部署完成,可以开始进行推理了!</p><h4><strong>预训练模型的运行推理</strong></h4><p>模型的输入数据格式是:json 格式,并用 utf-8 编码的文本字符串。</p><p>模型的输出数据格式是:json 格式,并且包含生成的文本。</p><pre><code>import matplotlib.pyplot as plt
import numpy as np
def query(model_predictor, text):
"""Query the model predictor."""
encoded_text = text.encode("utf-8")
query_response = model_predictor.predict(
encoded_text,
{
"ContentType": "application/x-text",
"Accept": "application/json",
},
)
return query_response
def parse_response(query_response):
"""Parse response and return generated image and the prompt"""
response_dict = json.loads(query_response)
return response_dict["generated_image"], response_dict["prompt"]
def display_img_and_prompt(img, prmpt):
"""Display hallucinated image."""
plt.figure(figsize=(12, 12))
plt.imshow(np.array(img))
plt.axis("off")
plt.title(prmpt)
plt.show()</code></pre><p>如下代码以及代码运行后返回的图例所示,输入文本 “cottage in impressionist style”,模型就会预测与该文本对应的图像。</p><pre><code>text = "cottage in impressionist style"
query_response = query(model_predictor, text)
img, prmpt = parse_response(query_response)
display_img_and_prompt(img, prmpt)</code></pre><p><img src="/img/remote/1460000044565533" alt="图片" title="图片"></p><h4><strong>预训练模型的高级推理参数</strong></h4><p>该模型在执行推理时还支持许多高级参数。它们包括:</p><ul><li>prompt: 提示指导图像生成。必须指定,可以是字符串或字符串列表</li></ul><ul><li>width: 图像的宽度。如果指定,则必须是可被 8 整除的正整数</li></ul><ul><li>height: 图像的高度。如果指定,则必须是可被 8 整除的正整数</li></ul><ul><li>num_inference_steps: 图像生成过程中的降噪步骤数。步骤越多,图像质量越高。如果指定,则必须为正整数</li></ul><ul><li>guidance_scale: 较高的制导比例 (guidance scale) 会导致图像与提示密切相关,但会牺牲图像质量。如果指定,则必须为浮点数;而设置guidance_scale<=1 将忽略</li></ul><ul><li>negative_prompt: 根据此提示引导图像生成。如果指定,则必须是字符串或字符串列表,并与 guidance_scale 一起使用。如果 guidance_scale 被禁用,它也会被禁用;此外,如果 prompt 是字符串列表,那么 negative_prompt 也必须是字符串列表</li></ul><ul><li>num_images_per_prompt: 每个提示返回的图像数量,如果指定,则必须为正整数</li></ul><ul><li>seed: 修复随机化状态以提高可重复性 (reproducibility),如果指定,则必须是整数</li></ul><p>以下举例说明:</p><pre><code>import json
payload = {
"prompt": "astronaut on a horse",
"width": 512,
"height": 512,
"num_images_per_prompt": 1,
"num_inference_steps": 50,
"guidance_scale": 7.5,
"seed": 1,
}
def query_endpoint_with_json_payload(model_predictor, payload, content_type, accept):
"""Query the model predictor with json payload."""
encoded_payload = json.dumps(payload).encode("utf-8")
query_response = model_predictor.predict(
encoded_payload,
{
"ContentType": content_type,
"Accept": accept,
},
)
return query_response
def parse_response_multiple_images(query_response):
"""Parse response and return generated image and the prompt"""
response_dict = json.loads(query_response)
return response_dict["generated_images"], response_dict["prompt"]
query_response = query_endpoint_with_json_payload(
model_predictor, payload, "application/json", "application/json"
)
generated_images, prompt = parse_response_multiple_images(query_response)
for img in generated_images:
display_img_and_prompt(img, prompt)</code></pre><p>不同模型的训练数据具有不同的图像大小,通常可以观察到,<strong>当生成的图像的维度与训练数据维度相同时,模型的性能最佳</strong>。如果尺寸与默认尺寸不匹配,则可能会导致图像呈黑色。Stable Diffusion v1.4 模型是在 512512 的图像数据集上训练的,而 Stable Diffusion v2 模型是在 768768 的图像数据集上训练的。</p><p>在上述代码中,我们设置了希望输出的图像长度和宽度都是 512。以下是得到的模型输出图像:</p><p><img src="/img/remote/1460000044565534" alt="图片" title="图片"></p><h4><strong>图像的压缩输出 Compressed Image Output</strong></h4><p>上面来自端点的<strong>默认响应类型是具有 RGB 值的嵌套数组</strong>。因此,如果生成的图像尺寸很大,则可能会达到响应大小限制。为了解决这个问题,SageMaker 还支持返回 JPEG 图像的端点响应,是以<strong>字节为单位返回</strong> (returned as bytes)。</p><p>如果需要以字节为单位返回,请设置:</p><p><code>Accept = 'application/json;jpeg'</code></p><p>关于图像的压缩输出部分的代码如下:</p><pre><code>from PIL import Image
from io import BytesIO
import base64
import json
def display_encoded_images(generated_images, title):
"""Decode the images and convert to RGB format and display
Args:
generated_images: are a list of jpeg images as bytes with b64 encoding.
"""
for generated_image in generated_images:
generated_image_decoded = BytesIO(base64.b64decode(generated_image.encode()))
generated_image_rgb = Image.open(generated_image_decoded).convert("RGB")
display_img_and_prompt(generated_image_rgb, title)
def compressed_output_query_and_display(payload, title):
query_response = query_endpoint_with_json_payload(
model_predictor, payload, "application/json", "application/json;jpeg"
)
generated_images, prompt = parse_response_multiple_images(query_response)
display_encoded_images(generated_images, title)
payload = {
"prompt": "astronaut on a horse",
"width": 512,
"height": 512,
"num_images_per_prompt": 1,
"num_inference_steps": 50,
"guidance_scale": 7.5,
"seed": 1,
}
compressed_output_query_and_display(payload, "generated image with compressed response type")</code></pre><p>采用以字节为单位返回(returned as bytes)后,输出的图像如下图所示:</p><p><img src="/img/remote/1460000044565535" alt="图片" title="图片"></p><h4><strong>提示工程 Prompt Engineering</strong></h4><p>写一个好的提示词,在大模型时代可能是一门艺术。</p><p>在给定模型下,通常很难预测某个提示词是否会产生令人满意的图像。不过,已经有分析和实践显示,某些模板可能是非常有效的。</p><p>提示词可以大致分为三部分:</p><ol><li>图像类型(照片/素描/绘画等)</li></ol><ol start="2"><li>描述(主题/物体/环境/场景等)</li></ol><ol start="3"><li>图像风格(写实/艺术/艺术类型等)</li></ol><p>因此,可以分别更改以上这三个部分的提示词,来生成图像的变体。众所周知,形容词在图像生成过程中起着重要作用。此外,添加更多细节也会有助于高质量的生成图像过程。</p><p>要生成逼真的图像,您可以使用诸如 “的照片”、“的照片”、“逼真” 或 “超逼真” 之类的短语。要生成艺术家的图像,您可以使用诸如 “巴勃罗·皮卡索的作品” 或 “伦勃朗的油画” 或 “弗雷德里克·埃德温·丘奇的风景艺术” 或 “阿尔布雷希特·丢勒的铅笔画” 之类的短语。</p><p>你也可以组合不同的艺术家。要按类别生成艺术图像,可以在提示中添加艺术类别,例如 “海滩上的狮子,抽象”。其他一些类别包括 “油画”、“铅笔画”、“波普艺术”、“数字艺术”、“动漫”、“卡通”、“未来主义”、“水彩”、“漫画” 等。您还可以包括灯光或相机镜头(如 35 毫米宽镜头或 85 毫米宽镜头)和取景细节(人像/风景/特写等)。</p><p>请注意:即使多次给出相同的提示词,模型也会生成不同的图像。因此,您可以生成多个图像并选择最适合您的应用程序的图像。</p><p>以下举例。有如下这段英文的描述词:</p><pre><code>prompts = [
"symmetry!! portrait of vanessa hudgens in the style of horizon zero dawn, machine face, intricate, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, art by artgerm and greg rutkowski and alphonse mucha, 8 k",
]
for prompt in prompts:
payload = {"prompt": prompt, "width": 512, "height": 512, "seed": 1}
compressed_output_query_and_display(payload, "generated image with detailed prompt")</code></pre><p>输出的图像结果如下。是不是已经有些令人惊艳的感觉了?</p><p><img src="/img/remote/1460000044565536" alt="图片" title="图片"></p><h4><strong>反向提示参数 Negative Prompt Parameter</strong></h4><p>使用 Stable Diffusion 模型生成图像时,反向提示 (Negative Prompting) 也是一个重要方法。反向提示 (Negative Prompting) 提供了对图像生成过程的额外控制,引导模型避开生成的图像中的某些对象、颜色、样式、属性等。</p><p>让我们来看一段反向提示(Negative Prompting)的代码示例:</p><pre><code>prompt = "emma watson as nature magic celestial, top down pose, long hair, soft pink and white transparent cloth, space, D&D, shiny background, intricate, elegant, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, artgerm, bouguereau"
payload = {"prompt": prompt, "seed": 0}
compressed_output_query_and_display(payload, "generated image with no negative prompt")
negative_prompt = "windy"
payload = {"prompt": prompt, "negative_prompt": negative_prompt, "seed": 0}
compressed_output_query_and_display(
payload, f"generated image with negative prompt: `{negative_prompt}`"
)</code></pre><p><img src="/img/remote/1460000044565537" alt="图片" title="图片"></p><p>代码运行结果如上面的两幅图对比所示。</p><p>左图是没有采用反向提示 (Negative Prompting) 方法生成的图,右图是采用了反向提示 (Negative Prompting) 方法生成的图。相信大家已经看到的这个神奇的差异了。</p><p>另外,还有值得一提的地方是:尽管你可以通过指定否定词 “没有”、“except”、“no” 和 “not” 来在原始提示中指定其中的许多概念,但据观察,Stable Diffusion 模型无法很好地理解否定词。因此,在根据用例定制图像时,应使用反向提示参数 (Negative Prompt Parameter)。</p><pre><code>prompt = "a portrait of a man without beard"
payload = {"prompt": prompt, "seed": 0}
compressed_output_query_and_display(payload, f"prompt: `{prompt}`, negative prompt: None")
prompt, negative_prompt = "a portrait of a man", "beard"
payload = {"prompt": prompt, "negative_prompt": negative_prompt, "seed": 0}
compressed_output_query_and_display(
payload, f"prompt: `{prompt}`, negative prompt: `{negative_prompt}`"
)</code></pre><p>举例说明如下:</p><p><img src="/img/remote/1460000044565538" alt="图片" title="图片"></p><p>左图是没有采用反向提示 (Negative Prompting) 方法生成的图,虽然提示词里明确写明了 "a portrait of a man without beard",用了 “without” 这种制定否定词,但是仍然没有达到效果(生成的图像中的男人仍然有胡须)。</p><p>右图是采用了反向提示 (Negative Prompting)方法生成的图,达到了预期的效果生成的图像中的男人无胡须)。</p><h3><strong>清理和释放资源</strong></h3><p>实验完成后,请通过运行以下代码清理和释放资源,以避免不必要的费用开销:</p><pre><code># Delete the SageMaker endpoint
model_predictor.delete_model()
model_predictor.delete_endpoint()</code></pre><p>成功释放资源后,在 SageMaker 控制台的 “Endpoints” 项,就应该看不到有任何的端点在部署了,如下图所示:</p><p><img src="/img/remote/1460000044565539" alt="图片" title="图片"></p><h3><strong>小结</strong></h3><p>本篇作为文生图 (Text-to-Image) 领域动手实践系列的上集,主要涉及了两个大方面:</p><ol><li>首先,通过介绍 Stable Diffusion 模型在 Amazon SageMaker JumpStart 上的快速部署和推理细节,带领大家一起领略了大模型的部署其实没有神秘,而 SageMaker JumpStart 是大家入门学习的好帮手;</li></ol><ol start="2"><li>另外,本文还 Stable Diffusion 模型,逐行代码为大家演示了如何进行 Stable Diffusion 大模型的预训练模型的部署和推理,其中包括:运行环境准备、角色权限配置、支持的主要推理参数、图像的压缩输出、提示工程 (Prompt Engineering)、反向提示 (Negative Prompting) 等内容。</li></ol><p>下一篇将继续以 Stable Diffusion 模型为力,介绍预训练模型在客户数据集上的微调 (Fine-tune),以及亚马逊云科技提供的更高阶的面向企业或科研单位生产环境级别的一些完整解决方案,敬请期待。</p><p>请持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态!</p><h4><strong>往期推荐</strong></h4><p><a href="https://link.segmentfault.com/?enc=z%2B45EWeTmoWjKsZl%2BWWJcA%3D%3D.r07GgAI%2FgIk3JeiazDV1JTw0FOYqIUgF51ATWPaZq9jn7krzXCZ1hWYc8S6wDJ%2Bl4ZMGpaQ32rgs4Ad1c7WcUu7Nr7ezGGcHEZdeIWtE%2BuBmv2fil17ocPhcwlKucvpwKkIwWh2sQxZni4MzSQpWMnjRD7qnAdd1PRxrNd9IiFsTh%2F2l5cw34gW%2FE3dc%2Fkrgux%2FhkKhIMQXBwilqQjKt6w%3D%3D" rel="nofollow">#开发者生态</a></p><p><a href="https://link.segmentfault.com/?enc=rir5%2FE6mf8Frr8AFzOyYHg%3D%3D.lmw1FcIfeiRrDcrRBK9UKqb%2BKFyoUv8wj5uL9PUCEHZbw%2FJC10FinEcbSL8D0bKv4rJRIEHedPJTBiuJWpHPfycM1aFIHO2K4YDjKzI6BWpTAkcARTAXxN0iI9FVJlXS%2B0VUqG%2FsAJx84ems7lDf4UNT5CgtPJC3UssON7t464zqU11iRbQH93pnrpWKdeRMPO6PQ3vQZ%2Fr47KT7BDDfYw%3D%3D" rel="nofollow">#亚马逊的开源文化</a></p><p><a href="https://link.segmentfault.com/?enc=Nwa9UGiHfJUpQZun9bOH6g%3D%3D.qTp%2BurWRmfHG%2FQ%2F8TMGy2QlGVWt7q%2B5RmqtOyVPVNF7zCwU7FUd8A2sJuqV7TtbSBTXid%2FQB%2F9Z1AZcm%2FFghM1c6A0kr%2BfiCgnjp6k1FQIWJclvj9dhlh3fXCKK1alADcRoYrhCO%2F4mdlujWNRXsekbYUxeoPtL8eYuoLi7%2BavTHINwKljjbV1iQ%2FieQ0JIByuyVoS0SEjw%2FtsDFAsrDAw%3D%3D" rel="nofollow">#构建模型最佳实践</a></p><p><img src="/img/remote/1460000044565540" alt="图片" title="图片"></p><p>文章来源:<br><a href="https://link.segmentfault.com/?enc=vJOEuGZd3pc6ISyEjyXPcg%3D%3D.YLFkLAM31v38HbwzZXBo6z3Vw522I8%2FUer3NRxWDekIuLsEVDwc%2F%2F1SCykFl63S5reMBuTZfrvHy7pX1PI%2BmBE%2F1HxXJ69CZs42%2FREbegv7fabJiIu74vA08guaCBgPNiyhW9%2FHrbFEv%2FnHMi8yGX2%2FFA5swemkWoGSke%2BAi0AHJ0%2Bp%2FA3dz%2F1lunEWo2I67" rel="nofollow">https://dev.amazoncloud.cn/column/article/6492dcb385edc058b7ab8e22?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=SF</a></p>