9
大模型黑话指南(一)
大模型开发/技术交流
- LoRA
- SFT
- P-tuning
2023.08.218039看过
今年GPT把AI带火了,每天都有新的进展、劲爆的消息,作为一个从未接触过AI开发的普通同学来说,看消息都看的费劲。所以想着把这些黑话都沉淀一下。虽然不全,甚至还有部分概念/信息理解不一定正确。不过在自学之余,捎带手整理出来,希望对和我一样的零经验选手来说有点帮助。
PT、SFT
在大模型领域,PT和SFT分别代表预训练(Pre-training)和监督微调(Supervised Fine-tuning)。这两个概念通常用于构建和优化深度学习模型,特别是自然语言处理(NLP)领域的模型。
-
预训练(Pre-training,简称PT):预训练是一种无监督学习方法,模型通过大量无标签数据进行训练,以捕捉数据的底层结构和模式。在自然语言处理领域,预训练模型通常学习词汇、语法和句子结构等基本特征。预训练的目的是让模型学会一定程度的通用知识,为后续的微调阶段打下基础。
-
监督微调(Supervised fine-tuning,简称SFT):微调是一种有监督学习方法,通过在有标签数据上对预训练模型进行进一步训练,以适应特定的任务。这个过程使得模型能够利用预训练阶段学到的通用知识,结合新数据的标签信息,使模型在特定任务上表现更好。
自监督学习
大型语言模型本质上就是神经网络,也就是一种机器学习的方法。机器学习中的监督学习需要人类帮助标注数据。然而遗憾的是,ChatGPT 底层的大型语言模型参数如此的多,如果使用监督学习,必然需要大量的人类标记数据,这几乎是不可能的。自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息训练模型,从而学习到对下游任务有价值的表征。
自回归模型
GPT 是如何在人类的文本数据上实现自监督学习?用一句话就可以讲明白:用文本的前文来预测后文。
Token
GPT 不是适用于某一门语言的大型语言模型,它适用于几乎所有流行的自然语言。所以 GPT 的 token 需要兼容几乎人类的所有自然语言,那意味着 GPT 有一个非常全的 token 词汇表,它能表达出所有人类的自然语言。如何实现这个目的呢?答案是通过 unicode 编码。实际上 GPT 是使用一种称为 BPE (Byte Pair Encoding)的算法,在上面的基础上进一步生成更大的词汇表。它的基本思想如下,将上述的基础 token (256种可能)做组合,然后统计文本数据中这些组合出现的频率,将频率最大的那些保留下来,形成新的 token 词汇表。因此,通过此方法得到的 token 和文字的映射不一定是一对一的关系。 GPT 实际是将我们输入的文字转换成 token,然后通过 GPT 模型预测 token,再将 token 转换成文字,最后再输出给我们。
上下文学习
对于大型语言模型来说,即需要大量的数据标记成本,也需要算力成本和时间成本。然而,不同场景下任务的需求是不一样的,不可能根据每个任务都去微调模型。能否不进行微调就让模型学习完成不同的任务呢?答案是可以的,这个神奇的技术称为 上下文学习 (In Context Learning)。它的实现非常简单,只需要给到模型一些引导,将一些事先设定的文本输入到大型语言模型中,就像手把手教人学会某项技能一样,大型语言模型就能神奇的学习到如何处理后续的新任务。遗憾的是,为什么大型语言模型具有上下文学习的能力仍然是一个迷,业内把这个能力称为“涌现”。
思维链
“思维链”是指在思考问题或探索主题时,一个思想引发另一个思想,形成一系列相互关联的思维环节。这种思维过程可以是线性或非线性的,通过连接和扩展思想,帮助我们更全面地理解问题,促进创新性思考,思维链是认知过程中的重要组成部分。
Transformer
是一种基于自注意力机制的深度学习模型架构,用于处理序列数据,特别在自然语言处理领域取得重大突破。它由编码器和解码器组成,通过并行处理和全局关联建立,能够更好地捕捉长期依赖关系,实现高效的序列到序列转换。
LoRA
假设有一个预训练好的语言模型,包含了大量的预训练好的参数。现在要使用这个模型来解决一个特定的下游任务,例如情感分析。为了适应这个特定的任务,需要微调模型。
使用LoRA方法,首先将预训练模型的参数冻结,即保持不变。然后,在冻结的预训练模型之上,添加一些新的层,这些层将用于适应新的任务。例如,可以添加一个分类器层,用于将文本分类为正面或负面情感。在这个过程中,只有新添加的层的参数将被训练,而预训练模型的的其他参数将被保持不变。这样,只需要训练一小部分参数,就可以快速微调模型,同时保持了预训练模型的性能。因此,LoRA方法可以在不增加模型大小和计算成本的情况下,实现更好的模型性能和更快的训练速度。
评论