在这里插入图片描述

1. 基础理论与架构理解

Transformer架构基本工作原理
Transformer架构是由Vaswani等人在2017年提出的,它在自然语言处理(NLP)任务中取得了巨大成功。其核心优势在于自注意力(Self-Attention)机制,这使得模型能够在处理序列数据时,权衡并聚焦于序列中不同位置的信息重要性。
Transformer架构包括编码器(Encoder)和解码器(Decoder)两部分。编码器将输入序列转换为一系列连续的表示,解码器则依赖于编码器的输出和先前的输出来生成目标序列。
自注意力机制让模型能够在处理每个词时,考虑到句子中所有词的影响,有效捕捉长距离依赖问题。这一点对于理解复杂的语言结构尤其重要。

2. 模型训练与优化

过拟合与欠拟合的影响及策略
过拟合是指模型在训练数据上表现很好,但在新的、未见过的数据上表现不佳。欠拟合则是模型在训练集和测试集上都表现不佳,通常是因为模型太过简单,无法捕捉数据中的复杂模式。
为了减轻这些问题,可以采用以下策略:

  • 数据增强:通过旋转、翻转或添加噪声来增加训练数据的多样性,有助于模型泛化能力的提高。
  • 正则化:如L1、L2正则化,可以限制模型权重的大小,降低过拟合风险。
  • 早停:在验证集的性能不再提升时停止训练,可以防止模型过于复杂从而过拟合。
  • Dropout :随机丢弃网络中的一部分神经元,可以强迫网络学习更加鲁棒的特征。

3. 数据处理与模型效能

数据清洗与预处理的重要性
在大型语言模型的训练过程中,数据清洗和预处理是至关重要的步骤。不干净或者格式不一致的数据会导致模型学习到错误的模式,影响模型的性能和准确性。
常用的数据预处理方法包括:

  • 去除噪声:如去除HTML标签、特殊字符等。
  • 归一化处理:比如统一词汇的大小写,减少模型需要处理的单词变体数量。
  • 分词:将文本分割成单词或者更小的单位,以便模型处理。
  • 词嵌入:将词语转换为向量表示,使得模型能够处理。

4. 模型评估

评估大型语言模型性能的关键指标
评估大型语言模型通常依赖于以下几个关键指标:

  • 准确率(Accuracy):模型预测正确的比例。
  • 召回率(Recall):模型正确识别的正样本比例。
  • 精确率(Precision):模型预测为正的样本中,实际为正的比例。
  • F1分数:精确率和召回率的调和平均,用于衡量模型的稳健性。

5. 应用实践

大型语言模型解决的实际问题示例
一个大型语言模型(LLM)能解决的实际问题是客户服务自动化。在这个应用场景中,LLM可以被用来理解客户的查询和问题,并提供精确、相关的回答。通过深入学习过去的客户服务记录,模型能够捕捉到常见问题的模式,并利用这些信息来生成回复,从而减少人工客服的负担,提高响应速度和服务质量。
实现这一解决方案的步骤包括

  • 数据收集与预处理:收集历史客户服务对话,清洗数据,包括去除无关信息、纠正错别字、统一格式等。
  • 模型训练与微调:使用这些预处理过的对话数据训练一个基础的大型语言模型,然后根据具体业务需求对模型进行微调。
  • 集成与部署:将训练好的模型集成到客户服务平台,实现自动化的客户查询响应。
  • 此应用不仅可以提高效率,还能通过连续学习新的对话数据来不断优化和提高服务质量。

6. 模型微调与个性化

模型微调过程及其重要性
模型微调是在一个预训练的大型语言模型基础上,通过继续在特定任务或数据集上训练,来调整模型的参数,以便模型更好地适应该特定任务。这一过程对于提高模型在特定应用场景中的表现至关重要。
微调的关键优势在于它允许模型继承预训练时学到的通用语言理解能力,同时通过少量的专门数据训练,使模型适应特定的任务或领域需求。
微调过程通常包括:

  1. 选择适合的预训练模型:基于任务类型(如文本分类、问答等)选择一个合适的预训练模型作为起点。
  2. 准备任务特定数据:收集并预处理适用于目标任务的数据集。
  3. 调整模型参数:通过在特定任务数据上训练模型,调整其权重和参数。
  4. 评估与调优:使用验证集评估微调后模型的性能,并根据需要进一步调整。

7. 多语言和跨文化适应性

多语言模型开发挑战及解决方案
开发可适用于多种语言的大型语言模型面临诸多挑战,包括不同语言之间的语法和语义差异、资源分布的不均匀等。
解决这些挑战的策略包括:

  • 多语言预训练:使用来自多种语言的大型文本数据集进行预训练,帮助模型学习跨语言的通用语言特征。
  • 跨语言转移学习:在一个语言上训练模型后,通过微调使其适应其他语言,利用语言之间的相似性。
  • 使用语言无关的表示:采用如BytePairEncoding(BPE)等编码方法,抽象出语言之上的共享表示,促进模型跨语言的理解能力。

8. 伦理、偏见与公平性

大型语言模型中的伦理问题及缓解措施
大型语言模型可能无意中放大训练数据中存在的偏见和不平等,导致不公正的输出结果。解决这一问题需要采取多方面的措施:

  • 审慎选择和预处理数据:确保训练数据多样化、平衡,减少有偏见的内容。
  • 透明度和可解释性:提高模型的透明度和决策过程的可解释性,使得潜在的偏见更容易被识别和纠正。
  • 伦理审查和监督:建立伦理审查流程,确保模型的开发和部署遵守道德和社会标准。
  • 持续监测和更新:部署后定期检查模型输出,以发现和纠正任何不公平或有偏见的结果。

9. 隐私保护与数据安全

在设计和部署大型语言模型时,处理用户数据的隐私和安全问题至关重要。隐私保护涉及确保用户数据不被未授权访问或滥用,而数据安全则是防止数据泄露或丢失的措施。
实施策略包括:

  • 数据匿名化和脱敏:在处理用户数据前,通过匿名化和脱敏技术去除个人识别信息,减少隐私泄露风险。
  • 端到端加密:使用端到端加密技术确保数据在传输和存储过程中的安全,防止数据被窃取或篡改。
  • 访问控制和身份验证:严格的访问控制和强身份验证机制可以确保只有授权用户才能访问敏感数据。
  • 定期安全审计:定期进行安全审计和漏洞扫描,及时发现和修复安全漏洞,防止安全威胁。
  • 合规性遵守:确保数据处理实践遵循当地法律法规和国际标准,如欧盟的通用数据保护条例(GDPR)。

10. 可解释性与透明度

大型语言模型的决策过程往往被视为“黑箱”,这使得理解模型的决策基础和预测结果变得复杂。提高模型可解释性和透明度对于建立用户信任、确保模型公平性和遵循法律法规至关重要。
提高可解释性的方法:

  • 特征重要性分析:使用技术如SHAP或LIME来识别模型决策中最重要的特征,帮助解释模型的输出。
  • 模型可视化:通过可视化技术展示模型的内部工作机制,例如,展示神经网络中的激活图。
  • 简化模型结构:在保持性能的前提下简化模型结构,使模型更容易理解。
  • 建立模型解释框架:开发专门的解释框架和工具,为模型用户提供易于理解的解释。

11. 模型部署与维护

大型语言模型的部署和维护涉及多个技术和操作挑战,包括模型的持续优化、性能监控和更新。应对策略:

  • 持续集成和持续部署(CI/CD):建立自动化流程,以便模型更新可以迅速且频繁地部署,同时保持高质量标准。
  • 性能监控:实施实时监控系统来跟踪模型性能和用户反馈,及时发现和修正问题。
  • 版本控制:使用版本控制系统管理模型的不同版本,确保可回溯和可管理。
  • 灾难恢复计划:制定灾难恢复计划和备份策略,以防止数据丢失或系统故障。

12. 未来展望与创新

未来几年内,大型语言模型(LLM)技术可能的发展方向包括:

  • 更高效的模型和算法:研究更高效的训练算法和模型架构,以降低计算成本和提高模型性能。
  • 更强的跨任务和跨领域适应能力:开发能够在更广泛任务和领域中表现出色的通用模型。
  • 增强的可解释性和透明度:进一步提高模型的可解释性,使非专业用户也能理解模型决策。
  • 更严格的伦理和隐私保护措施:随着对AI伦理和隐私保护意识的提高,未来的模型将更加注重这些方面的设计。

13. 主流结构

目前LLM(Large Language Model)主流结构包括三种范式,分别为Encoder-Decoder、Causal Decoder、Prefix Decoder,如下图所示:
在这里插入图片描述

Encoder-Decoder
结构特点:输入双向注意力,输出单向注意力
代表模型:T5、Flan-T5、BART

Causal Decoder
结构特点:从左到右的单向注意力
代表模型:LLaMA1/2系列、LLaMA衍生物

Prefix Decoder
结构特点:输入双向注意力,输出单向注意力
代表模型:ChatGLM、ChatGLM2、U-PaLM

14. 结构对比

三种结构主要区别在于AttentionMask不同,如下图所示:
在这里插入图片描述

  • Encoder-Decoder
    特点:在输入上采用双向注意力,对问题的编码理解更充分;
    缺点:在长文本生成任务上效果差,训练效率低;
    适用任务:在偏理解的NLP任务上效果好。

  • Causal Decoder
    特点:自回归语言模型,预训练和下游应用是完全一致的,严格遵守只有后面的token才能看到前面的token的
    规则;
    优点:训练效率高,zero-shot 能力更强,具有涌现能力;
    适用任务:文本生成任务效果好

  • Prefix Decoder
    特点:Prefix部分的token互相能看到,属于CausalDecoder 和 Encoder-Decoder 的折中;
    缺点:训练效率低。

15. 训练目标

  1. 语言模型
    根据已有词预测下一个词,即NextTokenPrediction,是目前大模型所采用的最主流训练方式,训练目标为最大似然函数:
    训练效率:Prefix Decoder < Causal Decoder
    Causal Decoder 结构会在所有token上计算损失,而Prefix Decoder只会在输出上计算损失。

去噪自编码器
随机替换掉一些文本段,训练语言模型去恢复被打乱的文本段,即完形填空,训练目标函数为:

去噪自编码器的实现难度更高,采用去噪自编码器作为训练目标的任务有GLM-130B、T5等。
根据OpenAI 联合创始人AndrejKarpathy 在微软Build 2023 大会上所公开的信息,OpenAI所使用的大规模语言模型构建流程如下图1所示。主要包含四个阶段:预训练、有监督微调、奖励建模、强化学习。这四个阶段都需要不同规模数据集合以及不同类型的算法,会产出不同类型的模型,同时所需要的资源也有非常大的差别。
在这里插入图片描述

16、预训练(Pretraining)

该阶段需要利用海量的训练数据,包括互联网网页、维基百科、书籍、GitHub、论文、问答网站等,构建包含数千亿甚至数万亿单词的具有多样性的内容。利用由数千块高性能GPU和高速网络组成超级计算机,花费数十天完成深度神经网络参数训练,构建基础语言模型(BaseModel)。**基础大模型构建了长文本的建模能力,使得模型具有语言生成能力,根据输入的提示词(Prompt),模型可以生成文本补全句子。也有部分研究人员认为,语言模型建模过程中也隐含的构建了包括事实性知识(Factual Knowledge)和常识知识(Commonsense)在内的世界知识(WorldKnowledge)。**根据文献[1]介绍,GPT-3完成一次训练的总计算量是3640PFlops,按照NVIDIAA10080G和平均利用率达到50%计算,需要花费近一个月时间使用1000块GPU完成。

由于GPT-3训练采用了NVIDIAV10032G,其实际计算成本远高于上述计算。文献[2]介绍了参数量同样是1750亿的OPT模型,该模型训练使用了992块NVIDIAA10080G,整体训练时间将近2个月。BLOOM[3] 模型的参数量也是1750亿,该模型训练一共花费3.5个月,使用包含384块NVIDIA A100 80G GPU 集群完成。可以看到大规模语言模型的训练需要花费大量的计算资源和时间。包括LLaMA系列、Falcon系列、百川(Baichuan)系列等在模型都属于此阶段。由于训练过程需要消耗大量的计算资源,并很容易受到超参数影响,如何能够提升分布式计算效率并使得模型训练稳定收敛是本阶段的重点研究内容。

17、有监督微调(Supervised Finetuning)

在这里插入图片描述

利用这些有监督数据,使用与预训练阶段相同的语言模型训练算法,在基础语言模型基础上再进行训练,从而得到有监督微调模型(SFT模型)。经过训练的SFT模型具备了初步的指令理解能力和上下文理解能力,能够完成开放领域问题、阅读理解、翻译、生成代码等能力,也具备了一定的对未知任务的泛化能力。由于有监督微调阶段的所需的训练语料数量较少,SFT 模型的训练过程并不需要消耗非常大量的计算。根据模型的大小和训练数据量,通常需要数十块GPU,花费数天时间完成训练。SFT模型具备了初步的任务完成能力,可以开放给用户使用,很多类ChatGPT的模型都属于该类型,包括:Alpaca[4]、Vicuna[5]、MOSS、ChatGLM-6B 等。很多这类模型效果也非常好,甚至在一些评测中达到了ChatGPT的90%的效果[4,5]。当前的一些研究表明有监督微调阶段数据选择对SFT模型效果有非常大的影响[6],因此如何构造少量并且高质量的训练数据是本阶段有监督微调阶段的研究重点

18、奖励建模(RewardModeling)

该阶段目标是构建一个文本质量对比模型,对于同一个提示词,SFT模型给出的多个不同输出结果的质量进行排序。奖励模型(RM模型)可以通过二分类模型,对输入的两个结果之间的优劣进行判断。RM模型与基础语言模型和SFT模型不同,RM模型本身并不能单独提供给用户使用。奖励模型的训练通常和SFT模型一样,使用数十块GPU,通过几天时间完成训练。由于RM模型的准确率对于强化学习阶段的效果有着至关重要的影响,因此对于该模型的训练通常需要大规模的训练数据。Andrej Karpathy 在报告中指出,该部分需要百万量级的对比数据标注,而且其中很多标注需要花费非常长的时间才能完成。下图2给出了InstructGPT系统中奖励模型训练样本标注示例[7]。可以看到,示例中文本表达都较为流畅,标注其质量排序需要制定非常详细的规范,标注人员也需要非常认真的对标规范内容进行标注,需要消耗大量的人力,同时如何保持众包标注人员之间的一致性,也是奖励建模阶段需要解决的难点问题之一。此外奖励模型的泛化能力边界也在本阶段需要重点研究的另一个问题。如果RM模型的目标是针对所有提示词系统所生成输出都能够高质量的进行判断,该问题所面临的难度在某种程度上与文本生成等价,因此如何限定RM模型应用的泛化边界也是本阶段难点问题。
在这里插入图片描述

19、强化学习(Reinforcement Learning)

该阶段根据数十万用户给出的提示词,利用在前一阶段训练的RM模型,给出SFT模型对用户提示词补全结果的质量评估,并与语言模型建模目标综合得到更好的效果。该阶段所使用的提示词数量与有监督微调阶段类似,数量在十万量级,并且不需要人工提前给出该提示词所对应的理想回复。使用强化学习,在SFT模型基础上调整参数,使得最终生成的文本可以获得更高的奖励(Reward)。该阶段所需要的计算量相较预训练阶段也少很多,通常也仅需要数十块GPU,经过数天时间的即可完成训练。文献[7] 给出了强化学习和有监督微调的对比,在模型参数量相同的情况下,强化学习可以得到相较于有监督微调好得多的效果。关于为什么强化学习相比有监督微调可以得到更好结果的问题,截止到2023年9月也还没有完整和得到普遍共识的解释。此外,AndrejKarpathy也指出强化学习也并不是没有问题的,它会使得基础模型的熵降低,从而减少了模型输出的多样性。**在经过强化学习方法训练完成后的RL模型,就是最终提供给用户使用具有理解用户指令和上下文的类ChatGPT系统。**由于强化学习方法稳定性不高,并且超参数众多,使得模型收敛难度大,再叠加RM模型的准确率问题,使得在大规模语言模型如何能够有效应用强化学习非常困难。

面试问题

1、哪种技术有助于减轻基于提示的学习中的偏见?

A.微调 Fine-tuning
B.数据增强Data augmentation
C.提示校准Promptcalibration
D.梯度裁剪Gradient clipping
答案:C
提示校准包括调整提示,尽量减少产生的输出中的偏差。微调修改模型本身,而数据增强扩展训练数据。梯度裁剪防止在训练期间爆炸梯度。

在这里插入图片描述

2、是否需要为所有基于文本的LLM用例提供矢量存储?

答案:不需要
向量存储用于存储单词或句子的向量表示。这些向量表示捕获单词或句子的语义,并用于各种NLP任务。并非所有基于文本的LLM用例都需要矢量存储。有些任务,如情感分析和翻译,不需要RAG也就不需要矢量存储。
在这里插入图片描述

最常见的不需要矢量存储的:
1、情感分析:这项任务包括确定一段文本中表达的情感(积极、消极、中性)。它通常基于文本本身而不需要额外的上下文。
2、这项任务包括将文本从一种语言翻译成另一种语言。上下文通常由句子本身和它所属的更广泛的文档提供,而不是单独的向量存储。

3、以下哪一项不是专门用于将大型语言模型(llm)与人类价值观和偏好对齐的技术?

A.RLHF
B.Direct Preference Optimization
C.Data Augmentation
答案:C
数据增强DataAugmentation是一种通用的机器学习技术,它涉及使用现有数据的变化或修改来扩展训练数据。虽然它可以通过影响模型的学习模式间接影响LLM一致性,但它并不是专门为人类价值一致性而设计的。
在这里插入图片描述

A)从人类反馈中强化学习(RLHF)是一种技术,其中人类反馈用于改进LLM的奖励函数,引导其产生与人类偏好一致的输出。
B)直接偏好优化(DPO)是另一种基于人类偏好直接比较不同LLM输出以指导学习过程的技术。

4、在RLHF中,如何描述“rewardhacking”?

A.优化所期望的行为
B.利用奖励函数漏洞
答案:B
reward hacking是指在RLHF中,agent发现奖励函数中存在意想不到的漏洞或偏差,从而在没有实际遵循预期行为的情况下获得高奖励的情况,也就是说,在奖励函数设计不有漏洞的情况下才会出现rewardhacking的问题。
在这里插入图片描述

虽然优化期望行为是RLHF的预期结果,但它并不代表rewardhacking。选项A描述了一个成功的训练过程。在reward hacking中,代理偏离期望的行为,找到一种意想不到的方式(或者漏洞)来最大化奖励。

5、对任务的模型进行微调(创造性写作),哪个因素显著影响模型适应目标任务的能力?

A.微调数据集的大小
B.预训练的模型架构和大小
答案:B
预训练模型的体系结构作为微调的基础。像大型模型(例如GPT-3)中使用的复杂而通用的架构允许更大程度地适应不同的任务。微调数据集的大小发挥了作用,但它是次要的。一个架构良好的预训练模型可以从相对较小的数据集中学习,并有效地推广到目标任务。
虽然微调数据集的大小可以提高性能,但它并不是最关键的因素。即使是庞大的数据集也无法弥补预训练模型架构的局限性。设计良好的预训练模型可以从较小的数据集中提取相关模式,并且优于具有较大数据集的不太复杂的模型。

6、transformer 结构中的自注意力机制在模型主要起到了什么作用?

A.衡量单词的重要性
B.预测下一个单词
C.自动总结
答案:A
transformer 的自注意力机制会对句子中单词的相对重要性进行总结。根据当前正在处理的单词动态调整关注点。相似度得分高的单词贡献更显著,这样会对单词重要性和句子结构的理解更丰富。这为各种严重依赖上下文感知分析的NLP任务提供了支持。
在这里插入图片描述

7、在大型语言模型(llm)中使用子词算法(如BPE或WordPiece)的优点是什么?

A.限制词汇量
B.减少训练数据量
C.提高计算效率
答案:A
llm处理大量的文本,如果考虑每一个单词,就会导致一个非常大的词表。像字节对编码(BPE)和WordPiece这样的子词算法将单词分解成更小的有意义的单位(子词),然后用作词汇表。这大大减少了词汇量,同时仍然捕获了大多数单词的含义,使模型更有效地训练和使用。
在这里插入图片描述

子词算法不直接减少训练数据量。数据大小保持不变。虽然限制词汇表大小可以提高计算效率,但这并不是子词算法的主要目的。它们的主要优点在于用较小的单位集有效地表示较大的词汇表。

8、与Softmax相比,Adaptive Softmax如何提高大型语言模型的速度?

A.稀疏单词表示
B.Zipf定律
C.预训练嵌入
答案:B
标准Softmax需要对每个单词进行昂贵的计算,Softmax为词表中的每个单词进行大量矩阵计算,导致数十亿次操作,而Adaptive Softmax利用Zipf定律(常用词频繁,罕见词不频繁)按频率对单词进行分组。经常出现的单词在较小的组中得到精确的计算,而罕见的单词被分组在一起以获得更有效的计算。这大大降低了训练大型语言模型的成本。
在这里插入图片描述

虽然稀疏表示可以改善内存使用,但它们并不能直接解决Softmax在大型词汇表中的计算瓶颈。预训练嵌入增强了模型性能,但没有解决Softmax计算复杂性的核心问题。

9、可以调整哪些推理配置参数来增加或减少模型输出层中的随机性?

A.最大新令牌数
B. Top-k
C.Temperature
答案:C
在文本生成过程中,大型语言模型(llm)依赖于softmax层来为潜在的下一个单词分配概率。温度Temperature是影响这些概率分布随机性的关键参数。
当温度设置为低时,softmax层根据当前上下文为具有最高可能性的单个单词分配显着更高的概率。更高的温度“软化”了概率分布,使其他不太可能出现的单词更具竞争力。
在这里插入图片描述

最大新令牌数仅定义LLM在单个序列中可以生成的最大单词数。top-k采样限制softmax层只考虑下一个预测最可能的前k个单词。

10、当模型不能在单个GPU加载时,什么技术可以跨GPU扩展模型训练?

A. DDP
B. FSDP
答案:B
FSDP(Fully Sharded Data Parallel)是一种技术,当模型太大而无法容纳在单个芯片的内存时,它允许跨GPU缩放模型训练。FSDP可以将模型参数,梯度和优化器进行分片操作,并且将状态跨gpu传递,实现高效的训练。
在这里插入图片描述

DDP(分布式数据并行)是一种跨多个GPU并行分发数据和处理批量的技术,但它要求模型适合单个GPU,或者更直接的说法是DDP要求单个GPU可以容纳下模型的所有参数。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐