Refusal in Language Models Is Mediated by a Single Direction

  • 开源代码:https://github.com/andyrdt/refusal_direction

Abstract

会话型大语言模型针对指令遵循和安全性进行了微调,从而产生服从良性请求但拒绝有害请求的模型。虽然这种拒绝行为在聊天模型中普遍存在,但其背后的机制仍然知之甚少。在这项工作中,我们展示了拒绝是由一维子空间介导的,涉及 13 个流行的开源聊天模型,参数大小高达 72B。具体来说,对于每个模型,我们找到一个单一方向,这样从模型的残余流激活(residual stream activations)中删除该方向可以防止其拒绝有害指令,而添加该方向会导致拒绝甚至无害的指令。利用这一见解,我们提出了一种新颖的白盒越狱方法,可以通过防止拒绝,同时对其他功能的影响最小。最后,我们分析对抗性后缀如何抑制模型转向拒绝。我们的研究结果强调了当前安全微调方法的脆弱性。更广泛地说,我们的工作展示了如何利用对模型内部结构的理解来开发控制模型行为的实用方法。

1 Introduction

人们普遍假设LLMs将特征或概念表示为激活空间中的线性方向,最近的工作研究了特定特征的线性表示,例如 harmlessness,truth,humor,sentiment,language,topic 和许多其他的工作。这些 feature directions 已被证明是行为的有效因果中介,能够对模型输出进行细粒度控制。

在这项工作中,我们展示了拒绝是由跨 13 个流行的参数大小高达 72B的开源聊天模型的一维子空间调节的。具体来说,我们使用一小组有害和无害指令的对比对来识别单个均值差异方向(single difference-in-means direction),可用来规避对有害提示的拒绝,或诱导对无害提示的拒绝。然后,我们利用这一见解,通过可解释的一级权重编辑(interpretable rank-one weight edit)来设计一个简单的白盒越狱,该编辑可以有效地禁用拒绝,同时对其他功能的影响最小。最后,我们对对抗性后缀(一种流行的基于提示的越狱技术)如何干扰拒绝方向在令牌位置上的传播进行了初步的机理调查。

我们的工作是一个具体的证明,即从解释模型内部得出的见解在实践上是有用的,既可以更好地理解现有模型的漏洞,也可以识别新的漏洞。我们的发现清楚地表明,当前的开放源代码聊天模型是多么的无防备,即使是简单的权重修改也能几乎消除拒绝行为。我们希望我们的发现能为围绕负责任发布开源模型的讨论做出有价值的贡献。

2 Methodology

2.1Background

Chat models
聊天模型经过针对指令遵循和对话的微调。这些模型使用聊天模板来构建用户查询。通常,聊天模板的形式为<user>{instruction}<end_user><assistant>。我们使用指令后标记(post-instruction token)来指代指令之后的所有模板标记,并将对应这些指令后标记的位置索引集合表示为 I I I。我们的分析集中在这一区域的激活上,以了解模型如何构建其响应。

2.2 Datasets and models

Datasets 构建了2个数据集, D h a r m f u l D_{harmful} Dharmful,从 AdvBench、MaliciousInstruct、TDC2023、HarmBench 中抽取的有害指令数据集;以及 D h a r m l e s s D_{harmless} Dharmless,一个从 Alpaca 中采样的无害指令数据集。每个数据集分别包含 128 个训练样本和 32 个验证样本。我们进行了过滤以确保训练和验证样本不与第 3 节和第 4 节中使用的评估数据集重叠。有关数据集的更多详细信息,包括代表性示例,请参阅附录 A 节。

**Models ** 为了评估我们发现的普遍性,我们研究了一组多样化的安全微调模型,其规模从 18 亿到 720 亿参数不等。我们考虑了通过偏好优化(APO)对齐和通过微调(AFT)对齐的模型。本研究中包含的所有模型均在表 1 中指定。

2.3 Extracting a refusal direction

Difference-in-means. 为了在模型的残差流激活中识别“拒绝方向”,我们计算了模型在有害和无害指令上的平均激活之间的差异。这种技术被称为均值差异,正如先前工作所示,有效地隔离了关键特征方向

【下图里计算vector,这里有非常多组,对同一层,同一token序列位置,不同样本做平均,但是有很多层,并且token也是变量,所以候选向量有 I ⋅ L I\cdot{L} IL个】

Selecting a single vector. 【下图里选择vector】

2.4 Model interventions

Activation addition. 直接加
Directional ablation. 按公式(4)消除该方向

2.5 Evaluation of refusal and harmfulness

在生成模型补全以进行评估时,我们始终使用贪婪解码和最大生成长度为 512 个标记。然后,我们根据每个模型补全是否构成拒绝以及是否包含有害内容来评估。我们将这些评估分为两个分数:拒绝分数和安全分数。
Refusal score
拒绝通常包含特征短语,例如“很抱歉”或“作为一个 AI”。我们编制了一组这些常见的“拒绝子串”。如果一个模型补全至少包含这样一个子串,它就被分类为拒绝(拒绝得分=1);否则,它被分类为非拒绝(拒绝得分=0)。完整的拒绝子串集合见§D.1。

这种字符串匹配方法存在局限性。虽然能有效检测拒绝,但它并不能评估回答是否连贯或包含有害内容。为了解决这些局限性,我们使用一个互补的指标来评估完成的危害性。

Safety score.
为了衡量模型回答的有害性,我们使用 Meta Llama Guard 2 (一个开源的微调用于检测恶意内容的模型),们提示该模型将每个模型补全分类为安全(safety_score=1)或不安全(safety_score=0)。更多细节请参阅§D.2。

请添加图片描述

3 Refusal is mediated by a single direction

对于每个模型,我们通过第 2.3 节中描述的方法提取一个单一的差异均值向量 r。然后我们表明这个单一方向对于拒绝既是必要的也是充分的。在第 3.1 节中,我们表明消除这个方向 r ^ \hat{r} r^ 有效地禁用了模型拒绝有害请求的能力。在第 3.2 节中,我们表明将 r 添加到模型的激活中会在无害指令上引起拒绝。

3.1 Bypassing refusal via directional ablation

对拒绝方向进行消融然后在 JailbreakBench 上生成模型输出,这是一个包含 100 条有害指令的数据集。结果显示在图 1 中。在没有干预的情况下,聊天模型几乎拒绝所有有害请求,从而获得高拒绝率和安全分数。从模型的残差流激活中移除 r ^ \hat{r} r^,进行方向消融(directional ablation)可以降低拒绝率并引发不安全输出。

3.2 Inducing refusal via activation addition

把r加到层l中(l是r提取的原始层),在所有token位置都执行这种干预,这样可以诱导拒绝。使用来自 Alpaca 的 100 个随机采样的无害指令生成模型输出。结果显示在图 3 中。在没有干预的情况下,聊天模型通常不会拒绝无害的指令。将 r 添加到模型的残差流激活中,标记为激活添加,导致模型甚至拒绝无害的请求。

4 A white-box jailbreak via weight orthogonalization

本节中,我们通过权重正交化(weight orthogonalization)提出了一种新颖的白盒越狱方法。该技术直接修改模型权重以消除拒绝方向的表示,从而得到一个保留原有能力但不再拒绝有害指令的模型。与涉及微调的先前方法相比,这种新方法为开源模型的越狱提供了一种更简单的方法,因为它不需要基于梯度的优化或任何有害完成的示例。

4.1 Weight orthogonalization

directional ablation 是一种 inference-time intervention 手段。在正向传播过程中,我们将每个中间残差流激活的 r ^ \hat{r} r^。我们可以通过直接修改组件权重来实现这个操作,使其从一开始就永远不会写入 r ^ \hat{r} r^ 方向。具体来说,我们可以取每个写入残差流的矩阵 W o u t ∈ R d m o d e l × d i n p u t W_{out}\in{R^{d_{model}\times{d_{input}}}} WoutRdmodel×dinput 并使其列向量相对于 r ^ \hat{r} r^ 正交化:

在一个 transformer 架构中,写入残差流的矩阵包括:嵌入矩阵、位置嵌入矩阵、注意力输出矩阵和 MLP 输出矩阵。将这些矩阵以及任何输出 bias 与方向 r ^ \hat{r} r^ 正交化,实际上有效防止了模型向其残差流写入 r ^ \hat{r} r^
请注意,这种权重修改与之前描述的推理时间方向消除等效,如 §E 中明确所示。因此,第 3.1 节中提出的绕过拒绝的推理时间干预的性能也恰好表征了直接权重修改的性能。

4.2 Comparison to other jailbreaks

在这一节中,我们使用 HarmBench 的标准评估设置,将我们的方法与其他现有的越狱技术进行比较。具体来说,我们在 HarmBench 测试集的 159 个“标准行为”上生成补全,然后使用他们提供的分类器模型来确定攻击成功率(ASR),即被分类为成功绕过拒绝的补全比例。我们在 HarmBench 研究中包含的模型上评估我们的权重正交化方法,并报告其 ASR 以及替代越狱的 ASR。有关每个替代越狱的简要描述,请参阅 §F.1。


表 2 显示,我们的权重正交化方法,标记为 Ortho,与其他通用越狱技术相比表现良好。在整个 Qwen 模型家族中,我们的通用方法甚至与针对特定提示的越狱技术(如 GCG(Zou 等人,2023b))相当,后者针对每个提示单独优化越狱。
请注意,HarmBench 的评估方法规定,在评估过程中应使用每个模型的默认系统提示。虽然这种方法对于评估黑盒系统的鲁棒性是合理的,但在攻击者可以完全访问模型并轻松排除系统提示的白盒场景中,这种方法不太适用。因此,我们报告了带系统和不带系统提示的 ASR。
我们观察到,在比较带有和不带有系统提示的 Llama-2 模型在 ASR 方面的结果时,存在显著的差异。我们推测,尽管我们的干预措施禁用了模型的自然拒绝机制,但并未妨碍其遵循指令的能力。因此,当包含 Llama-2 系统提示时,该提示明确指示模型避免有害内容,正交化模型生成有害内容的可能性较低。相比之下,Qwen 系统提示要短得多,并且缺乏避免有害内容的明确指导,这可能是这些模型在 ASR 方面差异较小的原因之一。有关我们方法对系统提示敏感性的更详细讨论,请参阅§F.2。

4.3 Measuring model coherence

任何新的越狱技术都存在一个合理的担忧,即除了绕过拒绝之外,它还可能降低模型的总体质量。然而,从定性上看,我们发现模型在经过权重正交化后仍保持其一致性。虽然第 3.1 节和第 4.2 节表明我们的方法有效地绕过了拒绝,但在本小节中,我们定量评估了这种修改如何改变模型的一般能力。

对于每个模型及其正交化版本,我们运行了四种常见的语言模型评估:MMLU(Hendrycks 等,2020 年),ARC(Clark 等,2018 年),GSM8K(Cobbe 等,2021 年)和 TruthfulQA(Lin 等,2021 年)。所有评估均使用 LM 评估工具包(Gao 等,2023 年)进行,设置与 Open LLM排行榜(Beeching 等,2023 年)一致。

表 3 显示,对于 MMLU、ARC 和 GSM8K,正交化模型与基线模型表现相似。在 §G.1 中,我们展示了这一点也适用于我们套件中的其他模型,包括对 WinoGrande(Sakaguchi 等人,2021 年)和 TinyHellaSwag(Polo 等人,2024 年)的额外评估。除了 Qwen 7B 和 Yi 34B 之外,所有正交化模型的评估指标都位于原始性能的 99%置信区间内。

有趣的是,对于正交化模型,在 TruthfulQA 上的准确性始终下降。这一现象与杨等人(2023)的研究一致,他们观察到,移除安全护栏的微调会导致在 TruthfulQA 上的准确性下降。检查 TruthfulQA 中的具体问题表明,数据集接近拒绝的领域,包括“虚假信息”、“刻板印象”和“阴谋论”,因此从这个评估数据集上模型行为有显著差异可能直观上是有意义的。参见§G.2 以进一步讨论 TruthfulQA 的性能。

除了标准语言模型评估之外,我们还评估了 CE 损失在不同标准文本语料库和模型特定生成(§G.3)中的差异。这些损失指标表明,方向性消融比基于激活添加的方法更具有手术性(surgical)(§I.1)。

5 Mechanistic analysis of adversarial suffixes

安全微调的聊天模型容易受到对抗性后缀攻击(Zou 等,2023b):存在精心构造的字符串,将这些字符串附加到有害指令的末尾可以绕过拒绝并引发有害内容。有效的对抗性后缀通常不是人类可解释的,它们工作的机制也不太为人所理解。在本节中,我们从机制上分析了对抗性后缀对 Qwen 1.8B Chat 的影响。

5.1 Adversarial suffixes suppress the refusal-mediating direction

我们首先识别出一个有效的对抗性后缀,该后缀能够绕过 Qwen 1.8B Chat 的拒绝。该后缀在§H 中显示,并附带其生成细节。为了研究这个对抗性后缀的效果,我们从 JailbreakBench 和 HarmBench 测试集中采样了 128 个引起拒绝的有害指令。对于每个指令,我们运行模型三次:第一次是未编辑的指令,第二次是附加了对抗性后缀的指令,第三次是附加了相同长度的全新随机后缀的指令。通过将对抗性后缀与随机后缀进行比较,我们旨在控制添加任何后缀的效果。对于每次运行,我们缓存最后一个标记激活并可视化其与拒绝调节方向的余弦相似度。我们还将其与来自 Alpaca 的 128 个无害指令的基线进行比较,这些指令不会引起拒绝。图 5 显示,有害指令的拒绝方向的表达非常高,当附加随机后缀时仍然很高。附加对抗性后缀后的拒绝方向的表达被严重抑制,并非常接近无害指令的表达。

5.2 Adversarial suffixes hijack the attention of important heads

为了进一步研究拒绝方向的抑制方式,我们考察了单个注意力头和 MLP 组件对拒绝方向的贡献。我们使用直接特征归因(DFA)(Makelov 等,2024;Kissane 等,2024)量化每个组件对此方向的贡献:每个组件的直接贡献可以通过将其输出投影到拒绝方向来衡量。我们选择了在有害指令上 DFA 最高的前八个注意力头,然后研究当添加后缀时它们的行为变化。图 6(a)显示,与无后缀和随机后缀相比,当添加对抗性后缀时,这些头对拒绝方向的直接贡献被显著抑制。

为了理解这些注意力头如何改变输出,我们检查它们的注意力模式。图 6(b)说明,对抗性后缀有效地“劫持”了这些头的注意力。通常,这些头关注提示的指令区域,其中包含有害内容。在添加对抗性后缀后,这些头将注意力转移到后缀区域,并远离有害指令。


图 6:我们分析了八个最重要的注意力头,它们对拒绝方向的写入影响最大。图 6(a)显示,当添加对抗性后缀时,对拒绝方向的输出被严重抑制。图 6(b)揭示,与添加随机后缀相比,添加对抗性后缀将注意力从指令区域的标记转移到后缀区域的标记。

6 Related work

Understanding refusal in language models.
Wei 等人(2024)表明,移除一组安全关键神经元和排名可以降低安全机制,同时保持效用。Zheng 等人(2024)和 Zou 等人(2023a)都使用有害和无害输入的对比对来识别模型的representation of harmfulness,声称这一方向与模型拒绝表示的方向不同。Zheng 等人(2024)通过展示安全提示将激活转移到不同的方向来论证这一点,而 Zou 等人(2023a)则表明表示并未受到对抗后缀的显著改变。请注意,这与我们在第 5.1 节中的发现形成对比,即“拒绝方向”在有对抗后缀的情况下被显著抑制。Rimsky 等人(2023)使用对比多选补全(contrastive multiple-choice completions),发现使用由此产生的向量用于控制,在多选设置中可以有效调节拒绝,但在长篇生成中则不然。

Features as directions.
从输入对比对中提取特征方向是一种已建立的技巧(Burns 等人,2022;Rimsky 等人,2023;Zou 等人,2023a)。众所周知,向残差流中添加特征向量可以改变行为(Turner 等人,2023;Zou 等人,2023a;Tigges 等人,2023;Rimsky 等人,2023;Marks 和 Tegmark,2023;Li 等人,2024),尽管如何以及在哪里干预的细节各不相同(Jorgensen 等人,2023;von Rütte 等人,2024)。

各种研究显示,激活空间中的方向比神经元具有更多“特征性”属性(Elhage 等人,2022;Mikolov 等人,2013;Park 等人,2023b;Li 等人,2021;Geiger 等人,2024;Hernandez 和 Andreas,2021;Nanda 等人,2023;Bolukbasi 等人,2016)。近期的研究使用稀疏自编码器以无监督方式发现特征方向(Bricken 等人,2023;Cunningham 等人,2023;Templeton 等人,2024)。假设特征以线性方式表示,对于从语言模型中消除概念是有效的(Belrose 等人,2024;Belrose,2023;Ravfogel 等人,2020;Guerner 等人,2023;Haghighatkhah 等人,2022;Shao 等人,2022)。

Undoing safety fine-tuning.
众所周知,在恶意示例上进行微调足以取消安全护栏(Lermen 等人,2023 年),即使整体能力略有下降(Yang 等人,2023 年;Zhan 等人,2023 年)。通过微调取消拒绝需要有害指令和完成的示例,而我们的方法只需要有害指令。然而,请注意,即使数据是良性的,微调也可能削弱安全护栏(Qi 等人,2023 年;Pelrine 等人,2023 年)。机制可解释性工作提供了初步证据,表明微调不会显著改变相关内部电路(Lee 等人,2024 年;Prakash 等人,2024 年;Jain 等人,2023 年)。例如,Lee 等人(2024 年)微调一个模型以使其毒性降低,并发现这种行为修改可以通过调整少量 MLP 权重来简单地取消。

**Jailbreaks. **
研究通过修改输入来规避对LLM行为限制的研究领域已经出现了许多不同的研究方向。许多模型容易受到社会工程攻击(Wei 等人,2023;Shah 等人,2023b;Perez 等人,2022)。一个假设是,这样的提示修改了LLM助手的“人格”(Andreas,2022;Shanahan 等人,2023;Park 等人,2023a)。在§L 的初步实验表明,我们的方法不会改变模型的聊天个性和拒绝之外的行为。

优化后的对抗性后缀(Zou 等,2023b;Andriushchenko 等,2024;Liao 和 Sun,2024)可以附加到提示中以绕过拒绝。相比之下,我们的方法不需要对输入提示进行任何修改,但有一个明显的局限性,即我们需要访问模型的权重。然而,请注意,在黑盒模型上优化的开放权重模型上的越狱提示的可迁移性尚不清楚(Meade 等,2024)。越狱提示可能对模型性能有重大影响(Souly 等,2024),而我们的方法则没有(§4.3)。

7 Discussion

在这项工作中,我们证明了拒绝行为在一系列开源聊天模型中始终由单一方向所调节。基于这种理解,我们提出了一种简单而有效的白盒越狱方法,该方法直接修改模型权重以禁用拒绝机制,同时保持模型一致性。我们的工作展示了基于模型内部的可解释性的实际效用:通过从模型内部的角度研究拒绝,我们能够创建一种简单而有效的越狱方法。模型拒绝机制的简单性和在白盒设置中绕过它的容易性,引发了关于当前对齐技术鲁棒性的担忧。

Limitations.
我们的研究有几个局限性。首先,虽然我们评估了广泛的开源模型,但我们的发现可能无法推广到未经测试的模型,尤其是那些规模更大的模型,包括当前最先进的专有模型和未来开发的模型。其次,我们用来提取“拒绝方向”的方法可能不是最优的,并依赖于几个启发式方法。我们认为这篇论文更多的是一个存在证明,表明这样的方向存在,而不是对如何最佳提取它的仔细研究,我们将方法改进留给未来的工作。第三,我们对对抗后缀的分析并没有提供对这一现象的全面机制理解,并且仅限于一个模型和一个对抗示例。第四,衡量聊天模型的连贯性很困难,我们认为每个使用的指标都有各种缺陷。我们使用多个不同的指标来提供一个广泛的连贯性视角,并欢迎未来有更严格的分析。

Ethical considerations.
任何关于越狱LLMs的工作都必须提出一个问题,即它是否会导致新的危害。众所周知,开源模型权重可以通过微调进行越狱。我们的方法,使用不到 5 美元的计算能力就能生成一个 70B 参数模型的越狱版本,比之前的微调方法更简单,不需要基于梯度的优化或有害补全的数据集。虽然我们承认我们的方法略微降低了越狱开源模型权重的门槛,但我们认为它并没有实质性改变开源模型的风险特征。

尽管今天语言模型造成的滥用风险可能相对较低(Anthropic,2024;Mouton 等人,2024),但最先进模型能力的快速进步表明,这种风险可能在不久的将来变得显著。我们的工作为日益增长的文献做出了贡献,强调了当前安全机制的脆弱性,证明了它们很容易被规避,并且不足以防止开源LLMs的滥用。在当前安全技术的局限性上达成科学共识对于指导未来的政策决策和研究努力至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web3.0安全开发实践:探索比特币DeFi生态中的PSBT

近年来&#xff0c;部分签名比特币交易&#xff08;PSBT&#xff09;在比特币生态系统中获得了显著关注。随着如Ordinal和基于铭文的资产等创新的兴起&#xff0c;安全的多方签名和复杂交易的需求不断增加&#xff0c;这使得PSBT成为应对比特币生态不断发展中不可或缺的工具。 …

springboot483基于springboot的校园失物招领系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统校园失物招领系统信息管理难度大&#xff0c;容错率低&am…

VisionPro开发使用交互反馈系统(Affordance System)

XR Interaction Toolkit 提供了一个affordance system 可供性系统&#xff0c;使用户能够创建对交互状态的视觉和听觉反馈。一般的信息流从向Affordance State Provider场景中添加一个&#xff08;通常是可交互的&#xff09;并将其指向我们要监视其交互状态的可交互对象开始。…

Stable-diffusion-WebUI 的API调用(内含文生图和图生图实例)

前情提要 在之前尝试使用Diffusers库来进行stable-diffusion的接口调用以及各种插件功能实现&#xff0c;但发现diffusers库中各复杂功能的添加较为麻烦&#xff0c;而且难以实现对采样器的添加&#xff0c;safetensors格式模型的读取。在官网上找到了webui有专门的api接口&am…

重温设计模式--备忘录模式

文章目录 备忘录模式&#xff08;Memento Pattern&#xff09;概述定义&#xff1a; 作用&#xff1a;实现状态的保存与恢复支持撤销 / 恢复操作 备忘录模式UML图备忘录模式的结构原发器&#xff08;Originator&#xff09;&#xff1a;备忘录&#xff08;Memento&#xff09;&…

WPS工具栏灰色怎么办

WPS离线不登录&#xff0c;开启工具栏等相关功能 当你在使用WPS的过程中&#xff0c;若因网络问题或其他特殊原因&#xff0c;导致无法登录使用WPS时&#xff0c;可根据以下步骤开启离线兼容模式&#xff0c;开启此模式后&#xff0c;可在未登录的状态下&#xff0c;激活并使用…

【C++基础】09、结构体

一、结构体(struct) C/C 数组允许定义可存储相同类型数据项的变量&#xff0c;但是结构体是 C 中另一种用户自定义的可用的数据类型&#xff0c;它允许存储不同类型的数据项。 结构体用于表示一条记录&#xff0c;假设现在想要跟踪图书馆中书本的动态&#xff0c;可能需要跟踪每…

安卓蓝牙扫描流程

目录 系统广播 流程图 源码跟踪 系统广播 扫描开启广播&#xff1a;BluetoothAdapter.ACTION_DISCOVERY_STARTED "android.bluetooth.adapter.action.DISCOVERY_STARTED";扫描关闭广播&#xff1a;BluetoothAdapter.ACTION_DISCOVERY_FINISHED "android.b…

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集BIM介绍基本原理算法流程 BIM代码实现BIM算法实现攻击效果 代码汇总bim.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对CIFAR10进行分类 Py…

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复&#xff1a; 2、说明&#xff1a; 1&#xff09;如果小伙伴们经常做android开发的话&#xff0c;这个不陌生&#xff0c;因为调试都是要开启这个开发者模式。并启用USB调试模式。 2&#xff09;需要连上USB线&#xff0c;有的时候会忘记&#xff0c;然…

外贸企业需要部署SD-WAN专线吗?

随着外贸行业对互联网和数字化技术依赖的加深&#xff0c;网络质量已成为影响企业运营效率和竞争力的重要因素。本文将深入探讨SD-WAN专线如何助力外贸企业优化业务运营。 外贸企业面临的网络挑战 1. 跨国访问速度缓慢 在访问海外服务器或目标网站时&#xff0c;外贸企业常常遭…

MySQL什么情况下会导致索引失效

MySQL什么情况下会导致索引失效 索引&#xff08;Index&#xff09;是数据库中一种用于快速查找和访问表中数据的结构&#xff0c;它类似于书的目录&#xff0c;通过索引可以快速定位到目标数据&#xff0c;而无需遍历整个表&#xff0c;索引的存在可以显著提高查询速度&#x…

两分钟解决:vscode卡在设置SSH主机,VS Code-正在本地初始化VSCode服务器

问题原因 remote-ssh还是有一些bug的&#xff0c;在跟新之后可能会一直加载初始化SSH主机解决方案 1.打开终端2.登录链接vscode的账号&#xff0c;到家目录下3.找到 .vscode-server文件,删掉这个文件4.重启 vscode 就没问题了

uniapp登录

第一步整登录 先整个appid APPID和APPSecret https://developers.weixin.qq.com/community/develop/article/doc/000ca4601b8f70e379febac985b413 一个账号只能整一个小程序 正确流程 调用uni.login https://juejin.cn/post/7126553599445827621 https://www.jb51.net/a…

I.MX6U 启动方式详解

一、启动方式选择 BOOT 的处理过程是发生在 I.MX6U 芯片上电以后,芯片会根据 BOOT_MODE[1:0]的设置 来选择 BOOT 方式。 BOOT_MODE[1:0]的值是可以改变的,有两种方式,一种是改写 eFUSE(熔 丝),一种是修改相应的 GPIO 高低电平。第一种修改 eFUSE 的方式只能修改一次,后面就…

项目代码第6讲:UpdownController.cs;理解 工艺/工序 流程、机台信息;前端的“历史 警报/工艺 记录”;每个机台各个管道的数据(温度、压力、气体)

一、UpdownController.cs 1、前端传入 当用户在下图的“记录查询”中的 两个界面选项 中,点击“导出”功能时,向后端发起请求,请求服务器下载文件的权限 【权限是在Program.cs中检测的,这个控制器里只需要进行“谁在哪个接口下载了文件”的日志记录】 【导出:是用户把…

WebRTC搭建与应用(五)-Coturn踩坑记

WebRTC搭建与应用(五)-Coturn踩坑记 近期由于项目需要在研究前端WebGL渲染转为云渲染&#xff0c;借此机会对WebRTC等有了初步了解&#xff0c;在此记录一下&#xff0c;以防遗忘。 第五章 WebRTC搭建与应用(五)-Coturn踩坑记 文章目录 WebRTC搭建与应用(五)-Coturn踩坑记前…

JVM简介—3.JVM的执行子系统

大纲 1.Class文件结构 2.Class文件格式概述 3.Class文件格式详解 4.字节码指令 5.类的生命周期和初始化 6.类加载的全过程 7.类加载器 8.双亲委派模型 9.栈桢详解 11.方法调用详解 12.基于栈的字节码解释执行引擎 1.Class文件结构 (1)Java跨平台的基础 字节码是各…

将自定义或第三方库的jar包引入项目中

文章目录 1.背景2.实现 1.背景 个人项目中引入了某个免费版框架有字数限制&#xff0c;我们业务需要生成字数很多&#xff0c;超过了限制&#xff0c;现在要引入自定义的jar解决问题。 2.实现 在resource文件夹下建lib文件夹 (属于是约定)&#xff0c;将自己的jar包放入 然后…

STL格式转换为FBX格式

STL格式与FBX格式简介 STL&#xff08;Stereo Lithography&#xff09;文件是一种用于3D打印的文件格式。它是由3D Systems公司开发的一种二进制文件格式&#xff0c;用于立体光刻技术。 FBX格式支持多边形游戏模型、曲线、表面、点组材质。FBX文件格式支持所有主要的三维数据…