LLM和Fune-tuning

有过Stable-diffusion 神奇的出图经历之后,我在想他们是怎么做到的?带着这个问题,来了解一下其中原理的前世今生。

大语言模型 LLM

1 什么是LLM

LLM是大语言模型(Large Language Model)的缩写,是一种基于深度学习的自然语言处理技术,可以生成和理解人类语言。大语言模型通过在海量的文本数据上进行训练,学习到了语言的结构和规律,从而可以生成符合语法和语义规则的文本,并回答各种自然语言问题。随着技术的不断发展,大语言模型在自然语言处理领域的应用越来越广泛,包括机器翻译、文本生成、智能问答、情感分析等方面。

2 LLM的发展历史

LLM(Large Language Model)的发展历史可以追溯到自然语言处理和机器学习的早期研究。以下是LLM发展历史的一些关键里程碑:

  • 早期研究:
    在20世纪50年代,自然语言处理(NLP)的研究开始兴起,早期的尝试主要集中在基于规则的方法上,这些方法需要人工编写大量的规则来处理语言。然而,这些方法在处理复杂的语言现象时遇到了困难。
  • 统计语言模型的出现:
    为了克服基于规则的方法的局限性,研究人员开始探索统计语言模型。这些模型使用大量的文本数据来自动学习语言的统计规律。早期的统计语言模型包括n-gram模型和隐马尔可夫模型(HMM)。
  • 神经网络的兴起:
    在20世纪80年代和90年代,神经网络开始被应用于NLP任务中。最初的神经网络模型相对简单,如前馈神经网络和循环神经网络(RNN)。然而,由于计算资源的限制和训练数据的稀缺性,这些模型在当时的表现并不出色。
  • 深度学习的崛起:
    随着计算资源的提升和大数据时代的到来,深度学习在自然语言处理领域取得了显著的突破。特别是2006年深度置信网络(DBN)的提出和2012年卷积神经网络(CNN)在图像识别领域的成功应用,为深度学习的快速发展奠定了基础。
  • 循环神经网络和长短期记忆网络:
    在深度学习背景下,循环神经网络(RNN)开始被广泛应用于处理序列数据,如文本。然而,传统的RNN在处理长序列时存在梯度消失或梯度爆炸的问题。为了解决这个问题,长短期记忆网络(LSTM)和门控循环单元(GRU)被提出并广泛应用于NLP任务中。
  • Transformer模型的出现:
    2017年,Google提出了Transformer模型,该模型完全基于注意力机制(Attention Mechanism)来处理序列数据。与传统的RNN和CNN相比,Transformer具有更强的并行计算能力和更远的依赖关系建模能力。这一突破性的架构为后续的大型语言模型(LLM)奠定了基础。
  • 大型预训练语言模型的发展:
    随着Transformer模型的成功应用,研究人员开始探索更大规模的语言模型。这些模型在大量的文本数据上进行预训练,并可以通过微调(Fine-tuning)或提示(Prompting)的方式适应各种NLP任务。例如,GPT系列模型(如GPT-2、GPT-3)和BERT模型都是在这一时期涌现出来的代表性工作。这些大型预训练语言模型在各项NLP基准任务上取得了显著的性能提升,并推动了自然语言处理领域的快速发展。

LLM的技术原理

LLM(Large Language Model)的技术原理主要基于深度学习中的Transformer架构。Transformer是一种基于自注意力(Self-Attention)机制的神经网络结构,它通过多层叠加的自注意力机制和前馈神经网络,对输入序列进行编码和解码,从而实现自然语言处理任务。

在LLM中,Transformer架构被用于训练大规模的语言模型。这些模型通常具有数十亿甚至千亿级别的参数,通过在海量的文本数据上进行预训练,学习语言的语法、语义和上下文信息等特征。预训练过程中,模型通过自监督学习(Self-Supervised Learning)的方式,利用输入序列中的上下文信息来预测被掩盖(Masked)或部分删除的单词,从而学习语言的内在规律和表示方法。

一旦预训练完成,LLM可以被用于各种自然语言处理任务,如文本分类、情感分析、问答系统、机器翻译等。在这些任务中,LLM可以接收输入的文本数据,并通过已学习的语言表示方法将其转换为向量表示,进一步通过分类器或生成器等组件实现相应的功能。

此外,LLM还可以通过微调(Fine-Tuning)或提示学习(Prompt Learning)等方式适应特定的任务和数据集。微调是指在预训练模型的基础上,使用特定任务的标注数据进行进一步的训练,以调整模型的参数和优化性能。提示学习则是一种更为灵活的方法,它通过在输入序列中添加特定的提示信息(Prompt),引导模型生成符合任务要求的输出序列。这种方法不需要对模型进行额外的训练,因此可以快速适应不同的任务和场景。

LLM常用的大模型

GPT 系列:由 OpenAI 推出的 Generative Pre-trained Transformer 系列,包括 GPT、GPT-2 、GPT-3 、GPT-4 等模型。
BERT:由 Google 推出的 Bidirectional Encoder Representations from Transformers,是一种非常流行的预训练语言模型。
XLNet:由谷歌提出,结合了 Transformer 和自注意力机制的优势,具有更好的建模能力。
T5:由 Google 提出,使用了 Transformer 架构,统一了文本理解和生成任务。
Megatron-LM:由 NVIDIA 提出的大规模语言模型框架,支持超大规模模型训练。
Turing-NLG:由 Microsoft 提出,是一个大型预训练语言模型
Gemini Ultra:谷歌最大、最有能力的模型,适用于高度复杂的任务。

Fine-tuning (微调)模型

Fine-tuning的本质

Fine-tuning(微调):通过特定领域数据对预训练模型进行针对性优化,以提升其在特定任务上的性能。

一、微调的定义

大模型微调是利用特定领域的数据集对已预训练的大模型进行进一步训练的过程。它旨在优化模型在特定任务上的性能,使模型能够更好地适应和完成特定领域的任务。

二、微调的核心原因

定制化功能:微调的核心原因是赋予大模型更加定制化的功能。通用大模型虽然强大,但在特定领域可能表现不佳。通过微调,可以使模型更好地适应特定领域的需求和特征。

领域知识学习:通过引入特定领域的数据集进行微调,大模型可以学习该领域的知识和语言模式。这有助于模型在特定任务上取得更好的性能。

三、微调与超参数优化

微调过程中,超参数的调整至关重要。超参数如学习率、批次大小和训练轮次等需要根据特定任务和数据集进行调整,以确保模型在训练过程中的有效性和性能。

微调的前世今生:

  • 迁移学习的兴起:

迁移学习是一种机器学习方法,其核心思想是利用一个任务中学习到的知识来改善另一个相关任务的学习效果。在计算机视觉和自然语言处理等领域,研究者们开始意识到,预训练的模型在某些相关任务上可以取得不错的效果,因此便提出了迁移学习的概念。
预训练模型的出现:

随着深度学习的发展,研究者们提出了一系列强大的预训练模型,比如自然语言处理领域的 Word2Vec、GloVe,以及图像处理领域的 VGG、ResNet 等。这些模型在大规模数据上进行预训练,学习到了丰富的特征表示。

  • Fine-tuning 的概念引入:

Fine-tuning 基于迁移学习的思想,是将一个预训练好的模型应用于特定的任务,并在此基础上微调模型的参数以适应目标任务。在这种方法中,模型的底层参数通常被保持不变,而高层参数则根据特定任务的数据进行微调。
Fine-tuning 的应用:

在自然语言处理领域,比如情感分析、命名实体识别等任务,研究者们通常会使用预训练的语言模型(比如 BERT、GPT 等)作为基础模型,然后在特定任务的数据集上进行微调,以达到更好的效果。
在计算机视觉领域,例如目标检测、图像分类等任务,也可以采用类似的方法,使用预训练的模型(如 ResNet、Inception 等)进行微调,以适应特定的数据集和任务要求。

  • Fine-tuning 的优势:

Fine-tuning 能够充分利用预训练模型在大规模数据上学到的通用知识,从而使模型在特定任务上的表现更加出色。
相比于从头开始训练模型,Fine-tuning 往往需要更少的数据和计算资源,能够更快速地实现模型的迭代和优化。

总的来说,Fine-tuning 模型的前世是迁移学习的概念,它的今生则是在预训练模型的基础上进行微调,成为了许多机器学习任务中的一种常用技术。

常用的微调模型

Prompt Tuning
Prompt Tuning的出发点,是基座模型(Foundation Model)的参数不变,为每个特定任务,训练一个少量参数的小模型,在具体执行特定任务的时候按需调用。

Prefix Tuning
Prefix Tuning的灵感来源是,基于Prompt Engineering的实践表明,在不改变大模型的前提下,在Prompt上下文中添加适当的条件,可以引导大模型有更加出色的表现。

LoRA:
LoRa(Low-Rank Adaptation)是一种基于低秩适应的微调技术。它通过在LLM的权重矩阵上应用分解低秩矩阵,将模型的参数量大幅减少,从而降低计算复杂度和内存需求。这使得LoRa在保持模型性能的同时,能够在有限的计算资源下进行高效的微调。

我昨天下载的几个LoRa模型,就用在大模型生成的图片上,进行精修处理。LLM就好比是个摄影师,LoRa 可以理解为后期对照片PS的工作人员。

网上有句话:微调模型就是,颜值不高,花不起韩国整容的钱,只好用化妆品来修饰一下。

几个网站:

Huggingface:
https://huggingface.co/models 注意不是com 是co

对于AI开发者的GitHub,提供了模型、数据集(文本|图像|音频|视频)、类库(比如transformers|peft|accelerate)、教程等。

Discord:
https://discord.com/
在Discord上,你可以使用AI来增强与朋友的对话——你可以一起进行头脑风暴,一起创作,一起制作表情包。里面的人都很友好,还有个哥们纠正我的语法问题。

Civitai:
https://civitai.com/

Civitai是一个专注于使用和探索稳定扩散AI艺术模型的AI工具。它是一个平台,为AI爱好者、艺术家和开发者等用户提供了一个中心化的数字空间,用户可以在这里访问、互动并可能对AI生成的艺术模型库作出贡献。Civitai的角色、特点和好处包括:作为AI艺术模型的中心集散地,拥有大量模型的库;促进社区活跃,支持用户互动和合作;易于使用,支持模型贡献和定制;通过提供广泛的艺术模型库,促进创新和创造力;为学习和发展AI技术提供实践途径;提供社区支持,让用户可以从同好中获得建议和支持;使更多用户能够轻松接触和利用先进的AI艺术模型

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注