当前位置: 首页 > news >正文

Lion: Adversarial Distillation of Proprietary Large Language Models

 

3 Methodology

总述

核心目标

  在教师模型参数不可访问的黑盒设定下,将私有大语言模型(Teacher LLM)的知识迁移到轻量开源学生模型(Student LLM)。

核心思想

  传统知识蒸馏最小化均匀数据分布上的模型差异:

    $\min_S \mathbb{E}{x\sim\mathcal{U}} [\mathcal{D}(T(x), S(x))]$

  本文改为优化困难样本分布上的模型差异上界:

      $\min_S \mathbb{E}{x\sim\mathcal{H}} [\mathcal{D}(T(x), S(x))]$

  • $\mathcal{U}$:均匀数据分布

  • $\mathcal{H}$:困难样本分布(师生差距大)

  • $\mathcal{D}(\cdot)$:模型输出差异度量

  通过对抗框架持续生成困难样本,形成模仿—判别—生成闭环迭代提升。

3.2 Initialization(初始化)

3.2.1 角色定义

  • Student $S(x;\theta^S)$:待训练的开源模型(以 LLaMA 初始化)

  • Teacher $T(x;\theta^T)$:私有闭源模型(ChatGPT,参数不可见)

  • Referee $R$:评估师生差距的判别器(同 $T$,Prompt 切换角色)

  • Generator $G$:生成新困难指令的生成器(同 $T$,Prompt 切换角色)

3.1.2 数据池

  1. Train Pool $X^A$

           用于训练学生模型,每次迭代完全替换为新指令。

  2. Cache Pool $X^B$

          用于评估师生差距,每次迭代追加新指令,持续扩容。

3.1.3 初始化步骤

  1. 学生模型 $S$ 用 LLaMA 初始化。

  2. 教师 $T$ / 裁判 $R$ / 生成器 $G$ 均用 ChatGPT(gpt-3.5-turbo),靠不同 Prompt 扮演角色。

  3. $X^A$ 初始化为 Alpaca 52K 自动生成指令。

  4. $X^B \leftarrow X^A$(初始与训练池相同)。

3.2 Imitation Stage(模仿阶段)

3.2.1 目标

  让学生模型对齐教师模型输出,完成基础知识蒸馏。

3.2.2 数据构建

  对训练池中每条指令 $x_i^A \in X^A$,用教师模型生成标准答案:

    $\{(x_i^A,\ T(x_i^A))\}_{i=1}^{N^A}$

3.2.3 训练目标

  使用自回归语言建模损失微调学生:

    $\mathcal{L}_{\text{imitate}} = -\sum_{i=1}^{N^A} \log S(T(x_i^A) \mid x_i^A)$

  • 让学生尽可能复刻教师的回答分布。

3.2.4 特点

  • 单向知识迁移,是传统指令微调的标准步骤。

  • 仅解决“简单样本”,不关注学生薄弱点。

3.3 Discrimination Stage(判别阶段)

3.3.1 目标

  从缓存池中识别困难指令(hard instructions):师生表现差距显著的指令。

3.3.2 数据池规则

  • Train Pool:替换式更新(只保留新生成指令)

  • Cache Pool:追加式更新(不断扩容,保证评估全面性)

3.3.3 裁判评分机制

  对每条指令 $x_i^B \in X^B$:

  1. 分别得到师生输出:

    $y_i^T = T(x_i^B),\quad y_i^S = S(x_i^B)$

  2. 裁判 $R$ 从有用性、相关性、准确性、详细度打分。

  3. 消除位置偏差:交换 $y_i^T,y_i^S$ 顺序评分两次,取平均。

  4. 计算差距分数:

    $ d_i = R(y_i^T | x_i^B) - R(y_i^S | x_i^B)$

3.3.4 困难指令判定

  设定阈值 $\tau=1.0$:

    $\text{Hard instruction} \Longleftrightarrow d_i \ge \tau$

  • $d_i$ 越大,学生在该指令上越薄弱。

3.3.5 输出

  • 困难指令集 $\mathcal{H}$

  • 简单指令集 $\mathcal{E}$

3.4 Generation Stage(生成阶段)

3.4.1 目标

  生成与困难指令同分布的新指令,持续提升学生难度。

3.4.2 生成策略(1:1 比例)

  1. 困难指令生成

    • 从 $\mathcal{H}$ 随机采样一条指令

    • 提示生成器 $G$ 生成同领域、同任务类型的新困难指令

  2. 简单指令生成

    • 从 $\mathcal{E}$ 随机采样一条指令

    • 生成同领域、长尾分布的简单指令

    • 防止灾难性遗忘,保持任务多样性

3.4.3 去重过滤

  新指令 $x_{\text{new}}$ 需满足:

    $\text{ROUGE-L}(x_{\text{new}},\ x_{\text{exist}}) < 0.7,\ \forall x_{\text{exist}} \in X^B$

  避免重复、保证多样性。

3.4.4 数据池更新

  1. 新生成指令替换 Train Pool $X^A$

  2. 新生成指令追加到 Cache Pool $X^B$

  3. 困难/简单生成比例固定 $r=1:1$

3.5 Min-Max Game Interpretation(最小最大博弈解释)

3.5.1 对抗目标

  整个框架可解释为动态 Min-Max 博弈

    $\underbrace{\min_S}{\text{Imitation}} \quad \underbrace{\max{\mathcal{H}}}{\text{Discriminate + Generate}} \ \mathbb{E}{x\sim\mathcal{H}} [\mathcal{D}(T(x), S(x))]$

3.5.2 阶段拆解

  1. Imitation(Min)

    学生在困难样本上最小化与教师的差异,学习薄弱知识。

  2. Discrimination + Generation(Max)

    系统根据学生当前水平最大化师生差异,制造更难的样本。

3.5.3 理想均衡点

  经过多轮迭代,学生完全掌握所有困难模式,裁判无法区分师生:

    $\forall x,\quad d_i = R(T(x)) - R(S(x)) \approx 0$

  此时学生功能等价于教师。

http://www.jsqmd.com/news/666892/

相关文章:

  • 手把手教你用Intel MPI在Linux上编译LAMMPS,并搞定Voronoi和Colvars插件
  • 如何三步构建企业级远程桌面控制平台:从零到私有化部署
  • 用R语言deaR包搞定DEA效率分析:从数据导入到结果解读的保姆级教程
  • 提交的追溯与考古:log、show、blame命令高效查看历史
  • 国际化技术中的多语言本地化与文化适配
  • 别再只盯着Transformer了:用MoE+Sparse-MLP在ImageNet上跑赢MLP-Mixer的实战配置
  • vue-json-editor不止是编辑器:打造一个简易的本地JSON配置管理工具
  • ESP32物联网开发终极指南:从零开始构建智能环境监测系统
  • Path of Building PoE2:流放之路2角色构建规划的终极解决方案
  • 综述:甲基锂盐和超酸锂盐
  • 告别信号盲猜:用Python+Matlab实战OFDM自适应功率分配(附代码)
  • Windows下用清华源一键搞定ONNX全家桶(附CUDA版本匹配避坑指南)
  • 如何快速免费解锁iPhone激活锁:applera1n完整使用指南
  • 从OpenOffice到LibreOffice:kkFileView预览核心转换引擎的选型、配置与性能调优实战
  • dnSpy BAML反编译技术:快速解析WPF二进制界面资源的实战指南
  • FanControl终极指南:5分钟掌握Windows风扇控制软件,打造静音高效电脑系统
  • 避坑指南:在WSL的Anaconda环境里装Open3D,我踩过的那些‘依赖包’的坑
  • BiliPlus:如何让你的B站体验变得更好的终极指南
  • 一文学会Excel条件格式:让数据自己“开口说话“
  • MATLAB实战:手把手教你搭建机载SAR正侧视回波仿真环境(附完整代码)
  • SAP Fiori List Report开发避坑指南:从默认过滤器到Object Page跳转的完整配置流程
  • R语言实战:用Chow检验判断两个回归模型的系数差异(附完整代码)
  • 从物流仓库到城市交通:手把手教你用AnyLogic行人库+道路交通库搭建一个综合枢纽仿真
  • AI原生研发为何90%团队卡在L2?AISMM成熟度评估实战手册(含自测评分表V2.3)
  • 为TPPi正名
  • 终极视频修复指南:用Untrunc拯救你的损坏MP4/MOV文件
  • 解码CAN总线错误帧:从标志到界定符的故障诊断实战
  • 如何解决CRM系统碎片化问题:EspoCRM开源客户关系管理系统部署指南
  • 抖音无水印下载器完整指南:如何高效批量下载抖音视频
  • 从Hello World到消息收发:用Qt Creator在Ubuntu上快速搭建ZeroMQ C++开发环境(含zmqpp静态库链接)