在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1 405B模型(上篇)

在2024年的亚马逊云科技re:Invent全球云计算春晚里,亚马逊云科技CEO - Matt Garman介绍了亚马逊云科技的AI模型托管平台Amazon Bedrock上的模型蒸馏服务Model Distillation,令小李哥印象十分深刻。该功能可自动化地为特定场景的知识创建一个蒸馏模型。它通过一个大参数的基础模型(FM),即教师模型(Teacher Model)生成回复响应,并使用这些响应对一个较小的学生模型(Student Model)进行微调。同时该新功能采用数据合成技术来改进教师模型的响应。Amazon Bedrock 会托管最终的蒸馏模型用于推理,为特定知识场景提供响应速度更快、成本更低,且精度接近教师模型的新模型。

我想各位开发者们肯定是希望在能使用功能强大而且非常精确的AI基础模型来构建他们的生成式AI应用。然而在某些特定的场景知识下,这些模型的延迟和精确度可能并不理想。此外随着生成式AI应用扩展到数非常庞大的用户交互,开发者们希望获得更好的性价比,毕竟开发者不是企业用户,无法负担得起庞大的AI成本。为了降低延迟并提高成本效益,很多开发者开始转向较小规模的模型。然而对于某些只是场景下,较小的模型由于参数较低、知识背景有限,无法提供最佳精度。通常开发者们会转向微调模型来解决该问题,但是微调需要额外的专业AI技能来创建高质量的标注数据集,才能提升模型在特定用例上的准确性。

为了解决以上的问题,我们不得不提到借助Amazon Bedrock的新功能Model Distillation 模型蒸馏,通过该功能我们将大模型的知识转移到小模型,提升小型学生模型的精度,使其表现和性能接近于高性能教师模型。通过蒸馏技术,开发者就可以为特定场景知识创建更小的模型,这些模型在某些场景下的推理速度最高可提升至传统大模型的5倍,成本最多可降低75%!!!!并且在热门的检索增强生成RAG等用例中,仅会损失不到2%的准确精度。不过通常模型蒸馏一般是将所选教师模型的知识传递给同一系列的学生模型,如Amazn Nova系列、Anthropic Claude系列等。

在本系列的上篇中,小李哥会带大家了解模型蒸馏的背后原理,以及如何在亚马逊云科技上给Llama 3.1创建一个蒸馏任务。

文章所需背景知识

模型蒸馏的背后原理

亚马逊云科技上的上的模型蒸馏通常是通过教师大模型生成响应,利用专有数据合成技术改进教师模型的响应生成,并对学生模型进行微调提高特定知识场景的性能。Amazon Bedrock采用了多种行业领先的数据合成技术来增强教师模型的响应生成能力,并创建高质量的微调数据集。这些技术针对特定的场景进行了优化,比如Amazon Bedrock可以根据开发者现有数据集内的提示词,生成类似的提示词来扩充训练数据集,从而有效地增加微调数据的数量,解决开发者微调训练集不足的问题。此外还可以使用Amazon Bedrock提供的人工专业生成的预制提示-响应对作为训练集,以生成高质量的教师模型响应。目前Amazon Bedrock Model Distillation模型蒸馏功能支持Anthropic、Meta和Amazon Nova模型。

什么是Amazon Bedrock服务?

Amazon Bedrock 是亚马逊云科技(AWS)提供的一项生成式AI管理管理服务,可以帮助开发者轻松构建和部署基于基础模型(Foundation Models, FMs)的生成式AI应用。借助 Amazon Bedrock,开发者无需管理底层基础设施,即可在亚马逊云科技上访问来自多个领先AI模型提供商的预训练模型,快速实现文本生成、图像创作、语义搜索等AI任务。如Anthropic、AI21 Labs、Cohere和Stability AI等厂商。

Amazon Bedrock可广泛应用于智能客服、内容生成、个性化推荐、代码生成、营销自动化等多个领域,帮助开发者减去基础设施维护、成本托管的高昂成本,仅需API调用即可便捷的将模型的能力集成到AI应用之中,提升用户体验和运营效率。

在亚马逊云科技上创建模型蒸馏的实操步骤

首先进入亚马逊云科技Amazon Bedrock控制台,在左侧导航栏中选择Custom models(自定义模型)。我们可以看到三种自定义方法:微调(Fine-tuning)、蒸馏(Distillation)和持续预训练(Continued pre-training)。

2)我们如上图选择 "Create Distillation job"(创建蒸馏任务),开始使用模型蒸馏对我们想使用的大模型进行蒸馏。

3)输入您的蒸馏模型名称和任务名称,这里可以任起名字。

4)然后我们选择教师模型(Teacher Model) - Llama 3.1 405B Instruct,并根据所选教师模型从可用的学生模型列表中选择一个学生模型(Student Model)。教师模型和学生模型必须属于同一系列,且学生模型参数需要小于教师模型。例如如果我们选择Meta Llama 3.1 405B Instruct作为教师模型,那么我们只能选择Llama 3.1 70B或8B Instruct作为学生模型。

5)接下来我们进入合成数据步骤。在生成合成数据时,我们需要设置参数Max response length(最大响应长度),该推理参数用于确定教师模型生成的响应内容长度。

接着选择上传S3存储桶中的蒸馏输入数据集。该输入数据集已包括现有的提示或专业人工生成提示-响应对。输入文件的格式必须符合所选模型的要求。通常数据集以 JSON 格式存储,每个数据包含输入文本和相应的标签。例如每个 JSON 对象可能包含一个 "input" 字段和一个 "label" 字段,其中 "input" 包含模型需要预测的文本,"label" 包含相应的目标输出。

6)选择Amazon S3存储桶以存储蒸馏输出的任务指标数据,并设置相应的IAM角色访问权限以确保允许Amazon Bedrock在S3桶中存入数据,之后点击 "Create Distillation job"(创建蒸馏作任务),点击后会自动开始模型蒸馏任务。

7)蒸馏任务创建成功后,我们可以在控制台主页的Jobs页面中跟踪训练的进度,待任务完成后,蒸馏后的模型将在同一页面的Models选项卡中出现并可以使用。

相关推荐
一水鉴天7 分钟前
为AI聊天工具添加一个知识系统 之49 “‘之47’和蒙板有关的术语”的腾讯云 AI 代码助手答问(部分)
人工智能·云计算
深图智能7 分钟前
PyTorch使用教程(15)-常用开源数据集简介
人工智能·pytorch·python·深度学习
剑盾云安全专家29 分钟前
如何用AI智能生成PPT,提升工作效率和创意
人工智能·科技·aigc·powerpoint·软件
XianxinMao38 分钟前
语言模型的价值定位与技术突破:从信息处理到创新认知
人工智能·语言模型·chatgpt
静心问道40 分钟前
ConvBERT:通过基于跨度的动态卷积改进BERT
人工智能·深度学习·bert
Yuleave1 小时前
大型语言模型(LLM)在算法设计中的系统性综述
大数据·算法·语言模型
大龄码农有梦想1 小时前
Spring AI提示词模板PromptTemplate的使用
人工智能·spring·spring ai·prompt提示词·prompttemplate·提示词模板
MiniFlyZt1 小时前
图片头像上传(阿里云OSS)
阿里云·云计算
董董灿是个攻城狮2 小时前
023:到底什么是感受野?
人工智能·计算机视觉·cnn
yuanlulu3 小时前
昇腾环境ppstreuct部署问题记录
人工智能·深度学习·llm·ocr·ppstructure