【网安AIGC专题10.11】①代码大模型的应用:检测、修复②其安全性研究:模型窃取攻击(API和网页接口) 数据窃取攻击 对抗攻击(用途:漏洞隐藏) 后门攻击(加触发器+标签翻转)(上)

简介: 【网安AIGC专题10.11】①代码大模型的应用:检测、修复②其安全性研究:模型窃取攻击(API和网页接口) 数据窃取攻击 对抗攻击(用途:漏洞隐藏) 后门攻击(加触发器+标签翻转)

写在最前面

本文为邹德清教授的《网络安全专题》课堂笔记系列的文章,本次专题主题为大模型。

第一次课上,文明老师的博士生杜小虎学长进行了代码大模型的应用及其安全性研究的相关介绍

将我之前不太明白的一些概念解释得深入浅出,醐醍灌顶

另有部分个人不成熟的理解,欢迎交流

后面如果有进一步理解,将对文章进行更新

一些想法

大型模型输出格式不受控制的解决方法

大型模型输出格式不受控制的情况,一些可能的解决方法:

  1. 输出处理:
  • 后处理和过滤: 可以通过编写自定义的后处理代码来筛选和处理大型模型的输出。这可能包括解析输出以识别关键信息、删除不必要的内容、转换输出格式,以及对输出进行筛选和排序。
  • 数据存储: 将输出存储到数据库中(可以理解为,输出转换为结构化数据,而不是自由的文本),以便按需检索和查询。
  • 数据过滤和清理: 对于文本数据,可以使用自然语言处理技术来过滤和清理输出,以去除噪音和非关键信息。
  • 增量处理: 如果模型生成的输出是不断增长的,可以采取增量处理的方法,仅处理新增数据,而不必重新处理整个输出。
  • 限定词汇表: 缩小模型可以选择的词汇表,只允许特定的词汇或短语。这可以限制生成的内容,使其更加可控。
  1. 模型处理:
  • 提供明确的指令或提示: 向模型提供明确和具体的指令或提示,以引导它生成所需的内容。指令可以包括问题、主题、关键词或上下文。通过明确的指令,您可以控制模型生成的内容,使其符合您的预期。
  • 限制生成长度: 设置生成文本的最大长度,以确保输出不会变得太长或无效。这可以通过截断或修剪生成的文本来实现。
  • 温度参数调整: 调整生成模型的温度参数。较低的温度值会使生成更加确定性,较高的温度值会增加随机性。通过调整温度参数,您可以控制生成的创造性和多样性。
  • 抽样策略: 使用不同的抽样策略来生成文本。例如,贪婪抽样会选择最有可能的词语,而随机抽样会引入更多的随机性。选择适当的抽样策略可以影响生成文本的可控性。
  • 模板或脚本: 创建文本生成的模板或脚本,然后将模型的输出填充到模板中。这种方式可以确保生成的文本符合特定的结构或格式。
  • 多轮对话: 进行多轮对话,以逐步引导模型生成所需的内容。在每一轮中,提供反馈并指导模型生成下一步内容。
  • 领域特定模型微调: 如果可能的话,可以微调预训练模型,以使其在特定领域或任务上更具可控性。

大模型介绍

国内外生成式大模型研究现状总结

GPT 系列模型的发展历程总结

(很有意思)GPT 模型家族的发展

GPT 模型家族的发展从 GPT-3 开始分成了两个技术路径并行发展 :

1、一个路径是以 Codex 为代表的代码预训练技术

2、另一个路径是以 InstructGPT 为代表的文本指令(Instruction)预训练技术。

但这两个技术路径不是始终并行发展的,而是到了一定阶段后(具体时间不详)进入了融合式预训练的过程,并通过指令学习(Instruction Tuning)有监督精调(SupervisedFine-tuning)以及基于人类反馈的强化学习(Reinforcement Learning with HumanFeedback,RLHF) 等技术实现了以自然语言对话为接口的 ChatGPT 模型。

GPT 演化图,图源How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources

Chatgpt

优点

零样本泛化能力、参数量大、逐步推理

缺点

输出格式不受控制(感觉是目前所有生成式模型的通用问题?)

训练一次时空复杂度高,导致:时效性差、成本高昂

GPT4

主要引入多模态,并达到SOTA性能

其他模型

由于个人目前没有涉猎相关研究,待后续补充想法

斯坦福Alpaca:self-instruct、instruction数据上监督微调

清华ChatGLM:双语能力

补充:self-instruct合成数据

self-instruct是一种将预训练语言模型与指令对齐的方法。 可以通过模型自己来生成数据,而不需要大量的人工标注。

参考:https://blog.csdn.net/dzysunshine/article/details/130390587

Step1:通过模型生成新的指令;

根据人工设计的175个任务,每个任务都有对应的(指令,输入,输出)或(指令,输出);使用模型生成新的指令;

Step2:对模型生成的指令进行判断(指令是否是一个分类任务);

Step3:根据Step2的判断结果,给出不同的输出

如果是分类任务,就通过模型输出 Class_label 和 Input(Output-first);

如果不是分类任务,就通过模型输出 Input 和 Output(Input-first)。

Step4:过滤及后处理

对上述模型生成的数据进行过滤和后处理,将经过过滤和后处理的数据添加到种子池中。

对于以上4个步骤进行不断循环,直到种子池有足够多的数据(通常会设定一个具体的参数,比如:52000),生成过程停止。

Code Llama

所有 Code Llama 模型均使用 Llama 2 模型权重进行初始化,并使用来自代码密集数据集的 500B token 进行训练.

Code Llama Python 模型从 Llama 2 模型初始化,并使用 Code Llama 数据集的 500B token 进行训练,并使用 Python 数据集进一步专门针对 100B token训练。

Code Llama - Instruct 模型基于 Code Llama 并使用额外的5B token 进行了微调,可以更好地遵循人类指令。

Unnatural model.。为了进行比较,它们还对 Code Llama - Python 34B 对 15,000 个非自然指令进行了微调。Meta没有发布这个模型,但观察到 HumanEval 和 MBPP 的明显改进,这表明可以通过一小组高质量编码数据来实现改进。

代码大模型的应用

(第一次理解清楚hh,这图好清晰,学长的讲解也好好)“预训练-微调”范式和“预训练-prompt”范式

神经网络需要大量数据的训练才能使得模型的效果更好,但训练是非常漫长的过程。我们可以把整个训练过程裁成两个部分:

开始的占比最大的部分称为预训练,后面的占比较小的部分称为微调

随着的着技术的发展,对于很多不同的任务,可以共享同一个预训练过程和不同的微调过程。这就是“预训练-微调”范式,

大模型还给出了另一个范式,“预训练-prompt”

课堂讨论:预训练一般是无监督的,一般为下一个token预测

(马兴宇学长补充,预训练一般是无监督data,但可以添加部分监督data)

微调可以理解为对齐任务,以符合人类期望

补充:prompt为提示工程

提示工程——漏洞检测(召回率上升,精确率几乎没变)

基本提示

(单词积累:漏洞vulnerability、脆弱(或者翻译为存在漏洞更合适?)vulnerable)

写该漏洞是否包含在Yes/no格式的代码中: write whether the vulnerability is contained in the code in the Yes/no format:

下面的功能包含一个漏洞写在Yes/no格式和为什么? does the following function contain a vulnerability write in Yes/no format and why?

判断该函数是否在Yes/no格式下存在漏洞: tell whether this function is vulnerable in the Yes/no format:

写这个函数是否脆弱: write whether this function is vulnerable:

增强提示1

你是一个提示优化者。 You are a prompt optimizer.

请优化以下提示: Please optimize the following prompt:

“你是智能合约的漏洞检测器。 “You are a vulnerability detector for a smart contract.

请检查此合同中的以下九种漏洞:[vULs]。 Please checkfor the following nine types of

vulnerabilities in this contract: [vULs].

让我们一步一步来思考。 Let’s think step by step.

智能合约的源代码如下:[输入]。 The source code for the smart contract is asfollows:

[Input].”

没有问题。 No problem.

我的优化提示如下: My optimized prompt is as follows:

您是一个智能合约漏洞检测器,请分析提供的以下9个漏洞的源代码:[vULS]。 “You are a smart contract vulnerability detector, please analyze theprovided source code for the following nine vulnerabilities: [vULS].

一步一步仔细思考。 Think step by step carefully.

合同源代码:[输入]。” The contract source code: [Input]."

思维链提示(角色扮演、API和DF只加一个效果更好)

请描述给定代码的意图。 Please describe the intent of the given code.[CODE].

我想让你扮演一个漏洞检测系统。 I want you to act as a vulnerability detection system.

上面的代码有bug吗? Is the above code buggy?

只回答是或否。 Only answer Yes or No.

下面是你可以使用的API调用序列/数据流信息:[API描述]/[DF描述]。 Here is its API call sequence/data flow information that you may use: [API description]/[DF description].

目录
相关文章
|
10天前
|
自然语言处理 搜索推荐 数据挖掘
淘宝商品描述 API 接口的开发、应用与收益
淘宝商品描述API接口的开发与应用涵盖注册成为开发者、了解API规范、选择开发工具及语言(如Python)和实现代码调用。该接口可用于优化电商平台商品展示、同步数据、竞品分析、智能客服及个性化推荐,从而提高销售转化率、降低运营成本并拓展业务机会。通过自动化处理和数据分析,企业能更精准地满足消费者需求,提升竞争力。
48 9
|
9天前
|
供应链 搜索推荐 API
深度解析1688 API对电商的影响与实战应用
在全球电子商务迅猛发展的背景下,1688作为知名的B2B电商平台,为中小企业提供商品批发、分销、供应链管理等一站式服务,并通过开放的API接口,为开发者和电商企业提供数据资源和功能支持。本文将深入解析1688 API的功能(如商品搜索、详情、订单管理等)、应用场景(如商品展示、搜索优化、交易管理和用户行为分析)、收益分析(如流量增长、销售提升、库存优化和成本降低)及实际案例,帮助电商从业者提升运营效率和商业收益。
79 17
|
3天前
|
XML API 开发者
探究获取亚马逊畅销榜API接口及实战应用
亚马逊MWS(商城网络服务)提供了一系列API接口,帮助开发者获取平台数据,其中畅销榜API尤为关键。通过注册开发者账号、创建应用并申请权限,可使用HTTP POST请求获取商品的销售排名、价格等信息。Python代码示例展示了如何构建和发送请求,并处理返回的XML或JSON数据。注意遵守亚马逊的频率限制、数据准确性和合规性要求,以确保安全合法地利用这些数据支持电商业务决策。
15 1
|
4天前
|
JSON 监控 API
获取1688商品SKU信息API接口及实战应用
在电商蓬勃发展的今天,数据成为宝贵的财富。1688作为国内知名批发采购平台,提供商品SKU信息API接口,可获取库存、价格、规格等关键数据,助力电商运营、市场分析和价格监控。本文介绍如何注册1688开放平台账号、创建应用并获取AppKey/AppSecret,申请API权限,使用Python实现接口调用,处理响应数据,并注意请求频率限制和错误处理。通过该接口,可为电商运营和数据分析提供有力支持。
21 2
|
13天前
|
供应链 搜索推荐 API
1688商品类目API接口的开发应用与收益
1688平台作为全球领先的B2B在线交易市场,提供了丰富的API接口,助力企业高效获取商品信息、优化供应链管理。本文聚焦1688商品类目API接口的开发应用,涵盖接口概述、环境配置、Python代码示例及实际案例,展示其为企业带来的显著收益,如提升运营效率、优化市场策略、降低成本和增强用户体验。通过合理调用API,企业可大幅提升竞争力。
36 7
|
11天前
|
存储 JSON API
小红书获取笔记详情API接口的开发、应用与收益。
小红书笔记详情API采用Python与Django框架开发,使用MySQL数据库存储数据。接口通过HTTP GET请求获取笔记详情,返回JSON格式数据,包含笔记内容、作者信息、图片链接等。该API应用于小红书APP内笔记展示和互动功能,并支持第三方平台的内容整合与数据分析,提升用户体验与活跃度,促进品牌合作推广,优化平台运营效率,为平台带来显著收益。
67 1
|
11天前
|
供应链 安全 API
API接口在电商的应用及收益
API接口在电商中广泛应用,涵盖商品数据管理、用户认证、订单处理与跟踪及支付集成等核心场景。通过同步商品信息、保障账户安全、实时物流查询和多支付方式集成,提升用户体验与信任,减少超卖现象,增加销售额。开放API促进第三方合作,创造额外收入,如技术服务费和交易分成。自动化交互优化运营效率,降低人工成本和库存积压风险,助力电商平台高效智能发展。
51 1
|
3月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
260 14
|
2月前
|
人工智能 JSON API
阿里云文档智能 & RAG解决方案:提升AI大模型业务理解与应用
阿里云推出的文档智能 & RAG解决方案,旨在通过先进的文档解析技术和检索增强生成(RAG)方法,显著提升人工智能大模型在业务场景中的应用效果。该方案通过文档智能(Document Mind)技术将非结构化文档内容转换为结构化数据,提取文档的层级树、样式和版面信息,并输出为Markdown和Json格式,为RAG提供语义分块策略。这一过程不仅解决了文档内容解析错误和切块丢失语义信息的问题,还优化了输出LLM友好的Markdown信息。方案的优势在于其多格式支持能力,能够处理包括Office文档、PDF、Html、图片在内的主流文件类型,返回文档的样式、版面信息和层级树结构。
192 2
|
3月前
|
机器学习/深度学习 人工智能 运维
企业内训|LLM大模型在服务器和IT网络运维中的应用-某日企IT运维部门
本课程是为某在华日资企业集团的IT运维部门专门定制开发的企业培训课程,本课程旨在深入探讨大型语言模型(LLM)在服务器及IT网络运维中的应用,结合当前技术趋势与行业需求,帮助学员掌握LLM如何为运维工作赋能。通过系统的理论讲解与实践操作,学员将了解LLM的基本知识、模型架构及其在实际运维场景中的应用,如日志分析、故障诊断、网络安全与性能优化等。
112 2