当前位置:   article > 正文

(攻防角度)中国人工智能系列白皮书--大模型技术(2023版)之 (2.3.1 语言大模型的预训练)_大模型课程大纲v2.3

大模型课程大纲v2.3

针对LLM预训练的攻击

  • 一、高效预训练策略
    • 设计高效的优化任务目标
      • 1.任务目标修改
      • 2.任务目标扭曲
      • 3.引入噪声或错误信息
    • 热启动策略
      • 参数污染攻击
      • 后门攻击
    • 渐进式训练策略
      • 1.数据注入攻击
      • 2.损失函数攻击
      • 3.模型更新攻击
      • 4.渐进式目标转换攻击
    • 知识继承方法
      • 1.模型透明度与可解释性的攻击
        • 1.1 模型行为分析
        • 1.2 关键特征识别
        • 1.3 逆向工程和模型提取
        • 1.4 模型行为的利用
    • 可预测扩展策略
        • 1.接口利用攻击
        • 2.功能滥用
        • 3.依赖链攻击
        • 4.数据中毒和对抗性攻击
        • 5.系统资源耗尽攻击
  • 二、模块化大模型架构
    • 接口攻击
    • 中间人攻击
    • 模块替换攻击
    • 依赖性攻击
    • 针对特定模块的对抗性攻击

一、高效预训练策略

设计高效的优化任务目标

1.任务目标修改

攻击者可能修改模型的预训练任务目标,使之偏离原始意图。例如,将原本设计为语言建模的任务修改为一个不同的任务,如预测下一个单词的词性或情感极性。

2.任务目标扭曲

攻击者可能通过改变任务目标的定义或优化目标的方式来扭曲模型的学习方向。例如,在语言模型预训练中,攻击者可以故意设计一个与实际应用场景不相关的任务,从而导致模型学到不相关的信息。

3.引入噪声或错误信息

攻击者可能向训练数据中注入噪声或错误信息,以影响模型的学习过程。这些错误信息可能会导致模型学习到不准确的知识或产生错误的推断结果。

热启动策略

参数污染攻击

  1. 访问模型参数:攻击者需要能够访问用于热启动的模型的参数。这可能通过直接访问(如在开源环境中)或通过对已部署模型的逆向工程获得。
  2. 参数修改:攻击者对模型参数进行细微的修改,这些修改足够隐蔽,常规检测下很难发现,但足以在模型训练和操作期间产生显著影响。修改可以是随机的,也可以是有针对性的,依赖于攻击者对模型工作方式的理解。
  3. 注入修改参数:修改后的参数被重新注入到模型中,这可能通过替换模型文件、篡改数据库中的模型参数值或其他方法实施。1

后门攻击

(略)

渐进式训练策略

1.数据注入攻击

1.1 攻击方式:攻击者可能会注入恶意数据或干扰数据来影响渐进式训练过程。这可能包括添加错误标签、引入噪声、修改数据分布等
1.2 潜在影响:恶意数据的注入可能导致模型学习到错误的特征或偏见,从而影响模型的泛化能力和性能。

2.损失函数攻击

2.1 攻击方法:攻击者可能尝试修改损失函数,或者引入误导性损失组件,以影响模型的优化过程和学习方向。2
2.2 潜在影响:损失函数的修改可能导致模型学习偏离原始目标,或者产生不稳定的训练过程,最终影响模型的性能和收敛速度。

3.模型更新攻击

3.1 攻击方法:攻击者可能在模型参数更新过程中进行干扰,例如修改优化器的参数、篡改梯度信息等。
3.2 潜在影响:模型更新的干扰可能导致模型参数收敛到局部最优解或者错误的解决方案,降低模型的性能或使其易受攻击。

4.渐进式目标转换攻击

4.1 攻击方法:攻击者可能试图修改训练过程中的目标任务,例如在训练的不同阶段切换任务,引入不一致的目标标准。
4.2 潜在影响:目标任务的改变可能导致模型学习到混乱的特征或行为,降低模型的性能或可靠性。

知识继承方法

1.模型透明度与可解释性的攻击

1.1 模型行为分析

攻击者首先要了解模型在各种输入下的行为模式。这通常通过系统地变化输入并观察输出变化来完成。攻击者可能会使用特定的数据集,这些数据集旨在探测模型对不同类型的输入数据的相应。

1.2 关键特征识别

通过分析模型对不同输入的响应,攻击者可以开始识别对模型输出影响最大的输入特征。这一步骤往往依赖于特征重要性分析工具,如SHAP或LIME3

1.3 逆向工程和模型提取

在了解了模型对特定特征的敏感性之后,攻击者可能会尝试逆向工程模型的决策过程或者直接提取模型。这通常设计构建一个新的模型,该模型在行为上模仿原始模型,但可能具有更高的可解释性。

1.4 模型行为的利用

最后,攻击者可能会利用对模型行为的理解来设计针对模型的攻击,例如制造特定的输入来误导模型做出错误的决策。4

可预测扩展策略

1.接口利用攻击

由于模型扩展可能涉及到新增的接口和组件,攻击者可以寻找这些新增接口的安全漏洞进行攻击。例如,攻击者可能会尝试通过这些接口注入恶意代码或数据,导致模型行为异常或数据泄露。

2.功能滥用

在模型扩展以支持新功能的过程中,如果对新功能的安全性考虑不足,攻击者可能会找到办法滥用这些功能,例如利用模型的自动化处理能力执行未授权的任务或操作5

3.依赖链攻击

攻击者可能会通过模型依赖的第三方库或服务进行攻击。如果这些依赖存在安全漏洞,或者在供应链中被恶意篡改,它们可以成为攻击大模型的途径。

4.数据中毒和对抗性攻击

在模型扩展过程中,为了适应新的数据和任务,通常需要重新训练或调整模型。攻击者可以利用这一过程中的数据收集和训练阶段,通过数据中毒或生成对抗性样本来影响模型的学习,使模型学习到错误的信息。

5.系统资源耗尽攻击

由于扩展的模型可能需要更多的计算资源,攻击者可能设计特定的输入,使模型消耗过量的资源。6

二、模块化大模型架构

接口攻击

  1. 数据注入和篡改:攻击者可能通过模型各个模块之间的接口注入恶意数据或篡改数据流,从而影响模型的整体行为。例如,如果一个模块负责将文本数据预处理程向量格式,攻击者可以通过注入特殊构造的文本来引发后续模块的错误处理7

中间人攻击

  1. 监听和篡改模块间通信:由于各模块间可能需要交换信息,攻击者可以通过截取和篡改这些信息来干预模型的决策过程。这种攻击可能在模块间使用未加密或未经认证的通信协议时尤为有效。

模块替换攻击

  1. 恶意模块替换:攻击者可能替换模型的一个或多个模块,用恶意版本替代原版模块。这种攻击可以导致整个模型的行为按照攻击者的意图进行,特别是在模型更新或动态加载模块的情况下。

依赖性攻击

  1. 依赖链问题:模块化架构可能依赖于外部库或服务,攻击者可以通过这些依赖项引入漏洞或恶意代码。这类攻击通过影响一个小的、看似不重要的组件,可能对整个模型造成广泛的影响。8

针对特定模块的对抗性攻击

  1. 对抗性样本生成:攻击者可以专门针对模型的某个关键模块生成对抗性样本,这些样本在通过该模块处理后可能导致整个模型的预测结果出错。

  1. 总的来说就是,先拿到用于热启动的模型参数,然后恶意修改,然后再放回去。这样训练就容易出问题。所以可以设计一个热启动的参数访问控制机制。 ↩︎

  2. 可以在训练程序运行过程中,使用脚本进行干预,例如tensorflow或者pytorch都有回调函数的概念,可以在epoch间隔中执行特定操作。所以只要获得了写脚本的权限,可以很容易攻击进去,增删改查训练期间的参数。 ↩︎

  3. SHAP是基于博弈论shapley值的一个特征重要性值预测工具。shapley主要说的就是计算每个特征的加入会让收益增加多少,然后n个特征就有n!种可能性,先来后到的计算收益,这个收益就是重要性,受益值越高,重要性越高;LIME简单来说就是用一个小模型局部近似大模型在小范围的表现,然后搞清楚了小模型在局部哪些特征重要、哪些不重要,就相当于搞清楚了大模型在局部的特征重要性。近似解。 ↩︎

  4. 其实就是通过前三步先了解模型输出的“尿性”,然后根据模型输出的“尿性”来攻击。 ↩︎

  5. 通过模型接口进行越狱。 ↩︎

  6. 相当于DDos攻击 ↩︎

  7. 有点类似数据中毒攻击 ↩︎

  8. 可以尝试在python的import的包里加恶意代码。 ↩︎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/951832
推荐阅读
相关标签
  

闽ICP备14008679号