AI大模型教程
一起来学习

在亚马逊云科技上高效蒸馏低成本、高精度的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选项卡中出现并可以使用。

文章来源于互联网:在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1 405B模型(上篇)

相关推荐: 对普通人来说,Stable diffusion 和 Midjourney 怎么选?他们有什么区别?

AI视频生成:小说文案智能分镜+智能识别角色和场景+批量Ai绘图+自动配音添加音乐+一键合成视频https://aitools.jurilu.com/ 嗨,大家好,我是云端AI科技,欢迎来到我的AI社区。今天我们来探讨一个被问得最多的话题: Stable di…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » 在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1 405B模型(上篇)

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

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

 在本系列的上篇中,小李哥为大家介绍了在亚马逊云科技上蒸馏模型的工作原理,核心就是通过教师模型生成模型响应把特定领域的知识向学生模型进行转移,并且如何利用Amazon Bedrock为模型蒸馏生成合成数据扩充训练数据集,以及如何在控制台创建一个蒸馏任务。接下来我们来了解关于在亚马逊云科技上为Llama 3.1 405B进行模型蒸馏更多相关知识,如API调用方法、使用历史模型响应自动添加训练数据和调用蒸馏模型生成回复等。

文章所需背景知识

模型蒸馏的背后原理

亚马逊云科技上的上的模型蒸馏通常是通过教师大模型生成响应,利用专有数据合成技术改进教师模型的响应生成,并对学生模型进行微调提高特定知识场景的性能。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应用之中,提升用户体验和运营效率。

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

通过Python SDK Boto3蒸馏模型

除了通过控制台创建模型蒸馏任务外,我们还可以通过亚马逊云科技提供的Python SDK,通过API调用的方式创建。

1. 确保已安装 Boto3 库。如果尚未安装,可以使用以下命令进行安装:

pip install boto3

2. 确保AWS秘钥已正确配置,秘钥用于调用Amazon Bedrock服务的权限。可以通过配置 ~/.aws/credentials文件、以下命令或设置环境变量来实现。

aws configure

3.以下是使用Boto3调用Amazon Bedrock服务创建模型蒸馏任务的示例代码:

import boto3

# 创建 Bedrock 客户端
client = boto3.client('bedrock', region_name='us-east-1')

# 定义模型蒸馏任务的参数
response = client.create_model_distillation_job(
    jobName='your-distillation-job-name',
    roleArn='arn:aws:iam::your-account-id:role/your-role-name',
    clientRequestToken='unique-token-for-idempotency',
    inputDataConfig={
        's3Uri': 's3://your-bucket/your-training-data.jsonl'
    },
    outputDataConfig={
        's3Uri': 's3://your-bucket/your-output-data/'
    },
    distillationConfig={
        'teacherModelIdentifier': 'model-provider.teacher-model-id',
        'studentModelIdentifier': 'model-provider.student-model-id',
        'autoDistill': True
    }
)

# 输出响应
print(response)

使用Amazon Bedrock上的模型调用历史数据进行模型蒸馏

如果大家想在蒸馏过程中重复使用过去的历史数据,跳过在上篇中介绍模拟训练数据生成的步骤,我们可以通过启用模型调用日志(Model Invocation Logging)来收集调用日志、模型输入数据和输出数据。这些日志将记录所有在Amazon Bedrock上执行的模型调用请求中的输入、输出数据。通过添加请求元数据(Request Metadata),我们可以在后续更轻松地筛选日志选择出我们需要的用于训练的历史数据。历史日志格式示例如下:

request_params = {
    'modelId': 'meta.llama3-1-405b-instruct-v1:0',
    'messages': [
        {
            'role': 'user',
            'content': [
                {
                    "text": "What is model distillation in generative AI?"
                }
            ]
        }
    },
    'requestMetadata': {
    "ProjectName": "myLlamaDistilledModel",
    "CodeName": "myDistilledCode"
    }
}
response = bedrock_runtime_client.converse(**request_params)
pprint(response)
---
'output': {'message': {'content': [{'text': 'n''n'
    'Model distillation is a technique in generative AI that involves training a smaller,'
    'more efficient model (the '"student") to mimic the behavior of a larger, '
    'more complex model '(the "teacher"). The goal of model distillation is to'
    'transfer the knowledge and capabilities of the teacher model to the student model,'
    'allowing the student to perform similarly well on a given task, but with much less computational'
    'resources and memory.n'
    'n'}]
    }
}

如果想使用历史数据用于教师模型蒸馏。我们需要在数据生成步骤中勾选“Provide access to inocation logs”,并授权Amazon Bedrock访问调用日志的IAM角色权限。在这个步骤中我们可以指定请求元数据筛选条件,以便仅筛选符合我们蒸馏场景的特定日志,用于微调学生模型。

需要注意的是如果大家希望Amazon Bedrock直接复用调用日志中的历史响应数据,蒸馏过程中选择的教师模型必须与调用历史日志所属的模型保持一致。

调用蒸馏模型生成回复

在使用蒸馏模型之前,我们需要为Amazon Bedrock提权预配置吞吐量(Provisioned Throughput),然后才能使用生成的蒸馏模型进行推理。在购买预配置吞吐量时,我们需要配置和检查以下步骤:

选择承诺期限(Commitment Term)。

选择所需的模型计算单元数(Model Units)。

查看预计的每小时、每日和每月成本。

以下就是为蒸馏模型预制吞吐量的操作截图。

文章来源于互联网:在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1大语言模型(下篇)

相关推荐: AIGC | Ubuntu24.04桌面版安装后必要配置

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x02 Ubuntu 24.04 桌面版必要配置 1.网络配置 描述:Ubuntu 24.04 与CentOS/Redhat系列主机网络配置是不一样,从Ubuntu 20.04开始网络配置目录为/e…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » 在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1大语言模型(下篇)
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们