大模型微调之 在亚马逊AWS上实战LlaMA案例(十)

大模型微调之 在亚马逊AWS上实战LlaMA案例(十)

训练数据集格式

SageMaker JumpStart 目前支持域适应格式和指令调整格式的数据集。在本节中,我们指定两种格式的示例数据集。有关更多详细信息,请参阅附录中的数据集格式化部分。

域适应格式

文本生成 Llama 2 模型可以在任何特定领域的数据集上进行微调。在特定领域的数据集上进行微调后,该模型有望生成特定领域的文本,并通过少量提示解决该特定领域中的各种 NLP 任务。对于此数据集,输入由 CSV、JSON 或 TXT 文件组成。例如,输入数据可能是亚马逊向 SEC 提交的文本文件:

This report includes estimates, projections, statements relating to our
business plans, objectives, and expected operating results that are “forward-
looking statements” within the meaning of the Private Securities Litigation
Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E
of the Securities Exchange Act of 1934. Forward-looking statements may appear
throughout this report, including the following sections: “Business” (Part I,
Item 1 of this Form 10-K), “Risk Factors” (Part I, Item 1A of this Form 10-K),
and “Management’s Discussion and Analysis of Financial Condition and Results
of Operations” (Part II, Item 7 of this Form 10-K). These forward-looking
statements generally are identified by the words “believe,” “project,”
“expect,” “anticipate,” “estimate,” “intend,” “strategy,” “future,”
“opportunity,” “plan,” “may,” “should,” “will,” “would,” “will be,” “will
continue,” “will likely result,and similar expressions.

指令调整格式

在指令微调中,模型针对使用指令描述的一组自然语言处理(NLP)任务进行微调。这有助于通过零样本提示提高模型针对看不见的任务的性能。在指令调整数据集格式中,您指定template.json描述输入和输出格式的文件。例如,文件中的每一行train.jsonl如下所示:

{"instruction": "What is a dispersive prism?", 
"context": "In optics, a dispersive prism is an optical prism that is used to disperse light, that is, to separate light into its spectral components (the colors of the rainbow). Different wavelengths (colors) of light will be deflected by the prism at different angles. This is a result of the prism material's index of refraction varying with wavelength (dispersion). Generally, longer wavelengths (red) undergo a smaller deviation than shorter wavelengths (blue). The dispersion of white light into colors by a prism led Sir Isaac Newton to conclude that white light consisted of a mixture of different colors.", 
"response": "A dispersive prism is an optical prism that disperses the light's different wavelengths at different angles. When white light is shined through a dispersive prism it will separate into the different colors of the rainbow."}

附加文件template.json如下所示:

{"prompt": "Below is an instruction that describes a task, paired with an input that provides further context. ""Write a response that appropriately completes the request.\n\n""### Instruction:\n{instruction}\n\n### Input:\n{context}\n\n","completion": " {response}",
}

支持的训练超参数

Llama 2 微调支持许多超参数,每个超参数都会影响微调模型的内存需求、训练速度和性能:

  • epoch – 微调算法通过训练数据集的次数。必须是大于 1 的整数。默认值为 5。
  • Learning_rate – 在完成每批训练示例后更新模型权重的速率。必须是大于 0 的正浮点数。默认值为 1e-4。
  • instructions_tuned – 是否对模型进行指令训练。必须是“ True”或“ False”。默认为“ False”。
  • per_device_train_batch_size – 用于训练的每个 GPU 核心/CPU 的批量大小。必须是正整数。默认值为 4。
  • per_device_eval_batch_size – 用于评估的每个 GPU 核心/CPU 的批量大小。必须是正整数。默认值为 1。
  • max_train_samples – 出于调试目的或加快训练速度,请将训练示例的数量截断为此值。值-1表示使用所有训练样本。必须是正整数或-1。默认值为-1。
  • max_val_samples – 出于调试目的或加快训练速度,请将验证示例的数量截断为此值。值 -1 表示使用所有验证样本。必须是正整数或-1。默认值为-1。
  • max_input_length – 标记化后的最大总输入序列长度。超过此长度的序列将被截断。如果为 -1,则max_input_length设置为最小值 1024 和分词器定义的最大模型长度。如果设置为正值,则 max_input_length设置为提供的值和model_max_length分词器定义的最小值。必须是正整数或-1。默认值为-1。
  • validation_split_ratio – 如果验证通道为none,则从训练数据中分割训练验证的比率必须在 0–1 之间。默认值为 0.2。
  • train_data_split_seed – 如果验证数据不存在,这会将输入训练数据随机分割为算法使用的训练和验证数据。必须是整数。默认值为 0。
  • preprocessing_num_workers – 用于预处理的进程数。如果None,则主进程用于预处理。默认为None.
  • lora_r – Lora R。必须是正整数。默认值为 8。
  • lora_alpha – 必须是正整数。默认值为 32
  • lora_dropout – 必须是 0 到 1 之间的正浮点数。默认值为 0.05。
  • int8_quantization – 如果True,则模型加载 8 位精度进行训练。 7B 和 13B 的默认值为False。 70B 的默认值为True。
  • enable_fsdp – 如果True,训练使用 FSDP。 7B 和 13B 的默认值为True。 70B 的默认值为False。请注意,int8_quantizationFSDP 不支持此功能。

实例类型和兼容的超参数

微调期间的内存要求可能会因以下几个因素而有所不同:

  • 型号类型– 7B 型号的 GPU 内存需求最少,70B 的内存需求最大
  • 最大输入长度——较高的输入长度值会导致一次处理更多的标记,因此需要更多的 CUDA 内存
  • 批处理大小– 较大的批处理大小需要更大的 CUDA 内存,因此需要更大的实例类型
  • Int8 量化– 如果使用 Int8 量化,模型会加载到低精度,因此需要更少的 CUDA 内存
    为了帮助入门,我们提供了一组可以成功微调的不同实例类型、超参数和模型类型的组合。你可以根据要求和实例类型的可用性选择配置。我们在 Dolly 数据集的子集上使用三个时期的各种设置对所有三个模型进行了摘要示例的微调。

Llama 7B 模型的微调选项

在这里插入图片描述

Llama 13B 模型的微调选项

在这里插入图片描述

Llama 70B 模型的微调选项

在这里插入图片描述

实例类型和超参数建议

微调模型的准确性时,请记住以下几点:

  • 70B 等较大型号提供比 7B 更好的性能
  • 没有 Int8 量化的性能优于有 INT8 量化的性能

请注意以下训练时间和 CUDA 内存要求:

  • 设置int8_quantization=True减少了内存需求并导致更快的训练。
  • 减少per_device_train_batch_size并max_input_length减少内存需求,因此可以在较小的实例上运行。但是,设置非常低的值可能会增加训练时间。
  • 如果您不使用 Int8 量化 ( int8_quantization=False),请使用 FSDP ( enable_fsdp=True) 进行更快、更高效的训练。

选择实例类型时,请考虑以下因素:

  • G5 实例提供支持的实例类型中最高效的训练。因此,如果您有可用的 G5 实例,则应该使用它们。
  • 训练时间很大程度上取决于 GPU 数量和可用 CUDA 内存。因此,在具有相同 GPU 数量的实例(例如 ml.g5.2xlarge 和 ml.g5.4xlarge)上进行训练大致相同。因此, 可以使用更便宜的实例进行训练(ml.g5.2xlarge)。
  • 使用 p3 实例时,将以 32 位精度进行训练,因为这些实例不支持 bfloat16。因此,与 g5 实例相比,在 p3 实例上训练时,训练作业将消耗双倍的 CUDA 内存。
  • 要了解每个实例的训练成本,请参阅Amazon EC2 G5 实例。

如果数据集采用指令调优格式,并且输入+完成序列很小(例如 50-100 个单词),那么高值max_input_length会导致性能非常差。该参数的默认值为-1,对应于max_input_lengthLlama模型的2048。因此,我们建议如果您的数据集包含小样本,请使用较小的值max_input_length(例如 200–400)。

由于 G5 实例的高需求,您所在区域中的这些实例可能不可用,并出现错误。“CapacityError: Unable to provision requested ML compute capacity. Please retry using a different ML instance type.”如果您遇到此错误,请重试训练作业或尝试其他区域。

微调非常大的模型时出现的问题

  • 禁用输出压缩
    默认情况下,训练作业的输出是经过训练的模型,在上传到 Amazon S3 之前以 .tar.gz 格式压缩。但是,由于模型尺寸较大,此步骤可能需要很长时间。例如,压缩并上传70B模型可能需要4个多小时。为了避免此问题,您可以使用 SageMaker 训练平台支持的禁用输出压缩功能。在这种情况下,模型上传时不进行任何压缩,并进一步用于部署:
estimator = JumpStartEstimator(
model_id=model_id, environment={"accept_eula": "true"}, disable_output_compression=True
)
  • SageMaker Studio 内核超时问题
    由于 Llama 70B 模型的大小,训练工作可能需要几个小时,并且 SageMaker Studio 内核可能会在训练阶段挂掉。然而,在此期间,训练仍在 SageMaker 中运行。如果发生这种情况,您仍然可以使用训练作业名称和以下代码来部署端点:
from sagemaker.jumpstart.estimator import JumpStartEstimator
training_job_name = <<<INSERT_TRAINING_JOB_NAME>>>attached_estimator = JumpStartEstimator.attach(training_job_name, model_id)
attached_estimator.logs()
attached_estimator.deploy()

要查找训练作业名称,请导航到 SageMaker 控制台,然后在导航窗格中的Training下,选择Training jobs。确定训练作业名称并将其替换为前面的代码。
https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-for-text-generation-on-amazon-sagemaker-jumpstart/

在这里插入图片描述

大模型技术分享

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

《企业级生成式人工智能LLM大模型技术、算法及案例实战》线上高级研修讲座

模块一:Generative AI 原理本质、技术内核及工程实践周期详解
模块二:工业级 Prompting 技术内幕及端到端的基于LLM 的会议助理实战
模块三:三大 Llama 2 模型详解及实战构建安全可靠的智能对话系统
模块四:生产环境下 GenAI/LLMs 的五大核心问题及构建健壮的应用实战
模块五:大模型应用开发技术:Agentic-based 应用技术及案例实战
模块六:LLM 大模型微调及模型 Quantization 技术及案例实战
模块七:大模型高效微调 PEFT 算法、技术、流程及代码实战进阶
模块八:LLM 模型对齐技术、流程及进行文本Toxicity 分析实战
模块九:构建安全的 GenAI/LLMs 核心技术Red Teaming 解密实战
模块十:构建可信赖的企业私有安全大模型Responsible AI 实战 

Llama3关键技术深度解析与构建Responsible AI、算法及开发落地实战

1、Llama开源模型家族大模型技术、工具和多模态详解:学员将深入了解Meta Llama 3的创新之处,比如其在语言模型技术上的突破,并学习到如何在Llama 3中构建trust and safety AI。他们将详细了解Llama 3的五大技术分支及工具,以及如何在AWS上实战Llama指令微调的案例。
2、解密Llama 3 Foundation Model模型结构特色技术及代码实现:深入了解Llama 3中的各种技术,比如Tiktokenizer、KV Cache、Grouped Multi-Query Attention等。通过项目二逐行剖析Llama 3的源码,加深对技术的理解。
3、解密Llama 3 Foundation Model模型结构核心技术及代码实现:SwiGLU Activation Function、FeedForward Block、Encoder Block等。通过项目三学习Llama 3的推理及Inferencing代码,加强对技术的实践理解。
4、基于LangGraph on Llama 3构建Responsible AI实战体验:通过项目四在Llama 3上实战基于LangGraph的Responsible AI项目。他们将了解到LangGraph的三大核心组件、运行机制和流程步骤,从而加强对Responsible AI的实践能力。
5、Llama模型家族构建技术构建安全可信赖企业级AI应用内幕详解:深入了解构建安全可靠的企业级AI应用所需的关键技术,比如Code Llama、Llama Guard等。项目五实战构建安全可靠的对话智能项目升级版,加强对安全性的实践理解。
6、Llama模型家族Fine-tuning技术与算法实战:学员将学习Fine-tuning技术与算法,比如Supervised Fine-Tuning(SFT)、Reward Model技术、PPO算法、DPO算法等。项目六动手实现PPO及DPO算法,加强对算法的理解和应用能力。
7、Llama模型家族基于AI反馈的强化学习技术解密:深入学习Llama模型家族基于AI反馈的强化学习技术,比如RLAIF和RLHF。项目七实战基于RLAIF的Constitutional AI。
8、Llama 3中的DPO原理、算法、组件及具体实现及算法进阶:学习Llama 3中结合使用PPO和DPO算法,剖析DPO的原理和工作机制,详细解析DPO中的关键算法组件,并通过综合项目八从零开始动手实现和测试DPO算法,同时课程将解密DPO进阶技术Iterative DPO及IPO算法。
9、Llama模型家族Safety设计与实现:在这个模块中,学员将学习Llama模型家族的Safety设计与实现,比如Safety in Pretraining、Safety Fine-Tuning等。构建安全可靠的GenAI/LLMs项目开发。
10、Llama 3构建可信赖的企业私有安全大模型Responsible AI系统:构建可信赖的企业私有安全大模型Responsible AI系统,掌握Llama 3的Constitutional AI、Red Teaming。

解码Sora架构、技术及应用

一、为何Sora通往AGI道路的里程碑?
1,探索从大规模语言模型(LLM)到大规模视觉模型(LVM)的关键转变,揭示其在实现通用人工智能(AGI)中的作用。
2,展示Visual Data和Text Data结合的成功案例,解析Sora在此过程中扮演的关键角色。
3,详细介绍Sora如何依据文本指令生成具有三维一致性(3D consistency)的视频内容。 4,解析Sora如何根据图像或视频生成高保真内容的技术路径。
5,探讨Sora在不同应用场景中的实践价值及其面临的挑战和局限性。

二、解码Sora架构原理
1,DiT (Diffusion Transformer)架构详解
2,DiT是如何帮助Sora实现Consistent、Realistic、Imaginative视频内容的?
3,探讨为何选用Transformer作为Diffusion的核心网络,而非技术如U-Net。
4,DiT的Patchification原理及流程,揭示其在处理视频和图像数据中的重要性。
5,Conditional Diffusion过程详解,及其在内容生成过程中的作用。
三、解码Sora关键技术解密
1,Sora如何利用Transformer和Diffusion技术理解物体间的互动,及其对模拟复杂互动场景的重要性。
2,为何说Space-time patches是Sora技术的核心,及其对视频生成能力的提升作用。
3,Spacetime latent patches详解,探讨其在视频压缩和生成中的关键角色。
4,Sora Simulator如何利用Space-time patches构建digital和physical世界,及其对模拟真实世界变化的能力。
5,Sora如何实现faithfully按照用户输入文本而生成内容,探讨背后的技术与创新。
6,Sora为何依据abstract concept而不是依据具体的pixels进行内容生成,及其对模型生成质量与多样性的影响。

在这里插入图片描述
在这里插入图片描述

举办《Llama3关键技术深度解析与构建Responsible AI、算法及开发落地实战》线上高级研修讲座

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iview(viewUI) span-method 表格实现将指定列的值相同的行合并单元格

效果图是上面这样的&#xff0c;将第一列的名字一样的合并在一起&#xff1b; <template><div class"table-wrap"><Table stripe :columns"columns" :data"data" :span-method"handleSpan"></Table></div&…

HDFS- DataNode磁盘扩缩容

HDFS- DataNode磁盘扩缩容 背景: 缩减/增加节点磁盘 方案介绍: 采用hdfs dfsadmin -reconfig 动态刷新配置实现,不停服扩缩容。 注意事项: 请在进行缩容之前,务必了解实际的数据量,并确保磁盘有足够的空间来容纳这些数据。还需要考虑未来的使用需求,要预留一定数量的空间…

java+vue3+iclientol实现警务地理信息系统实践

警务地理信息系统&#xff08;Police Geographic Information System, PGIS&#xff09;是一种专为警务工作设计的地理信息系统&#xff0c;它结合了地理信息技术、数据库技术、网络技术和现代警务理念&#xff0c;旨在提升公安机关的空间数据分析、决策支持、指挥调度、案件管…

【QVariant类型剖析】

QVariant类型剖析 &#x1f31f; 官方文档中给出的定义&#x1f31f; 特性&#x1f338;QVariant实战应用&#x1f338;项目成果展示 &#x1f31f; 官方文档中给出的定义 &#x1f4d8;Because C forbids unions from including types that have non-default constructors or…

基于springboot+vue+Mysql的外卖点餐系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟

你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟 文章目录 你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟一、概述二、CallerMemberNameAttribute类三、CallerFilePathAttribute 类四、CallerLineNumberAttribute 类…

Android 简单的下拉选择框实现

要实现这种效果,目前知道的方法有以下两种,Spinner 和 ListPopupWindow,当然肯定还有很多别的方法,这里我们先尝试使用ListPopupWindow来实现这个效果; 以下是一个简单的demo: public class MainActivity extends AppCompatActivity {private List<String> dataList;pr…

QueryPerformanceCounter实现高精度uS(微妙)延时

参考连接 C# 利用Kernel32的QueryPerformanceCounter封装的 高精度定时器Timer_kernel32.dll queryperformancecounter-CSDN博客https://blog.csdn.net/wuyuander/article/details/111831973 特此记录 anlog 2024年5月11日

ubuntu安装oceanbase调通本地navicat链接

分为两部分 一安装oceanbase服务 准备工作 mkdir -p /data/1 /data/log1 chown -R admin.admin /data/1 /data/log1/偷偷说&#xff1a;其实这步我忘记执行&#xff0c;也没影响我安装 oceanbase程序是很占内存的在安装时我们要先下载好安装包&#xff1a; 然后放在能记住的…

【C语言】/*操作符(上)*/

目录 一、算数操作符&#xff1a;、-、*、/、% 1.1 和 - 1.2 * 1.3 / 1.4 % 二、赋值操作符&#xff1a; 和符合赋值 2.1 连续赋值 2.2 复合赋值(自操作) 三、单目操作符&#xff1a;、--、(正号)、-(负号) 3.1 和 -- 3.1.1 前置 3.1.2 后置 3.1.3 前置-- …

稳定网络的诀窍:静态住宅代理解决方案

在数字化时代&#xff0c;网络稳定性对于个人和企业都至关重要。然而&#xff0c;由于多种因素的影响&#xff0c;如地理位置、网络拥堵或网络安全问题等&#xff0c;网络稳定性常常受到挑战。为了应对这些挑战&#xff0c;静态住宅代理作为一种高效且可靠的网络解决方案&#…

C++容器——list

目录 list容器 list容器使用流程 加入头文件 定义 list容器的使用 添加元素&#xff1a; 删除元素&#xff1a; 访问元素&#xff1a; 容器大小&#xff1a; 迭代器操作&#xff1a; 其他操作&#xff1a; list容器 功能&#xff1a;将数据进行链式存储 链表(list…

kali linux2024.1版安装

1 基于 VMware 安装 Kali 系统 打开已经安装好的 VMware 程序&#xff0c;点击选项卡中的“主页”--》而后点击“创建新的虚拟机” 选择“典型(推荐)”&#xff0c;并点击“下一步” 客户机操作系统镜像选择&#xff1a;选择“稍后安装操作系统”&#xff0c;并点击“下一步”…

《中阿科技论坛(中英文)》是什么级别的期刊?是正规期刊吗?

问题解答 问&#xff1a;《中阿科技论坛&#xff08;中英文&#xff09;》是核心期刊吗&#xff1f; 答&#xff1a;不是&#xff0c;但是正规期刊 问&#xff1a;《中阿科技论坛&#xff08;中英文&#xff09;》是什么级别期刊&#xff1f; 答&#xff1a;省级 主管单位…

转转小程序数据处理

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872&#xff0c;x30184483x…

BUU-[GXYCTF2019]Ping Ping Ping

考察点 命令执行 题目 解题 简单测试 ?ip应该是一个提示&#xff0c;那么就测试一下?ip127.0.0.1 http://0c02a46a-5ac2-45f5-99da-3d1b0b951307.node4.buuoj.cn:81/?ip127.0.0.1发现正常回显 列出文件 那么猜测一下可能会有命令执行漏洞&#xff0c;测试?ip127.0.…

dos命令改3389端口,通过dos命令更改3389端口的操作

要使用DOS命令更改3389端口&#xff0c;通常涉及修改Windows注册表中的相关键值。请注意&#xff0c;直接操作注册表具有一定的风险&#xff0c;因此在进行任何更改之前&#xff0c;请确保您了解正在进行的操作&#xff0c;并已经采取了适当的备份措施。 以下是一个基本的操作步…

记录一次接口优化的过程。接口响应时间从500s下降到5s。

记录一次接口优化的过程。接口响应时间从500s下降到5s。 接口说明&#xff1a; 该接口通过用户导入的一年内每天的厂区用电功率数据来计算用户安装储能设备后的收益情况。 用电功率数据具体为每15分钟一条&#xff0c;一年约有 12*30*24*4 34560 条。 代码循环情况为&…

详解GaussDB(DWS)中的行执行引擎

1.前言 GaussDB&#xff08;DWS&#xff09;包含三大引擎&#xff0c;一是SQL执行引擎&#xff0c;用来解析用户输入的SQL语句&#xff0c;生成执行计划&#xff0c;供执行引擎来执行&#xff1b;二是执行引擎&#xff0c;其中包含了行执行引擎和列执行引擎&#xff0c;执行引擎…

当时这样说就好了的笔记

系列文章目录 当时这样说就好了的笔记 文章目录 系列文章目录一、 不用好口才&#xff0c;怎么谈都讨喜的“说话金律”1、 掌握对方爱聊什么是交谈热络的第一步2、 装笨让对方当主角&#xff0c;和谁都能聊不停3、 “讲道理”谁都怕&#xff0c;坚持己见最伤感情4、 懂“聆听附…