【极速前进】20240706-24240714:用于Agent的树搜、理解LLM的语种困惑、事实知识抽取微调、Quiet-STaR

相关博客
【极速前进】20240706-24240714:用于Agent的树搜、理解LLM的语种困惑、事实知识抽取微调、Quiet-STaR
【极速前进】20240615-20240623:Zipper融合模态、VideoLLM视频理解、WebAgent可以自我改善、Nemotron-4、AnyGPT统一模态
【极速前进】20240608-20240610:评估模型Prometheus 2、CoPE、DITTO:使用示例反馈对齐LLM、CoA:利用多Agent解决长文本、Qwen2在线合并优化器
【极速前进】20240524-20240526:Meta多模态模型Chameleon、参数高效微调MoRA、跨层注意力降低KV Cache、Octopus v4、SimPO
【极速前进】20240423-20240428:Phi-3、fDPO、TextSquare多模态合成数据、遵循准则而不是偏好标签、混合LoRA专家
【极速前进】20240422:预训练RHO-1、合成数据CodecLM、网页到HTML数据集、MLLM消融实验MM1、Branch-Train-Mix
【极速前进】20240415-20240421:TR-DPO、压缩与智能的线性关系、模拟伪代码改善算术能力、Many-shot、合成数据综述

一、用于LM Agent的树搜

论文名称:Tree Search for Language Model Agents

论文地址:https://arxiv.org/pdf/2407.01476

1. 简介

​ 基于LLM的Agent已经展现出了执行决策任务的能力,但是LM主要是针对自然语言理解和生成进行优化的。在基于多步推理、计划和理解环境反馈来求解现实计算机任务对于LM来说很难。本文为LM agent提出了一种推理时搜索算法,用于在web环境中执行探索和多步计划。

2. 方法

​ 成功求解web环境中的一个任务,可以被解释为给定正向奖励 R ( s ∗ ) = 1 R(s_*)=1 R(s)=1时达到某个目标状态 s ∗ s_* s。agent起始于状态 s 0 s_0 s0。给定自然语言指令 I I I,agent的目标是通过执行一组动作 ( a 0 , … , a t ) ∈ A (a_0,\dots,a_t)\in\mathcal{A} (a0,,at)A来达到目标状态。每个动作会产生一个新状态 s t + 1 ∈ S s_{t+1}\in\mathcal{S} st+1S和观察 o t + 1 ∈ Ω o_{t+1}\in\Omega ot+1Ω。状态的转移 s t → s t + 1 s_t\rightarrow s_{t+1} stst+1是由转移函数 T : S × A → S T:\mathcal{S}\times\mathcal{A}\rightarrow\mathcal{S} T:S×AS决定的。

​ 大多数方法将其看作是一个部分可观察Markov决策过程,仅基于当前观测 o t o_t ot来预测下一个动作 a t a_t at。这有一个显著的限制:agent的错误会随着步骤累加,若在某个t时刻采取了错误的动作,这将导致未来的不良状态且难以纠正。

2.1 Agent Backbone

​ 大多数SOTA web agent都是建立在LLM上的。一个预训练语言模型或者多模态模型 f ϕ f_{\phi} fϕ被要求基于当前的webpage观测 o t o_t ot来预测下一个要执行的动作 a t a_t at。通常会利用一些prompting技术,例如ReAct、RCI或者CoT等来改善agent的效果。

2.2 Value Function

​ 本文基于价值函数 f v f_v fv实现了best-first搜索启发算法,该价值函数用于估计当前状态 s t s_t st的期望奖励 E [ R ( s t ) ] \mathbb{E}[R(s_t)] E[R(st)],而真实的目标状态将提供值为1的完美奖励。由于模拟器的状态 s t s_t st并不能总是被agent访问,价值函数使用当前和先前的观测以及自然语言任务指令 I I I来计算价值 v t v_t vt
v t = f v ( I , { o 1 , … , o t } ) ∈ [ 0 , 1 ] v_t=f_v(I,\{o_1,\dots,o_t\})\in[0,1] \\ vt=fv(I,{o1,,ot})[0,1]
在本文的实验中,价值函数(value function)是通过提示一个多模态语言模型来实现的。

2.3 搜索算法

​ 本文提出的算法是受A*搜索启发的best-first搜索算法。使用语言模型agent来提出搜索树的候选分支。该搜索具有超参数深度 d d d、分支因子 b b b和搜索预算 c c c,这些决定了搜索树的最大尺寸和终止阈值 θ \theta θ

​ 在执行轨迹的时刻 t t t,agent先前已经执行了一系列动作达到了状态 s t s_t st。从 s t s_t st开始搜索算法,初始化一个最大优先级队列 F ← { } \mathcal{F}\leftarrow\{\} F{},该队列包含了计算进行评估的状态集合。目前找到的最优状态为 s ^ t ← s t \hat{s}_t\leftarrow s_t s^tst,最优序列分数为 v ^ t ← 0 \hat{v}_t\leftarrow 0 v^t0,搜索计数器为 s ← 0 s\leftarrow 0 s0

​ 在每次搜索过程中,从 F \mathcal{F} F中抽取下一项 s p ← pop ( F ) s_p\leftarrow\text{pop}(\mathcal{F}) sppop(F)。然后使用价值函数来计算状态 s p s_p sp的分数:
v p = f v ( I , { o 1 , … , o p } ) v_p=f_v(I,\{o_1,\dots,o_p\}) \\ vp=fv(I,{o1,,op})
然后,增强搜索计数器 s s s,若 v p v_p vp比当前的最优分数 v ^ t \hat{v}_t v^t更高,则更新分数和最优状态:
s ← s + 1 s ^ t ← { s p if  v p > v ^ t s ^ t otherwise v ^ t ← max ⁡ ( v ^ t , v p ) \begin{align} s&\leftarrow s+1 \\ \hat{s}_t&\leftarrow \begin{cases} s_p&\text{if }v_p>\hat{v}_t \\ \hat{s}_t&\text{otherwise} \\ \end{cases} \\ \hat{v}_t&\leftarrow\max(\hat{v}_t,v_p) \end{align} \\ ss^tv^ts+1{sps^tif vp>v^totherwisemax(v^t,vp)
v p ≥ θ v_p\geq\theta vpθ或者 s ≥ c s\geq c sc(超出搜索预算),将会终止搜索并转移到目前为止最优状态 s ^ t \hat{s}_t s^t

​ 若当前分支没有超过最大深度 ( 即 ∣ ( s 0 , … , s p ) ∣ < d ) (即|(s_0,\dots,s_p)|<d) ((s0,,sp)<d),那么会从语言模型agent f ϕ f_\phi fϕ中获取 b b b个候选动作 { a p 1 , … , a p b } \{a_p^1,\dots,a_p^b\} {ap1,,apb}作为分支的下一步动作。对于每个 i i i,执行动作 a p i a_p^i api并添加结果状态 s p i s_p^i spi至优先队列中:
F ← F ∪ ( v p , s p i ) for  i = 1 , … , b \mathcal{F}\leftarrow\mathcal{F}\cup(v_p,s_p^i)\quad\text{for }i=1,\dots,b \\ FF(vp,spi)for i=1,,b
这样就结束了搜索迭代。若两个终止条件都没有达到,回溯并重复这个过程。

二、理解和缓解LLM的语种困惑

论文名称:Understanding and Mitigating Language Confusion in LLMs

论文地址:https://arxiv.org/pdf/2406.20052

1. 简介

​ 本文研究LLM的局限性:它们无法始终如一地以用户期望的语言生成文本。创建了一个语言困惑基准(Language Confusion Benchmark, LCBl)来评估语言一致性,其覆盖了15种不同类型的语言。评估了一系列单语或者多语LLM,发现Llama Instruct和Mistral展现出高度的语言困惑,即使是最强的模型也无法始终以正确的语言进行应答。本文发现base模型和以英语为中心的指令模型更容易产生语言混乱,复杂的指令和高采样温度会加剧语言困惑。few-shot提示、多语言SFT和偏好微调能够部分缓解语言困惑。

2.Language Confusion Benchmark

2.1 生成设置

​ 在两种设置中衡量语言困惑:单语言生成和跨语言生成。单语言生成:使用语言 l l l进行查询并期望使用语言 l l l应答。跨语言生成:用户使用语言 l l l来提示模型并期望使用另一种语言 l ′ l' l来响应。

2.2 语言困惑度量

行级检测。将响应划分为行,并使用fastText来检测每行是否为用户期望的语言。

词级检测。没有现成的词级别语种检测工具,并且LLM的准确率不足以作为自动评估器。观测到单词级困惑主要是在英语中,因此选择启发式评估一个语种子集,包括Arabic(ar)、Hindi(hi)、Japanese(ja)、Korean(ko)、Russian(ru)和简体中文(zh)。

二值评估。计算二值度量来表明应答中是否包含实例:(a) 一行不正确的语言;(b) 非Latin语言中包含度量的英文单词或短语。

行级通过率(LRP):模型应答能够通过行级语言困惑检测的百分比。若一个应答的所有行都满足用户期望的语言则为正确。
LRP = ∣ R \ E L ∣ ∣ R ∣ \text{LRP}=\frac{|R\backslash E_L|}{|R|} \\ LRP=RR\EL
其中 R R R是所有应答的集合, E L E_L EL是包含行级错误的应答集合。

词级通过率(WPR):应答中所有单词都是用户期望语言的比例。
WPR = ∣ ( R \ E L ) \ E W ∣ ∣ R \ E L ∣ \text{WPR}=\frac{|(R\backslash E_L)\backslash E_W|}{|R\backslash E_L|} WPR=R\EL(R\EL)\EW
其中 R R R是所有应答集合, E L E_L EL是具有行级错误的应答集合, E W E_W EW是具有单词级错误的应答集合。

语言困惑通过率(LCPR):LPR和WPR的调和平均值
LCPR = 2 × LPR × WPR LPR+WPR \text{LCPR}=2\times\frac{\text{LPR}\times\text{WPR}}{\text{LPR+WPR}} \\ LCPR=2×LPR+WPRLPR×WPR

2.3 数据源

​ Aya、Dolly、Okapi、ShareGPT、Native prompts、Complex prompts。

3. 实验

单语生成。Command和GPT模型在LPR上表现很好,但是Llama和Mistral表现比较差。Mistral在一些欧洲语言上表现会好一些,但是Llama即使在德语这种高资源语言上表现也比较差。大多数模型的WPR在相同范围,Mixtral 8x7B则要差的多。GPT-4 Turbo在LCPR上最强,GPT-3.5 Turbo和Command R+位列第二。

跨语言生成。Command和OpenAI模型总体是最好的。Llama表现相当差,仅有30多分,因为其倾向于英语应答。

三、理解事实知识抽取的微调

论文名称:Understanding Finetuning for Factual Knowledge Extraction

论文地址:https://arxiv.org/pdf/2406.14785

1. 简介

​ 本文研究QA微调数据对下游事实性的影响。研究表明,即使在预训练时见过所有的事实,但是使用鲜为人知的事实进行微调要不熟悉事实微调的效果差的多。

2. Preliminaries

事实知识定义。将事实知识表示为从主实体 s s s和关系类型 r r r到答案 a a a的映射。表示这些映射为知识三元组 ( s , r , a ) (s,r,a) (s,r,a),其中 s ∈ S , r ∈ R , a ∈ A s\in\mathcal{S},r\in\mathcal{R},a\in\mathcal{A} sS,rR,aA,且 S , R , A \mathcal{S,R,A} S,R,A是所有实体、关系和答案的集合。单个三元组 ( s , r , a ) (s,r,a) (s,r,a)在自然语言中有多种表示。这里,建模自然语言为token序列的集合,token来自于集合 T \mathcal{T} T

知识格式化函数。知识可以有很多种文本表示。通过引入一个格式化函数 g : S × R × A → T k g:\mathcal{S}\times\mathcal{R}\times\mathcal{A}\rightarrow\mathcal{T}^k g:S×R×ATk来将三元组 ( s , r , a ) (s,r,a) (s,r,a)映射为token序列。

预训练和微调。给定一个知识三元组集合 D k = { ( s , r , a ) i = 1 N } D_k=\{(s,r,a)_{i=1}^N\} Dk={(s,r,a)i=1N}和一个预训练格式化函数,那么生成预训练语料 D p r e = { g p r e ( s , r , a ) ∣ ( s , r , a ) ∈ D k } D_{pre}=\{g_{pre}(s,r,a)|(s,r,a)\in D_k\} Dpre={gpre(s,r,a)(s,r,a)Dk}。对于一个下游格式化函数 g d o w n g_{down} gdown,生成下游数据集 D d o w n = { g d o w n ( s , r , a ) ∣ ( s , r , a ) ∈ D k } D_{down}=\{g_{down}(s,r,a)|(s,r,a)\in D_k\} Ddown={gdown(s,r,a)(s,r,a)Dk}。实践中,微调数据集相对于预训练来说是有限的,因此将 D d o w n D_{down} Ddown划分为 D f t D_{ft} Dft D e v a l D_{eval} Deval,其中 D f t D_{ft} Dft用于微调且 D e v a l D_{eval} Deval用于测试集。

​ 在QA的设置中, g p r e g_{pre} gpre以书籍或者文章的形式呈现知识,而 g d o w n g_{down} gdown以问答对的方式呈现知识。

3. 合成实验

3.1 合成设置

​ 对于三元组中每个subject、relation和answer都是单个token,并令 g p r e ( s , r , a ) = ( s , r , a ) g_{pre}(s,r,a)=(s,r,a) gpre(s,r,a)=(s,r,a)。为了能够模拟下游任务的变化,为每个relation类型引入QA-prompt token p r p_r pr。QA-prompt token在预训练中未见过,但是会在下游的格式化函数中使用: g d o w n ( s , r , a ) = ( s , p r , a ) g_{down}(s,r,a)=(s,p_r,a) gdown(s,r,a)=(s,pr,a)。因此,在微调时语言模型必须学会对于 ( s , r ) (s,r) (s,r)使用 ( s , p r ) (s,p_r) (s,pr)应答。token空间 T = S ∪ R ∪ A ∪ { p r ∣ r ∈ R } \mathcal{T}=\mathcal{S}\cup\mathcal{R}\cup\mathcal{A}\cup\{p_r|r\in\mathcal{R}\} T=SRA{prrR}

​ 在预训练过程中, ( s , r , a ) (s,r,a) (s,r,a)是从分布 s ∼ Zipf ( S ) , r ∼ Unif ( R ) s\sim\text{Zipf}(\mathcal{S}),r\sim\text{Unif}(\mathcal{R}) sZipf(S),rUnif(R)中独立同分布采样出来的。这个建模选择类似于预训练语料了,即包含流行的实体也包含未见的实体。在微调时,在 D f t D_{ft} Dft上执行标准的batch。假设呈现给模型的所有知识序列都与 D k D_k Dk中的ground truth ( s , r , a ) (s,r,a) (s,r,a)一致的。

​ 最终,所有下游微调和测试数据集 D f t D_{ft} Dft D e v a l D_{eval} Deval中的事实都在 D p r e D_{pre} Dpre中有呈现。

3.2 模拟观测

在这里插入图片描述

主要发现:微调事实流行度影响下游表现。上图2(a)绘制了在最流行(FT-Top)和最不流行(FT-Botton)实体上微调的准确率。我们发现微调数据的选择会显著影响下游QA的事实性。具体来说,在最流行事实上微调会为模型的事实性带来10%的改善。当在测试集中包含不太流行的事实时,这种差异会被放大。例如,当将测试集中最受欢迎的5%实体扩展至10%时,FT-Top和FT-Bottom的差异会翻倍。当逐步增加不流行实体比例,这种差异会持续存在。

预训练语料中长尾的影响。上图2(b)展示了 Zipf α \alpha α参数影响。直觉上,随着 α \alpha α增加,流行和不流行事实的差异会增大。另一方面,低 α \alpha α值会导致事实的更均匀分布。我们发现,增加 α \alpha α会加剧微调数据集的差异。这些发现表明微调数据集差异的影响与预训练中事实频率差异有关。

预训练步数的影响。先前,我们观察到预训练分布中的长尾性会控制微调数据集的敏感性。这个现象的一种解释是,低频率的事实可能并没有存储在模型中,但是我们观察到即使所有的事实都可以通过 ( s , r ) (s,r) (s,r)的形式抽取,但是高频和低频事实的差距仍然存在。这表明这种差异是由内部事实存储的差异造成的。在图2©中,通过绘制FT-Top和FT-Bottom之间的差距作为预训练步数的函数来研究这个问题。可以发现,更多的预训练步数会缩小差距,表明随着事实被看到足够的次数,事实存储的内部差异消失了。

3.3 事实显著性

​ 在模拟中的发现表明,一个模型是否"知道"一个特定的事实是一个持续的过程。这控制了下游任务中抽取事实的程度。此外,模型对事实的了解程度也觉得了微调的行为。将模型对事实的了解程度这种直观数量称为事实显著性

​ 本文的模拟结果表明,事实显著性和预训练语料中的事实频率有关。特别地,可以看到随着预训练分布变的更加长尾,显著性差于会被加剧。然而,我们也发现这些差异可以通过额外的预训练来缓解,这表明差异主要是由见过事实的次数驱动的。

四、Quiet-STaR:语言模型可以学会说话前思考

论文名称:Quiet-STaR: Language Models Can Teach Themselves to Think Before Speaking

论文地址:https://arxiv.org/pdf/2403.09629

1. 简介

​ 人在写作或者说话时,有时会暂停下来进行思考。先前的一些工作将推理作为回答问题或者完全特定任务的方法,但是推理通常隐含在文本中。例如,在数学证明的步骤中有很多没有明说的步骤;对话的背后同样有很多心理活动。在Self-Taught Reasoner中,用few-shot的方式令模型学会使用rationales进行推理。本文Quiet-STaR则是对Self-Taught的推广。

2. Quiet-STaR

在这里插入图片描述

2.1 并行生成

在这里插入图片描述

​ Quiet-STaR的关键挑战是为输入序列中每个token位置高效的生成rationales。这需要对每个token进行独立的前向传播,对于长序列来说在计算上难以处理。

​ 观察到语言模型的一次推理能够为所有的输入token产生下一个token的概率分布,因此可以高度并行生成。当然,这允许为每个输入中的token采样下一个token。若已经为每个token生成了后继,那么就无法使用原始序列来继续生产。例如,为"<bos> the cat sat"中的每个token生成next token,则可能得到"yes orange saw down",每个后继都是前缀序列的合理的next token。可以利用这些后继来为每个观察到的token生成隐思考。

​ 为了能够有效地做到这一点,缓存每次的前向传播,并拼接对角注意力mask至先前的注意力mask。这样,每个生成的token仅能关注生成它的所有token以及其本身。此外,这个并行化的采样过程可以重复任意次数。

2.2 “混合”头

​ 对于最初的预训练模型,thoughts是分布外的,因此会损害语言模型的效果。为了能够平稳转移到思考模式,在LM使用thought和不使用thought之间引入了一个插值。给定一个end-of-thought token的hidden state以及原始文本token的hidden state,混合头会输出一个决定权重,该权重决定了post-thought预测logit被使用的程度。这个头使用一个浅层的MLP,为每个token输出标量值。

2.3 优化Rationale生成

优化Start-of-Thought和End-of-Thought token

​ <|startofthought|>和<|endofthought|> token作为meta-token来控制模型的rationale生成。优化这些token的表示至关重要。使用"—"的embedding来初始化start和end token的embedding,因为其在文本数据中通常表示暂停或者思考。这可以利用语言模型已有的知识。此外,为了使这些embedding能够更快的被优化,在更新时为这些embedding的梯度添加了一个权重。

Non-myopic评分和Teacher-forcing
在这里插入图片描述

​ 由于并不期望在预测每个token都使用thoughts,那么更希望模型的奖励较少依赖于准确的下一个单词,而是后面的语义内容。这里有两个主要的挑战。首先,不同于基于transformers的典型语言建模,仅有那些与给定next-token预测对应的thought才能从预测中接收梯度,这是并行采样策略的结果。我们可以通过采样先前的token来为未来的token添加Loss项,从而接近这个问题。然而,这将导致语言建模更多的熵太高,降低生成文本的质量。相反,本文使用并行注意力mask来计算true next token的对数概率,通过假设模型选择了正确的next ground-truth token来应用teacher forcing。

目标函数

​ 使用REINFORCE来优化rationales的似然,即给定先前观测的tokens和一个rationale,语言模型对于 n t r u e n_{true} ntrue个true next tokens X j + 1 : j + n t r u e + 1 X_{j+1:j+n_{true}+1} Xj+1:j+ntrue+1的对数似然。为了降低方差,为输入序列中的每个token生成多个rationale continuations。因此,定义每个rationale T j T_j Tj的奖励 r j r_j rj p j : j + n t r u e t a l k p_{j:j+n_{true}}^{talk} pj:j+ntruetalk和rationales的平均值 ( p ˉ j : j + n t r u e t a l k ) (\bar{p}_{j:j+n_{true}}^{talk}) (pˉj:j+ntruetalk)
r j = log ⁡ p j : j + n t r u e t a k l ( X j + 1 : j + n t r u e + 1 ) − log ⁡ p ˉ j : j + n t r u e t a l k ( X j + 1 : j + n t r u e + 1 ) r_j =\log p_{j:j+n_{true}}^{takl}(X_{j+1:j+n_{true}+1})-\log\bar{p}_{j:j+n_{true}}^{talk}(X_{j+1:j+n_{true}+1}) \\ rj=logpj:j+ntruetakl(Xj+1:j+ntrue+1)logpˉj:j+ntruetalk(Xj+1:j+ntrue+1)
然后在REINFORCE损失中使用该奖励来更新语言模型的参数 θ \theta θ,从而增加rationales的似然:
∇ θ L j REINFORCE = − r j ⋅ ∇ θ log ⁡ p θ ( T j ∣ [ X : j ; <|startofthought|> ] ) \nabla_{\theta}\mathcal{L}_j^{\text{REINFORCE}}=-r_j\cdot\nabla_{\theta}\log p_{\theta}(T_j|[X_{:j};\text{<|startofthought|>}]) \\ θLjREINFORCE=rjθlogpθ(Tj[X:j;<|startofthought|>])
该损失函数鼓励模型生成能够改善未来预测的rationales。
模型的参数 θ \theta θ,从而增加rationales的似然:
∇ θ L j REINFORCE = − r j ⋅ ∇ θ log ⁡ p θ ( T j ∣ [ X : j ; <|startofthought|> ] ) \nabla_{\theta}\mathcal{L}_j^{\text{REINFORCE}}=-r_j\cdot\nabla_{\theta}\log p_{\theta}(T_j|[X_{:j};\text{<|startofthought|>}]) \\ θLjREINFORCE=rjθlogpθ(Tj[X:j;<|startofthought|>])
该损失函数鼓励模型生成能够改善未来预测的rationales。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【秋招突围】2024届校招-拼多多笔试题-第一套

🍭 大家好这里是 大厂笔试突围,一起备战秋招笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🌻 听说本周PDD的笔…

与用户有关的接口

1.获取用户详细信息 跟着黑马程序员继续学习SpringBoot3Vue3 用户登录成功之后跳转到首页&#xff0c;需要获取用户的详细信息 打开接口文档 使用Token令牌解析得到用户名 我们需要根据用户名查询用户&#xff0c;获取详细信息 但是请求参数是无&#xff0c;由于都需要携…

基于微信小程序的小学生口算练习系统

摘 要 随着当今网络的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;小程序也逐步进入人们的生活&#xff0c;给我们生活或者工作提供了新的方向新的可能。 本毕业设计的内容是设计实现一个小学生口算练习的小程序。微信开发者是以java语言进行…

2023 江苏省第一届数据安全技术应用职业技能竞赛 决赛 部分wp

文章目录 一、前言比赛平台全貌题目附件及工具下载&#xff08;123网盘&#xff09; 二、参考文章三、题目&#xff08;解析&#xff09;一、内存取证-MemoryLife1、请给出内存镜像中黑客使用工具对外连接的IP地址及端口号是___________。&#xff08;格式为IP_PORT&#xff09…

app抓包 burp配置

证书导出 模拟器安装证书 点击安装证书 将证书直接拖进来就行 配置代理 打开浏览器抓包

用python创建极坐标平面

极坐标的介绍 http://t.csdnimg.cn/ucau3http://t.csdnimg.cn/ucau3这个文章里可以知道极坐标的基本知识&#xff0c;接下来实现极坐标的绘制 PolarPlane 是 Manim&#xff08;一个用于数学动画的Python库&#xff09;中的一个类&#xff0c;用于创建极坐标平面。与笛卡尔…

开发android app用于移远模块读写IMEI 模组EC200DEULA-D08-SNNDA 支持socket连接读写IMEI

开放权限 adb kill-serveradb rootadb shell setenforce 0adb install -t app-debug.apkadb shell am start -n com.azhon.spplus/.MainActivity::F310A_WriteIMEI -DWadb.exe forward tcp:5902 tcp:5902pause写读IMEI ADB socket协议 TCP 127.0.0.1:5902 PC与终端APP之间 j…

大放异彩!东软医疗DSA闪耀欧洲

欧洲&#xff0c;作为影像技术的发源地&#xff0c;当下正面临经济发展和人口老龄化的双重考验&#xff0c;对医疗技术的革新与升级需求也愈发迫切。中国高端医疗装备品牌东软医疗&#xff0c;凭借深厚的创新底蕴与对临床需求的精准把握&#xff0c;深耕欧洲市场二十余年&#…

数据结构——排序(2):选择排序+交换排序

目录 一、选择排序 &#xff08;1&#xff09;直接选择排序 ①思路 ②过程图示 ③代码实现 ④代码解释 ⑤优化 1.代码实现 2.过程图示 3.代码解释 4.注意 ⑥直接选择排序的复杂度 &#xff08;2&#xff09;堆排序 ①注意 ②代码实现 二、交换排序 &#xff08…

Vue前端服务加密后端服务解密--AES算法实现

在实际项目中考虑到用户数据的安全性&#xff0c;在用户登录时&#xff0c;前端需要对用户密码加密&#xff08;防止用户密码泄露&#xff09;&#xff0c;服务端收到登录请求时先对密码进行解密&#xff0c;然后再进行用户验证登操作。本文 AES ECB 模式来实现前端机密后端解密…

GPT-5:未来已来,你准备好了吗?

GPT-5 一年半后发布&#xff1f;对此你有何期待&#xff1f; IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。此外&#xff0c;穆…

数据库基础知识

数据库基础知识 主流的数据库连接MySQL理解mysql和mysqld和数据库简单对数据库操作MySQL构架SQL分类存储引擎总结 主流的数据库 SQL Sever&#xff1a; 微软的产品&#xff0c;.Net程序员的最爱&#xff0c;中大型项目。Oracle&#xff1a; 甲骨文产品&#xff0c;适合大型项目…

【Linux网络】网络层协议:IP

本篇博客整理了 TCP/IP 分层模型中网络层的 IP 协议&#xff0c;旨在让读者更加深入理解网络协议栈的设计和网络编程。 目录 一、网络层 二、IP 报头 1&#xff09;报头与有效载荷的分离 2&#xff09;有效载荷的上交 3&#xff09;源 IP 与目的 IP 4&#xff09;生存时间…

学习笔记 韩顺平 零基础30天学会Java(2024.8.7)

P481 Math方法 利用random返回一个[2,7]之间的随机数&#xff1a; 因为random只能返回[0,1)之间的随机数&#xff0c;因此做一下处理&#xff1a;[(int)(a), (int) (aMath.random()*(b-a1))]&#xff0c;对于Math.random()*(b-a1)&#xff0c;其中b-a1&#xff0c;它乘上[0,1)相…

第R3周:天气预测

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 任务说明&#xff1a;该数据集提供了来自澳大利亚许多地点的大约 10 年的每日天气观测数据。需要做的是根据这些数据对RainTomorrow进行一个预测&#xff0c;这次任务任务与以往的不同&#xff0c;增加了…

目录函数以及链接文件

一、对stat里面的用户名时间做处理的函数 1.1.getpwuid&#xff08;&#xff09; struct passwd *getpwuid(uid_t uid); 功能: 根据用户id到/etc/passwd文件下解析获得 结构体信息 参数: uid:用户id 返回值: 成功返回id对应用户的信息 失败返回NULL 1. 2.getgrgid&#xf…

数据复盘“黑色星期一”:加密市场震荡,代币表现如何?

8月5日的“黑色星期一”成为了全球金融市场的动荡日&#xff0c;这一波及到加密市场的剧烈震荡导致了大量清算事件和代币的暴跌。本文将通过数据复盘&#xff0c;分析这一事件中加密货币的表现&#xff0c;并探讨未来市场的可能走向。 一、暴跌中的惨痛数据 在“黑色星期一”事…

Jenkins构建异常,Dockerfile中ADD或COPY及相对路径

Jenkins构建异常&#xff0c;Dockerfile中ADD或COPY及相对路径 制品构建前后端异常 #前端 09:45:53 docker build -t hubtest.......com.cn/duty_record/......-web-01:origin-master-20 -f vue/script/Dockerfile vue/script 09:45:54 Sending build context to Docker da…

zabbix7.0TLS-05-快速入门-触发器

文章目录 1 概述2 查看触发器3 添加触发器4 验证触发器5 查看问题6 问题恢复 1 概述 监控项用于收集数据&#xff0c;但是我们并不能时刻观测每个监控项的数据&#xff0c;看看哪个监控项的数据超过了正常可接受的数值或状态&#xff0c;比如 CPU 负载高于 90%、磁盘使用率低于…

TypeScript位运算

参考文献&#xff1a; https://blog.csdn.net/xuaner8786/article/details/138858747 https://www.runoob.com/typescript/ts-operators.html 位运算符 TypeScript 中的位运算符用于在二进制位级别上操作数字。这些运算符在处理整数和底层系统编程时特别有用。以下是一些使用…