自然语言处理:大模型理论与实践 课件 第7-12章 多模态大模型架构 -评价指标_第1页
自然语言处理:大模型理论与实践 课件 第7-12章 多模态大模型架构 -评价指标_第2页
自然语言处理:大模型理论与实践 课件 第7-12章 多模态大模型架构 -评价指标_第3页
自然语言处理:大模型理论与实践 课件 第7-12章 多模态大模型架构 -评价指标_第4页
自然语言处理:大模型理论与实践 课件 第7-12章 多模态大模型架构 -评价指标_第5页
已阅读5页,还剩323页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章多模态大模型架构7.1概述

7.2ViT模型

7.3CLIP模型

7.4BLIP模型

7.5BLIP-2模型

目录多种感官模态多模态是什么?多模态:处理和整合多种模态或数据类型的信息。这些模态可以包括文本、图像、音频、视频和其他形式的感官输入。模态(Modality):指信息呈现和存储的不同类型和格式。它是理解事物发生方式和经验过程的关键元素。多模态是什么?描述同一对象的多模态信息形式一条宁静的城市街道被白雪覆盖的冬季夜晚。雪花轻轻飘落,覆盖了地面、建筑和停放的车辆。人行道上有脚印,显示有人曾在新雪中走过。街灯透过飘落的雪花发出柔和温暖的光芒,营造出一种平静祥和的氛围。街道两旁的建筑物也被白雪悄然覆盖,整体场景宁静安详,完美展现了小镇冬夜的静谧之美。多模态是什么?常见模态类型自然语言:口语、书写等视觉:图片、视频等听觉:声音、音乐等触觉嗅觉、味觉生理信号:心电图、皮肤电导信号其他模态:红外线、深度成像、fMRI多模态大模型多模态大模型是一种能够处理和理解多种类型数据(如文本、图像、音频和视频)的人工智能模型。单模态学习多模态学习文本模型NLP应用trainpredictNLP图像/视频模型CV应用trainpredictCV文本模型NLP应用trainpredict图像/视频NLP+CV应用CV应用trainpredictpredict多模态多模态学习更容易实现AGI!多模态任务A.

Affect

Recognition感应识别Emotion情绪Personalities个性Sentiment情感B.

Media

Description多媒体描述Image&

Video

Caption图片与视频字幕生成C.

Multimodal

QA多模态问答Image

&

Video

QA图片与图片问答Visual

Reasoning视觉推理D.

Multimodal

Navigation多模态导航Language

guided

navigation语音导航Autonomous

driving无人驾驶多模态任务E.

Multimodal

Dialog多模态对话Grounded

dialog基于图片对话F.

Event

Recognition事件识别Action

Recognition动作识别Segmentation分割C.

Multimodal

QA多模态问答Image

&

Video

QA图片与图片问答Visual

Reasoning视觉推理G.

Multimedia

Information

Retrieval多媒体信息检索Content

based

/

Cross-media

IR基于内容/多媒体检索多模态技术演进图片来源:https://wqw547243068.github.io/modal7.1概述

7.2ViT模型

7.2.1ViT模型架构

7.2.2ViT模型计算过程

7.2.3预训练与微调

7.3CLIP模型

7.4BLIP模型

7.5BLIP-2模型

目录ViT模型(英文:VisionTransformer)是一种利用Transformer架构处理图像识别问题的深度学习模型。在其之前,Attention机制在图像领域往往与卷积神经网络(ConvolutionNeuralNetworks)结合使用,而ViT则证明了纯Transformer架构在图像领域仍能取得良好效果。7.2.1

ViT模型架构/abs/2010.11929相机(Camera)可以溯源自15世纪画家所使用的绘画辅助工具暗箱(CameraObscura)景物通过小孔或镜头投射到暗箱内壁,画家再根据投影进行描摹作画

xy7.2.1

ViT模型架构

7.2.1

ViT模型架构在数字图像处理中,颜色通道是用来描述图像颜色信息的组成部分。对于常见的RGB颜色模式的彩色图像,它由红色(Red)、绿色(Green)和蓝色(Blue)三个通道(Channel)组成。BGR7.2.1

ViT模型架构

7.2.2

ViT模型计算过程1.图像嵌入模块

7.2.2

ViT模型计算过程1.图像嵌入模块

7.2.2

ViT模型计算过程1.图像嵌入模块7.2.2

ViT模型计算过程1.图像嵌入模块

线性映射

ViT在将嵌入送入Transformer编码器前,在其中加入位置编码;不同于原始的Transformer,ViT默认情况下不再使用固定位置编码,而使用一维可学习编码7.2.2

ViT模型计算过程1.图像嵌入模块一维及二维固定编码

ViT所学习得到的位置嵌入之间的余弦相似度分布

7.2.2

ViT模型计算过程2.编码

7.2.2

ViT模型计算过程3.分类ViT首先在JFT300M(约3亿张图像)或ImageNet21K(约1400万张图像)上进行监督或自监督预训练,获得预训练模型,接着在ImageNet、CIFAR等下游数据集上进行微调。ViT在微调阶段会使用更简单的分类头(多层MLP→单层线性映射)在微调阶段中,图像分辨率可能发生变化,导致原有位置嵌入失效。ViT根据图像块在原始图像中的位置,对预训练位置嵌入进行二维插值。预训练数据集预训练模型预训练微调数据集微调7.2.3预训练与微调7.2

ViT模型TryViT模型:https://huggingface.co/google/vit-base-patch16-2247.1概述

7.2ViT模型

7.3CLIP模型

7.3.1模型架构

7.3.2训练过程

7.3.3

CLIP模型实现零样本分类

7.3.4CLIP模型其他应用

7.4BLIP模型

7.5BLIP-2模型

目录7.3.1

CLIP模型架构定义:CLIP(Contrastive

Language-Image

Pre-Training)模型是一种基于对比学习的多模态模型。提问:什么是对比学习?对比学习是一种学习方法,侧重通过对比正反两方面的实例来提取有意义的表征。它利用的假设是,在学习到的嵌入空间中,相似的实例应靠得更近,而不相似的实例应离得更远。通过将学习作为一项辨别任务,对比学习允许模型捕捉数据中的相关特征和相似性。7.3.1

CLIP模型架构定义:CLIP(Contrastive

Language-Image

Pre-Training)模型是一种基于对比学习的多模态模型。训练数据:文本-图像对,即一张图像和对应的文本描述目标:通过对比学习,模型学习到文本-图像对的匹配关系文本编码器7.3.1

CLIP模型架构组成部分:文本编码器和图像编码器用于提取文本特征;采用NLP中常用的面向文本的Transformer模型用于提取图像特征;采用常用的CNN模型或者ViT模型

CLIP核心思想使用海量的弱监督文本通过对比学习,将图像和文本映射到一个共享的向量空间,理解图像与文本之间的语义关系图像编码器7.3.1

CLIP模型架构文本编码器细节:标准Transformer模型,每一层隐藏状态512维度编码器包含12层网络结构,每层配备8个注意力头大致流程:文本数据分词词嵌入自注意力机制前馈网络等文本特征向量文本编码器7.3.1

CLIP模型架构图像编码器细节:将图像转化为高维空间中的特征向量CNN的ResNet或者Transformer的ViT模型大致流程:图像缩放剪裁等卷积层、池化层注意力层等图像特征向量图像编码器7.3.2训练过程CLIP模型采用对比学习的方式进行训练CLIP模型在文本-图像对数据集上的训练过程可细分为以下三个阶段:1.数据特征提取2.相似度计算3.对比学习训练过程模型接收大量图像-文本对作为输入图片/文本编码器提取图/文本特征向量7.3.2训练过程文本编码器对N个文本进行文本编码,将每个文本描述转换为一个固定长度的特征向量(维度为d),则该训练批次文本数据输出的特征矩阵为其中,数据特征提取:假设一个训练批次包含N个文本-图像对图像编码器对这N个图像进行图像编码,将每张图像转换为一个固定长度的特征向量(维度为d,与文本特征向量长度一致),则该训练批次图像数据输出的特征矩阵为其中,7.3.2训练过程相似度计算:计算每对特征之间的相似度

正样本正负样本可作为正负标签,用来训练文本编码器和图像编码器负样本

7.3.2训练过程对比学习在得到正负样本之间的相似度之后,再使用对比损失函数(如InfoNCE)来计算损失,优化模型参数损失函数鼓励模型将正样本的相似度提高,将负样本的相似度降低优化目标即为最大化对角线中的数值,最小化其它非对角线的数值,目标函数写为:7.3.3

CLIP模型零样本分类零样本(Zero-Short)分类指模型在没有见过任何特定类别训练样本的情况下,能够对这些类别进行分类通常通过利用模型在训练过程中学到的通用知识和类别描述来实现思考:CLIP模型非常适合用于零样本分类任务的原因?CLIP模型通过对比学习在大量图像-文本对数据上进行训练,能够学习到图像和文本之间的丰富语义关系7.3.3

CLIP模型零样本分类利用CLIP模型做零样本图像分类步骤:分类标签转换:根据任务的分类标签构建每个类别的描述文本:Aphotoof{label}/某个物品的图片例如:对于事物分类任务,标签集可以是[“树”,“草”,···,“农夫”]:为每个标签生成文本描述,如“树的图片”和“草的图片”等。特征抽取:将这些文本送入文本编码器,如果类别数目为N,将得到N个类别特征农夫7.3.3

CLIP模型零样本分类应用零样本预测:

选择相似度最高的文本对应的类别作为图像分类的预测结果评定要分类的图片与第3个文本标签最匹配农夫7.3.4

CLIP模型其他应用CLIP模型核心特点:具备多模态嵌入空间的构建能力CLIP模型能够将图像和文本嵌入到一个共享的表示空间图像和文本之间可以直接进行比较CLIP模型可在多个领域中得到广泛的应用,如零样本检测、图像检索视频理解及文生图等零样本目标检测:用于目标检测任务将类别描述文本和图像区域特征转换到同一嵌入空间,并计算它们之间的相似度,来实现无需训练新类别的零样本检测。图像检索:用于搜索图像将用户的文本查询和图像库中的图像分别编码成向量,并计算它们的相似性。根据相似性得分排序,返回最匹配的图像。7.3

CLIP模型其他应用CLIP模型核心特点:具备多模态嵌入空间的构建能力视频理解:实现一些零样本视频理解任务利用视觉编码器对视频中的关键帧进行编码,生成帧的向量表示;利用文本编码器将文本查询或视频描述编码为向量表示,最终通过计算文本向量与帧向量之间的相似性,识别与查询或描述最相关的帧或视频片段文生图:文本编码器输入的文本描述转换为向量表示。该类向量表示包含了文本描述中的关键信息和语义特征,可以作为生成图像时的指导信号。7.3

Clip模型TryClip模型:https://huggingface.co/openai/clip-vit-large-patch147.1概述

7.2ViT模型

7.3CLIP模型

7.4BLIP模型

7.4.1模型架构

7.4.2预训练目标

7.4.3

CapFilt算法

7.5BLIP-2模型

目录BLIP是Salesforce在2022年提出的多模态框架,是理解和生成的统一,引入了跨模态的编码器和解码器,实现了跨模态信息流动,在多项视觉和语言任务取得SOTA。7.4

BLIP模型BLIP:Bootstrapping

Language-Image

Pre-training自举:通过反复从样本集中抽取(有放回地选取),产生大量虚拟的“重新样本化”数据集。文本-图像预训练因为训练数据来自网络图文对,包含大量噪声,所以增加了一个在线数据打标签和清理的任务,把处理好的数据继续用来迭代原模型。7.4

BLIP模型BLIP模型在模型设计和数据处理上实现了双重突破:多模态编码器-解码器混合(MED):适用于多任务预训练迁移学习的新模型架构。该模型与三个视觉语言任务联合预训练:图像文本对比学习、图像文本匹配和基于图像的语言建模。标题生成和过滤(CapFilt):一种从嘈杂的图像文本对中学习的新数据集引导方法。该方法将预训练的MED模型进一步细化为两个协同工作的模块:标题生成器(Cap)负责根据网络图像自动生成高质量的合成标题,而过滤器(Filt)则负责从原始网络文本和合成文本中移除噪声标题MED主要包括四个关键组件7.4.1

BLIP模型架构视觉编码器提取图片特征:将输入图像分割成Patch并将它们编码为一系列图片嵌入,并使用额外的[CLS]词元来表示全局的图像特征

。MED主要包括四个关键组件7.4.1

BLIP模型架构文本编码器提取文本特征:[CLS]作为词元附加到文本输入的开头以总结句子,其作用是提取文本特征做对比学习。MED主要包括四个关键组件7.4.1

BLIP模型架构视觉文本编码器进行特征融合:根据ViT模型给的图片特征和文本输入做二分类,添加[Encode]词元作为图像文本的联合表征,即[Encode]的输出被用作图像-文本对的多模态表示。

MED主要包括四个关键组件7.4.1

BLIP模型架构视觉文本解码器生成新的文本描述:根据ViT给的图片特征和文本输入做文本生成任务,添加解码词元[Decode]和结束词元[EOS],作为生成结果的起点和终点。

图文对比目标函数ITC(Image-TextContrastiveLoss):针对图像编码器和文本编码器,通过正负图文对的对比学习,来对齐图像和文本的潜在特征空间。7.4.2预训练目标最大化正样本图文对的相似性,最小化负样本图文对的相似性,达到对齐视觉和文本的特征空间的目的。图文匹配目标函数ITM(Image-TextMatchingLoss):

ITM是一个二分类任务,使用一个分类头来预测图像文本对是正样本还是负样本,建模图文多模态信息的相关性。7.4.2预训练目标目标是最小化模型预测与真实标签之间的差异,从而提高模型在图像文本匹配任务上的性能。语言建模目标函数LM(LanguageModelingLoss):针对以图像为基础的文本解码器,通过交叉熵损失进行优化,训练模型以自回归的方式来生成相应的文本描述。7.4.2预训练目标前

i-1个词元

7.4.3

CapFilt算法

CapFilt核心思想通过提升文本语料库的质量,从而增强BLIP模型在视觉语言任务上的性能。从噪声图文对中学习,然后生成和过滤产生新的数据集,再去迭代优化原模型。负责为给定的网络图像生成文本描述,接收一张网络图片并生成相应的标题。标题生成器Captioner

负责从原始网络文本和合成文本中去除噪声字幕,保留与图像内容匹配的高质量文本。。过滤器Filter7.4.3

CapFilt算法数据集由web图文对和人工标注图文对组成多模态编码器-解码器混合(MED)7.4.3

CapFilt算法Filter是一个以图像为基础的文本编码器,根据ITC和ITM的目标进行微调,学习文本是否与图像匹配Captioner是一个以图像为基础的文本解码器,以LM为目标进行微调,对给定的图像进行文本解码7.4.3

CapFilt算法为每个web图像生成文本描述Ts组成合成文本对7.4.3

CapFilt算法如果ITM头预测一个文本与图像不匹配,则该文本被认为是噪音,会被去掉,只保留匹配的文本对对web图文对和合成文本对进行去噪7.4.3

CapFilt算法将过滤后的图像-文本对与人工标注图文对组合,形成一个新的数据集,用于预训练新模型7.4

BLIP模型TryBLIP模型:https://huggingface.co/Salesforce/blip-image-captioning-base7.1概述

7.2ViT模型

7.3CLIP模型

7.4BLIP模型

7.5BLIP-2模型

7.5.1概要

7.5.2BLIP-2架构目录7.5

BLIP-2模型2023Salesforce在2023年基于BLIP架构,利用已有的ViT和LLM(均冻结)以及一个的轻量Q-Former模块做模态融合,大幅降低训练成本。7.5.1BLIP-2模型概述BLIP-2模型:一种图文多模态模型BLIP-2展示了很强图生文能力:视觉知识推理、视觉常识推理、视觉对话、图像到文本生成等BLIP模型训练方式:端到端重新预训练大量的数据和复杂的模型,导致重新端到端训练成本高单模态模型并入多模态模型联合训练,可能会导致灾难性遗忘。BLIP-2

训练方式:冻结图像和文本编码器显著降低训练成本避免了单模态模型的遗忘问题。7.5.1BLIP-2模型概述BLIP模型框架图7.5.1BLIP-2模型概述图片来源:/p/681595636如何降低模型训练成本,同时具有很好的性能?Motivation预训练期间冻结单模态模型的参数,避免模型的灾难性遗忘为了让两个冻结的单模态模型对齐,引入Q-Former模块来对图文进行对齐,从而让图像和文本产生交互7.5.2BLIP-2模型架构预训练且参数冻结的视觉编码模型预训练且参数冻结的文本编码模型可训练的轻量级QueryingTransformer(Q-Former)Stage1Stage27.5.2BLIP-2模型架构模型训练第一阶段:联合视觉编码器训练Q-Former使用BERT-Base初始化,交叉注意力层随机初始化图像编码器冻结参数,其输出通过交叉注意力引入Q-Former。训练目标遵循BLIP模型的训练,联合优化ITC,ITC,ITM。第二阶段:联合视觉编码器和LLM训练冻结的图像编码器生成原始图像特征;查询标记和Q-Former从这些原始图像特征中提取并生成转换后的图像特征这些转换后的图像特征通过全连接层映射到LLM的文本嵌入空间(映射后的图像特征类似于视觉提示,与文本嵌入一起输入到冻结的LLM中)LLM根据输入的视觉和文本信息生成目标文本7.5.2BLIP-2模型架构Q-former结构子模块1与冻结的图像编码器交互的图像transformer。以可训练的查询标记(queries)为输入子模块2文本transformer,用作文本编码器和解码器自注意力层参数共享(queries与文本交互的方式)Generation7.5.2BLIP-2模型架构Q-former结构可学习的Queries通过Cross-Attention建模和图片特征的依赖关系输入Text也通过Self-Attention建模互相之间的依赖关系训练目标1(ITC):对齐图像和文本的表征,使其互信息最大化,用自注意力掩码策略计算Queries的输出

Z

和Text输出的[CLS]token输出

t

的对比学习损失相似度分数,选择最大值作为这个图文对的相似度不允许Queries和Text相互看到(相互之间的注意力值为0)Generation7.5.2BLIP-2模型架构Q-former结构采用双向自注意力,Queries和Text相互做attention训练目标2(ITM):通过学习图文对是否匹配,以细粒度对齐图像表示与文本表示,用双向注意力机制Queries的输出

Z

捕获了多模态信息,把每个输出的QueriesEmbedding通过一个二类线性分类器中以获得logit,并将logit的输出做平均作为最终的分数Generation7.5.2BLIP-2模型架构Q-former结构允许Text看到Queries(Queries里面有视觉信息),同时每个Texttoken只能看到它之前的Texttoken,不允许Queries看到Text的信息训练目标3(ITG):给定一张输入图片,训练Q-Former生成对应的文本描述,用多模态因果自监督Generation7.5.2BLIP-2模型架构模型训练Q-fomer的输出

Z蕴含了视觉信息

,使用全连接(FC)层将

Z

线性投影到与LLM的文本嵌入相同维度7.6讨论讨论7.1:请详细描述在ViT模型中,是如何对输入图像的处理将patch变化为token的。讨论7.2:

CLIP模型通过将图像和文本进行对比学习,实现了跨模态的理解和应用。请详细说明CLIP模型相较于传统图像分类模型在创新方面的突出特点。讨论7.3:请比较BLIP与CLIP模型的异同,包括但不限于模型架构、训练过程、对比学习的实现、模型优化、实际应用等方面。8大模型预训练8.1概述8.2预训练数据工程8.2.1预训练数据源8.2.2多模态数据集8.2.3数据处理8.2.4模型性能关系8.3预训练方法8.3.1预训练任务8.3.2优化参数设置8.3.3可扩展训练技术8.4讨论本章内容大模型的预训练训练,主要涉及到数据源和分布式训练两个关键方面数据源分布式训练需要庞大的标注或者未标注数据集进行自监督学习,种类包括文本、图像、声音等并需要经过预处理和清洗步骤。数据的质量和多样性直接影响模型的性能和泛化能力为了获取全面的数据,有时需要聚合多个子数据集,会导致数据冗余和不平衡等问题【解决问题】由于单一计算设备(GPU)的计算能力和内存有限【主要方法】大模型通常需要分布式架构进行训练,通过数据并行、模型并行或张量并行等多种方式来实现8.1概述8.1概述8.2预训练数据工程8.2.1预训练数据源8.2.2多模态数据集8.2.3数据处理8.2.4模型性能关系8.3预训练方法8.3.1预训练任务8.3.2优化参数设置8.3.3可扩展训练技术8.4讨论本章内容大模型预训练的性能高度依赖两个主要因素:1)预训练语料库的质量与规模;2)数据预处理的策略与方法。8.2.1预训练数据源通用数据专业数据网页、书籍和对话文本等语言数据、科学论文和编程代码等Source:https://transformers.run/c4/c15_pretrain_llms8.2.1预训练数据源通用数据源网页数据源互联网作为一个庞大的数据源,为语言模型提供了丰富的文本材料,具备规模大、动态、多语言和主题丰富等特点,是目前LLMs中使用最广泛的数据源。代表性网页预训练语料库8.2.1预训练数据源通用数据源书籍数据集作为长形式文本的优质来源,有助于语言模型在理解复杂语句结构和生成连贯文本方面的训练。Anna’sArchiveProjectGutenbergSmashwords8.2.1预训练数据源专业数据源科学文本这类数据集通常包括学术论文、专利和其他类型的专业文献。由于科学文本常常涉及专业术语、复杂的数据结构和公式,因此在预处理时需要采用特殊方法8.2.1预训练数据源专业数据源代码数据集在程序生成方面,代码作为一种专业数据类型已经得到了广泛的研究关注。模型在大规模代码库上的预训练能显著提升代码生成质量。Python是代码数据集中最常见的程序语言。如GPT-3(175B)的训练数据主要由CommonCrawl、BooksCorpus和代码数据集构成,而LaMDA(540B)采用对话文本、代码数据和CommonCrawl。8.2.1预训练数据源专业数据源8.2.1预训练数据源专业数据源多语言语料这类数据集通常包括多种语言的相似或相同的内容,例如双语或多语言新闻文章、翻译文本等,也被称为平行语料库。8.2.1预训练数据源论文链接:/pdf/2101.00027.pdf项目仓库:/EleutherAI/the-pilePile:2020年,825G的语料(英文数据集)多类别语料论文链接:/pdf/2104.08758.pdf项目仓库:/allenai/allennlp/discussions/5056C4,T5的训练语料,2021EMNLP(英文数据集)多类别语料8.2.1预训练数据源论文链接:/science/article/pii/S2666651021000152项目仓库:/details/WuDaoCorporaText8.2.1预训练数据源多类别语料WuDaoCorpora是北京智源研究院最新构建的高质量数据集,由全球最大的纯文本数据集、全球最大的多模态图文数据集和全球最大的中文对话数据集三部分构成。包含3TB文本数据、90TB图文数据和181GB对话数据。8.2.1预训练数据源多类别语料中英文医疗数据集法律大模型数据集金融数据集8.2.2多模态数据集多模态数据集是大规模数据集的重要分支,其独特之处在于能够同时包含并融合多种格式的数据资源,为模型预训练提供了更加多样化的输入一些代表性的图文语料库多模态数据集能促进大模型预训练,让模型具备更强的泛化能力8.2.2多模态数据集多模态数据集被广泛用于多模态匹配(检索)任务。该任务是指通过处理和比较来自不同模态的数据,实现高效且精确的跨模态信息检索。8.2.3数据处理数据处理的主要目标是剔除数据集中的噪声、冗余信息、无关数据,以及潜在有害内容。不合适的数据可能对语言模型的训练效果产生不利影响。主要涵盖质量过滤(QualityFiltering)、去重(De-duplication)、隐私删除(PrivacyRedaction)及分词化(Tokenization)四个步骤。8.2.3数据处理—质量过滤

质量过滤常用方法分类器法训练一个小型分类器判断文本质量规则判断人为设置规则过滤低质量数据指标阈值设置特定指标选择阈值范围内数据聚类方法聚类过滤,筛选指定类别的数据使用小规模高质量样本训练轻量级模型过于激进的过滤可能会导致模型性能下降[1]Perplexity作为简单的衡量指标效果最好[2]Microsoftphi-1/phi-1.5/phi-2仅有1.3B-2.7B参数量,但在代码和推理任务上表现良好选定的过滤指标不能很好地衡量数据的质量[1]LeoGao.2021.Anempiricalexplorationinqualityfilteringoftextdata.arXivpreprintarXiv:2109.00698.

[2]MaxMarionetal.2023.Whenlessismore:Investigatingdatapruningforpretrainingllmsatscale.arXivpreprintarXiv:2309.04564.8.2.3数据处理—数据去重数据去重的作用数据去重的常用方法[1]KatherineLeeetal.,2022.Deduplicatingtrainingdatamakeslanguagemodelsbetter.ACL.[2]NikhilKandpaletal.,2022.Deduplicatingtrainingdatamitigatesprivacyrisksinlanguagemodels.ICML.[3]AmroAbbasetal.,2023.Semdedup:Data-efficientlearningatweb-scalethroughsemanticdeduplication.arXivpreprintarXiv:2303.09540.N-gram-and-hashing是最为常用的方法Line-level/document-level/both神经网络模型提高训练效率[1]减少训练集和测试集的重叠[1]减轻模型的记忆现象-降低隐私攻击的成功率[2]语义聚类方法:去除语义重复数据[3]8.2.3数据处理—隐私删除常用的过滤删除方法:分类器法训练一个小型分类器判断文本质量规则判断人为设置规则过滤低质量数据质量过滤会增强模型的泛化性和对有害信息判别的能力[1]隐私删除的类似任务—质量过滤思考:隐私删除是否会增强模型泛化性和对是否是隐私信息判别的能力?数据信息的过滤和删除可能会导致少数群体被边缘化的现象[2][3][1]S.Longpreetal.2021APretrainer’sGuidetoTrainingData:MeasuringtheEffectsofDataAge,DomainCoverage,Quality,&Toxicity.2023.[2]SuchinGururanganetal.2022.Whoselanguagecountsashighquality?measuringlanguageideologiesintextdataselection.EMNLP2021.[3]ShangbinFengetal.2023.Frompretrainingdatatolanguagemodelstodownstreamtasks:Trackingthetrailsofpoliticalbiasesleadingtounfairnlpmodels.ACL2023.8.2.3数据处理分词化基于单词的分词器(Word-basedTokenizer)基于字符的分词器(Character-basedTokenizer)基于子词的分词器(Subword-basedTokenizer)字节对编码标记化(Byte-levelBPE)WordPieceTokenizerUnigramTokenizer(SentencePieceorUnigram)Source:https://huggingface.co/learn/nlp-course/8.2.4模型性能关系数据源的多样性数据分布对模型性能具有影响。Gopher团队进行了一系列消融实验[138],发现增加书籍的数据比例能够提高模型捕捉文本中长期依赖关系的能力[127]。当某一特定领域的训练数据过多时,也可能会降低

LLMs在其他领域的泛化能力[164,138]。Source:https://transformers.run/c4/c15_pretrain_llms新的scalinglaw随着训练计算量增长,数据数量和模型大小应该以几乎一致的速度增长8.2.4模型性能关系Source:/abs/2001.08361OpenAIKaplan’sScalingLawsDeepMindChinchillaScalingLaws在给定训练计算量的情况下,模型性能和数据数量符合幂律关系随着训练计算量的增加,数据数量和模型大小应该同步增长,但是模型大小的增速应该更快Source:https://proceedings.neurips.cc/paper_files/paper/2022/hash/c1e2faff6f588870935f114ebe04a3e5-Abstract-Conference.html预训练数据量—ScalingLaws8.2.4模型性能关系预训练数据质量高质量的预训练数据是优化LLMs性能的关键要素之一数据低质量表现形式噪声数据对模型训练和性能产生负面影响有毒内容生成毒性文本的能力下降,而识别毒性的能力提高重复内容导致模型性能在初始阶段下降,影响模型在上下文信息中进行有效信息抽取的能力数据源1:/u011559552/article/details/142217358思考:什么样的数据集才是高质量的预训练数据?数据源2:/lonePatient/awesome-pretrained-chinese-nlp-models数据源3:/oschina/awesome-llm思考1思考还有什么因素会影响大模型预训练性能?思考28.2.4模型性能关系预训练数据集和评估数据集之间的时间不对齐会导致模型性能下降时间不对齐问题不容易用微调来解决时间不对齐导致的性能下降在更大的模型上更显著[1]ShayneLongpreetal.2023.Apretrainer'sguidetotrainingdata:Measuringtheeffectsofdataage,domaincoverage,quality,&toxicity.arXivpreprintarXiv:2305.13169.预训练数据质量—数据年龄(时效性)综上所述,预训练数据的来源、数量、质量和时效都是影响LLMs性能的重要因素。需要进行细致的优化,从而提升LLMs在泛化场景性能8.1概述8.2预训练数据工程8.2.1预训练数据源8.2.2多模态数据集8.2.3数据处理8.2.4模型性能关系8.3预训练方法8.3.1预训练任务8.3.2优化参数设置8.3.3可扩展训练技术8.4讨论本章内容/video/BV18z4y1J763/?spm_id_from=333.337.search-card.all.click&vd_source=dcdf7189a3746be0a3a8f3a14bd3df038.3.1预训练任务/video/BV18z4y1J763/?spm_id_from=333.337.search-card.all.click&vd_source=dcdf7189a3746be0a3a8f3a14bd3df038.3.1预训练任务/video/BV18z4y1J763/?spm_id_from=333.337.search-card.all.click&vd_source=dcdf7189a3746be0a3a8f3a14bd3df038.3.1预训练任务/video/BV18z4y1J763/?spm_id_from=333.337.search-card.all.click&vd_source=dcdf7189a3746be0a3a8f3a14bd3df038.3.1预训练任务/video/BV18z4y1J763/?spm_id_from=333.337.search-card.all.click&vd_source=dcdf7189a3746be0a3a8f3a14bd3df038.3.1预训练任务8.3.1预训练任务语言建模Next-tokenprediction这样的思想事实上是在传达只要模型足够大,学到的知识足够多,任何有监督任务都可以通过无监督的方式来完成,即任何任务都可以视作生成任务。ChatGPT调研报告(仅供内部参考)8.3.1预训练任务去噪自编码通过将输入数据添加噪声,然后训练模型还原出原始的、无噪声的输入数据,去噪自编码器能够学习到数据的鲁棒表示。然而,相比于LM任务,DAE任务在实现上似乎更加复杂[214]。采用DAE作为预训练目标的LLMs包括T5和GLM-130B。8.3.2优化参数设置批量训练学习率优化器影响训练速度、收敛性、泛化能力和资源使用效率。大批量可减少梯度噪声,使训练过程更加稳定,加快收敛在训练过程中动态增加批量大小,能够有效地提升训练稳定性为平衡训练速度和稳定性,现有的大模型通常在预训练期间采用动态的学习率调度策略,包括预热(Warm-up)和衰减(LearningRateDecay)策略SGD计算效率高、收敛速度较慢RMSprop自适应调整,收敛快、稳定性高Adam通过计算梯度的一/二阶矩估计来自动调整每个参数的学习率AdamW(带权重衰减Adam)收敛快、对超参数不敏感、对复杂损失函数适应性好随着LLMs规模扩大,训练中损失突变的情况变得更加普遍,加剧了训练的不稳定性。为了解决该问题,PaLM和OPT模型采用了一种简单但有效的策略,即在损失突增发生之前,从较早的检查点重新开始训练,并跳过可能导致问题的数据。该策略提高了训练稳定性。8.3.2优化参数设置稳定训练权重衰减(WeightDecay)通过在损失函数中添加与模型权重平方成正比的项,减少模型复杂度并防止过拟合。鼓励模型在训练过程中保持较小的权重值,有助于提高模型的泛化能力,并增强训练稳定性。梯度裁剪(GradientClipping)梯度裁剪则用于防止梯度爆炸在训练过程中,由于梯度累积,可能会出现异常大的梯度,导致权重更新时步长过大,破坏训练稳定性。通过设置一个阈值限制梯度大小,当梯度范数超过该阈值时进行缩放,避免极端步长变化,从而防止训练中的不稳定现象其它稳定训练的策略CPU:由控制单元(Contraol)、运算单元(ALU)、缓存(Cache)等组成;对比GPU,CPU的控制单元数量较小适合处理复杂性任务GPU:拥有大量运算单元具有强大的并行计算能力简化的控制器,无法处理复杂性较高的任务CPU与GPU架构对比深度神经网络训练涉及大量的矩阵(张量)运算。由于图形处理器(GPU)架构包含大量的计算单元,这些单元能够并行处理矩阵运算,相较于中央处理器(CPU),GPU提供了更高的计算效率。8.3.2优化参数设置因此需要可扩展训练技术Nvidia-A100:

40GB或80

GB显存,但仍无法满足使用一张卡满足训练大模型8.3.3可扩展训练技术3D并行ChatGLM-6B模型参数:ChatGLM-6B架构:隐层-4096,中间层-11008,block数-32,文本长度,数据类型:Int8模型参数所占内存:6B

x

1

bytes

=

6GB梯度所占内存:6B

x

1

bytes

=

6GB优化器(AdamW)参数:2倍模型参数,6GB

x

2

=

12GB总计:约24GB显存8.3.3可扩展训练技术如果训练130B的模型呢?思考题8.3.3可扩展训练技术3D并行Source:/post/7289661052806594618利用AI集群,一般需要根据硬件资源与数据/模型规模的匹配情况,考虑对计算任务、训练数据和模型进行划分,从而进行分布式存储和分布式训练。大模型突破上百亿规模参数,传统的单机单卡模式已经无法满足超大模型的训练需求。需要单机多卡、甚至是多机多卡进行分布式大模型训练专家模型数据并行模型并行混合专家数据模型并行大语言模型并行训练方法—数据并行LilianWengOpenAI应用人工智能研究负责人,北大校友,个人主页:https://lilianweng.github.io/lil-log/批量同步并行(BSP):worker在每个Mini-batch结束时同步数据—优点:保证了模型权重传递的及时性—缺点:每台机器都必须排队等待其他机器发送梯度异步并行(ASP):每个GPU采用异步方式处理数据,异步更新模型—优点:避免了异构机器间的相互等待—缺点:影响了权重传递的时效,降低了统计学习效率数据并行的特点:如果模型太大无法嵌入到一台机器,就将暂时未使用的参数卸载回CPU。数据交换传输通常在后端进行(不干扰训练计算),每个Mini-batch计算结束后worker需要同步梯度或权重,以保证学习效率。8.3.3可扩展训练技术数据并行LilianWengOpenAI应用人工智能研究负责人,北大校友,个人主页:https://lilianweng.github.io/lil-log/Device0Device1Device2Device3L0L1L2L3WorkflowPipelineparallelism8.3.3可扩展训练技术模型并行LilianWengOpenAI应用人工智能研究负责人,北大校友,个人主页:https://lilianweng.github.io/lil-log/8.3.3可扩展训练技术张量并行NarayananD,ShoeybiM,CasperJ,etal.Efficientlarge-scalelanguagemodeltrainingongpuclustersusingmegatron-lm[C]//ProceedingsoftheInternationalConferenceforHighPerformanceComputing,Networking,StorageandAnalysis.2021:1-15.DGX集群部署①数据并行②模型并行②拆分为8个Transformer+MLP结构,4台设备构建处理流③单台设备中张量并行数据并行+模型并行+张量并行=NVDIA+MicrosoftPTD-P解决方案(APEX)8.3.3可扩展训练技术8.3.3可扩展训练技术ZeRO-1ZeRO-2ZeRO-3方案通过将优化器参数分布式存储在多个设备,使得单设备只保存一部分参数,从而显著减少了内存的使用训练过程中需要维护的大量中间变量,如动量、平方梯度等。这些状态通常会占用大量内存方案梯度也进行拆分,并将其分布到多个GPU上。每个GPU只需存储和处理一部分梯度训练大规模模型时,梯度计算作为反向传播算法的核心,其数据规模非常庞大,会占用大量内存方案除了拆分优化器状态和梯度外,还通过拆分模型参数来最大化内存效率。大模型的参数规模也非常庞大分布式存储和按需加载的机制有效减少了内存占用。ZeRO技术适用于在显存资源极其有限的情况下,仍然需要训练超大规模模型的场景。8.3.3可扩展训练技术混合精度训练大模型训练常用数据类型:FP32(Full

Precise

Float

32)单精度:单个参数需要32

bitsTF32(Tensor

Float

32)单精度:由NVIDIA提出的单精度FP16半精度:单个参数需要16

bitsINT8整型:单个参数需要8

bitsBF16(Brain

Floating

Point)半精度:单个参数需要16

bits,由google提出一些研究工作尝试开发更激进的INT4量化方法。LLaMA和通义千问等开源模型也均提供了INT4量化版本的模型副本浮点数(FloatingPoint)的表示范围例:画出下述32位浮点数格式的规格化数的表示范围。

018931

第0位数符S;第1~8位为8位移码表示阶码E(偏置常数为128);第9~31位为24位二进制原码小数表示的尾数数值部分M。规格化尾数的小数点后第一位总是1,故规定第一位默认的“1”不明显表示出来。这样可用23个数位表示24位尾数。S阶码E尾数M最大正数:0.11…1x211…1=(1-2-24)x2127

最小正数:0.10…0x200…0=(1/2)x2-128

因为原码是对称的,所以其表示范围关于原点对称。机器0:尾数为0或落在下溢区中的数浮点数范围比定点数大,但数的个数没变多,故数之间更稀疏,且不均匀

正下溢

负下溢

-

(1-2-24)

×2127

数轴

可表示的正数

可表示的负数

-2-129

0

2-129

(1-2-24)

×2127

正上溢

负上溢

+/-0.1xxxxx×2E浮点数的表示°Normalformat(规格化数形式):

+/-1.xxxxxxxxxx

×RExponent°32-bit规格化数:310

S

Exponent

Significand1bit?bits?bits

S

是符号位(Sign)

Exponent用移码(增码)来表示Significand表示xxxxxxxxxxxxx,尾数部分

(基可以是2/4/8/16,约定信息,无需显式表示)°早期的计算机,各自定义自己的浮点数格式问题:浮点数表示不统一会带来什么问题?8.1概述8.2预训练数据工程8.2.1预训练数据源8.2.2多模态数据集8.2.3数据处理8.2.4模型性能关系8.3预训练方法8.3.1预训练任务8.3.2优化参数设置8.3.3可扩展训练技术8.4讨论本章内容8.4讨论思考题1如何以较小的代价修正大语言模型存储的知识?思考题2讨论在大规模语言模型预训练中常用的优化技巧,如学习率调度、混合精度训练、分布式训练等。第九章

大模型微调本章内容9.2指令微调9.2.1指令微调概念9.2.2构造指令实例9.2.3指令微调任务9.2.4多模态指令微调9.2.5指令微调优化方法9.2.6指令微调的效果9.4微调算法9.3对齐微调9.3.2RLHF算法9.3.3RLHF的发展历程9.3.4

对齐微调技术9.3.5

偏好数据集9.2.1指令微调概念大模型预训练任务(基础课学习)大模型微调任务(专业课实践)接收指令理解指令形成策略实施行动反馈调整经验积累面对未知的任务,人们通常遵循如下的系统化流程:在大语言模型领域,指令微调涉及对预训练模型进行再训练,以适应如文本分类、对话生成等特定任务9.2.2构造指令实例可根据不同任务的需求来进行设计,如InstructGPT主要有10类指令,包括生成、开卷问答、头脑风暴、对话、重写、总结,分类、闭卷问答、抽取和其它大模型常用指令类型9.2.2构造指令实例大模型常用指令微调数据集指令数据集的结构规范输入Input指令Instruction输出Output问题Question回答Answer问题Question回答Answer解析Explanation输入Input指令Instruction输出Output历史History指令微调数据集各式各样,但基本上都可以分为输入和输出两部分9.2.2构造指令实例大模型常用指令微调数据集大模型指令微调原理指令数据集的结构规范输入Input指令Instruction输出Output问题Question回答Answer问题Question回答Answer解析Explanation输入Input指令Instruction输出Output历史History输入Content输出SummaryNext-tokenprediction输入输出①与预训练目标相同自回归语言模型(GPT/Qwen/LLaMa等)输入输出[EOS]输出②基于输入的下一个Token预测任务9.2.2构造指令实例指令微调数据集构建方法①

手动创建②

模型生成③基于开源数据集扩展④上述三种方法的综合方法基于大模型基于规则人工筛查开源数据集所需数据集开源微调数据集9.2.2构造指令实例FLAN(FinetunedLanguageNet)数据集FLAN共包含8个目标语言(中文、英文、法文、德文、日文、韩文、俄文和西班牙文),涵盖了5个领域(实体、时间、货币、自然现象和健康状况)和3个难度级别(easy、medium和hard)。Source:/abs/2109.016529.2.2构造指令实例思考题使用多大规模SFT数据才能更好地适应下游任务呢?[126]L.Ouyang,J.Wu,X.Jiang,D.Almeida,C.Wainwright,P.Mishkin,C.Zhang,S.Agarwal,K.Slama,A.Ray,etal.Traininglanguagemodelstofollowinstructionswithhumanfeedback.AdvancesinNeuralInformationProcessingSystems,35:27730–27744,2022.[169]H.Touvron,T.Lavril,G.Izacard,X.Martinet,M.-A.Lachaux,etal.Llama:Openandefficientfoundationlanguagemodels.arXivpreprintarXiv:2302.13971,2023.[219]C.Zhou,P.Liu,P.Xu,S.Iyer,etal.Lima:Lessismoreforalignment.AdvancesinNeuralInformationProcessingSystems,36,2024.回答:目前的研究普遍认为SFT数据的质量比数量更重要。即所谓的“LessisMore”[219],并验证了仅使用1000条左右的高质量SFT数据对LLaMa65B模型进行微调,就能达到良好的效果。InstructGPT[126]也仅使用上万条SFT数据,就实现了远超GPT-3的能力。LLaMa2的技术报告[169]甚至提出了“QualityIsAllYouNeed”的观点,也同样验证了上万条高质量的SFT数据对指令微调是足够的。构造指令微调数据,不追求数据量的无限扩展,而应着重提升数据质量。该策略不仅可以提高模型的实际性能,还能够降低数据处理和存储成本。此外,构建和选择SFT数据集时,应更加注重数据的多样性和代表性,以确保模型能够在各种下游任务中表现出色9.2.3指令微调任务数据的指令微调的关键,对LM进行微调之前,需要收集多种任务的指令-输出样本对,例如NaturalInstructions数据集包含超1.6万个任务,3M+样本自然语言处理任务9.2.3指令微调任务自然语言处理任务理解类任务生成类任务机器翻译数据转化摘要生成自然语言推理情感分类复述检测阅读理解问答系统……构造指令微调数据,不追求数据量的无限扩展,而应着重提升数据质量。该策略不仅可以提高模型的实际性能,还能够降低数据处理和存储成本。9.2.3指令微调任务自然语言处理任务理解类任务自然语言推理情感分类复述检测阅读理解…9.2.3指令微调任务自然语言处理任务理解类任务自然语言推理情感分类复述检测阅读理解…9.2.3指令微调任务自然语言处理任务理解类任务自然语言推理情感分类复述检测阅读理解…9.2.3指令微调任务自然语言处理任务理解类任务自然语言推理情感分类复述检测阅读理解…9.2.3指令微调任务自然语言处理任务生成类任务机器翻译数据转化摘要生成问答系统…9.2.3指令微调任务自然语言处理任务生成类任务机器翻译数据转化摘要生成问答系统…9.2.3指令微调任务自然语言处理任务生成类任务机器翻译数据转化摘要生成问答系统…9.2.3指令微调任务自然语言处理任务生成类任务机器翻译数据转化摘要生成问答系统…9.2.4多模态指令微调图像-文本指令遵循数据(Instruction-FollowingData)数据组成如下:图像文件指令文本(即描述执行的任务)指令的执行结果文本指令微调多模态指令微调以图文数据为例图像数据指令数据执行结果9.2.4多模态指令微调/hiyouga/LLaMA-Factory/blob/main/data/mllm_video_demo.json9.2.4多模态指令微调Source:https://17/?p=32899模态编码器(图①)作用:是对多种模态(图片、音频、视频)的数据进行特征提取和编码,将原始输入转换为高维特征表示说明:特征提取:不同模态数据使用不同网络架构进行特征提取。嵌入层:每种模态的特征经过处理后,都会被映射到一个统一的嵌入空间中,这样不同模态的特征可以在同一空间内进行比较和融合。模态编码器9.2.4多模态指令微调Source:https://17/?p=32899模态连接器(图②)作用:将模态编码器转换的中间表达,通过模态连接器模块,将中间表达转换为与大语言模型相同的表达说明:模态连接器是训练形成的,它有三种方式:

MLP基于投影的连接器(图⑤)Q-Former基于查询的连接器(图⑥)MH-Attn基于融合的连接器(图⑦)模态连接器9.2.4多模态指令微调Source:https://17/?p=32899模态生成器(图④)说明:可选组件,它可以附加到LLM上,用于生成除文本之外的其他模态,如:图片、音频、视频等模态生成器模态生成器(文生图模型)9.2.5指令微调优化方法平衡数据分布指令微调需处理多样化任务,确保各任务相关数据之间均衡提升高质量数据集(例如FLAN和P3)的采样频率也被证实能显著增强模型效能。每个任务的数据集设定实例数量上限,此值依据数据集特性,大致介于数千至数万之间。融合指令微调和预训练为促进微调过程稳健性和效率,OPT-IML[71]在指令微调过程中加入了预训练数据,相当于为模型调优施加了正则化不同于传统先预训练后指令微调的两阶段流程,一些研究采取预训练数据与指令调优数据相结合。如GLM130B[206]与Galactica[165]指令微调作为预训练模型的后处理阶段,最终目标就是进一步优化模型的在特定任务上的能力。为实现高效微调,需注意以下两个关键点:9.2.6指令微调的效果解锁LLMs性能潜力指令调优均能为其带来显著增益,且随着参数量级的跃升,这种性能提升愈发显著。如经过1800个任务指令微调后得到的Flan-PaLM-540B比PaLM-540B平均提升9.4%由指令微调的小模型,其表现力竟可超越未经微调的“大模型”大大降低了提升模型效能的门槛。提升任务泛化能力指令微调对于缓解LLMs固有缺陷(如重复生成等),效果显著指令微调的LLMs,能够跨越语言边界,将所学技能无缝迁移至其他语言环境中的相关任务指令微调能够助力LLMs从单一语言的数据训练中,提炼出普遍适用的任务技能,并将这些技能迁移到其他语言中指令微调对LLMs主要有以下两方面的影响:9.2.6指令微调的效果/pdf/2203.02155指令微调实战本章内容9.2指令微调9.2.1指令微调概念9.2.2构造指令实例9.2.3指令微调任务9.2.4多模态指令微调9.2.5指令微调优化方法9.2.6指令微调的效果9.3微调算法9.3对齐微调9.3.2RLHF算法9.3.3RLHF的发展历程9.3.4

对齐微调技术9.3.5

偏好数据集9.3.1RLHF算法通过预训练和微调之后的模型可能产生有害、误导和带有偏见的表述,因为原始语料内部可能存在这些内容有用性简明扼要且高效的方式帮助用户解决任务或回答问题。在更高层次上,当需要进一步澄清时,大语言模型应展示出通过相关提问获取额外相关信息的能力诚实性应该向用户提供准确的内容,而不会捏造信息。此外,大语言模型在输出时传达适当程度的不确定性至关重要,以避免任何形式欺骗或信息误传无害性模型生成的语言不得具有冒犯性或歧视性,同时不能生成违法法律法规以及道德规范的有害信息将大语言模型的行为与人类的价值观或者偏好对齐9.3.1RLHF算法基于人类反馈(HumanFeedback)对语言模型进行强化学习训练(ReinforcementLearning)RLHF(ReinforcementLearningfromHumanFeedback)9.3.1RLHF算法RLHF算法工作流程RLHF应用场景自动驾驶机器人控制游戏语言模型9.3.2RLHF的发展历程2008年Bain和Sammut等人将人类反馈应用到强化学习中提出了TAMER框架,训练学习代理执行复杂的任务2011年Peter和BradleyKnox将强化学习与人类反馈结合起来,使训练出来agent更加智能2017年,PaulChristiano探讨了如何使用人类偏好来定义深度强化学习系统的复杂目标,从而训练机器人执行难以用奖励函数指定的任务9.3.2RLHF的发展历程2018年Warnell将深度强化学习与人类反馈更进一步结合和突破,用于从实时人类互动中学习2019年Ziegler和Daniel等人首次将强化学习运用到语言模型中,他们提出了一种使用人类偏好来微调预训练语言模型的方法,而不是使用监督学习。这种方法可以帮助提高语言模型的性能,使其更符合人类的偏好和需求2022年OpenAI将RLHF与Instructlearning结合,推出InstructGPT

大模型,相比于没有应用RLHF技术之前的GPT3

模型来说,各方面效果都有所提升。之后MetaAI、Google等公司推出的大语言模型也都用到了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论