LLM 安全 大语言模型应用安全入门

一、背景

2023年以来,LLM 变成了相当炙手可热的话题,以 ChatGPT 为代表的 LLM 的出现,让人们看到了无限的可能性。ChatGPT能写作,能翻译,能创作诗歌和故事,甚至能一定程度上做一些高度专业化的工作,比如法律服务和医疗诊断咨询。然而,正如任何新技术一样,LLM 也带来了新的挑战和问题。我们如何确保它们的安全性,如何防止它们被用于不良目的?这些都是亟待解决的问题。

在本文中,无恒实验室以应用安全工程师的视角,汇总梳理有关 LLM 的原理和基础知识,以赋能安全工程师为后续新型使用 LLM 的产品的信息安全保驾护航。

二、了解 LLM

2.1 LLM 基本原理的概念性解释

免责声明:

本章节专注于在宏观概念的高维逻辑层面向读者粗略解释 LLM 的工作原理,其描述可能与 LLM 的具体实现存在一定差异。严格地说,LLM 对词元(token) 而非单词(word)进行操作,但我们将忽略这些实现细节,以将文章保持在合理的长度。

如果你过去对 LLM 这个话题有所了解,你可能听说过 LLM 可以简化理解成 “词语接龙” 预测器 (next token predictor),但大多数解释常常止步于此, LLM 如何预测下一个单词的细节通常被视为一个深深的谜团。

词嵌入(embedding)与词向量(word vector)

要了解 LLM 的工作原理,首先需要了解它们如何表示单词。人类用一系列字母表示单词,例如 C-A-T 表示猫(cat)。语言模型则使用一长串数字表示单词,我们称之为词向量(word vector)。词嵌入(embedding)则是一种将离散的符号(比如单词)映射到连续的向量空间中的技术。每个单词都会被映射到一个高维度的向量,这个向量就是这个词的"embedding"。

例如,以下是将 cat 表示为向量的一种方法 (cat 的 embedding):

[0.0074, 0.0030, -0.0105, 0.0742, …, 0.0002]

(此处完整的 cat 的词向量有 300 个维度,这里只取部分展示;依据具体词嵌入模型的差异,不同词嵌入模型构造的词向量维度不同,常见的维度有 300, 1000, 1536 等)

当我们选定了一个词嵌入模型时,这个词嵌入模型可以将一个单词映射成一个词向量。每个词向量代表 “词空间” (word space)中的一个点,并且具有相似含义的单词会在词空间被放置在更接近的位置。例如,词空间中最接近 cat 的单词包括 dog、kitten 和 pet。用实数向量表示单词的一个关键优点是,我们可以进一步对词向量进行语义计算。

几十年来,研究人员一直在试验词向量,但谷歌在2013年宣布其 word2vec 项目时,这个概念才真正为人们所熟知。谷歌分析了从谷歌新闻中收集的数百万份文档,以确定哪些单词倾向于出现在类似的句子中。随着时间的流逝,一个经过训练的神经网络可以预测某个单词倾向于与哪些其他单词同时出现,从而学会了在向量空间中将相似的单词(如 dog 和 cat )放在一起。

谷歌的词向量还有另一个有趣的特性:它可以帮助人们使用量化方法计算单词的语义。例如,谷歌研究人员取了 biggest 的向量,减去 big 的向量,然后加上 small 的向量,其结果最接近于 smallest 的向量。

谷歌的词向量还捕捉到了许多其他关系:

  • Swiss is to Switzerland as Cambodian is to Cambodia. 瑞士人之于瑞士,就像柬埔寨人之于柬埔寨。(国家)
  • Paris is to France as Berlin is to Germany. 巴黎之于法国,就像柏林之于德国。(首都)

总之,词嵌入与词向量相关的技术是 LLM 重要的组成模块之一,它实现了从单词到(神经网络可处理的)向量的编码,并且在编码过程中捕获了单词的语义信息。

Transformer 功能

Transformer 的结构

在前述词嵌入 (embedding) 算法的支持下,模型能够实现从单词到词向量的转化,从而解决了将文本输入到神经网络中进行计算的第一步。接下来会介绍 Transformer 结构在 GPT 架构的 LLM 中的作用。

GPT-3 是 ChatGPT 发布前的更早版本的模型,它有数十层。每一层都采用一组向量作为输入(输入文本中每个单词对应一个向量),模型的每一层都会在每个词对应的词向量中添加信息,以帮助阐明该单词的语义并帮助整个模型更好地预测下一个单词。

Transformer 各层功能示意图

LLM 的每一层都是一个 transformer。 Transformer 是一种神经网络架构,由谷歌在 2017 年一篇具有里程碑意义的论文 Attention Is All You Need 中首次引入。

如图所示,模型的输入(显示在图的底部)是一个不完整的句子 "John wants his bank to cash the "。这句话中的每一个单词,都会被转化成一个类似 word2vec 样式的词向量,被送到第一层的 transformer 中。

第一层 transformer 发现 wants 和 cash 都是动词(这两个词既可以作为动词使用,也可以作为名词使用;但在当前上下文中是作为动词使用的)。我们在括号中将添加的上下文表示为红色文本,但实际上,该模型会通过以人类难以解释的方式修改对应单词的词向量来存储它。这些新的向量(称为隐藏状态, hidden state)被传递到堆栈中的下一层 transformer 。

第二层 transformer 增加了另外两个上下文:它澄清了 bank 指的是金融机构而不是河岸,并且 his 的代词指的是John。第二层 transformer 生成另一组隐藏状态向量,这些向量反映了模型到目前为止所学到的所有内容。

以上图片描绘的是一个纯

### 大语言模型 (LLM) 的基础知识与入门指南 #### 定义与特性 大型语言模型LLM)属于高级机器学习模型类别,擅长处理多种自然语言任务,如文本生成、翻译、摘要创建和问答系统等。这类模型的一个显著特点是能够泛化到未曾见过的数据集上执行各种下游应用而不需要专门针对每一个具体应用场景做额外调整[^2]。 #### 核心知识点概览 对于希望涉足这一领域的人来说,理解并掌握以下几个方面至关重要: - **Prompt Engineering**: 设计有效的提示词来引导模型产出预期的结果。 - **Retrieval-Augmented Generation (RAG)**: 结合检索机制增强生成质量的技术方案。 - **Fine-tuning Techniques**: 对预训练好的大规模参数权重实施微调操作以适应特定业务需求的方法论。 - **Training Models from Scratch**: 自定义构建全新架构而非依赖现有框架的过程描述。 - **Deployment and Optimization Strategies**: 将训练完成后的模型部署至生产环境下的策略探讨及其性能优化措施分析[^3]。 #### 推荐的学习路径 一份详尽的大语言模型学习路线图已被整理成文档形式发布于GitHub平台上,该文件不仅罗列出了必要的理论预备知识清单,还列举了一些当前流行的先进算法结构实例;除此之外,更提供了关于怎样把所学应用于实际工程项目当中的指导建议。此份材料特别适合那些刚开始接触或者已经具备一定经验想要进一步深化认识的研究者们作为参考资料使用[^1]。 ```python # Python 示例代码用于演示如何加载预训练的 LLM 并进行推理 from transformers import pipeline nlp = pipeline("text-generation", model="distilgpt2") result = nlp("Once upon a time,", max_length=50, num_return_sequences=2) for seq in result: print(seq['generated_text']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值