文/刘志诚
一、背景
2023年从Chatgpt开始谈起,上半年写了1篇文章,聊了1期《网安大咖说》,做了1次CSA上海的圆桌论坛,下半年冷眼旁观,看了几本反思人工智能的书,总觉得自己仅了解些概念,没看深,没聊透。下狠心入手了6本关于大模型的书,从语言大模型,到ChatGPT,再到Embedding,Langchain,训练,应用,沉下心来,还真读出来别有洞天,虽然才读三本,已经纠偏了原来的一些观点,急不可耐的分享,也怼一下那些没搞清楚大模型就吹嘘训练出来安全大模型的厂商们。
二、个人对大模型的阅读理解大模型的历史不是各个厂商发布多少参数的历史,而是从学术上讲解决什么的历史,自然语言处理NLP领域,是大模型的起点,基于encode的google的bert模型专注于理解,openai的gpt是基于decode的模型,主要是生成内容续写,两种模型都是基于transform的模型,当然也有包含encode和decode的融合模型,希望综合两者的优点,遗憾的是也继承了两者的弱点,能力就比较中庸。奇怪的是gpt3.5开始,decode模型的理解能力超出人类的预期。因此,今天的大模型主要是围绕着decode的模式沿袭。
transform模型只是预训练模型,要想达到chatgpt相应的效果,还要有3步的训练过程,第二步叫做指令微调的模型(SFT)训练,即提升模型和人交互的能力,指令微调是通过对输入的模版化提升模型的理解力,对输出结果符合人工思维逻辑,是一种基于人工的训练,第三步叫奖励机制模型(RM)训练,通过问题输出的答案,以专家打分机制实现答案的可靠性排序,解决的是文本质量对比模型的问题,规范和一致性的标注限定模型的范围是本阶段的任务,第四步是强化学习模型(RL)训练,根据提示词使用rm模型评估sft模型输出结果的质量评估,降低模型输出的多样性,减少胡说八道的“幻觉”。
语言大模型的本质是通过多参数规模化的预训练,通过embeding即对文本的向量化计算余弦相似度,实现统计学上的规律化,类似通过语言本身的统计学特征实现思维的突破。
预训练模型解决的是模型知识结构的问题,通过训练集实现了已知的知识结构,有意思的事,也会出现未知的知识结构,未知的不确定性可能就会带来禁忌的风险。
指令微调解决的是沟通的问题,实现机器和人的对话,需要了解人类的问题,预训练模型是个百科全书,解决人的沟通问题,没有编目和索引,需要通过理解人类的语言给出对应的答案,这是一个理解与应答的过程,问答关键是有足够的背景信息和上下文信息以及提问的方式方法层面的问题,即使人类之间的沟通,提出好问题也是一个学问,这也是为什么Prompt工程最近爆火的原因,如何向大模型提问,也是一个技术活。
奖励机制是解决人工智能如何回答出人类比较认可的问题,大模型在输出已知结构和未知结构的答案时,有些涉及伦理,道德,法律相关的禁忌,或者“幻觉”时,需要能够规避这些答案,即使已有的答案也需要选择人类标准的正确答案,这是通过人类监督的样本训练实现。
强化学习就是通过奖励机制的模型对指令微调的模型进行进一步的训练。预训练模型大家可能差不多,而需要人工参与的有监督的强化学习后三步训练才是OpenAI成功的关键,如果预训练模型是一个拥有地球所有语言规则的外星人,他首先需要应用自己的语言规则,听懂人类在和他说什么,再回应出人类认可的答案,这个过程就先要学会沟通交流的规则,以及人类答案的评价标准,才能完成和人类的对话与交流。
三、安全大模型是什么?
所谓的安全大模型是什么,首先我觉得预训练模型的价值有限,因为预训练模型的训练数据中包含安全相关的数据领域,而且单纯的从语言规则的角度而言,安全数据对语言规则帮助是有限的。买一堆显卡,从头训练自己的预训练模型,我觉得要么不懂,要么装逼。
那么指令微调阶段的介入是否有必要,这个阶段就非常重要了,需要构建问题与答案的样本,对于训练模型进行安全专家似的学习和训练,不但要让大模型知道如何与人类沟通,也要让大模型学会和人类安全专家沟通,要说行话,要像个专家。这就是我们平常所说的,讨论安全的时候,你会不会,能不能说行话的问题,所谓安全大模型至少需要从这个阶段介入。这一步最好在大模型完成人类通用沟通指令微调之后开展,毕竟专业的人干专业的事,安全大模型的关键在于构建的安全问答指令集数据的质量,不是训练本身。
奖励机制下的模型训练同样很关键,对问题的答案样本评分,实现对安全问题回答符合安全领域的知识规则,回应安全问题和事件。然后就是根据奖励机制训练的模型对微调指令的模型进行强化学习训练,构建安全大模型。所以,安全大模型的构建过程也是复制OpnAI后三步训练的人工强化学习模型训练能力的过程,算法虽然拿不到OpenAI GPT3.5之后的,开源的依然有很多。核心需要提示词数据集,问题数据集,以及人工标注的参与。虽然,这三个阶段的训练都是小样本,样本不是海量,据说对显卡的需求就不那么夸张。但人工有监督的参与,安全标注专家还是费钱的。所以,安全公司可以拿开源的大模型或和大模型公司合作,从现有的大模型开始后三步的训练,构建真正的安全大模型。
四、做安全如何应用大模型
有安全大模型当然好,只不过如果没有,或者训练的质量有限,那么直接应用训练好的大模型是更好的选择,尤其是安全的甲方,自己训练模型没必要,直接用才是王道,拿现有的大模型解决安全问题,主要是通过应用的构建来实现。
说到应用,就要说到应用的框架之一Langchain,这是应用大模型解决应用于安全领域相关问题(当然也可以解决其他行业应用)的利器,我们看大家安全领域应用大模型的问题有哪些?
第一, 大模型给出的安全回应的权威性,准确性,及时性怎么解决,大数据的幻觉问题,大模型的训练数据集的时间以及语料库范围的问题,可能不能反馈正确的,及时的,具有引证的来源问题。
第二, 跟组织有关的制度,记录,报表,日志,文档等数据集如何在保障个人隐私和商业秘密的前提下,可以作为大模型输出内容的数据,以实现分析,处置和呈现。
第三, 安全从业人员提问的专业性不足,回答难以实现需求,对解决一个安全问题,需要多次应用大模型能力,频繁交互的效率问题。
第四, 开源大模型,本地化部署大模型与SAAS大模型,海外大模型在效率,效果,成本的角度如何平衡,是否可以用多个大模型,验证问题。
LangChain是解决大模型应用的利器就在于,他通过大模型的适配模版实现了对不同大模型的接入,通过对组织相关知识库的向量化处理实现了内部知识库的构建,也就是说,安全运营人员问一个问题,Langchain可以通过知识库向量检索,提取事实数据通过提示模版完成提示词工程化组装,然后向大模型提问,对大模型输出结果结合组织知识库事实数据的补充完成大模型的交互,这个过程中,大模型起到的作用主要是理解,组合,决策生成基于可信知识的人类交互过程的结果。这就像是一个人类大脑干的活,我们人也一样,你可以有个很好的思路,如果有些数字和知识点记不住,可以查书查资料补充进去就可以了。这个过程langchain使用了叫做链的技术,实现流程的自动化编排。当然,LangChain还提供Agent的功能,Agent就像一个真实的代理一样,可以决策改变静态的编排流程,动态的实现流程的自动化编排,想象空间很大。
这就变成了组织内部知识的embedding向量化过程,选择好的向量化算法,以及向量化数据库,实现组织数据的处理,是关键的一步。然后就是链的编排和Agent的实现的事了,从这个角度而言,安全运营未来的工作其实就可能是链和Agent的创作了。
五、对安全产业与从业者的影响
这里面提一个点,关于数据安全中非结构化数据的防泄漏检测这件事,一直是个困难工程,基于关键词的正则表达式规则作为主流算法应用于DLP,基于自然语言处理的NLP规则用来降噪,但整体的检测效果和成本而言,依然不是太乐观。那么利用Embedding嵌入技术实现非结构化数据的向量化,通过向量检索是不是可以提升非结构化数据的数据防泄漏检测,我觉得完全是个值得探讨的事情。而这就是大模型对安全技术创新可能带来的影响,语言是沟通的基础,语言也是思维的边界,那么大模型对我们的影响比我们想象的远要震撼,现在只是一些前兆而已。
大模型应用于安全,前途一定是光明的,而且是未来安全的唯一出路。毕竟决策和沟通是人类成为地球上最成功物种的基本,而大模型在逐渐承担决策和沟通这个环节的任务。人如果不学习和训练,决策和沟通能力弱于大模型是一种必然,即使学习和训练,也需要利用大模型的能力,通过有效提问和答案决策,掌握最终决定权。毕竟人类剩下的最后一个能力就是负责,而谁负责谁决策,大模型只能是个智多星吴用而不是及时雨宋江。但如果不会应用大模型,那只能是被淘汰。
同样,跟安全企业也顺便提个醒,训不训练大模型先不说,预留LangChain等相关应用框架的接口,可以把日志作为数据源输出给企业的向量数据库。也给LangChain的链和Agent预留个接口,可以使用LangChain的大模型交互能力实现决策和沟通,从而提升自动化和智能化水平。这是一个必须考虑的选择,要不然大时代的大浪淘沙真XX的残忍。
对从业者而言,少浮于表面泛泛而谈,如何深入下去应用,学习,思考,实践才是关键。
由于自己学艺不精,可能存在与大模型类似的不准确,不精确和幻觉,大家可以参考如下来源,也感谢作者们的付出。
参考资料:
1、《大模型语言模型从理论到实战》张奇,2024
2、《ChatGPT原理与实战:大语言模型的算法、技术与私有化》刘聪,2023
3、《LangChain入门指南:构建高可复用可扩展的LLM应用指南》李特丽,2024
4、《超越想象的GPT医疗》,彼得.李,2023
声明:本文来自IT的阿土,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。