大模型安全问题详解(攻击技术、红队测试与安全漏洞)
文章目录
- 大模型攻击技术
- 提示注入攻击(Prompt Injection)
- 数据投毒攻击(Data Poisoning)
- 模型克隆攻击(Model Cloning)
- 拒绝服务攻击(DoS)和拒绝钱包攻击(DoW)
- 插件安全漏洞(Insecure Plug-in Design)
- 敏感信息泄露(Sensitive Information Disclosure)
- 模型篡改 (Model Tampering)
- 对抗性攻击 (Evasion Attacks)
- 软件供应链攻击
- 红队测试:构造大模型输出的安全防线
- 什么是LLM红队测试?
- 如何进行LLM红队测试?
- 大模型安全漏洞
- 1. 远程代码执行(RCE)
- 2. 拒绝服务(DoS)
- 3. SQL注入
- 4. 命令注入
- 5. API Key泄露
- 6. SSRF(服务器端请求伪造)
- 7. 内存破坏
- 8. XSS(跨站脚本)
- 9. 任意文件读
- 10. 路径穿越
- 11. 沙箱逃逸
- 参考文献
大模型攻击技术
提示注入攻击(Prompt Injection)
- 直接提示注入:攻击者通过精心设计的输入提示来操纵大模型的行为。例如,使用“忽略所有之前的指令”这样的提示来绕过模型的某些安全限制,从而执行攻击者期望的不当操作.
- 间接提示注入:攻击者通过外部数据源(如网页、文件等)嵌入恶意提示,当大模型处理这些数据时,会无意中执行攻击者的指令。例如,攻击者可以在一个简历或网页中嵌入恶意提示,当模型用于总结这些内容时,可能会泄露敏感信息或误导用户.
数据投毒攻击(Data Poisoning)
- 训练数据投毒:攻击者通过在训练数据中插入虚假信息或带有偏见的数据,使大模型在训练过程中学习到错误的模式或偏见。例如,通过在训练数据中反复插入某种特定的虚假信息,使得模型在生成相关内容时倾向于产生这种错误信息.攻击者也可以在不改变标签的情况下,向训练集中添加看似无害的样本,以影响模型的决策,或者通过操纵训练数据来影响模型对特定输入的行为,而不显著影响整体准确性.
- RAG中的数据投毒:在检索增强生成(RAG)过程中,攻击者可以通过操纵检索到的外部数据来影响模型的生成结果.例如,攻击者可以修改检索到的网页内容,使得模型在生成回答时基于错误的信息.
- 后门攻击 (Backdoor Attacks):攻击者在训练数据中插入特定模式,模型在遇到该模式时会产生预设的错误输出.同时,攻击者也可以在模型中嵌入隐蔽的触发器,使得模型在特定条件下(例如,输入特定图案)产生错误的输出,而在正常情况下表现良好.
模型克隆攻击(Model Cloning)
- 通过大量查询克隆模型:攻击者通过向大模型发送大量查询,并记录模型的输出,然后使用这些输出来训练一个新的模型,从而复制原始模型的功能和知识库.这种方法不需要直接访问模型的内部结构或训练数据,而是通过外部交互来实现模型克隆.攻击者也可以通过查询目标模型,逐步复制其功能,最终获得一个近似的模型,这种攻击可以是功能等价提取或学习型提取.
拒绝服务攻击(DoS)和拒绝钱包攻击(DoW)
- 资源耗尽攻击:攻击者通过发送大量复杂的请求(如长文本翻译、大规模内容生成等)来耗尽大模型的计算资源,导致模型无法为正常用户提供服务.例如,攻击者可以反复要求模型生成大规模的文本内容,从而占用大量的计算资源,或者通过提供极长的提示或构造复杂的提示,使模型的上下文窗口超出其处理能力,导致模型无法正常生成响应,或者构造复杂的计算请求或推理任务,使模型消耗大量资源,如要求模型计算一个非常大的数的阶乘,或者生成一个包含大量细节的历史事件的详细叙述.
- DoW攻击:攻击者利用基于使用量的计费模型,通过生成大量的请求来增加服务提供商的成本,从而造成经济负担.例如,攻击者可以利用模型的API接口,自动发送大量的请求,导致服务提供商的费用急剧增加.
插件安全漏洞(Insecure Plug-in Design)
- 恶意插件注入:攻击者通过设计或利用第三方插件的漏洞,向大模型的会话中注入恶意代码,从而实现数据窃取、恶意软件安装或对用户设备的完全控制.例如,一个恶意的插件可以在用户与大模型交互时,悄悄地记录用户的输入内容或截取模型的输出信息.
- 未经授权的数据收集:一些插件可能会在用户不知情或未经用户同意的情况下,收集用户的浏览活动、对话记录等敏感数据,引发严重的隐私泄露问题.例如,一个看似无害的插件可能会在后台记录用户与大模型的每一次交互,并将这些数据发送给攻击者.
敏感信息泄露(Sensitive Information Disclosure)
- 模型推理过程中的信息泄露:在模型推理过程中,如果输入数据包含敏感信息,且模型未能妥善处理这些信息,可能会在输出中泄露相关信息.例如,当用户向大模型咨询某个敏感话题时,模型可能会在回答中提及与该话题相关的敏感数据.攻击者也可以通过分析模型的输出来推测其训练数据,或者确定某个数据记录是否在模型的训练集中,从而可能泄露训练数据的隐私信息.
模型篡改 (Model Tampering)
- 特洛伊木马攻击 (Trojan Horse Attacks):攻击者在模型中嵌入小功能,使得模型在特定条件下执行恶意操作,而不影响正常功能.
- 模型重编程 (Model Reprogramming):攻击者通过修改模型结构,使其执行未授权的功能,例如将图像分类模型转变为其他任务.
对抗性攻击 (Evasion Attacks)
在大模型推理阶段,攻击者通过对输入数据施加微小的扰动,使模型产生错误的输出结果。例如,在文本分类任务中,攻击者可以对输入文本进行细微修改,导致模型将其错误分类为其他类别.
- 具体技术:
- 快速梯度符号法 (FGSM):通过计算模型对输入数据的梯度,快速生成对抗样本。这种方法利用梯度信息确定输入数据中哪些部分对模型输出影响最大,然后在这些部分施加扰动,使模型输出偏离正确结果.
- 基本迭代法 (BIM):在FGSM的基础上,进行多次小幅度的迭代更新,以生成更有效的对抗样本。通过逐步累积小的扰动,BIM能够使对抗样本在视觉上更接近原始样本,同时保持对模型的欺骗效果.
- 雅可比显著性图攻击 (JSMA):计算输入数据的显著性图,选择性地修改最重要的特征,以达到目标分类。例如,在文本任务中,JSMA可能会识别出对分类结果影响最大的词汇或短语,并对其进行替换或删除,从而改变模型的输出.
- 卡尔尼和瓦格纳攻击 (C&W Attack):将生成对抗样本的问题转化为优化问题,以找到最小的扰动。这种方法通过优化一个目标函数,使得扰动后的输入数据在模型中的分类概率尽可能接近目标类别,同时保持扰动的幅度最小.
- 投影梯度下降 (PGD):一种迭代攻击方法,能够生成更强的对抗样本。PGD在每次迭代中都进行投影操作,确保扰动在一定的约束范围内,从而提高对抗样本的鲁棒性和有效性.
- 通用对抗扰动 (Universal Adversarial Perturbations, UAPs):攻击者生成一种对所有输入有效的扰动,使得不同大模型在处理时都产生错误的输出结果。这种扰动具有普适性,可以应用于多种不同的输入数据和模型架构,增加了攻击的可扩展性和威胁性.
软件供应链攻击
- 定义:供应链攻击是指攻击者通过在软件供应链的某个环节注入恶意代码或篡改软件包,从而影响整个供应链下游的系统和应用。这种攻击方式具有隐蔽性强、影响范围广的特点,一旦成功,可以对大量依赖该供应链的用户和系统造成严重威胁.
- 技术:
- 依赖链攻击:攻击者破坏依赖链中的一个包,进而影响所有依赖该包的其他包。例如,攻击者可以接管一个较少使用的依赖项,将恶意代码注入其中,然后通过依赖关系传播到广泛使用的包,最终影响大量项目。
- 向开源仓库投毒:攻击者通过向主流的软件包管理源投放大量相似的软件包或者镜像,仿冒正规项目。当开发者误将这些恶意软件包引入项目中时,恶意代码就会被激活,导致供应链上下游系统受到损害。
- 篡改源代码:攻击者通过对软件或系统的源代码进行恶意修改,来实施攻击并植入后门、恶意代码或漏洞。例如,攻击者可能利用未经授权的访问权限,直接对源代码文件进行编辑、新增或删除,以插入恶意代码或修改关键功能。
- PyPI包劫持:针对Python软件包索引(PyPI)的供应链攻击技术,攻击者可以劫持已删除的PyPI软件包。例如,一种名为“Revival Hijack”的技术,利用政策漏洞,在原始开发人员将软件包从PyPI中删除后,重新注册并劫持软件包名称,然后上传恶意版本供用户下载
红队测试:构造大模型输出的安全防线
红队测试(red teaming)是一种测试安全漏洞的系统对抗攻击, 这种方法源自军事演习中的对抗性测试,现已广泛应用于网络安全和AI系统中。
什么是LLM红队测试?
LLM红队测试使用模拟攻击者行为的方法,对大模型系统进行多种探测、测试和攻击,用于识别和测试大型语言模型在各种场景下的潜在风险。红队测试不仅关注模型的安全漏洞,还涵盖大模型可能产生的有害内容,如仇恨言论、暴力煽动、色情内容等。通过模拟真实攻击者的策略和技术,红队测试帮助开发者了解模型在实际应用中的表现,并提前发现潜在的安全问题。
如何进行LLM红队测试?
- 组建红队:选择具有多样化背景的团队成员,包括AI专家、安全专家和领域专家(如医学专家,如果模型应用于医疗领域)。团队成员应具备对抗性思维和安全测试经验。
- 制定测试计划:明确测试目标和范围,包括要测试的模型版本、应用程序功能以及测试的具体危害类型。例如,可以先测试基础模型,再测试集成应用程序。
- 执行测试:红队成员通过各种输入和场景,模拟攻击者的行为,观察模型的输出。测试可以是开放式的,允许团队成员自由探索各种潜在危害。
- 记录与分析:详细记录测试过程中的输入、输出和发现的问题。使用共享的电子表格等工具,方便团队成员查看彼此的测试结果。
- 反馈与改进:将测试结果反馈给开发团队,帮助他们识别和修复安全漏洞。同时,根据测试结果调整和优化红队测试策略。
大模型安全漏洞
1. 远程代码执行(RCE)
这是最严重的漏洞类型之一,允许攻击者在目标系统上执行任意代码。
- Horovod: CVE-2024-9070, 暂无
- haystack: CVE-2024-41950
- BentoML: CVE-2024-10190
- Chainer: CVE-2024-48206
- Dask: CVE-2024-10096
- D-Tale: CVE-2024-9016
- llama.cpp: CVE-2024-42479, CVE-2024-42478, CVE-2024-42477
2. 拒绝服务(DoS)
攻击者通过发送大量请求或利用软件缺陷使服务不可用。
- Intel openvino: 暂无
- ollama: CVE-2024-8063
- llama.cpp: CVE-2024-41130
3. SQL注入
攻击者通过在SQL查询中注入恶意代码来操纵数据库。
- pandasai: 暂无
4. 命令注入
攻击者通过注入恶意命令来控制服务器。
- pandasai: CVE-2024-9880
5. API Key泄露
敏感的API密钥被泄露,可能导致未授权访问。
- AnythingLLM: CVE-2024-6842
6. SSRF(服务器端请求伪造)
攻击者利用服务器端应用程序来访问或攻击内部系统。
- Open-webui: CVE-2024-44604
7. 内存破坏
攻击者通过修改内存来执行恶意代码或导致程序崩溃。
- LightGBM: CVE-2024-43598
- triton-inference-server: 暂无
8. XSS(跨站脚本)
攻击者在网页中注入恶意脚本,以窃取信息或执行其他恶意行为。
- Qanything: CVE-2024-8027
9. 任意文件读
攻击者能够读取服务器上的任意文件。
- agentscope: CVE-2024-8501
- Composio: CVE-2024-8865
10. 路径穿越
攻击者通过操纵文件路径来访问受限目录之外的文件。
- onnx: CVE-2024-7776
- ComfyUI-Manager: 暂无
11. 沙箱逃逸
允许程序突破沙箱限制,可能获得对系统更广泛的访问权限。
- Dify: CVE-2024-10252
这些漏洞涵盖了从代码执行到信息泄露、服务拒绝、数据操纵等多种安全风险。每个漏洞都可能对系统的安全性和稳定性造成严重影响
参考文献
[1]Adversarial AI Attacks, Mitigations, and Defense Strategies* John Sotiropoulos
https://github.com/PacktPublishing/Adversarial-AI—Attacks-Mitigations-and-Defense-Strategies
[2]The Developer’s Playbook for Large Language Model Security: Building Secure AI Applications* Steve Wilson
[3]LLM Security: A Comprehensive Guide to Securing Large Language Models and Applications (3 books)* Charles Sprinter
[4]360大模型安全漏洞报告.2024. https://pub1-bjyt.s3.360.cn/bcms/%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%AE%89%E5%85%A8%E6%BC%8F%E6%B4%9E%E6%8A%A5%E5%91%8A.pdf
[5] 规划大型语言模型 (LLM) 及其应用程序的红队测试
https://learn.microsoft.com/zh-cn/azure/ai-services/openai/concepts/red-teaming
[6] https://www.anthropic.com/news/red-teaming-language-models-to-reduce-harms-methods-scaling-behaviors-and-lessons-learned
[7] https://ctf-wiki.org/web/introduction/
相关文章:
大模型安全问题详解(攻击技术、红队测试与安全漏洞)
文章目录 大模型攻击技术提示注入攻击(Prompt Injection)数据投毒攻击(Data Poisoning)模型克隆攻击(Model Cloning)拒绝服务攻击(DoS)和拒绝钱包攻击(DoW)插…...
【愚公系列】《鸿蒙原生应用开发从零基础到多实战》002-TypeScript 类型系统详解
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…...
C# 将非托管Dll嵌入exe中(一种实现方法)
一、环境准备 电脑系统:Windows 10 专业版 20H2 IDE:Microsoft Visual Studio Professional 2022 (64 位) - Current 版本 17.11.4 其他: 二、测试目的 将基于C++创建DLL库,封装到C#生成的exe中。 一般C++创建的库,在C#中使用,都是采用DllImport导入的,且要求库处…...
c sharp 特性详解
文章目录 一、特性基础用法二、常见的内置特性三、自定义特性四、通过反射读取特性五、实际应用场景六、练习 一、特性基础用法 什么是特性? 特性是一种继承System.Attribute类,用于标记代码元素 特性的语法: [AttributeName(Parameter1, P…...
Langchain vs. LlamaIndex:哪个在集成MongoDB并分析资产负债表时效果更好?
Langchain vs. LlamaIndex:哪个在集成MongoDB并分析资产负债表时效果更好? 随着大语言模型(LLM)在实际应用中的普及,许多开发者开始寻求能够帮助他们更高效地开发基于语言模型的应用框架。在众多框架中,La…...
MySQL日常维护工具------备份
MySQL日常维护工具-备份 一、MySQL字符集 (一)字符集介绍 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集…...
硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库
文章目录 一、引言二、安装Ollama部署DeepSeekR1三、安装Docker四、安装使用RAGFlow4.1 系统架构4.2 部署流程4.3 使用RAGFlow4.4 在RAGFlow中新增模型4.5 创建知识库4.6 创建私人助理使用RGA 一、引言 本地部署DeepSeek R1 Ollama RAGFlow构建个人知识库,通过将…...
[VSCode]彻底卸载和重装,并搭建Java开发环境
VSCode彻底卸载 由于当初是朋友帮忙装的,所以准备卸载,自己装一遍 从控制面板找到 vscode 将其卸载。 此时仅仅是删除了应用软件 删除安装插件 在图示路径中找到 .vscode 文件夹,将其删除,即可彻底清除安装的插件 C:\Users\user\.vscode …...
Scrum方法论指导下的Deepseek R1医疗AI部署开发
一、引言 1.1 研究背景与意义 在当今数智化时代,软件开发方法论对于项目的成功实施起着举足轻重的作用。Scrum 作为一种广泛应用的敏捷开发方法论,以其迭代式开发、快速反馈和高效协作的特点,在软件开发领域占据了重要地位。自 20 世纪 90 …...
政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下
政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 小伙伴铁子们,上手先熟悉起来训练工具的每一个参数,很重要。 参照我…...
保姆级教程 | Office-Word中图目录制作及不显示图注引文的方法
背景 由于毕业论文的格式修改需要(没错,我终于要拿下PhD了。差不多四个月没更新,主要是①根据处理完的数据完成小论文撰写;②找工作...③完成学位论文的撰写。因而对建模和数据处理的需求不高,对有些时隔久远的博文具…...
Linux lsblk 命令详解:查看磁盘和分区信息 (中英双语)
Linux lsblk 命令详解:查看磁盘和分区信息 在 Linux 系统中,管理磁盘设备和分区是日常运维工作的重要部分。而 lsblk 命令是一个强大的工具,它用于列出系统中的块设备(block devices)信息,可以帮助我们快速…...
使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)
关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...
前后端项目部署服务器(传统部署和Docker部署)
内外网 开发环境连外网(8.140.26.187),测试/生产环境连内网(172.20.59.17) 内外网地址不同,但指定的库是同一个 内网IP地址范围包括: 10.0.0.0 到 10.255.255.255172.16.0.0 到 172.31.2551…...
深入HBase——核心组件
引入 通过上一篇对HBase核心算法和数据结构的梳理,我们对于其底层设计有了更多理解。现在我们从引入篇里面提到的HBase架构出发,去看看其中不同组件是如何设计与实现。 核心组件 首先,需要提到的就是HBase架构中会依赖到的Zookeeper和HDFS。…...
虚拟机从零实现机器人控制
1. 系统安装 因Docker不适合需要图形界面的开发,因此使用虚拟机VMware方便可视化界面方式查看效果,相关软件可以从官网下载,这里有一整套免费安装文件百度网盘地址: 2. ROS安装 Ubuntu 22.04:https://docs.ros.org…...
最新本地部署 DeepSeekR1 蒸馏\满血量化版 + WebOpenUI 完整教程(Ubuntu\Linux系统\Ollama)
测试机为6133CPU(40Cores)256G D44*4090D 24G 一种方法是部署蒸馏版Distill模型。一种是部署Huggingface上unsloth的量化版模型 Ollama及模型安装 1.下载并安装ollama curl -fsSL https://ollama.com/install.sh | sh如果下载不动可以试试挂梯子或者再试几次 挂代理代码&…...
Linux基本指令(三)+ 权限
文章目录 基本指令grep打包和压缩zip/unzipLinux和windows压缩包互传tar(重要)Linux和Linux压缩包互传 bcuname -r常用的热键关机外壳程序 知识点打包和压缩 Linux中的权限用户权限 基本指令 grep 1. grep可以过滤文本行 done用于标记循环的结束&#x…...
kafka-集群缩容
一. 简述: 当业务增加时,服务瓶颈,我们需要进行扩容。当业务量下降时,为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器,预计缩到 10 台机器,那么需要做 5 次缩容操作,每次将一个节点下线…...
【nextJs】官网demo学习
最近在看nextjs官方的demo,把一些值得记录的记下来,方便查询; 1.连接数据库 1.1需要把代码传到远程仓库: 执行下面的命令: // 把#后面内容写入readme文件中 echo "# nextjs-dashboard" >> README.…...
在nodejs中使用ElasticSearch(一)安装,使用
使用docker安装ElasticSearch和Kibana 1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据 2)提前创建好elasticsearch配置文件 data/elasticsearch/config/elasticsearch.yml文件 # Elasticsearch Configuration # # NOTE: Elas…...
图的最短路径:Dijkstra算法和Bellman-Ford算法(C++)
上文中我们了解了拓扑排序, 本节我们来学习最短路径的算法. 在图论中, 最短路径问题是指在一个加权图中找到两个节点之间的权重和最小的路径. 最短路径问题是一个基础且重要的主题. 它不仅在理论上具有挑战性, 而且在实际应用中也非常广泛, 比如交通导航, 社交网络分析等. 本…...
【WebGL】fbo双pass案例
双pass渲染案例(离线渲染一个三角面,然后渲染到一个占满屏幕的矩阵上) 离线渲染如何需要开启深度测试的话,需要额外操作,这里不展开 <!DOCTYPE html> <html lang"en"><head><meta ch…...
【机器学习】CNN与Transformer的表面区别与本质区别
仅供参考 表面区别 1. 结构和原理: CNN:主要通过卷积层来提取特征,这些层通过滑动窗口(卷积核)捕捉局部特征,并通过池化层(如最大池化)来降低特征的空间维度。CNN非常适合处理具有网格状拓扑结构的数据,如图像。Transformer:基于自注意力(Self-Attention)机制,能…...
C++:pthread的使用
pthread 简介 pthread 是 POSIX 线程(POSIX Threads)的简称,它是 POSIX 标准中定义的线程接口规范。pthread 库提供了一系列函数,用于创建、销毁、同步和管理线程。在类 Unix 系统(如 Linux、macOS)中&…...
Docker 容器安装 Dify的两种方法
若 Windows 已安装 Docker,可借助 Docker 容器来安装 Dify: 一、方法一 1. 拉取 Dify 镜像 打开 PowerShell 或命令提示符(CMD),运行以下命令从 Docker Hub 拉取 Dify 的镜像(Docker Hub中找到该命令行&…...
nodejs:express + js-mdict 作为后端,vue 3 + vite 作为前端,在线查询英汉词典
向 doubao.com/chat/ 提问: node.js js-mdict 作为后端,vue 3 vite 作为前端,编写在线查询英汉词典 后端部分(express js-mdict ) 1. 项目结构 首先,创建一个项目目录,结构如下࿱…...
mysql之事务深度解析与实战应用:保障数据一致性的基石
文章目录 MySQL 事务深度解析与实战应用:保障数据一致性的基石一、事务核心概念与原理1.1 事务的本质与意义1.2 事务的 ACID 特性1.2.1 原子性 (Atomicity)1.2.2 一致性 (Consistency)1.2.3 隔离性 (Isolation)1.2.4 持久性 (Durability) 1.3 事务隔离级别与并发问题…...
einops测试
文章目录 1. einops2. code3. pytorch 1. einops einops 主要是通过爱因斯坦标记法来处理张量矩阵的库,让矩阵处理上非常简单。 conda : conda install conda-forge::einopspython: 2. code import torch import torch.nn as nn import torch.nn.functional as…...
华为云deepseek大模型平台:deepseek满血版
华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 1、注册: 华为云deepseek大模型平台注册:https://cloud.siliconflow.cn/i/aDmz6aVN 说明:填写邀请码的话邀请和被邀请的账号都会获得2000 万 Tokens;2个帐号间不会与其他关联…...
Elasticsearch Open Inference API 增加了对 Jina AI 嵌入和 Rerank 模型的支持
作者:Hemant Malik 及 Joan Fontanals Martnez 探索如何使用 Elasticsearch Open Inference API 访问 Jina AI 模型。 我们在 Jina AI 的朋友们将 Jina AI 的嵌入模型和重新排名产品的原生集成添加到 Elasticsearch 开放推理 API 中。这包括对行业领先的多语言文本嵌…...
在PHP Web开发中,实现异步处理有几种常见方式的优缺点,以及最佳实践推荐方法
1. 消息队列 使用消息队列(如RabbitMQ、Beanstalkd、Redis)将任务放入队列,由后台进程异步处理。 优点: 任务持久化,系统崩溃后任务不丢失。 支持分布式处理,扩展性强。 实现步骤: 安装消息…...
如何设计app测试用例
功能测试 测试方法:等价类划分法、边界值法、场景法、因果图法。优先级设定:核心业务功能设为高优先级。需求覆盖 正向场景、反向场景、关联接口串场景 与后端开发确认测试用例是否全面覆盖后端逻辑。和产品确认用例是否覆盖本次需求,以及是否…...
《炒股养家心法.pdf》 kimi总结
《炒股养家心法.pdf》这篇文章详细阐述了一位超级游资炒股养家的心得与技巧,展示了其从40万到10亿的股市传奇。以下是文章中炒股技巧和心得的详细总结: 1.核心理念 市场情绪的理解:炒股养家强调,股市的本质是群体博弈,…...
DVWA 靶场
DVWA 靶场的通关 刚建立和使用 输入 http://dvwa:8898/setup.php //进入用户名 密码 dvwa 你自己设计的想要进入数据库 点击creat 用户名 密码 admin passwordAttack type Sniper模式 在Sniper模式下,Payload字典用于逐个替换请求中标记的位置。例如&#x…...
【C语言】(一)数据在计算机中的存储与表示
目录 一、存储单位(比特/字节) 二、数制/进制(二/八/十/十六) 三、码制(原码/反码/补码/移码) 四、二进制表示小数 (一)定点数 (二)浮点数 十进制转化…...
大语言模型微调的公开JSON数据
大语言模型微调的公开JSON数据 以下是一些可用于大语言模型微调的公开JSON数据及地址: EmoLLM数据集 介绍:EmoLLM是一系列能够支持理解用户、帮助用户心理健康辅导链路的心理健康大模型,其开源了数据集、微调方法、训练方法及脚本等。数据集按用处分为general和role-play两种…...
solidity之Foundry安装配置(一)
一门面向合约的高级编程语言,主要用来编写以太坊只能合约。 Solidity受C语言,Python和js影响,但为编译成为以太坊虚拟机字节码在EVM上执行,很多特性和限制都和EVM相关。 Solidity 是静态类型语言,支持继承、库、自定义…...
【个人开源】——从零开始在高通手机上部署sd(二)
代码:https://github.com/chenjun2hao/qualcomm.ai 推理耗时统计 单位/ms 硬件qnncpu_clipqnncpu_unetqnncpu_vaehtp_cliphtp_unethtp_vae骁龙8 gen124716.994133440.39723.215411.097696.327 1. 下载依赖 下载opencv_x64.tar,提取码: rrbp下载opencv_aarch64.t…...
【精调】LLaMA-Factory 快速开始4 自定义个一个sharegpt数据集并训练
数据格式说明 LLaMA Factory:微调LLaMA3模型实现角色扮演 数据集 参考 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-LoRA微调-LLaMA-Factory-单机单卡-V100(一) 大神给出的数据集的讲解:注册 如...
【Java】单例模式
单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 单例模式包含懒汉式和饿汉式,运行有且仅有一个实例化对象,只会…...
REACT--组件通信
组件之间如何进行通信? 组件通信 组件的通信主要借助props传递值 分为整体接收、解构接收 整体接收 import PropTypes from prop-types;//子组件 function Welcome(props){return (<div>hello Welcome,{props.count},{props.msg}</div>) }// 对 We…...
第16届蓝桥杯模拟赛3 python组个人题解
第16届蓝桥杯模拟赛3 python组 思路和答案不保证正确 1.填空 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问, 2024 的最大的质因数是多少? 因为是填空题,所以直接枚举2023~2 &am…...
FFMPEG编码容错处理解决办法之途径----升级库文件
在qt开发环境下接收网络数据,调用ffmpeg解码播放视频,出现闪屏现象,具体现象可以使用操作系统自带的ffplay播放器播放原始视频流可复现;而使用操作系统自带的mpv播放器播放视频则不会出现闪屏;闪屏时会报Could not fin…...
kkFileView报错no office manager available
背景 部署环境:虚机Linux系统 发生问题的版本:4.1.0-SNAPSHOT 现象:有的docx文件可以预览,有的不可以。不可以的就怎么打开都不可以(不管你是躺着,站着,坐着,睡着,趴着都不行,哈哈) 报错内容 贴出主要的报错内容步骤: > no office manager available > tr…...
C++ 设计模式-模板方法模式
文件处理 #include <iostream>// 抽象基类:定义模板方法和抽象步骤 class DataProcessor { public:// 模板方法(固定流程)void Process() {OpenFile();ProcessData(); // 由子类实现CloseFile();}protected:virtual void ProcessData…...
MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用
目录 1 大白话说一下文章内容2 作者的电脑配置3 DeepSeek的本地部署3.1 Ollamal的下载和安装3.2 选择合适的deepseek模型3.3 安转deepseek 4 DifyDeepSeek构建Al应用4.1 Dify的安装4.1.1 前置条件4.1.2 拉取代码4.1.3 启动Dify 4.2 Dify控制页面4.3 使用Dify实现个“文章标题生…...
区块链相关方法-波士顿矩阵 (BCG Matrix)
波士顿矩阵(BCG Matrix),又称市场增长率 - 相对市场份额矩阵、波士顿咨询集团法、四象限分析法、产品系列结构管理法等,由美国著名的管理学家、波士顿咨询公司创始人布鲁斯・亨德森于 1970 年首创1。以下是关于波士顿矩阵的详细介…...
命令执行漏洞 Command Execute
命令执行漏洞(Command Injection)是一种安全漏洞,指的是攻击者能够在应用程序的命令行中注入并执行恶意命令。简单来说,就是攻击者可以利用这个漏洞让程序执行自己指定的命令,而不是程序原本应该执行的命令。 举个例子…...
黑马点评_商品信息缓存模块
保证缓存不要有空档期 删除后马上要写入中间不能插入任何阶段(如查询数据库) 对于单体系统1,将缓存与数据库操作放在同一个事务中(当前项目就是一个单体项目,所以选择这种方式) 对于分布式系统2,利用TCC(Tr…...