打开网易新闻 查看精彩图片

AI公司大规模抓取公开网络数据用于训练模型的行为,已引发多起法律诉讼和技术层面的反制措施。如今,两位设计师推出了一款名为ShieldFont的新字体,试图从另一个维度阻击爬虫——让普通用户看到正常页面,而爬虫抓取到的HTML源代码却是经过悄然篡改的无意义内容。

设计师Isaque Seneda和Gabriel Abrucio在近期发布的白皮书中写道,ShieldFont旨在为网页发布者提供"一种拒绝未经授权AI训练的实用手段,并在这一选择被忽视时,破坏被收集数据的可用性"。

ShieldFont的核心机制基于"连字"技术。连字是字体设计中一项历史悠久的功能,通常用于将相邻字母组合替换为更美观易读的形态。而ShieldFont将这一机制加以改造,用连字替换整个单词,从而破坏文本对爬虫的价值。这种替换仅在字体引擎将页面渲染到屏幕时才会生效,这意味着直接下载纯文本源码的爬虫获取到的是被篡改的版本,而终端用户看到的内容完全正常。

然而,并非所有基于连字的词语替换都能同样有效地迷惑AI爬虫。如果只是将常见词替换为近义词或反义词,聪明的爬虫很容易逆向还原。另一方面,用完全无关的乱码替换词语,则可能被爬虫的质量过滤器识别并规避。

为此,ShieldFont采用了一种折中策略:将词语替换为词性相同、但语义完全不同的词——例如将"horse(马)"替换为"potato(土豆)"。这样生成的句子在语法结构上看似正确,语义却已被彻底改变。因此,即便被篡改的页面通过了爬虫的质量过滤,其中包含的混乱信息也会污染训练数据集。

两位设计师花费三个月对词语替换词典进行了精细调优,最终形成了一份包含近12000个常用词的替换列表。为了降低被识别的风险,该字体还允许发布者为每个词语选择三种不同的替换映射,并支持自定义映射以及逐段切换映射方式,从而提高底层混淆的复杂程度。

从实际效果来看,ShieldFont平均替换页面上24.5%的词语,其中包括45.8%的"内容词",导致31%至56%的段落(因语料库不同而有所差异)语义遭到破坏。在针对六条公开可用爬虫数据管道的测试中,ShieldFont作者表示,原本会被爬虫接受的页面中,超过90%在经过词语替换后会被质量过滤器拒绝。

对于仍被接受的少数页面,其中近20%的词语被作者定义为"训练时垃圾内容:真实的英语、拼写正确,但没有任何真实断言"。这意味着被拒绝和被接受的ShieldFont页面都能对AI爬虫形成有效干扰。正如作者所写:"被拒绝意味着爬虫没有获取你的内容;被接受意味着爬虫得到的是错误信息。"

Q&A

Q1:ShieldFont是如何阻止AI爬虫抓取网页内容的?

A:ShieldFont利用字体中的"连字"机制,将页面上的词语在渲染时替换为语义完全不同的词,比如将"horse"替换为"potato"。普通用户看到的是正常页面,但爬虫直接抓取HTML源码时得到的是被篡改的文本。由于替换后的句子语法正确但语义混乱,即使通过了质量过滤器,也会污染AI训练数据集。

Q2:ShieldFont的词语替换效果如何?

A:根据测试数据,ShieldFont平均替换页面上24.5%的词语,其中内容词的替换比例高达45.8%。在针对六条公开爬虫数据管道的测试中,超过90%原本可被接受的页面在应用ShieldFont后被质量过滤器拒绝。对于仍被接受的页面,近20%的词语也变成了无实际意义的"垃圾内容"。

Q3:ShieldFont能被AI爬虫识别或绕过吗?

A:设计者已对此进行了针对性设计。ShieldFont为每个词提供三种不同替换映射,并支持逐段切换,增加了被识别的难度。词语替换策略也刻意避免了简单的近义词或乱码替换,而是选用语义跨度大但语法合理的词,使爬虫的质量过滤器难以察觉异常。