一文讲透大语言模型构建流程

最近已有不少大厂都在秋招宣讲了,也有一些在 Offer 发放阶段。

节前,我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。

针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了深入的讨论。

总结链接如下:

喜欢本文记得收藏、关注、点赞。更多实战和面试交流,文末加入我们星球


图片

大语言模型的构建过程一般分为两个阶段,即:预训练、人类对齐(对齐再细分为指令微调+基于人类反馈强化学习)

预训练-数据准备流程

图片

  1. 原始语料库:为了构建功能强大的语言模型,需要从多元化的数据源中收集海量数据来进行训练。网页、书籍、代码、对话语料是主要的预训练数据。根据来源不同,可以分为通用文本数据和专用文本数据。

  2. 数据预处理:质量过滤、敏感内容过滤、数据去重。这一环节主要通过数据的规则特征、垂直定向小模型训练识别并去除质量差、有毒性、隐私的数据。

  3. 词元化:将文本内容处理为最小基本单元,用于后续的训练准备。

预训练-Transformer模型架构

Transformer是由多层的多头注意力(Multi-head Self-attention)模块堆叠而成的神经网络模型。原始Transformer模型由编码器和解码器两个部分构成,而这两个部分实际上可以独立使用,例如基于编码器架构的BERT模型和解码器架构的GPT模型(后续文章再对Transformer进行详尽解析)

图片

指令微调

指令微调(Instruction Tuning)是指使用自然语言形式的数据对预训练后的大语言模型进行参数微调,也称为有监督微调或多任务提示训练。

指令微调的数据集构建

  1. 基于现有的NLP任务数据集构建:学术界围绕传统NLP任务(如机器翻译、文本摘要和文本分类等)发布了大量的开源数据集合,这些数据是非常重要的监督学习数据资源,可以用于指令数据集构造。

  2. 基于日常对话数据构建:用户在日常对话中的实际需求作为任务描述,与人类真实诉求较为匹配,增加数据的多样性。

  3. 基于合成数据构建:借助已有高质量指令数据作为上下文学习示例,输入给大语言模型,进而生成大量多样化的任务描述和输入-输出数据。

指令微调的训练策略

  1. 优化设置:指令微调中的优化器设置(AdamW或Adafactor)、稳定训练技巧(权重衰减和梯度剪裁)和训练技术(3D并行、ZeRO和混合精度训练)都与预训练保持阶段一致,可以完全沿用。下面列出指令微调与预训练的不同之处。

  2. 数据组织:平衡数据分布

  3. 参数高效微调:如 低秩适配微调方法、适配器微调、前缀微调(这里我们也留到后文进行详细介绍,本文优先关注整体流程)

人类对齐RM/RL(强化学习阶段)

人类对齐是一个较为抽象的概念,难以直接进行形式化建模,代表性的是有用性(Helpfulness)、诚实性(Honesty)和无害性(Harmlessness),主要由以下两个阶段

奖励模型训练

这一步是使用人类反馈数据训练奖励模型

首先,使用语言模型针对任务指令生成一定数量的候选输出

然后,邀请标注员对于输出文本进行偏好标注(形式多种)

最后,使用偏好数据进行奖励模型的训练,使其建模人类偏好。

强化学习训练

这一步,语言模型对齐被转化为一个强化学习问题。具体来说:

待对齐语言模型担任策略实施者角色(称为策略模型),它接收提示作为输入并返回输出文本,其动作空间是词汇表中所有词元,状态指的是当前已生成的词元序列。

奖励模型则根据当前语言模型的状态提供相应的奖励分数,用于指导策略模型的优化。

为了避免当前训练轮次的语言模型明显偏离初始(强化学习训练之前)的语言模型,通常会在原始优化目标中加入一个惩罚项(如KL离散度)

例如:Instruct GPT使用PPO算法来优化待对齐语言模型,以最大化奖励模型的奖励。对于每个输入提示,InstructGPT计算当前语言模型与初始语言模型生成结果之间的KL离散度作为惩罚项。KL散度越大,意味着当前语言模型越偏离初始语言模型。

### 视觉语言模型的基本概念 视觉语言模型(Vision-Language Models, VLMs)是一种跨模态的人工智能技术,旨在连接视觉数据(如图像、视频)与自然语言之间的关系。这些模型可以理解并生成关于视觉内容的语言描述,或者反过来根据语言指令分析和解释视觉信息[^1]。 具体来说,在图像描述任务中,VLM 需要识别图像中的对象、场景及其相互作用,并将其转化为连贯的自然语言叙述;而在图像问答任务中,则需结合输入的文字问题解析图像内容,提供精确的回答。这表明 VLM 不仅具备强大的感知能力,还拥有一定的推理能力和表达能力。 ### 工作原理 视觉语言模型的核心工作流程通常涉及以下几个方面: #### 跨模态特征提取 为了实现对多种类型的数据的理解,VLM 使用预训练方法来获取高质量的跨模态表示向量。例如,基于 Transformer 的架构被广泛应用于这一过程,因为它能有效捕捉序列间的依赖关系,无论是来自文本还是像素级的空间分布信息[^2]。 ```python import torch from transformers import CLIPProcessor, CLIPModel model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") image = ... # PIL image object text = ["a photo of a cat", "a photo of a dog"] inputs = processor(text=text, images=image, return_tensors="pt", padding=True) outputs = model(**inputs) logits_per_image = outputs.logits_per_image # this is the image-text similarity score probs = logits_per_image.softmax(dim=1) # we can take the softmax to get probability distribution print(probs) ``` 此代码片段展示了如何利用 Hugging Face 提供的 `CLIP` 模型计算图片与若干候选词句之间的相似度得分,进而推断最匹配的结果。 #### 对齐机制 另一个关键技术是对齐机制的设计——即怎样让两个异质空间内的元素建立起映射关联。一些先进方案采用对比学习框架构建损失函数,促使正样本对拉近彼此距离的同时推开负样例组。 ### 应用领域 由于其卓越性能表现,VLM 正迅速渗到多个实际应用场景之中: - **电子商务**: 自动生成商品详情页文案; - **社交媒体平台**: 辅助审核违规内容或增强用户体验交互界面设计; - **医疗健康行业**: 协助医生诊断疾病影像资料同时记录诊疗意见等复杂操作步骤说明文档撰写服务等等[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值