近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。本文将从大模型的原理、训练过程、prompt和相关应用介绍等方面进行分析,帮助读者初步了解大模型。
大模型的定义
大模型是指具有数千万甚至数亿参数的深度学习模型。近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果,如自然语言处理,图片生成,工业数字化等。为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。本文讨论的大模型将以平时指向比较多的大语言模型为例来进行相关介绍。
大模型的基本原理与特点
大模型的原理是基于深度学习,它利用大量的数据和计算资源来训练具有大量参数的神经网络模型。通过不断地调整模型参数,使得模型能够在各种任务中取得最佳表现。通常说的大模型的“大”的特点体现在:参数数量庞大、训练数据量大、计算资源需求高等。很多先进的模型由于拥有很“大”的特点,使得模型参数越来越多,泛化性能越来越好,在各种专门的领域输出结果也越来越准确。现在市面上比较流行的任务有AI生成语言(ChatGPT类产品)、AI生成图片(Midjourney类产品)等,都是围绕生成这个概念来展开应用。“生成”简单来说就是根据给定内容,预测和输出接下来对应内容的能力。比如最直观的例子就是成语接龙,可以把大语言模型想象成成语接龙功能的智能版本,也就是根据最后一个字输出接下来一段文章或者一个句子。
一个基本架构,三种形式:
当前流行的大模型的网络架构其实并没有很多新的技术,还是一直沿用当前NLP领域最热门最有效的架构——Transformer结构。相比于传统的循环神经网络(RNN)和长短时记忆网络(LSTM),Transformer具有独特的注意力机制(Attention),这相当于给模型加强理解力,对更重要的词能给予更多关注,同时该机制具有更好的并行性和扩展性,能够处理更长的序列,立马成为NLP领域具有奠基性能力的模型,在各类文本相关的序列任务中取得不错的效果。
根据这种网络架构的变形,主流的框架可以分为Encoder-Decoder, Encoder-Only和Decoder-Only,其中:
1)Encoder-Only,仅包含编码器部分,主要适用于不需要生成序列的任务,只需要对输入进行编码和处理的单向任务场景,如文本分类、情感分析等,这类代表是BERT相关的模型,例如BERT,RoBERT,ALBERT等
2)Encoder-Decoder,既包含编码器也包含解码器,通常用于序列到序列(Seq2Seq)任务,如机器翻译、对话生成等,这类代表是以Google训出来T5为代表相关大模型。
3)Decoder-Only,仅包含解码器部分,通常用于序列生成任务,如文本生成、机器翻译等。这类结构的模型适用于需要生成序列的任务,可以从输入的编码中生成相应的序列。同时还有一个重要特点是可以进行无监督预训练。在预训练阶段,模型通过大量的无标注数据学习语言的统计模式和语义信息。这种方法可以使得模型具备广泛的语言知识和理解能力。在预训练之后,模型可以进行有监督微调,用于特定的下游任务(如机器翻译、文本生成等)。这类结构的代表也就是我们平时非常熟悉的GPT模型的结构,所有该家族的网络结构都是基于Decoder-Only的形式来逐步演化。
可以看到,很多NLP任务可能可以通过多种网络结果来解决,这也主要是因为NLP领域的任务和数据的多样性和复杂性,以及现代深度学习模型的灵活性和泛化能力,具体哪种结构有效,一般需要根据具体场景和数据,通过实验效果进行选择。
训练三步骤
初步认识了大模型长什么样了,接下来一起来看看如何训练出一个大模型。
训练方式,这里主要参考OpenAI发表的关于InstructGPT的相关训练步骤,主流的大模型训练基本形式大多也是类似的:
1、预训练(Pretraining)
预训练是大模型训练的第一步,目的是让模型学习语言的统计模式和语义信息。主流的预训练阶段步骤基本都是近似的,其中最重要的就是数据,需要收集大量的无标注数据,例如互联网上的文本、新闻、博客、论坛等等。这些数据可以是多种语言的,并且需要经过一定的清洗和处理,以去除噪音,无关信息以及个人隐私相关的,最后会以tokenizer粒度输入到上文提到的语言模型中。这些数据经过清洗和处理后,用于训练和优化语言模型。预训练过程中,模型会学习词汇、句法和语义的规律,以及上下文之间的关系。OpenAI的ChatGPT4能有如此惊人的效果,主要的一个原因就是他们训练数据源比较优质。
2、 指令微调阶段(Instruction Tuning Stage)
在完成预训练后,就可以通过指令微调去挖掘和增强语言模型本身具备的能力,这步也是很多企业以及科研研究人员利用大模型的重要步骤。
Instruction tuning(指令微调)是大模型训练的一个阶段,它是一种有监督微调的特殊形式,旨在让模型理解和遵循人类指令。在指令微调阶段,首先需要准备一系列的NLP任务,并将每个任务转化为指令形式,其中指令包括人类对模型应该执行的任务描述和期望的输出结果。然后,使用这些指令对已经预训练好的大语言模型进行监督学习,使得模型通过学习和适应指令来提高其在特定任务上的表现。
为了让模型训练更加高效和简单,这个阶段还有一种高效的fine-tuning技术,这为普通的从业者打开了通向使用大模型的捷径。
Parameter-Efficient Fine-Tuning (PEFT)旨在通过最小化微调参数的数量和计算复杂度,达到高效的迁移学习的目的,提高预训练模型在新任务上的性能,从而缓解大型预训练模型的训练成本。在训练过程中,预训练模型的参数保持不变,只需微调少量的额外参数,就可以达到与全量微调相当的性能。
目前,很多研究对PEFT方法进行了探索,例如Adapter Tuning和Prefix Tuning等。其中,Adapter Tuning方法在面对特定的下游任务时,将预训练模型中的某些层固定,只微调接近下游任务的几层参数。而Prefix Tuning方法则是在预训练模型的基础上,添加一些额外的参数,这些参数在训练过程中会根据特定的任务进行更新和调整。
工业界现在常用的Adapter Tuning的技术是Low-Rank Adaptation(LoRA) 。它通过最小化微调参数的数量和计算复杂度,实现高效的迁移学习,以提高预训练模型在新任务上的性能。LoRA 的核心思想是将预训练模型的权重矩阵分解为两个低秩矩阵的乘积。通过这种分解,可以显著减少微调参数的数量,并降低计算复杂度。该方式和机器学习中经典的降维的思想很类似,类似地,LoRA 使用了矩阵分解技术中的奇异值分解 (Singular Value Decomposition, SVD) 或低秩近似 (Low-Rank Approximation) 方法,将原始权重矩阵分解为两个低秩矩阵的乘积。
在微调过程中,LoRA 只更新这两个低秩矩阵的参数,而保持其他预训练参数固定不变。这样可以显著减少微调所需的计算资源和时间,并且在很多任务上取得了与全量微调相当的性能。
LoRA技术的引入使得在大规模预训练模型上进行微调更加高效和可行,为实际应用提供了更多可能性。
3、对齐微调(Alignment Tuning)
主要目标在于将语言模型与人类的偏好、价值观进行对齐,其中最重要的技术就是使用RLHF(reinforcement learning from human feedback)来进行对齐微调。
Step 1.预训练模型的有监督微调
先收集一个提示词集合,并要求标注人员写出高质量的回复,然后使用该数据集以监督的方式微调预训练的基础模型。
Step 2.训练奖励模型
这个过程涉及到与人类评估者进行对话,并根据他们的反馈来进行调整和优化。评估者会根据个人偏好对模型生成的回复进行排序,从而指导模型生成更符合人类期望的回复。这种基于人类反馈的训练方式可以帮助模型捕捉到更多人类语言的特点和习惯,从而提升模型的生成能力。
Step 3.利用强化学习模型微调
主要使用了强化学习的邻近策略优化(PPO,proximal policy optimization )算法,对于每个时间步,PPO算法会计算当前产生和初始化的KL散度,根据这个分布来计算一个状态或动作的预期回报,然后使用这个回报来更新策略,达到对SFT模型进一步优化。
但是这种算法存在一些比较明显的缺点,比如PPO是on-policy算法,每一次更新都需要收集新的样本,这就会导致算法的效率低下,并且更新是在每次训练时进行的,因此策略更新比较频繁,这就会导致算法的稳定性较差。
所以当前有很多新的技术出来替代RLHF技术:
直接偏好优化(DPO)是一种对传统RLHF替代的技术,作者在论文中提出拟合一个反映人类偏好的奖励模型,将奖励函数和最优策略之间的映射联系起来,从而把约束奖励最大化问题转化为一个单阶段的策略训练问题。然后通过强化学习来微调大型无监督语言模型,以最大化这个预估的奖励。这个算法具有简单有效和计算轻量级的特点,不需要拟合奖励模型,只需要进行单阶段训练,也不需要大量的超参数调节,所以在响应质量方面也通常优于传统的RLHF。另外还有RLAIF从采样方式,生成训练奖励模型的评分的角度来替代原有的PPO的RLHF进行训练。
DPO方法
对齐微调是一个关键的阶段,这一阶段使用强化学习从人类反馈中进行微调,以进一步优化模型的生成能力。它通过与人类评估者和用户的互动,不断优化模型的生成能力,以更好地满足人类期望和需求。
Prompt
作为大模型的一个技术分支,很多人接触大模型的第一步就是写prompt,而这的确也是大模型发展的其中一个重要方向技术,也是很多实际运用问题解决的关键步骤。
Prompt技术的基本思想是,通过给模型提供一个或多个提示词或短语,来指导模型生成符合要求的输出。本质上是通过恰当的初始化参数(也就是适当的输入语言描述),来激发语言模型本身的潜力。例如,在文本分类任务中,我们可以给模型提供一个类别标签的列表,并要求它生成与这些类别相关的文本;在机器翻译任务中,我们可以给模型提供目标语言的一段文本,并要求它翻译这段文本。
Prompt根据常用的使用场景可以概括为以下四种:
Zero-Shot Prompt: 在零样本场景下使用,模型根据提示或指令进行任务处理,不需要针对每个新任务或领域都进行专门的训练,这类一般作为训练通用大模型的最常见的评估手段。
Few-Shot Prompt: 在少样本场景下使用,模型从少量示例中学习特定任务,利用迁移学习的方法来提高泛化性能,该类prompt也是很多实际应用案例都采取来进行大模型微调训练的方式。
**Chain-of-thought prompt:**这类prompt常见于推理复杂任务,它通过引导模型逐步解决问题,以一系列连贯的步骤展示推理的思路和逻辑关系。通过这种逐步推理的方式,模型可以逐渐获得更多信息,并在整个推理过程中累积正确的推断。
**Multimodal prompt:**这类prompt包含的信息就更丰富,主要是将不同模态的信息(如文本、图像、音频等)融合到一起,形成一种多模态的提示,以帮助模型更好地理解和处理输入数据。比如在问答系统中,可以将问题和相关图像作为多模态输入,以帮助模型更好地理解问题的含义和上下文背景,并生成更加准确和全面的答案。
在具体实践中,根据场景设计合适的prompt进行优化,评估也是大模型工程中重要的一步,对大模型准确率和可靠性提升是必不可少的,这步也是将模型潜在强大能力兑现的关键一环。
大模型应用
当前大模型已经在很多领域开始产品化落地,除了ChatGPT这类大家熟知的产品,主要还有以下一些主流的应用:
**1)办公Copilot类产品:**微软首先尝试使用大模型能力来接入旗下的Office系列软件,在Word中可以对文档进行总结并提出修改编辑的建议,也可以对所给的文章进行总结;此前一直头疼Excel各种复杂操作的用户现在也降低了使用门槛,可以直接通过描述就处理数据;PowerPoint中通过对提出要求识别就能自动生成一份展示内容;在Outlook中直接使用自然语言来生成邮件内容等功能,实现真正的AI秘书。
**2)Github Copilot类产品:**直接通过对话方式进行各种功能代码的生成,包括帮忙写测试用例,解释代码片段和debug程序问题,这个功能对解放程序员生产力取得了革命性的进步,能让开发人员更多的关注到业务理解,系统设计,架构设计等更高级需求的事情上。
**2)教育知识类产品:**得益于大模型强大的理解以及知识储备,很多公司也嵌入其知识类产品进行应用,比如chatPDF就可以帮助经常看论文的科研人员快速地通过问答的方式进行文章的信息提取,理解以及总结重要内容,大大提升了阅读新论文的效率;对于学习语言的人来说,一款叫Call Annie的软件基本能取代口语老师的角色,并且可以无限时间,随时随地进行口语对话练习。
**4)搜索引擎和推荐系统:**大模型可以应用于企业的搜索引擎和推荐系统,通过深度学习算法,对用户的搜索意图进行准确理解,提供更精准的搜索结果和个性化的推荐内容。这有助于提升用户体验,增加用户黏性,提高企业的转化率和销售额。
**5)公司业务定制化大模型:**大模型具有通用性能力,但是在很多零样本的场景的表现依然比不上那个领域正在使用的产品,例如在某些垂直领域,包括工业领域,医药领域,管理领域等场景下进行专业问题,研究型问题的使用依然需要特定场景的数据进行微调,这种定制化的服务也能给企业带来巨大的效率提升和节省成本的收益,属于比较有前景的业务。
**6)计算相关上下游相关产业:**很多公司正在积极探索基于GPU、FPGA和ASIC等硬件加速制造技术,以支持大模型的训练和推理速度。此外,云计算技术的发展也为大模型的训练提供了更多的计算资源支持,未来科技公司将积极探索基于云计算的分布式训练和推理技术。
除这些外还包括算法优化、隐私和数据安全以及模型可解释性等方面的研究和应用,每天还有很多大模型的应用正在不断涌现,大模型在未来仍然有很大的发展潜力,国内的优秀大模型代表例如百度文心大模型也正在搭建全系统产业化的大模型全景。
大模型挑战
大模型也存在一些现实挑战:
**1.数据安全隐患:**一方面大模型训练需要大量的数据支持,但很多数据涉及到机密以及个人隐私问题,如客户信息、交易数据等。需要保证在训练大模型的同时保障数据安全,防止数据泄露和滥用。OpenAI在发布ChatGPT模型的时候用了数月来保证数据安全以及符合人类正常价值观标准。
**2.成本高昂:**大模型的训练和部署需要大量的计算资源和人力资源,成本非常高昂。对于一些中小型企业而言,难以承担这些成本,也难以获得足够的技术支持和资源。
**3.无法保障内容可信:**大模型会编造词句,无法保障内容真实可信、有据可查。当前使用者只能根据自己需求去验证生成的内容是否真实可信,很难具有权威说服力。
**4.无法实现成本可控:**直接训练和部署千亿级参数大模型成本过高,企业级应用应使用百亿级基础模型,根据不同需求训练不同的垂直模型,企业则只需要负担垂直训练成本。但是,如何实现高效的垂直训练,如何控制成本,仍是大模型面临的问题之一。
以上挑战依然有很大空间值得改进,需要进一步研究和探索新的技术和方法。比如可以采用数据加密、隐私保护等技术来保障数据安全;可以通过改进模型架构、优化训练算法、利用分布式计算等方式来提高大模型的效率和性能;此外,还可以通过开源和共享模型资源来降低成本、促进大模型的普及和应用等方式。
总结
最后,大模型的发展是当前人工智能时代科技进步的必然趋势,甚至可以媲美工业革命般的历史意义。近期,有MIT的研究者发现语言模型竟然能理解这个世界的时间和空间,这项研究也进一步说明大模型还有很多隐藏的能力等着我们去发掘。长期看,训练出通用人工智能技术(AGI)应该只是时间问题。作为相关从业人员,可以开发更高效,更稳定的训练算法,不断探索大模型的上限,作为普通人,我们更需要拥抱这个技术,至少在日常工作和生活中也能享受到其带来的巨大便利。
参考:
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A., Kaiser, Ł. and Polosukhin, I. (2017).Attention Is All You Need.
Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C.L., Mishkin, P., Zhang, C., Agarwal, S., Slama, K., Ray, A., Schulman, J., Hilton, J., Kelton, F., Miller, L., Simens, M., Askell, A., Welinder, P., Christiano, P., Leike, J. and Lowe, R. (2022). Training language models to follow instructions with human feedback.arXiv:2203.02155 [cs]. [online] Available at: https://arxiv.org/abs/2203.02155.
Houlsby, N., Giurgiu, A., Jastrzȩbski, S., Morrone, B., De Laroussilhe, Q., Gesmundo, A., Attariyan, M. and Gelly, S. (n.d.).Parameter-Efficient Transfer Learning for NLP. [online] Available at: http://proceedings.mlr.press/v97/houlsby19a/houlsby19a.pdf.
Hu, E.J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L. and Chen, W. (2021). LoRA: Low-Rank Adaptation of Large Language Models.arXiv:2106.09685 [cs]. [online] Available at: https://arxiv.org/abs/2106.09685.
Openai, C., Deepmind, J., Brown, T., Deepmind, M., Deepmind, S. and Openai, D. (n.d.).Deep Reinforcement Learning from Human Preferences. [online] Available at: https://arxiv.org/pdf/1706.03741.pdf.
Rafailov, R., Sharma, A., Mitchell, E., Ermon, S., Manning, C., Finn, C., & Cz Biohub. (n.d.). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. https://arxiv.org/pdf/2305.18290.pdf
Xiang, L., Li and Liang, P. (n.d.).Prefix-Tuning: Optimizing Continuous Prompts for Generation. [online] Available at: https://arxiv.org/pdf/2101.00190.pdf.
Zhao, W.X., Zhou, K., Li, J., Tang, T., Wang, X., Hou, Y., Min, Y., Zhang, B., Zhang, J., Dong, Z., Du, Y., Yang, C., Chen, Y., Chen, Z., Jiang, J., Ren, R., Li, Y., Tang, X., Liu, Z. and Liu, P. (2023). A Survey of Large Language Models.arXiv:2303.18223 [cs]. [online] Available at: https://arxiv.org/abs/2303.18223.
Gulcehre, C., Paine, T.L., Srinivasan, S., Konyushkova, K., Weerts, L., Sharma, A., Siddhant, A., Ahern, A., Wang, M., Gu, C., Macherey, W., Doucet, A., Firat, O. and de Freitas, N. (2023).Reinforced Self-Training (ReST) for Language Modeling. [online] arXiv.org. doi:https://doi.org/10.48550/arXiv.2308.08998.
Lee, H., Phatale, S., Mansoor, H., Lu, K., Mesnard, T., Bishop, C., Carbune, V. and Rastogi, A. (2023).RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback. [online] arXiv.org. doi:https://doi.org/10.48550/arXiv.2309.00267.
Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q. and Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.arXiv:2201.11903 [cs]. [online] Available at: https://arxiv.org/abs/2201.11903.
Khattak, M., Rasheed, H., Maaz, M., Khan, S., Fahad, S. and Khan (n.d.).MaPLe: Multi-modal Prompt Learning. [online] Available at: https://arxiv.org/pdf/2210.03117.pdf [Accessed 21 Oct. 2023].
Gurnee, W. and Tegmark, M. (n.d.).LANGUAGE MODELS REPRESENT SPACE AND TIME. [online] Available at: https://arxiv.org/pdf/2310.02207.pdf [Accessed 15 Oct. 2023].
编辑:黄继彦
数据派研究部介绍
数据派研究部成立于2017年初,以兴趣为核心划分多个组别,各组既遵循研究部整体的知识分享和实践项目规划,又各具特色:
**算法模型组:**积极组队参加kaggle等比赛,原创手把手教系列文章;
**调研分析组:**通过专访等方式调研大数据的应用,探索数据产品之美;
**系统平台组:**追踪大数据&人工智能系统平台技术前沿,对话专家;
**自然语言处理组:**重于实践,积极参加比赛及策划各类文本分析项目;
**制造业大数据组:**秉工业强国之梦,产学研政结合,挖掘数据价值;
**数据可视化组:**将信息与艺术融合,探索数据之美,学用可视化讲故事;
**网络爬虫组:**爬取网络信息,配合其他各组开发创意项目。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。