大模型微调(Tuning)
大模型微调(Tuning)
定义:在预训练模型基础上,调整LLM的参数以适应特定领域特定任务的过程。微调量取决于任务复杂度和数据集大小。
本质:迁移学习。利用从源数据集学习到的新知识迁移到目标数据集上。对于预训练模型而言,微调就是将预训练模型迁移到新目标数据集上。
价值:低成本效益和特定领域高适应性+防止过拟合,提升数据训练效果.
- 低成本效益和特定领域高适应性:对比利用Prompt engineering(提示词工程)来引导模型的输出行为,微调SFT可以更高效地优化模型的输出表现,可以更直接执行任务,减少对复杂提示词引导的依赖。更重要的是,通过微调技术,针对特定领域可以在小模型上实现接近大模型的性能效果,降低推理的计算成本和延迟过程,更好的适应特定领域的专业术语和内容结构,提高模型在这些领域的使用效果,提升特定领域任务的表现。
- 防止过拟合,提升数据训练效果:预训练的过程可能会导致模型过拟合无监督学习的任务,导致在特定任务上效果不好,特别是数据稀缺而且缺乏标签数据的特定领域。微调可以使模型聚焦于这些特定领域的任务数据,在减少过拟合风险的同时,针对有限的特定数据做针对性的高效训练,使得在有限数据的情况下也能获得好的模型性能。
训练数据下的微调分类
微调分类:增量预训练+SFT监督微调+RLHF人类反馈下的强化学习
SFT监督微调方法分类:指令微调(IFT)+思维链(COT)
指令微调(IFT):
来源:Instruction Tuning for Large Language Models: A Survey
定义:使用监督学习的方法,在<人类指令、已知输入、期望输出>构成的数据集上,训练LLM的过程。
场景:对话、信息提取、代码生成等。
难度:适中
方法:数据集准备+微调
数据集准备:按照<instruction人类指令、input已知输入、output期望输出>模板人为构造数据集,或者借助LLM来扩展基于少量手写样例的数据集,通过给LLM指令,通过多样化的输出形成指令数据集。
微调:基于准备好的数据集,按照监督学习的方式训练模型,根据给定指令和输入到LLM中,根据预测输出和期望输出的loss计算,反向优化训练LLM模型。思维链(COT):
来源:Towards Better Chain-of-Thought Prompting Strategies: A Survey
定义:可以视为指令微调的一种,更强调在指令中明确的要求回答要给出“推理过程”,并在期望输出内容中有推理过程。
场景:推理类任务
难度:适中
方法:COT数据集准备+微调
数据集准备:按照<Question问题描述+按照循序渐进的方式逐步思考并回答问题、Answer推理过程(逐步分解问题)+最后答案>模板人为构造数据集。
微调:和指令微调(IFT)的微调方法类似,注意其中在逻辑推理内容。
训练方法下的微调分类
训练方法下的微调分类:全微调+部分微调(也称为参数高效微调)
全微调(Full Fine-Tuning, FFT):
定义:对预训练模型全体进行微调,模型的所有参数和模型层全部被更新和优化,已达成目标任务。
应用场景:适用于目标任务和预训练模型之间存在差异的情况,或者需要模型具体较高灵活度和自适应的情况。
缺点:计算资源和时间要求较高,训练成本高;灾难性遗忘,即只微调好特定领域的表现,导致其他表现好的领域能力反而变差。部分微调(即参数高效微调,Parameter-Efficient Fine-Tuning, PEFT):
定义:在保存预训练模型底层参数不变的情况下,只更新模型的少数模型层和参数,以实现在保留预训练模型通用知识的情况下,适应特定目标任务的目的。
缺点:相比全微调计算资源和时间消耗较少,但是性能会比全微调有所减低,无法达到全微调在特定领域上的性能水平,好处就是训练成本低节省存储成本。
技术方法:LORA/P-Tuning/Prompt Tuning/Prefix-Tuning
新兴微调技术
强化微调(Reinforcement Fine-Tuning, RFT)
定义:利用奖励驱动的训练循环来完善LLM的知识的计算
当前主流的参数高效微调方法
微调综述
Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning
综述论文,系统地概述参数高效微调方法,涵盖了 2019 年初至 2024 年中期发表的 50 多篇论文,并评估这些参数高效微调方法的表现和性能。
In-Context Learning(上下文学习)
介绍:轻量级无参数更新方法。在不修改模型和其权重的条件下,利用在输入的Prompt中添加和任务相关的上下文背景信息和样例,使模型更好地生成预期结果。
特点:不需要更新模型参数,成本低,用示例做驱动灵活度高。通过和Prompt Engineering的精细化优化结合,可以获得更好的输出效果,达成10%-15%的性能提升,其作为监督微调的补充,利用Prompt精细化设计,在不依赖格外训练的情况下,实现在模型在特定任务上的更好工具使用能力。
优点:可以在不修改模型和其参数的情况下,用于快速尝试和验证;在有限带标签数据用于监督微调的情况下,提升模型在特定任务上的表现。
缺点:由于没有修改模型权重参数,其在特定任务上的表现不然全微调和参数高效微调。
基本构成要素:Role(角色,必选)+Instruction(指令,必选)+Backgroud Information(背景信息,可选) + Example(示例,可选) + Specific Requirement(具体要求,可选) + Text Input(输入文本, 必选) + 工具列表(可选)
- Role(角色,必选):明确LLM在系统中的角色身份,聚集核心职责。
- Instruction(指令,必选):准确清晰描述用户意图和任务要求,并指定输出格式的要求。
- Backgroud Information(背景信息,可选):提供帮助模型理解用户意图的上下文背景信息,包括历史信息、系统设置和用户偏好等内容。
- Example(示例,可选):在token数量限制下,few-shot少量高质量、覆盖绝大多数情况和潜在复杂场景下的工具提示调用示例,内容应该包括完整输入、推理过程思维链(CoT)、工具调用结果呈现等。
- Specific Requirement(具体要求,可选):确定模型对任务说明的详细要求,包括对输出格式的具体要求,帮助模型理解指令要求。
- Text Input(输入文本, 必选):模型处理的实际问题,一般是用户的直接文本输入。
- 工具列表(可选):可以使用OpenAI格式规范,清晰明确提供模型可调用的工具内容信息,工具应包括其名称、参数和功能说明等。
相关论文:
[1] Agentic Context Engineering: Evolving Contexts for Self-Improving Language Models
[2] ReasoningBank: Scaling Agent Self-Evolving with Reasoning Memory
Prefix Tuning
来源:Prefix-Tuning: Optimizing Continuous Prompts for Generation
方法:和Prompt Tuning和P-Tuning相比,Prefix Tuning将Prompt视为可学习的prefix(前缀),在输入数据增加prefix(前缀)做微调,即在输入token前构造和任务相关的virtual tokens作为prefix, 训练时值更新prefix部分的参数,每个下游任务都单独训练一套prefix token。
作用:prefix(前缀)其实就是引导模型提取输入中的特定信息,进而更好地生成结果。针对不同下游任务训练的prefix(前缀)可保存起来,当用户在切换不同下游任务时,可以通过加载不同prefix(前缀)参数,实现模型功能快速切换。
缺点:前缀token会占用序列长度,造成一定的额外开销,而且效果存在上限,模型表现不一定会随着prefix(前缀)延长而提高,有用模型输入token有限,增加prefix(前缀)后反而有可能降低了原来prompt的表现;prefix Tuning的线性插值比较复杂。
Prompt Tuning
来源:The Power of Scale for Parameter-Efficient Prompt Tuning
方法:最简单的参数高效性微调方法。固定LLM全部参数,侧重于制作可指导预训练模型的输入提示和模型,在训练数据前加入一小节Prompt,只训练Prompt的词嵌入层(Embedding模块),仅更新部分embedding参数来实现低成本微调大模型。其中Prompt可分为soft Prompt(Prompt Embedding采用随机初始化方式)和hard Prompt(Prompt Embedding采用人力实践准备做词嵌入初始化,编写Hard Prompt的过程又称Prompt Engineering)。
特点:任务不通用和规模不通用;和Prefix Tuning相比,参与训练的参数量和更新参数量更小,更节省显存资源.
相关论文:
[1] Prompt Tuning for Generative Multimodal Pretrained Models
[2] PPT: Pre-trained Prompt Tuning for Few-shot Learning
P-tuning
来源:GPT Understands, Too
方法:在Prompt Tuning基础上,对Prompt部分进一步编码计算,将Prompt转换为可学习的Embedding层,并利用MLP(多层感知机,multilayer perceptron)和LSTM(长短期记忆网络,Long short-term memory)方式对Prompt Embedding做处理,其中Prompt只能是soft Prompt形式。
特点:通过引入Prompt encoder来建模virtual tokens的相互依赖会收敛更快,效果更好。将目标任务的离散文本映射为可连续的优化向量,解决离散文本难定向优化的问题。少量高质量语料训练新增加的参数,其训练消耗小,训练效率更高。冻结原来的参数,利用前缀Prefix来适配不同任务,规避了模型遗忘的问题,同时由于可以在前缀Prefix中训练多个简单任务,其适配性更好,减少部署所需要的资源。
P-tuning V2
来源:P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
方法:在transformer的每一层都加入Prompt token作为输入,引入多任务学习,针对不同任务采用不同的提示长度。
目标:让Prompt Tuning方法能在不同规模的预训练模型、不同目标任务结果上实现和Fine-Tuning一样的结果。
特点:解决Prompt Tuning无法再小模型上有效提升的问题,改进对复杂硬标记任务的效果。Prompt长度是P-tuning V2最关键参数,不同类型难度的自然语言理解任务可能会因为不同的长度Prompt配置实现不同的效果。根据论文中的实验反馈,简单的分类任务需要较短的Prompt(少于10 Token),而复杂困难的任务(如序列标注等),倾向于使用更长的Prompt(超过100)。
Adapter Tuning
方法:在transformer架构中multi-head self-attention(多头注意力机制)和fully conneted layers(全连接层)后添加Adapter层进行微调。Adapter层由fully conneted layers(全连接层,将高维输入映射为低维表示) + Nonlinear activation(非线性激活函数) + fully conneted layers(全连接层,将低维输入映射回高维空间)三层构成,降低训练使更新的参数量。微调过程中,模型其他参数冻结,只更新Adapter层的参数。
缺点: 添加Adapter层后,导致模型变深,导致训练和推理速度变慢
LoRA(Low-Rank Adaptation)
来源:LoRA: Low-Rank Adaptation of Large Language Models
作者: 2021年微软提出的轻量化微调算法
方法:对预训练模型而言,适用目标任务的过程,就是变动模型低维参数的过程,通过低秩分解的方法来模拟参数的改变量,用极小的参数量来实现LLM的间接训练。具体来说,在训练时,对输入分别和原始权重的两个低秩矩阵进行计算,得到最终结果,训练完成后将两个低秩矩阵和原始模型中的权重进行合并,合并后的模型和原始模型无区别,从而避免推理期间Prompt方法带来的额外计算量问题。
效果:根据论文,添加LoRA结构的transformer模型,在仅更新少量参数的情况下,就可以实现微调精度近似全参微调的效果。
数学公式如下:
$$
h = Wx + \Delta W \approx Wx + BAx = Wx + \frac{\alpha}{r}BAx
$$
$x$表示输入,$h$表示模型输出,$W$表示pretrained weights权重矩阵,$\Delta W$表示增量权重矩阵,都是d维方阵,$A$是$rd$维矩阵,$B$是$dr$维矩阵,r为$\Delta W$的秩。$\alpha$表示缩放因子,作为超参数表示LoRA从特定任务学习中获得的特征缩放沉淀。可以先随机设置$r$和$\Delta = r$,保存$\Delta$不变的条件下,利用调整$r$来实现参数微调的效果。
数学原理:线性代数中的奇异值分解(SVD),奇异值分解(SVD)分为紧凑和截断两种形式,可以视为对矩阵数据的无损和有损压缩,借助奇异值分解(SVD)实现对矩阵数据在Frobenius norm(F-范数)下的近似,从而利用低秩低维矩阵来表达原矩阵。
LoRA适配位置选择:理论上对于具有低秩性质同时参数密集的模型层都可以利用LoRA来处理,添加LoRA适配模块,典型如多头注意力层和FFN层。需要更加不同的显存硬件资源,设置不同的参数训练方案。
特点:可以切换到不同任务上,设计简单效果好,同时可训练参数的层次更为多样化。
优点:参数规模降低,权重维度下降,训练快,减少了模型调参对硬件显存的要求。适配度高,更灵活,可以针对不同任务训练不同的LoRA,在最大化共享预训练权重的基础上,保存不同任务下的新增权重,在使用少量内存的情况下,实现对不同任务的灵活适配。在部署过程中可将训练矩阵和冻结权重合并处理,尽量减少模型遗忘的问题。
微调数据准备
微调数据要求:高质量、真实性、针对性、多样性和广覆盖、数量级
- 高质量:高质量的Prompt以及高质量reponse可以很好的让模型学会遵守指令。garbage in garbage out。对复杂逻辑和模糊意图的BadCase,可以补充思维链CoT的数据,通过引导模型做推理和决策,帮助模型学习怎样分解处理问题。
- 真实性:优先使用真实用户交互产生的BadCase标准和补充数据,真实数据可以很好捕获到实际应用场景中的各种变化和复杂性,从而使微调后的模型可以更好适应真实场景。
- 针对性:不同prompt对模型的重要性和必要性不一样,针对用户反馈差的数据人工修改大模型回复,更改为更优质的数据加入到微调数据中。
- 多样性和广覆盖:prompt和response的类型多样、场景多样、避免重复,尽量覆盖到全场景确保数据的多样性,覆盖各种长尾和边缘问题情况,避免过拟合导致的模型效果不佳,缺乏泛化能力。
- 数量级:最低要准备100条数据,最好达到5000条为最优,补充数据可以采用少量多次的策略,每次补充针对性强的数据做小规模迭代训练,观察效果后再尝试。
总之微调数据的准备,要重复挖掘各个维度,分析数据的分布特点,合理划分训练、测试和验证集。
注意:
- 基础模型能力在特定目标任务处理上能力越弱,其更需要数据集来补充加强其能力的提升,对数据集的数量和覆盖度的要求就越高。
- 复杂逻辑推理、多步多工具调用、精细化参数组合使得任务复杂度越高,其对数据的需求量也越大。
微调数据构造:获取和合成
数据获取方式:格式化NLP任务数据、从日常对话中获取数据、数据合成
数据合成方式:批量生成(Batch Generation)、脚本合成(Script Synthesis)、数据增强(Data Augmentation)
批量生成(Batch Generation):
Self-Instruct(出自论文Self-Instruct: Aligning Language Models with Self-Generated Instructions)、Evol-Instruct(出自论文WizardLM: Empowering large pre-trained language models to follow complex instructions)。利用大模型根据自身能力和少量的样例数据,自动生成海量指令响应对数据,高效扩展数据库。
- Self-Instruct步骤:指令生成->分类任务识别->实例生成->过滤和后处理
- Evol-Instruct步骤:指令生成->响应指令->进化消除->数据集拆分
指令生成:使用LLM生成多样化而且负责的指令,包括深度进化(包括添加约束、深化、具体化,增加推理步骤以及输出负责化)和广度进化(增加主题和技能覆盖度和数据集多样性)。
响应指令:使用LLM为进化后的指令生成相应的响应。
进化消除:过滤进化后失败的指令。
数据集拆分:测试数据集中的数据质量分布要和训练数据集中大致一致,内容不能重复,避免测试不准确。
脚本合成(Script Synthesis):适用于具有特定格式和规则下的数据,特别是控制参数组合和特定场景时。先定制灵活的数据Prompt模板,在利用python等脚本自动化合成数据。例如先定义工具调用的prompt模板,利用Python随机组合不同下的用户输入、参数值和工具名称,自动化生成结构化语料。
数据增强(Data Augmentation):是对现成语料的扩展增强,例如将输入内容做同义词替换、结构变换、删除无关信息或口语化表达等,尽量增加数据集的多样性和泛化能力,涉及工具调用部分,可以对参数值做随机组合,来生成更多的变体。低成本扩充语料,尽可能模拟用户输入复杂性。
大模型能力评估评测指标
目的:评估模型在未见过数据上的泛化能力和预测能力.
问题分类:封闭式问题和开放式问题.
- 封闭式问题:
方法:自动化评测。根据模型输出和标准答案,使用脚本完成模型评测。
封闭式评测数据集:
| 数据集名 | 数据集内容 |
|---|---|
| MMLU | 出自论文Measuring Massive Multitask Language Understanding。大规模多任务语言理解基准数据集,用于评估大型语言模型(LLM)在广泛知识领域和复杂任务中的综合能力。 |
| C-Eval | 出自论文C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models。全面的中文基础模型评估套件.C-Eval包含四个难度级别(初中、高中、大学和专业)的多项选择题,涵盖了从人文到科学与工程的52个不同学科 |
- 开放式问题:
方法:人工评测和大模型评测
人工评测:人工打分是金标准,关键在于如何指定评价规则.
评分标准:明确评估维度,角色扮演场景评估看重大模型人设遵循(言行是否符合角色设定身份、语气和特点等)和回答质量(回答是否和上下文对话相符,内容丰富有建设性),在打分时要尽量屏蔽掉预测结果的来源,以防止人为偏见的引入。
计分标准:GSB打分制和绝对分值制.
GSB打分制(Good Same Bad):用于评判对同一个评估集的两份预测结果之间的好坏,可以直接对比两种模型或参数组之间的好坏。Good代表结果A比B好,Same代表回答质量相近,Bad代表A不如B.
绝对分值制:按照一定评分标准直接对大模型的输出结果做评分,用于横向比较多个模型的结果。
典型微调数据集:
| 数据集名 | 描述 | 中英文 |
|---|---|---|
| alpaca-gpt4-data-zh | 该数据集为GPT-4生成的中文数据集,用于LLM的指令精调和强化学习等 | 中文 |
| QingyiSi/Alpaca-CoT | 指令微调数据集集合(Alpaca-CoT) | 中英文 |
大模型评测:使用大模型打开可辅助降低人工成本。为保证评估结果有效,自动打分结果也要人工复查。
开放式评测数据集:
| 数据集名 | 数据集内容 |
|---|---|
| MT-Bench | 出自论文Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena。MT-Bench是一个专门用于评估大模型能力的测试框架,它涵盖了写作、角色扮演、推理、数学、编码、人文、提取以及STEM(科学、技术、工程、数学)等8个不同领域的问题。这些问题旨在全面考察大模型在各个方面的表现。 |
| AlignBench | 出自论文AlignBench: Benchmarking Chinese Alignment of Large Language Models。AlignBench 是第一个多维度全面评估中文大模型对齐水平的评测基准。此仓库包含了 AlignBench 的介绍信息、数据和代码。 |
常用任务的评价指标:
- 分类型任务:准确率(accuracy = (TP + TN)/(TP + FP + TN + FN))、召回率(recall = TP/(FP + FN))、精确率(precision = TP/(TP + FP))、F1分数(F1 Score = 2 * (precision * recall)/(precision + recall))、ROC曲线和AUC等。
- 生成类任务:Rouge和Bleu, 其中Rouge(Recall-Orientaed Understudy for Gisting Evaluation)利用自动生成的内容和一组人工参考内容做对比计算,得到分值,借以衡量自动生成的内容和参考内容之间的“相似度”。分为单个词(Rouge-1)、两个连续词(Rouge-2)、最长公共子序列(Rouge-L)三种类型。Bleu(Bilingual Evaluation Understudy),主要用于机器翻译任务,计算模型输出和参考内容直接的n-gram(通常为1-4gram)的精确度,并对过短的输出进行惩罚,范围在[0,1]之间,一般越高越好。
大模型训练开发基本流程
大模型训练开发基本流程:pre-training(预训练)+post_training(后训练)
- pre-training(预训练):使用数据训练基础大模型,再通过增量预训练来为模型注入特定领域知识。
1.1 预训练(Pre-Training): 利用大量数据、算力资源,利用无监督训练方法获得基础大模型,该模型虽然有强大的文本生成能力,但存在不适应特定任务的能力,需要微调。
1.2 增量预训练(Continued Pre-Training:在通用的基础大模型基础上进行二次训练,利用特定领域的语料数据进行增量预训练,注入领域知识后形成垂域大模型。 - post_training(后训练):利用监督微调、偏好对齐、上下文学习、特定任务微调,使训练好的模型更好的适应特定领域的任务,并符合人类表达行为和习惯。
2.1 监督微调(Supervised Fine-Tuning, SFT):在高效率指令-响应对数据集(Instruction-Response)上对基础大模型做微调后,使模型适应特定任务。例如开源模型经过问答任务微调后的chat模型版本。Qwen 1.5-14B-Chat-GQPT-Int4(Qwen代表模型系列,1.5代表模型版本,14B表示模型参数量,Chat代表模型经过问答任务微调,GQPT代表量化格式)
2.2 偏好对齐(Reinforcement Learning from Human Feedback, RLHF):基于人类反馈的强化学习。利用人类反馈优化模型输出的生成质量,促使其生成的回答内容符合人类价值观,对齐人类偏好。一般方法是利用训练好的奖励模型(Reward Model, RM)代替人类手动打分,利用强化学习(RL)框架做大规模自动优化。
2.3 上下文学习(In-Context Learning, ICL):利用在Prompt中添加few-shot(少量示例)引导模型完成任务,不需修改模型参数,好处是可以快速适应新任务,但是其性能受限于Prompt的质量和模型本身上下文窗口大小。
2.4 特定任务微调(Task-sepcific Fine-tuning):聚集阶段,针对特定的目标任务,利用该任务少量标注数据对模型做进一步微调,以实现最大化模型在该任务上的性能。将通用模型适配到具体应用场景中,使成为该领域的专家。该阶段依赖微调数据集的构建,可以先根据不同的泛化情况构建不同泛化的数据集,再针对表示不佳的BadCase内容纠错补缺,精细化补充少量的高质量数据集,再让模型在此数据集上迭代训练。
大模型微调基本流程
大模型微调流程(以现成模型为基础)
流程:数据集准备->模型选择->微调策略选择->超参数设置->初始化模型参数->微调训练->模型评估和调优->模型性能测试->模型部署和应用
- 数据集准备:收集并准备和目标任务相关的数据集。在保证数据集质量和标准准确性的前提下,做必要的数据清洗和数据预处理。
- 模型选择:根据目标任务和数据集特点,选择合适的大模型
- 微调策略选择:根据任务需求和可用资源情况,选择适当的微调策略,确定微调层级和范围。
- 超参数设置: 确定微调过程中的超参数,如学习率等。这些超参数会影响微调的性能和收敛速度。
- 初始化模型参数: 根据微调策略和模型选择,初始化微调模型参数和权重。全微调的所有参数都需要初始化,部分微调的要选择一些模型层的参数做初始化。
- 微调训练: 运用训练数据集和微调策略,对模型开始训练,根据设置的超参数和优化算法,逐渐调整模型参数以最小化损失函数。
- 模型评估和调优: 使用验证数据集对模型做性能评估,并根据评估结果调整超参数和微调策略。
- 模型性能测试: 微调完成后,使用验证数据集对最终微调模型做性能评估,获取最终性能指标。
- 模型部署和应用: 将微调后的模型部署到实际应用中,并根据实际情况做优化和调整,满足实际需要。
注意事项:
- 超过10B的大模型在训练过程中需要特别关注训练不稳定和不收敛的问题,遇到这类问题时,可以考虑在训练崩溃时调整学习率,跳过异常的batch。对于词嵌入层的梯度爆炸或者消失的问题,可以使用BF16来避免精度溢出导致的异常。
- 使用全量微调模型适配自身领域,需要重点关注模型参数存储、前向传播和梯度更新。模型结构决定模型参数,模型的前向传播产生的中间激活值参数会影响训练所需的显存大小,模型从梯度参数更新下的优化器也需要对应的参数量,这些因素都会导致需要在模型训练前,借助对显存大小的估计来确定显卡硬件资源。
参考文献
[1] Self-Instruct: Aligning Language Models with Self-Generated Instructions
[2] Scaling Laws for Neural Language Models
[3] Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations
[4] LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models
[5] Scaling Laws of RoPE-based Extrapolation
[6] Text Generation Inference
[7] Training language models to follow instructions with human feedback
[8] Direct Preference Optimization: Your Language Model is Secretly a Reward Model
[9] A General Theoretical Paradigm to Understand Learning from Human Preferences
[10] ORPO: Monolithic Preference Optimization without Reference Model
[11] DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
[12] Inference-Time Scaling for Generalist Reward Modeling
[13] Delving into RL for Image Generation with CoT: A Study on DPO vs. GRPO
[14] Self-Rewarding Language Models
[15] Absolute Zero: Reinforced Self-play Reasoning with Zero Data
[16] TrafficGPT: Breaking the Token Barrier for Efficient Long Traffic Analysis and Generation
[17] Respond to Change with Constancy: Instruction-tuning with LLM for Non-I.I.D. Network Traffic Classification
[18] 大模型微调实践课
[19] Llama 2: Open Foundation and Fine-Tuned Chat Models
[20] A Survey of Large Language Models
[21] CharacterEval: A Chinese Benchmark for Role-Playing Conversational Agent Evaluation
[22] 大模型 LoRA 微调原理详解
[23] 理解深度学习
[24] 面向开发者的 Prompt 工程