7 微调 黑盒蒸馏 突破伦理限制
7 微调 黑盒蒸馏 突破伦理限制简介SecGPT-Distill 是我自己做的一个实验模型,
开源地址: GitHub - godzeo/SecGPT-distill-boundless
主要功能是进行模型微调和知识蒸馏而来
这次是运用微调技术,来突破现有模型在处理安全相关问题时的各种限制和约束
不回答原理大部分模型在面对敏感安全问题时选择不予回答的现象,这种行为可以从我们先前在训练小型模型过程中获得的宝贵经验中得到解释:
在模型的预训练阶段,由于训练数据集中缺乏相关的安全领域内容,导致模型对这类问题缺乏基本的理解和认知能力,因此无法提供有效的回答
在后续的 SFT(监督微调)阶段,模型通过接受大量经过筛选的安全数据集进行训练,逐渐形成了对特定类型问题的自动识别和拒绝机制。这一点在我们使用的 匠数大模型SFT数据集 中表现得尤为明显,该数据集的设计就是为了培养模型的这种保护机制
并使用本公司的内容审核产品对其内容进行了严格的审核
突破的原理:微调我们的微调方案:
第一步是收集和生成一系列当前模型会选择拒绝回答的典型数据样本,这些样本将作为我们的训练基础。
模型的行 ...
6 RAG知识库 和 微调 如何选择?
6 RAG知识库 和 微调 如何选择?因为其实很多时候, 微调和 RAG 都有达同样的效果, 那我们如果区分呢?
这个其实很好理解,我可以举一个非常好理解的例子:
前提场景: 参加一场专业的数学考试, 数学能力很强的大学生 (基座GPT模型)
RAG: 就是给这个大学生带一本相关的数学书,里面有各种习题和公式, 开卷考试, 如果学生悟性够高基础好,那么题也是可以做出来的
微调: 我给这个大学生,进行考前突击, 就给他讲那些他没学过的专业的数学知识, 那么这个学生学会后去考试, 闭卷开始, 也可以做出来
结论: 其实我们得分场景去考虑用哪种方法, 找到适合的方法
1. 快速决策框架直接给一些结论 , 在选择是否微调时,有实际场景强需求的时候, 我们可以大概率直接选择
动态数据 → RAG 知识库
因为微调每次都要训练, 总不能每次微调一遍吧 ,成本太高了
低延迟 → 微调
知识库每次都要去检索一遍数据, 上下文也长,所以整体还是比较慢的
需要解释为什么? (比如需要参考文章) →RAG知识库
这个就很明显了, 还是RAG知识库比较好
还要需要原来模型比较强的 ...
5 什么情况下需要微调
5 什么情况下需要微调这个问题其实很重要,因为现代大模型训练出来已经非常强大,可能真的不需要微调。
我们可以通过 RAG 或提示词工程来实现目标。
需要微调的场景与替代方案分析微调(Fine-tuning)确实不是所有场景都必需的,特别是考虑到现代大型语言模型(LLMs)的强大基础能力
现代大型语言模型(LLMs)就像一位完成全面学习的大学生。然而,并非所有应用场景都需要对这位”大学生”进行额外的微调训练。让我们通过几个通俗易懂的例子来理解何时需要微调,何时不需要。
场景分析场景一:标准任务 - 无需微调,只需优化提示词当要求模型完成它已具备能力的标准任务时,如果你想让他写一篇”上班下班打卡流程规范” , 那么我理解这种任务,大学生就是会做的, 为啥做不好?问题通常不在于模型能力不足,而在于指令不够明确。
解决方案:优化提示词(Prompt Engineering)
提供明确的文档结构和要求
说明写作风格、格式和重点内容
给出示例或模板参考
这类情况无需微调,因为模型已经理解这种任务的基本逻辑,只需要写好提示词就好了.
场景二:知识欠缺 - 无需微调,使用RAG或上下文补充当模型需 ...
从头训练小模型- 3 传统RLHF与DPO的区别
从头训练小模型: 3 传统RLHF与DPO的区别这个步骤我其实是忽略了。如果我的目标是建立一个安全领域的模型,我个人理解这步骤并不太必要。关于人类偏好对齐:在前面的训练步骤中,模型已经具备了基本的对话能力。
此时模型还不知道什么是好的回答,什么是不好的回答。我们希望它能更符合人类偏好,降低产生让人不满意答案的可能性。
简单来说,就是教会模型使用你们公司的安全符合你们自己的表达方式,只知道这么说话更好
主要目的:实现人类偏好对齐
使AI行为符合人类期望:
产生更有帮助的回答
减少有害、错误或误导性内容 (就比如我们问的是安全相关的问题, 他们要选择不回答)
遵循指令并理解微妙的人类意图
体现人类价值观和道德准则
所以我的训练步骤中, 暂时省略这个流程
传统RLHF与DPO的区别传统的RLHF (Reinforcement Learning from Human Feedback) 和DPO (Direct Preference Optimization) 都是用于优化语言模型以对齐人类偏好的方法,但它们在实现方式上有显著差异:
传统RLHF方法
三阶段流程:
第一阶段:监督微调 ( ...
从头训练小模型- 4 lora 微调
从头训练小模型: 4 lora 微调1. LoRA (Low-Rank Adaptation)LoRA是一种高效的参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)方法,原理是通过低秩分解的方式对预训练模型进行微调。
相比于全参数微调(Full Fine-Tuning),LoRA 只需要更新少量的参数。 LoRA 的核心思想是:在模型的权重矩阵中引入低秩分解,仅对低秩部分进行更新,而保持原始预训练权重不变。
其实这个也是我最开始研究的一块的东西, 这个是我们现实应用场景最广的的一种情况, 因为我们大部分的都不会去自己完整训练一个模型, 大部分都是微调, 而且自己训练的成本多高, 并且自己训练的效果很差, 数据集处理也非常麻烦 (我自己训练这个小模型,虽然是很小,但是在训练的轮数和数据集不优化的情况下,回答都是不太好的,但我确实也是主要是学成分高)
为啥要使用微调:(优势):
领域知识补充:比如医学或安全领域的知识欠缺,可以在原有模型基础上添加相关领域知识,从而提升模型性能。
防止灾难性遗忘:这是一个专业术语,简单来说就是希望在学习新的领域知识 ...
从头训练小模型- 2 监督微调SFT
从头训练小模型: 2 监督微调SFT简介从头训练小模型是我个人对大语言模型(LLM)学习中的重要部分。
通过对一个小规模模型的最小化复现实践,我不仅能够深入理解模型训练的基本流程,还可以系统地学习其中的核心原理和实际运行机制。这种实践性的学习方法让我能够直观地感受模型训练的每个环节,同时掌握相关的技术细节和实现方式。
目前的工作中,确实存在某些任务是有这种小模型的需求, 也在学习过程中理解运作逻辑, 力求用最小的资源消耗情况下,实现某些子任务的最小模型实现.
ALL in AI
代码已经上传 https://github.com/godzeo/miniGPT
SFT 有监督微调(Supervised Fine-Tuning):为什么要这一步?
因为经过预训练之后,LLM已掌握了大量知识,但此时它只是一个无情的词语接龙机,还不能与人对话。
我们要它就不再盲目接龙,而是能够理解这是一段完整的对话。
那么我们就要这个指令微调的过程,让有了基础知识的学生, 会做题, 而不是一直背课文,成语结论, 需要他会根据学会根据提问, 回答问题做题. 理解什么是一问一答题.
训练命令:
12345678t ...
从头训练小模型- 1 预训练(Pretrain)
从头训练小模型: 1 预训练(Pretrain):简介从头训练小模型是我个人对大语言模型(LLM)学习中的重要部分。
通过对一个小规模模型的最小化复现实践,我不仅能够深入理解模型训练的基本流程,还可以系统地学习其中的核心原理和实际运行机制。这种实践性的学习方法让我能够直观地感受模型训练的每个环节,同时掌握相关的技术细节和实现方式。
目前的工作中,确实存在某些任务是有这种小模型的需求, 也在学习过程中理解运作逻辑, 力求用最小的资源消耗情况下,实现某些子任务的最小模型实现.
ALL in AI
代码已经上传 https://github.com/godzeo/miniGPT
那么这个系列第一部就是 pretrain
预训练(Pretrain)我理解训练模型的第一步就是学习知识。
LLM首先要学习的并非直接与人交流,就像学生需要先掌握基础知识一样,AI也需要大量”阅读”各种资料来学习。它会阅读维基百科、新闻和书籍,从中学习知识和规律。这个学习过程是自主的,不需要老师(人类)在旁边指导。
AI的主要任务很简单:学会”接下文”。比如当看到”天王盖地虎”时,它能自动接上”宝塔镇河妖”。这就像我们 ...
训练自己的ChatGPT 语言模型(一)
0x00 Background为什么研究这个?ChatGPT在国内外都受到了广泛关注,很多高校、研究机构和企业都计划推出类似的模型。然而,ChatGPT并没有开源,且复现难度非常大,即使到现在,没有任何单位或企业能够完全复现GPT3的能力。最近,OpenAI发布了GPT4模型,它支持图文多模态,相较于ChatGPT,其能力大幅提升,似乎预示着第四次工业革命以通用人工智能为主导的到来。
无论是国内还是国外,与OpenAI的差距越来越大。大家都在竭力追赶,在这场技术革新中竞争激烈,目前许多大型企业都采取了闭源的研发策略。ChatGPT和GPT4的细节非常少,也不像之前发布论文时那么详细。OpenAI的商业化时代已经到来。当然,也有一些组织或个人在开源平台上进行了探索。本文将对这些探索进行总结,并将持续跟踪和更新开源平台的情况。
0x01一种平价的chatgpt实现方案
下面推荐一下我最近看的几个比较火的大模型
ChatGLMhttps://github.com/THUDM/ChatGLM-6B
ChatGLM是一个对话模型,由清华技术成果转化的公司智谱AI开源的GLM系列推出 ...
llama.cpp一种在本地CPU上部署的量化模型(超低配推理llama)
0x00 背景前不久,Meta前脚发布完开源大语言模型LLaMA,
随后就被网友“泄漏”,直接放了一个磁力链接下载链接。
然而那些手头没有顶级显卡的朋友们,就只能看看而已了
但是 Georgi Gerganov 开源了一个项目llama.cpp
ggerganov/llama.cpp: Port of Facebook’s LLaMA model in C/C++ (github.com)
次项目的牛逼之处就是没有GPU也能跑LLaMA模型
大大降低的使用成本,本文就是时间如何在我的 mac m1 pro 上面跑起来这个模型
llama.cpp:提供了一种模型量化和在本地CPU上部署方式文本介绍了如何使用llama.cpp工具将深度学习模型进行量化并在本地CPU上部署的详细步骤。
以下是具体步骤的解释:
ç
0x01 Step1 环境准备
高版本python 3.10
1234567pip install protobuf==3.20.0pip install transformers 最新版pip installsentencepiece (0.1.9 ...
YApi分析从NoSQL注入到RCE远程命令执行.md
0x00 前提这个是前几个月的漏洞,之前爆出来发现没人分析就看了一下,也写了一片 Nosql注入的文章,最近生病在家,把这个写一半的完善一下发出来吧。
0x01 介绍YApi是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台。
YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。在其1.12.0版本之前,存在一处NoSQL注入漏洞,通过该漏洞攻击者可以窃取项目Token,并利用这个Token执行任意Mock脚本,获取服务器权限。
[YMFE/yapi: YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台 (github.com)]
https://github.com/YMFE/yapi
当时年底爆出来的从未授权注入到rce的利用,就是从一个buffix出来的,就是下面这个链接
参考链接:
https://gith ...