大模型微调之 在亚马逊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.rhkb.cn/news/326697.html

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

相关文章

密探渗透工具v1.08测试版

目录 前言 免责声明 工具开发者: 工具项目地址: 1.作者做工具的缘起 2.功能介绍 3.工具的更新日志 4.安装与使用 4.1 工具下载 4.2 在jdk8环境下运行: 4.3 运行界面 4.4 资产测绘功能(fofa,鹰图和Quake) 4.5 指纹识别功能 ​编辑 4.6 敏感信息与接口扫描 4.7 文…

MinIO学习笔记

MINIO干什么用的&#xff1a; AI数据基础设施的对象存储 为人工智能系统提供数据支持&#xff0c;数据存储&#xff1b;对象存储&#xff08;Object Storage&#xff09;是一种数据存储架构&#xff0c;它以对象为单位来处理、存储和检索数据&#xff0c;每个对象都包含了数据本…

sipeed 的 MaixCam显示图片

WiFi联网后&#xff0c;把固件升级到最新 一根tpyc-c连接线为MaixCam供电&#xff0c;点击液晶屏settings 在WiFi中设置确保联网&#xff0c;在更新MaixPy中升级固件 可以选择国内源加速&#xff0c;将固件升级到最新版 MaixVision的操作 1&#xff0c;在MaixVision左下角…

谷歌Gboard应用的语言模型创新:提升打字体验的隐私保护技术

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

CNN/TCN/LSTM/BiGRU-Attention到底哪个模型效果最好?注意力机制全家桶来啦!

​ 声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 数据介绍 效果展示 原理简介 代…

Spring框架深度解析:打造你的Java应用梦工厂

想要在Java企业级应用开发中大展身手&#xff1f;Spring框架的核心容器是你不可或缺的伙伴&#xff01; 文章目录 一. 引言1.1 介绍Spring框架的重要性1.2 阐述核心容器在Spring框架中的作用1.3 故事开端 二. 背景介绍2.1 描述Spring框架的发展历程2.2 概述Spring框架的主要特点…

【树】简要理解树的概念

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、树的概念2、树的相关概念3、结语 1、树的概念 树是一种非线性的数据结构&#xff0c;它…

解决windows中的WSL Ubuntu子系统忘记root密码和用户密码问题

1、以管理员身份运行PowerShell 2、在powershell中执行wsl.exe --user root wsl.exe --user root如果出现了上面的报错&#xff0c;则需要运行步骤3、4&#xff0c;然后在执行步骤5改密码&#xff0c;如果没有出错&#xff0c;请直接跳到第5步改密码操作&#xff01;&#xff…

Android bootchart 分析启动性能工具使用

bootchart简介 bootchart 可为整个系统提供所有进程的 CPU 和 I/O 负载细分。该工具不需要重建系统映像&#xff0c;可以用作进入 systrace 之前的快速健全性检查。 1. 板端配置&#xff1a; 在Android 板端启用 bootchart&#xff0c;请运行以下命令&#xff1a; 2. Bootch…

Git笔记-常用指令

Git笔记-常用指令 一、概述二、仓库管理二、缓存区操作1. 添加文件到缓存区2. 取消缓存文件3. 忽略列表 三、日志状态信息四、分支操作五、六、 一、概述 这里记录一些git常用的指令。 二、仓库管理 # 本地仓库初始化 git init# 克隆仓库 git clone git_url # git clone ht…

各种数据获取stream流的方式

1.单列集合&#xff08;直接调用&#xff09; ArrayList<Integer> list new ArrayList<>();list.stream(); 2.双列集合 HashMap<String, Integer> map new HashMap<>();map.put("aaa",111);map.put("bbb",222);map.put("c…

鸿蒙开发学习:初探【ArkUI-X】

ArkTS 是华为自研的开发语言。它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;匹配 ArkUI 框架&#xff0c;扩展了声明式 UI 、状态管理等相应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨端应用。 ArkUI-X 进一步将 ArkUI 扩展到了多个 OS 平台…

css--控制滚动条的显示位置

各种学习后的知识点整理归纳&#xff0c;非原创&#xff01; ① direction属性 滚动条在左侧显示② transform:scaleY() 滚动条在上侧显示 正常的滚动条会在内容超出规定的范围后在区域右侧和下侧显示在有些不正常的需求下会希望滚动条在上侧和左侧显示自己没有想到好的解决方案…

uniapp 使用renderjs的一些详细介绍

一、简介 官方链接&#xff1a;uniapp官网中的renderjs方法的详细介绍 二、renderjs 定义 renderjs是一个运行在视图层的js。它比WXS更加强大。它只支持app-vue和web。 作用&#xff1a; 大幅降低逻辑层和视图层的通讯损耗&#xff0c;提供高性能视图交互能力。在视图层操作d…

cmake工程导入新电脑环境报错

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 在一台电脑上运行得很好的cmake工程&#xff0c;导入新电脑环境报错 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;数据传输过程中数据不时出现丢失的情况&…

SSH 免密登录,设置好仍然需要密码登录解决方法

说明&#xff1a; ssh秘钥登录设置好了&#xff0c;但是登录的时候依然需要提供密码 查看系统安全日志&#xff0c;定位问题 sudo cat /var/log/auth.log或者 sudo cat /var/log/secure找到下面的信息 Authentication refused: bad ownership or modes...&#xff08;网上的…

软件需求工程习题

1.&#xff08;面谈&#xff09;是需求获取活动中发生的需求工程师和用户间面对面的会见。 2.使用原型法进行需求获取&#xff0c;&#xff08;演化式&#xff09;原型必须具有健壮性&#xff0c;代码质量要从一开始就能达到最终系统的要求 3.利用面谈进行需求获取时&#xf…

【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密

1.下载 app 2.frida 调试 3.抓包查看接口 4.分析加密数据 5.易语言编写代码 1 .开始下载 下载好发现有越狱检测&#xff0c;检测点为&#xff1a; -[AppDelegate isJailBreak]; 于是编写插件xm代码 : %hook AppDelegate- (void)isJailBreak{NSLog("AppDelegate is…

通过 Java 操作 redis -- hash 哈希表基本命令

目录 使用命令 hset&#xff0c;hget 使用命令 hexists 使用命令 hdel 使用命令 hkeys&#xff0c;hvals 使用命令 hmget&#xff0c;hmset 关于 redis hash 哈希表类型的相关命令推荐看Redis - hash 哈希表 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务…

STM32使用ESP01S连接阿里云物联网平台

一、ESP01S烧录MQTT固件准备 首先准备好烧录工具&#xff0c;可以从官网上进行下载。 MQTT固件官网网址&#xff1a;AT固件汇总 | 安信可科技 (ai-thinker.com) 进去后如下图界面&#xff0c;向下翻找找到MQTT固件&#xff08;1471&#xff09;下载固件即可。 烧录工具光网地…