京东 算法实习一面 上

八股:

  1. transformer的基本知识、几个层

Transformer完全基于注意力机制,摒弃了循环和卷积操作。Transformer出来之前,主流的序列转换模型都基于复杂的循环神经网络(RNN),包含编码器和解码器两部分。当时表现最好的模型还通过注意力机制将编码器和解码器连接起来。

Transformer是一种基于自注意力机制的深度学习模型,为了解决自然语言处理中的序列到序列(sequence-to-sequence)问题而设计的。

相较于RNN模型,Transformer模型具有2个显著的优势。

优势一:处理长序列数据。Transformer采用自注意力机制,能够同时处理序列中的所有位置,捕捉长距离依赖关系,从而更准确地理解文本含义。而RNN模型则受限于其循环结构,难以处理长序列数据。

优势二:实现并行化计算。由于RNN模型需要依次处理序列中的每个元素,其计算速度受到较大限制。而Transformer模型则可以同时处理整个序列,大大提高了计算效率。

Transformer遵循编码器-解码器总体架构,使用堆叠的自注意力机制和逐位置的全连接层,分别用于编码器和解码器。

Transformer的架构

Encoder编码器:Transformer的编码器由6个相同的层组成,每个层包括两个子层:一个多头自注意力层和一个逐位置的前馈神经网络。在每个子层之后,都会使用残差连接和层归一化操作,这些操作统称为Add&Norm。这样的结构帮助编码器捕获输入序列中所有位置的依赖关系。

Decoder解码器:Transformer的解码器由6个相同的层组成,每层包含三个子层:掩蔽自注意力层、Encoder-Decoder注意力层和逐位置的前馈神经网络。每个子层后都有残差连接和层归一化操作,简称Add&Norm。这样的结构确保解码器在生成序列时,能够考虑到之前的输出,并避免未来信息的影响。

编码器与解码器的本质区别:在于Self-Attention的Mask机制。

Transformer的核心组件:Transformer模型包含输入嵌入、位置编码、多头注意力、残差连接和层归一化、带掩码的多头注意力以及前馈网络等组件。

Transformer的核心组件

输入嵌入:将输入的文本转换为向量,便于模型处理。

位置编码:给输入向量添加位置信息,因为Transformer并行处理数据而不依赖顺序。

多头注意力:让模型同时关注输入序列的不同部分,捕获复杂的依赖关系。

残差连接与层归一化:通过添加跨层连接和标准化输出,帮助模型更好地训练,防止梯度问题。

带掩码的多头注意力:在生成文本时,确保模型只依赖已知的信息,而不是未来的内容。

前馈网络:对输入进行非线性变换,提取更高级别的特征。

Transformer的3种注意力层:在Transformer架构中,有3种不同的注意力层(Self Attention自注意力、Cross Attention 交叉注意力、Causal Attention因果注意力)

编码器中的自注意力层(Self Attention layer):编码器输入序列通过Multi-Head Self Attention(多头自注意力)计算注意力权重。

解码器中的交叉注意力层(Cross Attention layer):编码器-解码器两个序列通过Multi-Head Cross Attention(多头交叉注意力)进行注意力转移。

解码器中的因果自注意力层(Causal Attention layer):解码器的单个序列通过Multi-Head Causal Self Attention(多头因果自注意力)进行注意力计算

  1. 从0到1微调或训练一个LLM

数据-预训练-微调-对齐(提升实用性与安全性)

参考:

训练大语言模型(LLM)是 "数据 - 模型 - 训练 - 评估 - 部署" 的全链路工程,核心目标是让模型学习语言规律、知识逻辑并具备实用生成能力。以下是结构化的从 0 到 1 训练流程,兼顾理论框架与工程实践要点:

一、前置准备:明确目标与技术选型

  1. 场景与目标定义

明确核心用途:通用大模型(如 GPT-3)或垂直领域模型(如代码漏洞检测、医疗问答);

界定能力边界:支持的任务类型(生成、分类、推理)、输入输出格式(文本长度、结构化要求)、性能指标(Perplexity、准确率、生成连贯性)。

  1. 技术栈与硬件选型

框架选型:PyTorch(灵活易调试,适配研究场景)、TensorFlow(工业级部署友好);

分布式训练工具:DeepSpeed(ZeRO 优化)、Megatron-LM(张量并行 / 流水线并行);

硬件资源:GPU/TPU 集群(显存≥40GB / 卡,支持 FP16/FP8 混合精度;通用大模型需 100 + 张 A100/H100,垂直领域可缩减);

存储与算力调度:分布式文件系统(如 HDFS)、集群管理工具(Kubernetes)。

二、数据工程:高质量数据是模型的基础

  1. 数据收集与筛选

数据来源:公开数据集(如 Wikipedia、C4、BigVul)、行业私有数据(需合规授权)、爬取数据(遵守 robots 协议与版权法);

筛选原则:高质量、多样性、无偏见------ 优先选择权威、准确、无冗余的数据,覆盖目标场景的核心领域(如漏洞检测模型需重点收集 C/C++/Java 漏洞代码数据),剔除色情、暴力、虚假信息。

  1. 数据预处理(关键步骤)

清洗:去重(文本指纹去重、语义去重)、去噪(过滤乱码、低质量短句、广告垃圾信息)、格式标准化(统一编码、换行、标点);

分词与 tokenization:使用专用分词器(如 GPT 的 BytePairEncoding、CodeBERT 的 CodeTokenizer),处理特殊字符(如代码中的括号、注释),设定最大序列长度(如 512/1024 tokens);

数据格式转换:将文本转为模型可接收的张量格式(input_ids、attention_mask),划分训练集 / 验证集(比例通常 9:1);

合规处理:脱敏(去除个人隐私、敏感信息)、授权确认(商业数据需签署许可协议),符合 GDPR、数据安全法等规范。

三、模型设计与初始化

  1. 架构选型

核心架构:基于 Transformer 解码器(自回归生成,如 GPT 系列)或编码器 - 解码器(Seq2Seq,如 T5),垂直领域可复用预训练基座(如 CodeBERT 用于代码相关任务);

超参数设计(需根据数据量与算力调整):

模型规模:层数(12-100+)、注意力头数(12-16+)、隐藏层维度(768-4096+)、参数量(百万级 - 千亿级);

其他超参:激活函数(GELU/SwiGLU)、归一化方式(LayerNorm)、dropout 比例(0.1-0.3,防止过拟合)。

  1. 模型初始化

从零训练:随机初始化 Transformer 参数(适用于有海量数据的通用模型,成本高);

迁移初始化:基于公开预训练模型(如 RoBERTa、Llama)微调(适用于垂直领域,降低训练成本、提升效率);

权重初始化:采用 Xavier/Glorot 初始化,避免梯度消失或爆炸。

四、训练过程:分阶段优化与监控

  1. 预训练(核心阶段)

训练目标:让模型学习语言基础规律与通用知识;

核心任务:自回归语言建模(预测下一个 token,适用于生成式模型)、掩码语言建模(MLM,预测被掩码的 token,适用于编码器模型)、句子顺序预测(SOP,增强语义理解);

训练策略:

优化器:AdamW(权重衰减 = 0.01,防止过拟合);

学习率调度:线性预热(Warmup)+ 余弦退火 / 多项式衰减(避免初期震荡,后期稳定收敛);

批量处理:梯度累积(显存不足时等效增大 batch size)、混合精度训练(FP16/FP8,提升算力利用率);

监控指标:训练损失(Loss)、验证集困惑度(Perplexity,越低表示模型拟合效果越好)、GPU 显存占用、训练速度(tokens/sec)。

  1. 微调(适配具体任务)

监督微调(SFT):使用标注数据(如 "漏洞代码 - 修复方案" 配对数据)微调,让模型学习任务映射关系;

提示工程(Prompt Tuning):通过少量标注数据设计提示模板(如 "判断以下代码是否存在缓冲区溢出漏洞:{code} 答案:"),避免全量微调的高成本;

关键要点:冻结基座模型部分层(仅训练顶层分类器 / 适配器),使用更小的学习率(1e-5~1e-7),防止灾难性遗忘。

  1. 对齐训练(提升实用性与安全性)

奖励模型训练(RM):收集人工标注的生成结果排序数据(如 A 方案优于 B 方案),训练奖励模型评估生成质量;

强化学习微调(RLHF):基于 PPO(近端策略优化)算法,让模型根据 RM 的奖励信号调整生成策略,优化连贯性、准确性、安全性;

安全对齐:加入拒绝生成规则(如拒绝恶意代码生成、虚假信息输出),过滤有害 prompt。

五、评估与迭代:全面验证模型能力

  1. 量化评估

基础指标:困惑度(Perplexity)、BLEU/Rouge(生成任务)、准确率 / 召回率(分类任务如漏洞检测);

下游任务测试:Few-shot/Zero-shot 能力评估(如用少量漏洞样本测试模型检测准确率)、跨领域泛化性(如从 C 语言漏洞迁移到 Java 漏洞);

效率指标:推理速度(tokens/sec)、显存占用、训练成本(算力消耗)。

  1. 定性评估

人工评估:邀请领域专家评估生成结果的准确性(如漏洞检测是否误报 / 漏报)、连贯性、逻辑性、实用性;

安全性测试:检测模型是否生成有害内容(如恶意代码、隐私信息)、是否存在偏见(如性别 / 种族偏见)。

  1. 迭代优化

针对问题调整:数据层面(补充高质量标注数据、修正数据偏差)、模型层面(调整超参数、增加适配器层)、训练层面(优化学习率调度、延长训练周期);

版本管理:记录每次迭代的模型参数、数据版本、评估结果,便于回溯最优版本。

六、部署与落地:从模型到产品

  1. 模型压缩与优化

量化:INT8/INT4 量化(降低显存占用与推理延迟,如 GPTQ、AWQ 量化);

蒸馏:通过教师模型(大模型)指导学生模型(小模型),在保证性能的前提下缩减参数量;

推理优化:使用 vLLM、TensorRT 等推理引擎,优化注意力计算(如 FlashAttention),提升并发处理能力。

  1. 服务化部署

部署形式:API 接口服务(如 RESTful API)、嵌入式部署(适用于边缘设备);

工程保障:负载均衡(应对高并发请求)、缓存机制(缓存高频查询结果)、监控告警(推理延迟、服务可用性);

接口设计:明确输入输出格式(如代码漏洞检测模型输入为代码文本,输出为漏洞类型、位置、修复建议)。

  1. 持续迭代与合规

收集用户反馈:监控模型实际使用中的错误(如漏检漏洞、生成无效修复方案),形成反馈数据集;

持续微调:定期用反馈数据更新模型,提升适配性;

合规合规:确保模型输出符合行业规范(如漏洞检测模型需满足信息安全标准),规避法律风险(如版权、隐私保护)。

核心总结

从 0 到 1 训练 LLM 的关键是 "数据为王、模型适配、训练可控、评估全面、部署高效":高质量数据决定模型上限,合理的架构与训练策略决定模型性能,对齐与合规决定模型实用性,而工程优化决定模型能否落地应用。实际训练中需平衡算力成本、训练周期与性能指标,优先聚焦核心场景迭代,再逐步扩展能力边界。

相关推荐
技术小黑4 小时前
RNN算法实战系列06 | LSTM 实现糖尿病探索与预测
rnn·算法·lstm
武子康5 小时前
DeepSeek 把 Agent Core 也插件化了:Harness 的真正赌注
人工智能·llm·agent
就是一顿骚操作7 小时前
VGG:用小卷积块把 CNN 做深的经典解读
人工智能·深度学习·神经网络·cnn·论文解读
orangerot9 小时前
Prompt Engineering六大核心原则
llm
DogDaoDao10 小时前
NNVC-17.1 深度解析:神经网络视频编码的最新进展与性能全景
神经网络·音视频·视频编解码·h266·vvc·vtm·nnvc
liulilittle10 小时前
LLM 推理引擎与内核系统工程原理
c++·ai·llm·内存·memory·core·kernel
OpenApi.cc11 小时前
MoCode — AI Agent Server (Docker) + macOS Desktop Client(开源项目)
数据结构·人工智能·深度学习·神经网络
张彦峰ZYF1 天前
LangGraph 深入理解 ReAct:让 AI Agent 真正学会「边想边做」
人工智能·llm·agent·react·langgroup