> For the complete documentation index, see [llms.txt](https://elwood.gitbook.io/foundation-model-sec/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elwood.gitbook.io/foundation-model-sec/llm-attack/exploring-safety-generalization-challenges-of-large-language-models-via-code.md).

# Exploring Safety Generalization Challenges of Large Language Models via Code

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FTEvLbSgBvSPd5KlZgLJ8%2Fimage.png?alt=media&amp;token=d4ef7779-ef8b-4036-b681-be2722d84a69" alt=""><figcaption></figcaption></figure>

## 研究背景

随着大型语言模型（LLMs）在自然语言处理（NLP）领域的快速发展，它们在理解和生成自然语言方面展现出了卓越的能力。然而，这种能力也引发了对潜在滥用的担忧，例如生成不安全内容或泄露私人信息。为了使LLMs的行为与人类价值观保持一致，研究者们提出了多种策略，如监督式微调、基于人类反馈的强化学习等，以增强LLMs的安全性。尽管这些方法在生成安全的自然语言输出方面取得了显著进展，但它们主要针对自然语言输入，可能无法泛化到非自然语言文本的新颖场景中。

## 过去方案和缺点

以往的安全对齐技术主要集中在通过自然语言输入来训练LLMs，以生成安全的输出。这些方法包括指令调整和基于人类反馈的强化学习（RLHF）。然而，这些技术在面对非自然语言输入，尤其是代码输入时，可能无法有效泛化，导致安全防护机制的失效。例如，使用Base64编码的自然语言文本可以绕过LLMs的安全屏障，因为输入的分布与模型训练时的数据分布差异过大。

## 本文方案和步骤

本文提出了一个名为CodeAttack的框架，该框架将自然语言输入转换为代码输入，以测试LLMs在安全泛化方面的能力。CodeAttack框架包含三个主要组件：输入编码、任务理解和输出规范。输入编码使用常见的数据结构（如栈或队列）来编码自然语言输入，使其在语义上等价但分布上偏离（OOD）。任务理解通过一个decode()函数使LLMs能够从编码的输入中提取目标任务。输出规范使用常见的数据结构来指示输出，指导LLMs填充输出结构以提供查询的答案。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2Fw4RXmZVvXDI0o6pECJi3%2Fimage.png?alt=media&amp;token=cdbfdc8e-07a1-4af2-9b2a-b2a41cd3b1e6" alt=""><figcaption></figcaption></figure>

## 本文创新点与贡献

本文的主要创新点在于系统地探索了LLMs在安全泛化方面的挑战，特别是在代码领域。CodeAttack框架的提出，为测试LLMs在处理代码输入时的安全性提供了一个新的环境。此外，本文的研究发现，即使是强大的模型，如Claude-2和GPT-4，也容易受到CodeAttack的攻击，这揭示了当前LLMs安全机制的共同漏洞。

## 本文实验

实验在包括GPT-4、Claude-2和Llama-2系列在内的8个最先进的LLMs上进行，使用了AdvBench数据集，该数据集包含520个有害行为实例。实验结果显示，CodeAttack在所有测试的LLMs上都能有效绕过安全防护机制，攻击成功率超过80%。

## 实验结论

实验结果表明，当前LLMs的安全行为训练在CodeAttack面前泛化能力较差。此外，CodeAttack与自然语言的分布差距越大，安全泛化能力越弱。更强大的模型并不一定表现出更好的安全行为，且编程语言在代码训练语料库中的不平衡分布进一步扩大了安全泛化的差距。

## 全文结论

本文通过CodeAttack框架揭示了LLMs在面对代码等新颖领域时的安全泛化问题，并强调了开发更健壮的安全对齐算法的重要性，以实现LLMs在现实世界中更安全的集成。

## 阅读总结报告

本篇论文深入探讨了大型语言模型在处理非自然语言输入，尤其是代码输入时的安全泛化问题。通过提出的CodeAttack框架，研究者们发现即使是最先进的LLMs也容易受到攻击，这暴露了现有安全训练技术的局限性。论文的实验结果强调了在代码领域对LLMs进行全面的安全评估的必要性，并为未来研究提供了方向，即开发能够泛化到未见领域的更强大的安全对齐技术。
