中文

代码语言模型记得多少?关于微调前后数据提取攻击的调查

密码学与安全 2025-02-06 v2

摘要

尽管代码语言模型广受欢迎,但它们通常在来自互联网各处未经清洗的源代码上进行训练。以往的研究揭示了,预训练模型会记住其训练数据的内容,并通过数据提取攻击将其“复述”给外部观察者。由于当前模型体积庞大,只有少数实体拥有预训练此类模型的资源。然而,微调所需资源更少,因其在专用数据上的效果日益受到小型和大型实体的广泛使用。这种用于微调的小规模精选数据可能包含敏感信息或专有资产。本研究针对预训练模型和微调后的模型进行数据提取攻击,以调查其数据可提取性的程度。我们首先构建了一个用于评估预训练样本和微调样本 vulnerability 于数据提取攻击的自定义基准。我们的发现表明,54.9% 的可提取预训练数据可从 StarCoder2-15B 中检索出来,而微调后则降至 23.5%。这表明微调减少了预训练数据的可提取性。然而,与大型模型相比,对小型模型进行微调会增加其对微调数据的可提取性攻击的脆弱性。鉴于微调数据的潜在敏感性,这可能导致更严重的后果。最后,我们手动分析了 2000 份可提取样本在微调前后的情况。我们还发现,数据载体和许可信息是从预训练模型和微调模型中最可能被记住的数据类别,而后者在微调后最可能被遗忘。

关键词

引用

@article{arxiv.2501.17501,
  title  = {How Much Do Code Language Models Remember? An Investigation on Data Extraction Attacks before and after Fine-tuning},
  author = {Fabio Salerno and Ali Al-Kaswan and Maliheh Izadi},
  journal= {arXiv preprint arXiv:2501.17501},
  year   = {2025}
}

备注

MSR 2025