书名:生成式AI入门与AWS实战
ISBN:978-7-115-64416-9
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 [美] 克里斯·弗雷格利(Chris Fregly) [德] 安特耶·巴特(Antje Barth) [美] 舍尔比·艾根布罗德(Shelbee Eigenbrode)
译 生成式AI技术兴趣小组
责任编辑 秦 健
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书是专注于如何在AWS上开发和应用生成式AI的实用指南,旨在为技术领导者、机器学习实践者、应用开发者等提供深入了解和应用生成式AI的策略与方法。本书首先介绍了生成式AI的概念及其在产品和服务中的应用潜力,然后详细阐述了生成式AI项目的完整生命周期。作者探讨了多种模型类型,如大语言模型和多模态模型,并提供了通过提示工程和上下文学习来优化这些模型的实际技巧。此外,本书讨论了如何使用LoRA技术对模型进行微调,以及如何通过RLHF使模型与人类价值观对齐。书中还介绍了RAG技术,以及如何利用LangChain和ReAct等开发agent。最后,本书介绍了如何使用Amazon Bedrock构建基于生成式AI的应用程序。基于该强大的平台,读者可以实现自己的创新想法。
本书适合对生成式AI感兴趣的学生和研究人员、在AWS上开发AI应用程序的软件开发人员和数据科学家、寻求利用AI技术优化业务流程的企业决策者以及对技术趋势保持好奇心的科技爱好者阅读。
本书提供如下资源:
● 程序源代码;
● 本书思维导图;
● 异步社区7天VIP会员。
要获得以上资源,您可以扫描下方二维码,根据指引领取。
作者、译者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见下图)。本书的作者、译者和编辑会对您提交的勘误信息进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。
如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。
“异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域四十余年的发展与积淀。异步图书面向IT行业以及各行业使用信息技术的用户。
当前,生成式AI领域的发展日新月异,即便是对从业者来说,新的技术名词也可能让他们应接不暇。这本书不仅详细介绍了众多前沿技术名词及其应用场景,而且提供了一条清晰的路径。这条路径可以帮助任何对此感兴趣的读者整合应用这些技术,以构建完整的端到端应用程序,而不仅仅是停留在理论学习的层面。对希望将AI技术应用到实际场景中的从业者而言,这本书无疑是一份极具价值的资源,它能帮助他们在AI技术的落地应用方面取得实质性的进展。
——贾扬清,Lepton AI创始人兼CEO
这本书广泛且深入地覆盖了生成式AI的基础概念、核心理论与前沿实践。从基础知识出发,步步深入至模型的训练、微调和部署,直至创新应用的各个阶段。它不仅为生成式AI领域的初学者铺设了一条系统的学习路径,帮助他们构建了对这一复杂技术领域的宏观视野,而且为希望在AWS上构建可扩展的高性能生成式AI产品的从业者提供了深度洞察与实操指南。这本书兼具理论深度与实践广度,对AI研发工程师、产品经理、营销策划师以及企业领导者来说,是一份不可多得的学习资料。
——王小川,百川智能创始人兼CEO
这本书获得了AWS、Meta等科技巨头资深人士和行业专家的高度评价。中文版的面世将有助于开发者更深入地学习和理解生成式AI。作为一份理论与实践并重、视野开阔、内容丰富的生成式AI实战指南,这本书为读者开发生成式AI应用程序提供了坚实的基础和指导。它不仅阐释了生成式模型、提示工程等基本概念,而且系统讲解了大语言模型及其在Amazon SageMaker上的应用。书中深入探讨了多种类型的微调技术细节,可以帮助读者构建上下文感知的跨模态(文本、图像等)生成式AI应用程序。作者巧妙地将理论知识、实践代码与真实案例相结合,为希望在AWS上构建和部署生成式AI应用程序的读者——无论是AI工程师、数据科学家还是产品经理,无论是初学者还是领域专家——提供了一条构建理想生成式AI解决方案的有效路径。
——周明,澜舟科技创始人兼CEO,微软亚洲研究院原副院长
如今,大语言模型企业决胜的关键点不仅在于谁能夯实基础、系统布局,更在于谁能将大语言模型与业务场景有效结合,用好大语言模型,让其真正产生价值。这本书堪称理解和应用生成式AI的优秀资源,其中不仅包含翔实的技术细节,更有丰富的实际案例和实用技巧。对希望在AWS平台上构建生成式AI应用程序的行业人士而言,这本书具有极高的参考价值。
——霍太稳,极客邦科技创始人兼CEO
生成式AI让人类迎来了科技变革最大的周期,这场变革比移动互联网与云计算所带来的变革都要剧烈。开发者的创造力和生产力预计将实现十倍速的提升,创造出此前难以想象的各种丰富多彩的应用。在这巨变之中,庞杂的信息扑面而来。这本书由浅入深地阐释了生成式AI的基础知识、示例,以及关键技术、工程技巧与实践,对开发者来说是一本值得阅读的佳作,有助于他们掌握前沿技术。
——蒋涛,CSDN创始人兼董事长,中国开源软件推进联盟副主席
当大家都在热烈讨论大语言模型和AIGC时,如何让这些先进技术尽快落地,并深度服务于商业和社会,已成为新的巨大挑战。作者在这本书中深入分析了如何构建这些前沿的生成式模型,并分享了宝贵的实践经验,旨在指导你如何选择现有的生成式模型或从头开始构建一个新模型。
——刘湘明,钛媒体联合创始人
生成式AI领域发展迅速,涉及的知识庞杂而丰富。这本书介绍了生成式AI的诸多基本概念和定义,有助于初学者对这一热门领域建立一个较为全面的认知。特别值得一提的是,书中还增加了对AWS相关技术的介绍与讲解。在生成式AI领域,AWS可以提供先进的模型、工具和服务,其用户群体遍布国内各行各业。对于想要深入了解AWS技术或在AWS平台上进行实践的读者,这本书提供了针对性的指导和帮助。
——孟鸿,量子位创始人兼CEO
这是一本颇具趣味的实战指南,适合国内生成式AI开发者、科技发烧友,以及那些计划利用AI技术优化业务流程的企业决策者阅读,是一本实用的工具书。这本书图文并茂,从行文上体现了生成式AI“越智能越傻瓜,越智能越简便”的技术精髓。尽管人工智能领域顶级研究人员的培养至关重要,但普惠型入门级人才的阶梯式培养也同样迫切。
——谢丽容,《财经》杂志副主编
目前,生成式AI已经成为人工智能最重要的发展方向之一。相关研究者和工程师需要不断学习和掌握这个方向的前沿研究、技术发展和工程落地。这本书由专业人士精心创作,系统地介绍了生成式AI的相关基础概念及工程实践方法,并提供了宝贵的实践经验和翔实的操作指南。相信这本书会为技术从业者带来实际价值。同时,对于非技术背景的AI从业者,这也是一本非常合适的入门教程。
——赵云峰,机器之心创始人
我对这本书的出版感到非常兴奋——它很好地融合了重要的背景知识、理论信息及详细的实践代码和深入讲解。我很喜欢阅读它,相信你也会喜欢!你将从基础开始掌握生成式基础模型、提示工程等,循序渐进地学习大语言模型,并了解如何通过Amazon SageMaker使用它们。在掌握基础知识后,你将会了解多种类型的微调,之后深入这本书的核心部分,学习构建能够执行基于上下文推理的应用程序,这些应用程序具有使用不同模态(包括文本和图像)的生成式模型的能力。
——Jeff Barr,AWS副总裁兼首席布道师
这本书展示了在AWS上构建基于生成式AI的解决方案的相关资源。Chris、Antje和Shelbee通过真实世界的示例出色地介绍了大语言模型和多模态模型的关键概念、可能遇到的挑战和实践。这是一本符合时代需求的图书,可加速你从概念到产品构建生成式AI解决方案的过程。
——Geeta Chauhan,Meta应用人工智能主管
在开发和部署生成式AI应用程序的过程中,许多复杂的决策点共同决定了应用程序能否生成高质量的输出,以及能否以经济高效、可扩展和可靠的方式运行。这本书揭开了底层技术的神秘面纱,并提供了详细指导,可以帮助读者理解和做出决策,并最终成功开发生成式AI应用程序。
——Brent Rabowsky,AWS高级经理,人工智能/机器学习专家解决方案架构师
找到一本涉及模型开发和部署端到端过程的图书很难!如果你是机器学习从业者,这本书值得你拥有!
——Alejandro Herrera,Snowflake数据科学家
这本书深入探讨了如何构建和使用生成式AI应用程序。它涵盖生成式AI模型的整个生命周期,而不仅仅是提示工程或微调。如果考虑将生成式AI应用程序用于复杂场景,你应该阅读这本书,了解成功的应用程序所需的技术组合和工具。
——Randy DeFauw,AWS高级首席解决方案架构师
这本书非常适合用于入门生成式AI应用程序开发。互联网上关于这个主题的信息铺天盖地,让人不知从哪里入手。而这本书提供了一个清晰且有条理的指南:它从基础知识一直讲到高级主题,如参数高效微调和模型部署等。这本书非常实用,还介绍了如何在AWS上部署生成式AI应用程序。这本书对于数据科学家和工程师是极其宝贵的资源。
——Alexey Grigorev,OLX集团首席数据科学家兼DataTalks.Club创始人
这是一本关于构建生成式AI应用程序的实用图书。Chris、Antje和Shelbee共同整理了这份出色的学习资源,在未来几年内它都将是非常有价值的——如果可能的话,可以将其作为大学的学习内容。对任何在AWS上大规模构建生成式AI应用程序的人来说,这本书不容错过。
——Olalekan Elesin,HRS集团数据科学平台总监
如果你正在寻找构建和部署生成式AI产品或服务的强大学习资源,那么这本书是你的不二之选。在Chris Fregly、Antje Barth和Shelbee Eigenbrode的专业指导下,你将从生成式AI应用程序开发新手成长为精通训练、微调和应用程序开发等复杂细节的行家。对每个初出茅庐的AI工程师、产品经理、营销人员或商业领袖来说,这本书都是不可或缺的指南。
——Lillian Pierson,PE,Data-Mania创始人
这本书深入探讨了创建理解多样化数据类型并开发基于上下文的决策的应用程序所需的创新技术。通过这本书,读者可以获得全面的视角,将理论与生成式AI应用程序所需的实践工具连接起来。对那些希望充分利用AWS在生成式AI领域的潜力的人来说,这本书值得一读。
——Kesha Williams,Slalom Consulting总监兼AWS机器学习Hero
生成式AI领域的发展如此之快,以至于看到如此多的相关知识被浓缩成一本内容全面的图书,真是令人难以置信。真棒!
——Francesco Mosconi,Catalit数据科学主管
阅读完本书,读者将了解当今产业界和学术界常用的生成式AI用例和任务。首先,你将深入了解如何构建这些前沿的生成式模型,并获得实践经验,以帮助你选择是重用现有的生成式模型还是从头开始构建一个新模型。然后,你将学习如何将这些生成式模型适配到特定领域的数据集、任务和用例中,以支持商业应用。
本书为人工智能和机器学习爱好者、数据科学家和数据工程师提供了学习生成式AI模型训练、微调以及部署到生产环境的技术基础和实践。我们假设你已经熟悉Python和深度学习的基本组件,如神经网络、前向传播、激活函数、梯度和反向传播,以便理解本书介绍的概念。
如果你对Python和深度学习框架(如TensorFlow或PyTorch)有基本的了解,就足以理解本书中的代码示例。熟悉AWS对于学习这些概念并不是必需的,但对于了解某些特定于AWS的示例很有用。
在本书中,首先,你将深入探索生成式AI项目生命周期,并学习提示工程、少样本上下文学习、生成式模型预训练、领域自适应、模型评估、参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)和基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)等主题。
其次,你将动手实践流行的大语言模型,如Llama 2和Falcon,以及包括Stable Diffusion和IDEFICS在内的多模态模型。你可以通过Hugging Face模型中心、Amazon SageMaker JumpStart或Amazon Bedrock托管的生成式AI服务访问这些基础模型。
然后,你还将学习如何实现基于上下文的检索增强生成(Retrieval-Augmented Generation,RAG)[1]和基于agent的推理工作流[2]。你将探索应用程序框架和库,包括LangChain、ReAct[3]和程序辅助语言(Program-Aided-Language,PAL)。你可以利用这些框架和库来访问自己的定制数据源和API,或与外部数据源(如网络搜索和合作伙伴数据系统)进行集成。
[1] Patrick Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”, arXiv, 2021.
[2] Jason Wei et al., “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models” , arXiv, 2022.
[3] Shunyu Yao et al., “ReAct: Synergizing Reasoning and Acting in Language Models”, arXiv, 2023.
最后,你还将在多模态(如文本、图像、音频和视频)生成式AI用例中探索与生成式相关的概念、框架和库。
如果你现在还未能完全理解这些概念,不用担心,本书将深入探讨每一个主题。有了这些知识和实践经验,你就可以开始构建前沿的生成式AI应用程序,这些应用程序有助于更好地服务客户、超越竞争对手并增加收入。
下面是本书所使用的印刷约定。
表示新术语、URL、电子邮件地址、文件名、文件扩展名。
用于代码清单,以及在段落中引用程序元素,如变量或函数名称、数据库、数据类型、环境变量、语句和关键字。
用于在代码块中突出显示感兴趣的片段,以及在对话中区分多个说话者,或者区分人类用户和AI助手。
这表示一个提示或建议。
这表示一个一般性的注释。
本书的代码示例可在https://oreil.ly/generative-ai-on-aws-code中找到。
如果读者发现技术问题,或者在使用代码示例时遇到问题,可以通过异步社区中的本书页面与我们联系。
本书是为了帮助读者更好地完成工作。一般而言,对于本书所提供的示例代码,读者可以在自己的程序和文档中使用它们,并不需要联系我们以获得许可,除非读者复制了大块的代码。例如,在编写程序时使用了本书的几段代码并不需要许可,但是,销售或发布O’Reilly图书的示例代码需要得到我们的许可;引用本书以及书中的示例代码并不需要获得许可,但是把本书的大量示例代码复制到自己产品的文档中需要获得许可。
我们赞赏注明出处,但一般情况下并不要求这么做。出处注明通常包括书名、作者、出版商和ISBN。例如,“Generative AI on AWS by Chris Fregly, Antje Barth, and Shelbee Eigenbrode(O'Reilly), Copyright © 2024 Flux Capacitor, LLC, Antje Barth, and Shelbee Eigenbrode, 978-1-098-15922-1”。
如果读者觉得自己对本书的示例代码的使用超出了正常范围或者超出上面的许可,可以通过permissions@oreilly.com与我们联系。
近40年来,O’Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和创新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量文本和视频资源。更多相关信息请访问http://oreilly.com。
如果读者对本书有任何的评论或疑问,可以与出版社联系。
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书提供了一个网页,其中包含勘误表、示例和其他信息,读者可以通过https://oreil.ly/generative-ai-on-aws进行访问。
如果你对本书有什么评论或技术上的建议,请发送电子邮件到errata@oreilly.com.cn。
关于我们的图片和课程的新闻和信息,可以访问http://oreilly.com。
我们想要感谢所有的审阅者,包括Brent Rabowsky、Randy DeFauw、Sean Owen、Akhil Behl和Sireesha Muppala博士,你们的反馈对我们在本书中遵循的写作方式至关重要,你们的指导与直觉也帮助我们把本书中所包含的代码示例保持在适当的技术深度。
我将此书献给我的母亲,她一直激励我与他人分享知识。此外,在我探索人生、质疑事物和寻求答案的过程中,她始终耐心倾听。
我要感谢我的家人为我提供了良好的教育,并在我的职业生涯中始终支持我。特别要感谢我的哥哥Kai,他给我买了第一台笔记本电脑,这确保我有了适合在大学使用的工具,这也是我计算机科学职业生涯的最初催化剂。
感谢我的丈夫Steve和女儿Emily,他们一直是我的“动力之源”,并在本书写作过程中给予我持续的支持,特别是在周末和深夜写作的时候。我还要感谢我的狗Molly,当我为它拍照并将照片用作本书中某些多模态模型的输入时,它耐心地坐着!
在本章中,我们将看到一些生成式AI任务和用例的实际应用,了解生成式基础模型,并探索一个典型的生成式AI项目生命周期。我们将看到的生成式AI用例和任务包括文本、问答、对话式界面、内容审查、源代码生成和个性化营销等。
我们还将了解来自Amazon Web Services(AWS)的一些生成式AI服务和硬件选项,包括Amazon Bedrock、Amazon SageMaker、Amazon CodeWhisperer、AWS Trainium和AWS Inferentia。当在AWS上构建端到端、上下文感知、多模态推理应用程序时,这些服务和硬件选项为生成式AI提供了极大的灵活性。
我们从探索一些常见的生成式AI用例和任务开始。
与深度学习类似,生成式AI是一种通用技术,可以满足多个行业和客户群体的多种用途。目前已有多种类型的多模态生成式AI任务,这里列出了常见的任务及相关用例。
生成一段较短的文本,同时保留主要思想。示例包括将新闻文章、法律文件或财务报告摘要为更少的字数或段落,以便更快地阅读。通常在客户支持中使用摘要功能,以快速地概述客户与客服代表之间的互动。
修改文本措辞以适应不同的受众、正式程度或语气。例如,可以将正式的法律文件转换为使用较少法律术语的不那么正式的文件,以吸引非法律专业的受众。
从文档中提取诸如姓名、地址、事件、数据或数字等信息。例如,将电子邮件转换为ERP系统(如SAP)中的采购订单。
直接针对一组文档、图像、视频或音频提出问题。例如,可以设置一个面向员工的内部聊天机器人,用于回答有关人力资源和福利的问题。
作为问答任务的扩展,你可以询问生成式模型一组文本、图像、视频或音频中是否包含有害内容。
为给定的内容(如文档、图像、视频或音频剪辑)分配一个类别。例如,删除电子邮件中的垃圾邮件、过滤不适当的图像及为基于文本的客户服务记录添加标签等。
通过提供类似聊天界面的方式处理多轮对话,以完成相应任务。例如自助的客户支持服务或用于心理健康治疗的聊天机器人等。
语言翻译是生成式AI最早的用例之一。例如,假设本书的出版商想出版德语翻译版本,以帮助扩大图书的影响力。或者,你希望将基于Python的示例转换为基于Java的,以便用于现有的Java的应用程序。
根据自然语言代码注释或者手绘草图生成源代码,如图1-1所示。在这里,这个基于HTML和JavaScript的网页是基于餐巾纸背面涂鸦的UI草图生成的。
通过问题推理来发现潜在的新解决方案、权衡或隐藏的细节。例如,假设一位CFO(Chief Financial Off icer,首席财务官)向投资者提供基于音频的季度财务报告及更详细的书面报告。通过对这些不同媒介格式的信息进行推理,模型可能会发现一些关于公司经营状况的结论,而这些结论在原始的音频或文本中并未直接提及。
可以使用生成式模型从给定的文本语料库中掩蔽个人身份识别信息(Personally Identif iable Information,PII)。对于许多需要处理敏感数据并希望从工作流中删除PII数据的用例,这非常有用。
根据用户个人资料特征生成个性化的产品描述、视频或广告。假设一个电子商务网站希望根据登录用户的年龄或家庭情况为每个产品生成个性化描述。还可以为老年人、儿童家长或儿童生成个性化的产品图像,以更好地适配和吸引不同特征的用户,如图1-2所示。
在这个示例中,每个用户会看到同一产品的独特和高度个性化的图像与描述。这最终可能会带来更多的产品点击和更高的销售额。
在这些生成式的用例和任务中,模型创建的内容已接近于人类对语言的理解,这确实令人惊叹。这是由一种叫作Transformer的神经网络架构来实现的,我们会在第3章中学习Transformer。
在1.2节中,我们将学习如何通过模型中心访问基础模型。
基础模型(foundation model)是由数十亿个参数(又称权重)组成的非常庞大而复杂的神经网络模型。模型参数是在训练阶段不断优化和学习的——这个阶段通常称为预训练(pre-training)。基础模型在大量训练数据上进行训练——通常在几周甚至几个月的时间内,使用大型分布式CPU和GPU集群来训练。在学习数十亿个参数之后,这些基础模型可以表示诸如人类语言、图像、视频和音频等复杂实体。
在大多数情况下,我们将从模型中心(如Hugging Face Model Hub、PyTorch Hub或Amazon SageMaker JumpStart)开始生成式AI项目。模型中心是模型的集合,通常包含详细的模型描述以及它们所针对的用例。
在本书中,我们将使用Hugging Face Model Hub和Amazon SageMaker JumpStart来访问Meta(原Facebook)的Llama 2、Technology Innovation Institute(TII)的Falcon以及Google的FLAN-T5等基础模型。我们将在第3章中深入了解模型中心和基础模型。
接下来,我们会介绍一个典型的生成式AI项目的生命周期,本书后续内容也会大致按照这个流程来展开。
虽然目前还没有权威的生成式AI项目生命周期的定义,但图1-3所示的框架可以帮助你了解生成式AI应用程序之旅中最重要的几个环节。通过本书,你将直观地感受该过程中的每个步骤,并在每个步骤中避免潜在的难题,改进决策。
接下来我们深入介绍一下图1-3所示的生命周期中的每个步骤。
与任何项目一样,我们首先需要定义项目范围,包括计划通过生成式AI应用程序解决的特定生成式用例和任务。我们建议从一个单一的、成熟的用例开始。这将帮助你熟悉环境,并了解这些模型的能力和局限性,而不必同时优化模型以适配不同的任务。虽然这些模型能够执行多项任务,但从一开始就在多项任务上评估和优化模型会比较困难。
生成式AI模型能够成功地执行许多不同类型的任务。但是,你需要决定现有的基础模型是否适合你的应用程序需求。在第2章中,我们将学习如何使用提示工程(Prompt Engineering)和上下文学习(In-Context Learning),以直接使用已有的基础模型。
我们将从已有的基础模型开始(参见第3章),这会大幅缩短由开发到投入使用的时间,因为这样可以省去预训练的步骤。预训练是一个资源密集型的过程,通常需要数万亿个单词、图像、视频或音频片段才能开始。运维和管理这种规模的任务需要大量时间、耐心和计算能力——从头开始预训练通常需要数百万GPU计算小时。
你还需要考虑使用的基础模型的规模,这将影响模型训练和推理所需的硬件与成本。虽然较大的模型往往能更好地支持更多的任务,但情况并非总是如此,这取决于训练和调优期间使用的数据集。
我们建议你针对生成式用例和任务尝试不同的模型。从已有的、有成熟文档的、规模相对较小(如70亿个参数)的基础模型开始,用较少数量的硬件(与175亿个参数以上的较大模型相比)快速迭代,学习与这些生成式AI模型交互的独特方式。
在开发过程中,我们通常会从Amazon SageMaker JumpStart或Amazon Bedrock中的playground开始。这可以让你快速尝试不同的提示和模型(参见第2章)。接下来,我们可能会使用Jupyter Notebook、Visual Studio Code(VS Code)或Amazon SageMaker Studio这样的集成开发环境(Integrated Development Environment,IDE)编写Python脚本,准备试验这些生成式模型时使用的自定义数据集。一旦准备好将工作扩展到更大的分布式集群,你就可以迁移到SageMaker分布式训练模块。在该模块中,你可以将任务扩展到更大的计算集群,使用诸如NVIDIA GPU或AWS Trainium这样的加速器(参见第4章)。
虽然一开始可以避免使用加速器,但你可能需要它们以进行更长期的开发和部署更复杂的模型。越早学习NVIDIA GPU或AWS Trainium芯片等加速器的独特(有时有些晦涩)的开发方法越好。好在硬件提供商通过NVIDIA CUDA库和AWS Neuron SDK对大部分复杂性进行了抽象。
将生成式模型适配到特定的领域、用例和任务非常重要。第5章~第7章和第11章专门介绍如何使用定制的数据集对多模态生成式AI模型进行微调,以满足你的业务目标。
此外,随着这些生成式模型变得越来越像人类(重要的是它们要与人类的价值观和偏好对齐,并且总体上表现良好),第7章和第11章探讨了一种称为基于人类反馈的强化学习(Reinforcement Learning From Human Feedback,RLHF)的技术,以使你的多模态生成式AI模型有用、诚实、无害(Helpful, Honest, and Harmless,HHH)。RLHF是更广泛的研究领域——负责任的AI的一个关键组成部分。
虽然生成式模型包含大量的信息和知识,但它们通常需要使用最新的信息或业务的专有数据进行增强。在第9章中,我们将探索使用外部数据源或API进一步增强生成式模型的方法。
为了正确地构建生成式AI应用程序,你需要对模型进行大量迭代。所以,建立明确的评估指标和基准非常重要,这有助于衡量微调的有效性。我们将在第5章中了解如何评估模型。虽然不像传统机器学习那么直接,但模型评估有助于在适配和对齐阶段衡量模型的改进情况,特别是模型与业务目标和人类偏好的契合程度。
当最终拥有一个经过良好调整和对齐的生成式模型时,你就可以部署该模型以进行推理,并将其集成到你的应用程序中。在第8章中,我们将了解如何优化模型以进行推理,更好地利用计算资源,减少推理延迟,并更好地服务用户。
我们还将了解如何使用Amazon SageMaker endpoint(端点)部署模型,这些端点对基于AWS Inferentia计算实例的生成式模型的推理任务进行了专门优化。SageMaker endpoint是服务生成式模型的绝佳选择,因为它们具有高度可扩展性、容错性和可定制性。它们提供了灵活的部署和扩展选项,如A/B测试、影子部署和自动伸缩(参见第8章)。
与任何生产系统一样,你应该为生成式AI应用程序的所有组件设置适当的指标收集和监控系统。在第8章和第12章中,我们将学习如何利用Amazon CloudWatch和Amazon CloudTrail监控在AWS上运行的生成式AI应用程序。这些服务高度可定制,可以从AWS控制台或AWS软件开发工具包(Software Development Kit,SDK)中访问并与每个AWS服务集成,包括Amazon Bedrock,这是一项用于生成式AI的托管服务,我们将在第12章中介绍。
本节将概述AWS提供的专门构建的生成式AI服务和功能栈,如图1-4所示。
模型提供商包括那些正在构建或预训练基础模型的机构,这些模型需要访问强大且性价比高的计算和存储资源。为此,AWS提供了一系列框架和基础设施来构建基础模型。这包括针对生成式AI优化的计算实例,诸如Amazon EC2的自行管理选项,以及像Amazon SageMaker这样的托管选项,用于模型训练和模型部署。此外,AWS还提供了专门为训练和部署生成式模型而优化的加速器。
AWS Trainium是一个专为高性能、低成本训练的工作负载而打造的加速器。同样,AWS Inferentia也是专为高吞吐量、低成本推理而打造的。AWS上针对生成式AI优化的基础设施选项被模型提供商及模型微调人员使用。
模型微调人员包括那些将基础模型调整或对齐到其特定领域、用例和任务的从业者。这通常不仅需要访问计算和存储资源,还需要通过多种工具来轻松获取各种基础模型(而无须管理底层基础设施),从而实现这些特定任务。除了AWS上可用的各种优化后的基础设施以外,微调人员还可以直接访问广泛的流行基础模型,以及用于调整或对齐基础模型的工具,包括Amazon Bedrock和Amazon SageMaker JumpStart内置的功能。
Amazon Bedrock是一项全托管服务,提供对Amazon(如Titan)和热门第三方提供商(如AI21 Labs、Anthropic、Cohere和Stability AI)的模型的访问功能。这使得你可以快速开始试验可用的基础模型。Bedrock还允许你使用自己的数据私有化地定制基础模型,并且将这些模型集成和部署到生成式AI应用程序中。用于Bedrock的Agent是全托管的,它支持将外部专有数据源和模型执行任务的能力相结合,以进行定制化。
你可以通过Amazon SageMaker JumpStart中的模型中心将基础模型部署到Amazon SageMaker endpoint,提供对公开和私有基础模型的访问。此外,SageMaker JumpStart还提供使用SageMaker模型训练组件对可用模型进行微调的功能。针对模型中心的这些可用模型,SageMaker JumpStart会自动生成用于部署和微调的笔记本代码。
Amazon SageMaker通过Amazon SageMaker Studio笔记本中的托管环境,为使用基础模型提供了额外的可扩展性,而无论该模型是否在SageMaker JumpStart中,你都可以在Amazon SageMaker Studio中开发任何可访问的模型,并不受限于SageMaker JumpStart。
我们通常使用额外数据来增强模型,以适配特定的用例,任务或领域。AWS为存储向量嵌入的向量存储提供了多种实现选项。向量存储和嵌入常用于检索增强生成(Retrieval-Augmented Generation,RAG),以高效地从外部数据源检索相关信息,增强与生成式模型一起使用的数据。
可用的选项包括用于Amazon OpenSearch Serverless的向量引擎及可用于Amazon OpenSearch Service的k-NN插件。此外,Amazon Aurora PostgreSQL和Amazon Relational Database Services(RDS)for PostgreSQL都通过内置的pgvector提供向量存储功能。
如果你希望针对特定领域的数据实现完全托管的语义搜索体验,可以使用Amazon Kendra,它会为你创建和管理向量嵌入。
如果你想通过端到端生成式AI应用程序访问生成式模型,AWS提供了多种选项。在AWS上,你可以使用兼具广度和深度的服务来构建自己的生成式AI应用程序;你也可以利用打包的、完全托管的服务来实现。
例如,Amazon CodeWhisperer提供了支持多种编程语言的生成式编码功能,支持诸如代码生成、主动漏洞扫描、代码修复建议、自动建议代码归属等生产力增强功能。
AWS HealthScribe是另一项面向医疗保健行业的生成式AI服务,可以根据患者与临床医生的对话自动生成临床记录。
Amazon QuickSight Q包括内置的生成功能,允许用户使用自然语言询问数据问题,并接收文本答案或可视化结果,使用户能够更深入地了解他们的数据。
本书主要关注1.3节中涉及的部分角色和任务,以及构建生成式AI应用程序。当你继续深入了解生成式AI项目生命周期的特定领域时,可以将本节推荐的服务如Amazon SageMaker JumpStart和Amazon Bedrock作为参考。
现在,我们已经介绍了一些AWS提供的生成式AI核心服务,接下来,我们来看看使用AWS构建生成式AI应用程序的一些优势。
利用AWS构建生成式AI工作负载的主要优势包括提高选择的灵活性、企业级的安全和治理能力、先进的生成式AI能力、通过全托管的服务降低运营成本,以及持续创新的能力。我们通过一些具体示例进一步深入探讨每一个方面。
AWS不仅能够利用一系列服务和功能来满足每种用例的需求,而且在生成式模型的选择方面也提供了灵活性。你不仅能够为特定用例选择合适的模型,而且能够快速更换和评估新模型,以利用新的功能。
AWS服务内置了对受监管行业来说最重要的安全和治理能力。例如,SageMaker模型训练、SageMaker模型部署和Amazon Bedrock支持围绕数据保护、网络隔离、访问控制和授权,以及威胁检测等的关键功能。
AWS提供了丰富的生成式AI模型,从Amazon自研模型到Amazon Bedrock中的第三方提供商模型,再到通过Amazon SageMaker JumpStart提供的公开和私有模型。此外,AWS还投资了用于大规模训练和部署生成式模型的基础设施,如AWS Trainium和AWS Inferentia。
如前所述,许多面向生成式AI的AWS服务和功能都是通过托管的基础设施、无服务器化的产品或打包的解决方案来提供的。你可以专注于生成式AI模型和应用程序,而不必管理基础设施,并能够快速开始使用现成的解决方案和服务。
多年来AWS在云基础设施和人工智能方面积累了丰富的经验,拥有快速创新的能力。
AWS服务和功能栈支持生成式AI,在宽度、深度和可扩展性等方面支持各种用例,无论你是模型提供商、模型微调人员还是模型消费者,都能得到相应的支持。除了AWS提供的生成式AI能力以外,更广泛的AWS服务还支持构建自定义生成式AI应用程序的能力,这将在1.6节中介绍。
生成式AI应用程序不仅仅包含生成式模型。要构建出可靠、可扩展和安全的应用程序,然后提供给该应用程序的最终用户或其他系统的消费者,这需要多个组件的协同工作,如图1-5所示。
当使用像Amazon CodeWhisperer这样的打包生成式AI服务时,所有这些复杂性都被完全抽象化并提供给最终用户。但是,构建定制的生成式AI应用程序通常需要一系列服务。AWS提供了构建端到端生成式AI应用程序所需的广泛服务。图1-6展示了作为更广泛的生成式AI应用程序的一部分可能会使用的AWS服务的一个示例。
在本章中,我们探索了一些常见的生成式AI任务和用例,并学习了一些生成式AI方面的基础知识。
我们还给出了一个典型的生成式AI项目生命周期的示例,涉及确定用例、提示工程(见第2章)、选择基础模型(见第3章)、微调(见第5章和第6章)、与人类价值观对齐(见第7章)、模型部署(见第8章)以及与外部数据源和agent集成(见第9章)。
生命周期中的计算密集型部分(包括微调和人类对齐)受益于对量化和分布式计算算法(见第4章)的理解。这些优化和算法将加快迭代开发周期,这对于开发生成式AI模型至关重要。
在第2章中,我们将学习一些提示工程技巧和实践。无论是使用Amazon SageMaker JumpStart模型中心(见第3章)还是Amazon Bedrock托管的生成式AI服务(见第12章),这些知识对于语言类基础模型(见第3章)和多模态基础模型(见第10章和第11章)都很有用。