大模型(LLMs)进阶篇

大模型(LLMs)进阶篇

一、什么是生成式大模型?

生成式大模型(一般简称大模型LLMs)是指能用于创作新内容,例如文本、图片、音频以及视频的一类深度学习模型。相比普通深度学习模型,主要有两点不同:

  1. 模型参数量更大,参数量都在Billion级别;
  2. 可通过条件或上下文引导,产生生成式的内容(所谓的prompt engineer就是由此而来)。

二、大模型是怎么让生成的文本丰富而不单调的呢?

  1. 从训练角度来看:

    • 基于Transformer的模型参数量巨大,有助于模型学习到多样化的语言模式与结构;
    • 各种模型微调技术的出现,例如P-Tuning、Lora,让大模型微调成本更低,也可以让模型在垂直领域有更强的生成能力;
    • 在训练过程中加入一些设计好的loss,也可以更好地抑制模型生成单调内容;
  2. 从推理角度来看:

    • 基于Transformer的模型可以通过引入各种参数与策略,例如temperature,nucleus samlper来改变每次生成的内容。

三、LLMs 复读机问题

3.1 什么是 LLMs 复读机问题?

LLMs 复读机问题:

  1. 字符级别重复,指大模型针对一个字或一个词重复不断的生成。例如在电商翻译场景上,会出现"steckdose steckdose steckdose steckdose steckdose steckdose steckdose steckdose…";
  2. 语句级别重复,大模型针对一句话重复不断的生成。例如在多模态大模型图片理解上,生成的结果可能会不断重复图片的部分内容,比如"这是一个杯子,这是一个杯子…";
  3. 章节级别重复,多次相同的prompt输出完全相同或十分近似的内容,没有一点创新性的内容。比如你让大模型给你写一篇关于春天的小作文,结果发现大模型的生成结果千篇一律,甚至近乎一摸一样。
  4. 大模型针对不同的prompt也可能会生成类似的内容,且有效信息很少、信息熵偏低。

3.2 为什么会出现 LLMs 复读机问题?

  1. 数据偏差:大型语言模型通常是通过预训练阶段使用大规模无标签数据进行训练的。如果训练数据中存在大量的重复文本或者某些特定的句子或短语出现频率较高,模型在生成文本时可能会倾向于复制这些常见的模式。
  2. 训练目标的限制:大型语言模型的训练通常是基于自监督学习的方法,通过预测下一个词或掩盖词来学习语言模型。这样的训练目标可能使得模型更倾向于生成与输入相似的文本,导致复读机问题的出现。
  3. 缺乏多样性的训练数据:虽然大型语言模型可以处理大规模的数据,但如果训练数据中缺乏多样性的语言表达和语境,模型可能无法学习到足够的多样性和创造性,导致复读机问题的出现。
  4. 模型结构和参数设置:大型语言模型的结构和参数设置也可能对复读机问题产生影响。例如,模型的注意力机制和生成策略可能导致模型更倾向于复制输入的文本。
  5. 从 induction head 机制的影响角度:也就是模型会倾向于从前面已经预测的word里面挑选最匹配的词。在翻译上,由于input和output的天然差异性,你会发现容易出现重复的都是一些复杂度perplexity比较高的文本:也就是说input的句式越不常见,本身重复度越高,翻译结果重复的可能性也越高。

3.3 如何缓解 LLMs 复读机问题?

3.3.1 Unlikelihood Training

思路:在训练中加入对重复词的抑制来减少重复输出;

介绍

Unlikelihood Training Loss = − ∑ i = 1 N log ⁡ ( p i ) − ∑ j ∈ C log ⁡ ( 1 − p j ) \text{Unlikelihood Training Loss} = -\sum_{i=1}^{N} \log(p_i) - \sum_{j \in C} \log(1 - p_j) Unlikelihood Training Loss=i=1Nlog(pi)jClog(1pj)

其中集合 ( C ) 代表上文生成的token,本身likelihood training loss是要促使模型学习到原标签中自然的语言逻辑,而修改后的loss不仅要促进模型学习到真实标签的语言自然性,也要通过unlikelihood loss抑制模型,使其尽量不生成集合 ( C ) 中的token。一般对于生成式任务,只需要在原模型基础上加入unlikelihood training进行sentence级别finetune即可,不需要通过token级别的unlikelihood和likelihood loss叠加训练。(如果进入叠加训练虽然会降低重复率,但是句子困惑度会升高,准确率会下降)

token级unlikelihood training loss

Unlikelihood Training Loss = − ∑ i = 1 N log ⁡ ( p i ) − ∑ j ∈ C log ⁡ ( 1 − p j ) \text{Unlikelihood Training Loss} = -\sum_{i=1}^{N} \log(p_i) - \sum_{j \in C} \log(1 - p_j) Unlikelihood Training Loss=i=1Nlog(pi)jClog(1pj)

sentence级unlikelihood training loss

Unlikelihood Training Loss = − ∑ i = 1 N log ⁡ ( p i ) − ∑ j ∈ C log ⁡ ( 1 − p j ) \text{Unlikelihood Training Loss} = -\sum_{i=1}^{N} \log(p_i) - \sum_{j \in C} \log(1 - p_j) Unlikelihood Training Loss=i=1Nlog(pi)jClog(1pj)

各训练Loss下的重复度结果

注:上图为论文中的结果,其中seq-rep-4代表4-gram重复率;uniq-seq代表总共出现的不同词的个数;ppl代表句子困惑度;acc代表句子准确性;rep代表前词重复率;wrep代表加权前词重复率。从这些指标中可以明显观察到,unlikelihood training能降低整体生成句子的重复度。

参考:NEURAL TEXT DEGENERATION WITH UNLIKELIHOOD TRAINING

3.3.2 引入噪声

在生成文本时,引入一些随机性或噪声,例如通过采样不同的词或短语,或者引入随机的变换操作,以增加生成文本的多样性。这可以通过在生成过程中对模型的输出进行采样或添加随机性来实现。

3.3.3 Repetition Penalty

思路:重复性惩罚方法通过在模型推理过程中加入重复惩罚因子,对原有softmax结果进行修正,降低重复生成的token被选中的概率。

Repetition Penalty = e x i / T I \text{Repetition Penalty} = \frac{e^{x_i / T}}{I} Repetition Penalty=Iexi/T

其中 ( T ) 代表温度,温度越高,生成的句子随机性越强,模型效果越不显著; ( I ) 就代表惩罚项, ( c ) 代表我们保存的一个list,一般为1-gram之前出现过的单词, ( \theta ) 值一般设置为1.2,1.0代表没有惩罚。

重复性惩罚方法是一种简单有效的重复抑制手段,因为它通过提高 ( I ) 值,有效降低集合 ( c ) 中词再次被选中的概率。当然,类似与unlikelihood training,本方法也可以通过设置不同的 ( c ) 集合来改变惩罚的方向。(该方法仅能解决1.1节中阐述的前两种重复问题,无法解决输入多次相同prompt输出单调性的问题)

参考:CTRL: A CONDITIONAL TRANSFORMER LANGUAGE MODEL FOR CONTROLLABLE GENERATION

Huggingface中,model.generate已经包含此参数,仅需设置repetition_penalty=p(p>1.0)即可开启重复惩罚因子。

3.3.4 Contrastive Search

动机:Contrastive Search方法是为了解决原先解码方法,例如Beam Search,在采用最大化生成方式解码时出现解码退化的问题即生成的文本不自然的,并包含文本重复而提出的一种解决方案。

思路:对比loss以及对比搜索两个创新点,从模型训练和模型推理层面缓解了生成式模型重复以及单调问题。

Contrastive Loss = − ∑ i = 1 N log ⁡ ( p i ) − ∑ j ∈ C log ⁡ ( 1 − p j ) \text{Contrastive Loss} = -\sum_{i=1}^{N} \log(p_i) - \sum_{j \in C} \log(1 - p_j) Contrastive Loss=i=1Nlog(pi)jClog(1pj)

其中对比loss通过在原loss基础上添加对比loss,即对比token间相似度的方式去解决生成式模型重复单调问题,公式如下:

Contrastive Loss = − ∑ i = 1 N log ⁡ ( p i ) − ∑ j ∈ C log ⁡ ( 1 − p j ) \text{Contrastive Loss} = -\sum_{i=1}^{N} \log(p_i) - \sum_{j \in C} \log(1 - p_j) Contrastive Loss=i=1Nlog(pi)jClog(1pj)

其中 ( \cos(\cdot) ) 就是余弦相似度,下图给出了训练前后token间的相似度:

对比训练前后token相似度

从图上可以明显看出token间相似度降低了,token间相似度降低即不同token在高维空间表征分离能有效降低模型仅生成个别重复词或字的概率。

而对比搜索方法就是在decode阶段限制相似token生成的概率,大大降低生成内容重复率和单调性。

Contrastive Search = e x i / T I \text{Contrastive Search} = \frac{e^{x_i / T}}{I} Contrastive Search=Iexi/T

其中第一项就是原模型的概率,后面一项可以理解成一种惩罚,当前token与历史token相似度较高时,就降低当前token的概率。

对比loss和对比search在训练和推理两个阶段限制生成token间的相似度,有效降低了模型对一些特别常见表达的依赖,让模型尝试生成不一样的表达,整体上提升模型的创造性。(该方法仅能解决1.1节中阐述的前两种重复问题,无法解决输入多次相同prompt输出单调性的问题)

参考论文地址:A Contrastive Framework for Neural Text Generation

Github地址:https://github.com/yxuansu/SimCTG

Huggingface中,model.generate已经包含此参数,仅需设置penalty_alpha=alpha(0<alpha<1)即可开启对比Search因子alpha。

3.3.5 Beam Search

思路:Beam Search是对贪心策略一种改进。思路简单,就是稍微放宽考察的范围。在每一个时间步,不再只保留当前分数最高的1个输出,而是保留num_beams个。当num_beams=1时集束搜索(Beam Search)就退化成了贪心搜索。Beam Search虽然本质上并没有降低重复率的操作,但是该策略确实在结果上优化了部分生成结果,降低了一定的重复率。

下图是一个实际的例子,每个时间步有ABCDE共5种可能的输出,图中的num_beams=2,也就是说每个时间步都会保留到当前步为止条件概率最优的2个序列。

Beam Search搜索方式

Beam search理论上仅是为了解决贪婪搜索给到的答案仅局部最优,而全局搜索又在时间复杂度上不可行而提出的折中算法,并不能对大模型中的任何重复问题进行修正,甚至有可能增大重复概率。但从翻译的测试实验结果来看,它确实在一定程度上改变了模型Softmax后的分布情况,优化了输出的结果,所以在部分大模型任务上能抑制重复生成问题。

:Huggingface中,model.generate中已经包含此参数,仅需设置num_beams=2即可开启集束搜索。

3.3.6 TopK sampling

TopK通过对Softmax的输出结果logit中最大的K个token采样来选择输出的token,该方法存在的问题是当概率分布很极端时,即模型很确定下一个token时,容易造成生成错误。以下图为例,TopK采样会选择最大的K个token,并通过logit值对K个token进行采样,相比于贪心搜索增添了随机性,相当于同样的输入,多次经过TopK采样生成的结果大概率不会一样。

TopK采样是一种行之有效,能简单暴力的解决1.1节中提出所有重复单调问题的方案之一,当然它存在的最大问题是最后生成的句子存在狗屁不通现象,并不能保证句子的通顺度以及对prompt的忠诚度。

Huggingface中,model.generate中已经包含此参数,需设置do_sample=True,开启采样模式,同时设置top_k值,top_k值默认为50

3.3.7 Nucleus sampler

Nucleus sampler俗称TopP采样,一种用于解决TopK采样问题的新方法,该采样方式不限制K的数目,而是通过Softmax后排序token的概率,当概率大于P时停止,相当于当模型很确定下一个token时,可采样的K也会很少,减少异常错误发生的概率。以下图为例,TopP采样会不断选择logit中最大概率的token,放入一个list中,直到list中计算的总概率大于设置的TopP值,后对list中的token概率进行重新计算,最终根据计算出来的概率值对list中的token进行采样。

Nucleus sampler是对简单暴力的TopK采样修改后的方法,也能解决1.1节中提出所有重复单调问题,相比TopK,该方法生成的句子通顺度以及对prompt的忠诚度更佳,一般选择它,而不选择TopK。

:Huggingface中,model.generate中已经包含此参数,需设置do_sample=True,开启采样模式,同时设置top_p值,top_p值默认为1.0。

3.3.8 Temperature

生成模型中抽样包含随机性,因此每次生成时,相同的prompt可能会产生不同的输出。温度是用于调整随机程度的数字。

采样时如何选择温度?

较低的温度意味着较少的随机性;温度为0将始终产生相同的输出。执行具有"正确"答案的任务,对于总结类,翻译类等具有明确答案的任务,较低的温度(小于1)更合适。如果模型开始自我重复,则表明温度设置过低。高温意味着更多的随机性,这可以帮助模型给出更有创意的输出。如果模型开始偏离主题或给出无意义的输出,则表明温度过高。温度调整公式如下:

Temperature = e x i / T I \text{Temperature} = \frac{e^{x_i / T}}{I} Temperature=Iexi/T

Temperature参数就是前面介绍repetition penalty中的T参数。

提高Temperature配合上文两种采样算法,可以达到生成更激进创新性回答的需求,但生成句子的稳定性不可控。

Huggingface中,model.generate中已经包含此参数,仅需设置temperature,默认为1.0

3.3.9 No repeat ngram size

该方法是一种最暴力抑制重复的方法,通过限制设置的ngram不能出现重复,如果重复,就选概率次大的一个,来强制模型不生成重复的token。

该功能一般都会开启,来保证生成的句子不犯很离谱的连续重复问题。(该方法仅能解决1.1节中阐述的前两种重复问题,无法解决输入多次相同prompt输出单调性的问题)

Huggingface中,model.generate中已经包含此参数,仅需设置no_repeat_ngram_size=N即可

3.3.10 重复率指标检测

在2.1节的表中列出了常见重复率监测指标:seq-rep-N,uniq-seq,rep,wrep。通过这些指标的融合,可以对重复生成的结果进行一定程度的监测,并在监测到异常生成结果时,通过加入特殊字符,修改prompt表达等形式来重新生成结果。

通过我们的测试,通过切分或加入特殊字符的方式确实能让本身异常的翻译结果恢复正常,但潜在风险是翻译的语序可能会出现一定的问题。(对其他领域生成结果的影响有待进一步探索)

3.3.11 后处理和过滤

对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。可以使用文本相似度计算方法或规则来检测和去除重复的文本。

3.3.12 人工干预和控制

对于关键任务或敏感场景,可以引入人工干预和控制机制,对生成的文本进行审查和筛选,确保生成结果的准确性和多样性。

四、llama 系列问题

4.1 llama 输入句子长度理论上可以无限长吗?

限制在训练数据。理论上rope的llama可以处理无限长度,但实际上存在一些限制和挑战。下面是一些相关的考虑因素:

  1. 计算资源:生成长句子需要更多的计算资源,包括内存和计算时间。由于LLMs通常是基于神经网络的模型,计算长句子可能会导致内存不足或计算时间过长的问题。
  2. 模型训练和推理:训练和推理长句子可能会面临一些挑战。在训练阶段,处理长句子可能会导致梯度消失或梯度爆炸的问题,影响模型的收敛性和训练效果。在推理阶段,生成长句子可能会增加模型的错误率和生成时间。
  3. 上下文建模:LLMs是基于上下文建模的模型,长句子的上下文可能会更加复杂和深层。模型需要能够捕捉长句子中的语义和语法结构,以生成准确和连贯的文本。

尽管存在这些挑战,研究人员和工程师们已经在不断努力改进和优化LLMs,以处理更长的句子。例如,可以采用分块的方式处理长句子,将其分成多个较短的片段进行处理。此外,还可以通过增加计算资源、优化模型结构和参数设置,以及使用更高效的推理算法来提高LLMs处理长句子的能力。

五、什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选?

Bert的模型由多层双向的Transformer编码器组成,由12层组成,768隐藏单元,12个head,总参数量110M,约1.15亿参数量。NLU(自然语言理解)任务效果很好,单卡GPU可以部署,速度快,V100GPU下1秒能处理2千条以上。

ChatGLM-6B, LLaMA-7B模型分别是60亿参数量和70亿参数量的大模型,基本可以处理所有NLP任务,效果好,但大模型部署成本高,需要大显存的GPU,并且预测速度慢,V100都需要1秒一条。

所以建议:

  1. NLU相关的任务,用BERT模型能处理的很好,如实体识别、信息抽取、文本分类,没必要上大模型;
  2. NLG任务,纯中文任务,用ChatGLM-6B,需要处理中英文任务,用chinese-alpaca-plus-7b-hf。

六、各个专业领域是否需要各自的大模型来服务?

各个专业领域通常需要各自的大模型来服务,原因如下:

  1. 领域特定知识:不同领域拥有各自特定的知识和术语,需要针对该领域进行训练的大模型才能更好地理解和处理相关文本。例如,在医学领域,需要训练具有医学知识的大模型,以更准确地理解和生成医学文本。
  2. 语言风格和惯用语:各个领域通常有自己独特的语言风格和惯用语,这些特点对于模型的训练和生成都很重要。专门针对某个领域进行训练的大模型可以更好地掌握该领域的语言特点,生成更符合该领域要求的文本。
  3. 领域需求的差异:不同领域对于文本处理的需求也有所差异。例如,金融领域可能更关注数字和统计数据的处理,而法律领域可能更关注法律条款和案例的解析。因此,为了更好地满足不同领域的需求,需要专门针对各个领域进行训练的大模型。
  4. 数据稀缺性:某些领域的数据可能相对较少,无法充分训练通用的大模型。针对特定领域进行训练的大模型可以更好地利用该领域的数据,提高模型的性能和效果。

尽管需要各自的大模型来服务不同领域,但也可以共享一些通用的模型和技术。例如,通用的大模型可以用于处理通用的文本任务,而领域特定的模型可以在通用模型的基础上进行微调和定制,以适应特定领域的需求。这样可以在满足领域需求的同时,减少模型的重复训练和资源消耗。

七、如何让大模型处理更长的文本?

动机

目前绝大多数大模型支持的token最大长度为2048,因为序列长度直接影响Attention的计算复杂度,太长了会影响训练速度。

让大模型处理更长的文本方法

  1. LongChat

    就两步:

    • step1:将新的长度压缩到原来2048长度上,这样的好处是能复用原来的位置信息,增加长度并没有破坏position的权重。比如从2048扩展到16384,长度变为原来的8倍,那么值为10000的position_id,被压缩成10000/8=1250。
    • step2:用训练Vicuna的对话语料做微调,超过16k的文本被截断。

    详细参考:https://kaiokendev.github.io/context

  2. position等比例缩放

    既然有用,那后续会不会有一种新的position构造的方式,无论多长都可以归一到同样的尺度下,只要position的相对位置保持不变就可以?其实ALiBi的方法就是一个比较简单优雅的方式,可以部分解决扩展长度的问题。

  3. 商业模型比如ChatGPT和Claude到底是怎么做的?

    这个目前都没有公开。首先语料是不缺的,所以只能是结构上的变化。但是这两个商业模型规模都是100B这个量级的,这么大的参数,如果只增加序列长度而不做其他优化的话,很难训练起来。目前有证据的方法如下:

    • 稀疏化:GPT3的论文中曾提到有这方面的尝试。
    • Google的周彦祺在一次分享中透露GPT-4用了MoE的技术(猜测是100B16E),所以应该有类似的方法来保证在序列变长的情况下,仍然能高效的训练模型。
    • Multi-Query Attention:Google的PaLM,Falcon等模型都用到过,通过权重共享来提升性能。
  4. 真正的出路可能还是Linear Attention

    将Attention的复杂度从 ( O(N^2) ) 降低为 ( O(N) )。比如Linear Transformer和RWKV。其实关于变长序列的问题,历史上现成的解决方案就是RNN,通过信息传递来解决。Transformer的卖点就是Attention is All your Need,丢弃了RNN,RWKV敢于把RNN拿回来,还是很有勇气,非常好的一个工作。现在的Attention就有点像历史上的MLP,每个节点之间都要建立关联,而MLP之后涌现了大量新的结构,所以Transformer是起点,后续肯定会有更合理的结构来取代它。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

AntFlow:一款高效灵活的开源工作流引擎

AntFlow 是一款功能强大、设计优雅的开源工作流引擎&#xff0c;其灵感来源于钉钉的工作流设计理念&#xff0c;旨在为企业和开发者提供灵活、高效的工作流解决方案。AntFlow 支持复杂的业务流程管理&#xff0c;具有高度可定制性&#xff0c;且拥有现代化的前端设计&#xff0…

2024年江西省职业院校技能大赛网络建设与运维技能竞赛方案赛项规程(中职组)

2024 年江西省职业院校技能大赛网络建设与运维赛项竞赛&#xff0c;为 确保竞赛工作顺利开展&#xff0c;特制定本竞赛方案。 一、赛项介绍 1.赛项简介&#xff1a;本赛项设置网络理论测试、网络建设与调试、 服务搭建与运维三个模块&#xff0c;竞赛内容包括&#xff1a;职…

EWM 打印

目录 1 简介 2 后台配置 3 主数据 4 业务操作 1 简介 打印即输出管理&#xff08;output management&#xff09;利用“条件表”那一套理论实现。而当打印跟 EWM 集成到一起时&#xff0c;也需要利用 PPF&#xff08;Post Processing Framework&#xff09;那一套理论。而…

WLAN概述

前言 无线局域网WLAN是一种利用无线技术实现主机等总端设备灵活接入以太网的技术,它使得网路哦的国家你和终端的移动更加方便和灵活.不仅可以作为有线局域网的补充和延申,而且还要看与有线网络互为备份. WLAN应用 智能移动设备的使用热潮为BYOD(bring Your Own Device).BYOD解…

stm32——通用定时器时钟知识点

&#xff08;该图来自小破站 铁头山羊老师的stm32标准库教学&#xff09;

免费下载 | 2024年金融数字化转型白皮书

导读&#xff1a;数字经济的蓬勃发展给银行创造了全新的机遇和挑战&#xff0c;数字化转型升级已成为必然要求。在金融服务需求方面客户对银行的要求全面升级:一是个人生活线上化比重提升&#xff0c;对金融服务的需求频度和便捷度要求提高;二是企业业务场景化&#xff0c;对金…

RabbitMQ 高级特性——延迟队列

文章目录 前言延迟队列延迟队列的概念TTL 死信队列模拟延迟队列设置队列的 TTL设置消息的 TTL 延迟队列插件安装并且启动插件服务使用插件实现延迟功能 前言 前面我们学习了 TTL 和死信队列&#xff0c;当队列中的消息达到了过期时间之后&#xff0c;那么这个消息就会被死信交…

腾讯IM uniapp微信小程序版本实现迅飞语音听写(流式版)

在之前文章《腾讯IM web版本实现迅飞语音听写&#xff08;流式版&#xff09;》实现了腾讯IM web版本实现迅飞语音听写&#xff0c;本文将基于uniapp vue2/vue3&#xff08;cli 脚手架&#xff09;的Demo项目集成迅飞语音听写&#xff08;流式版&#xff09;&#xff1a; 主要代…

实现高效运行管理:如何使用 NSSM 工具将 IoTDB 注册为 Windows 系统服务

后台自动无干扰运行 IoTDB 的“指导手册”&#xff01; IoTDB 是一个专为工业物联网领域设计的高性能时间序列数据库。在生产环境中&#xff0c;确保 IoTDB 的稳定运行对于业务连续性至关重要。通常情况下&#xff0c;通过批处理&#xff08;bat&#xff09;脚本运行 IoTDB 会始…

Windows配置域名映射IP

一、找到 hosts 文件 打开 C:\Windows\System32\drivers\etc 二、添加hosts文件修改、写入权限 右击hosts文件&#xff0c;点击属性 -> 安全 -> Users -> 编辑 -> Users -> 添加修改、写入权限 -> 确定 -> 确定 进入常规&#xff0c;将只读属性关闭 三、…

专题二十_动态规划_简单多状态dp问题_买卖股票系列问题_算法专题详细总结

目录 动态规划 1. 按摩师&#xff08;easy&#xff09; 解析&#xff1a; 1.状态表达式&#xff1a; 2.状态转移方程 3.初始化 4.填表方向 5.返回值&#xff1a; 代码编写&#xff1a; 总结&#xff1a; 2. 打家劫舍II &#xff08;medium&#xff09; 解析&#xf…

多模态简述

多模态学习概念 【多模态简述-哔哩哔哩】 https://b23.tv/UrUyfln 定义&#xff1a; 模态&#xff1a;事物表达或感知的方式 多模态&#xff1a;研究异构和相互连接数据的科学&#xff0c;涵盖了从原始的器官信号到抽象概念的多种模态 语音和语言是理解人物交互的关键模态&am…

mac2019环境 Airflow+hive+spark+hadoop本地环境安装

1 环境介绍 本地安装可分为两个部分&#xff0c;mac软件环境&#xff0c; python开发环境 ps: 安装过程参考chatgpt、csdn文章 1.1 mac软件环境 目标安装的的软件是hive、apache-spark、hadoop&#xff0c;但是这三个软件又依赖java(spark依赖&#xff09;、ssh&#xff08…

HarmonyOS4+NEXT星河版入门与项目实战--------开发工具与环境准备

文章目录 1、熟悉鸿蒙官网1、打开官网2、下载 DevEco Studio3、HarmonyOS 资源库4、开发指南与API 2、安装 DevEco Studio1、软件安装2、配置开发工具 1、熟悉鸿蒙官网 1、打开官网 百度搜索 鸿蒙开发者官网 点击进入开发者官网&#xff0c;点击开发&#xff0c;可以看到各种…

11.16 JavaScript

什么是JavaScript&#xff1f; JavaScript&#xff08;简称&#xff1a;js&#xff09;是一门跨平台&#xff0c;面向对象的脚本语言&#xff0c;是用来控制网页行为的&#xff0c;它能使网页可交互。JavaScript和java是完全不同的语言&#xff0c;不论是概念还是设计。但是基…

【网络安全面经】技术性问题

1.SQL注入原理 主要基于Web应用程序对用户输入数据的合法性缺乏严格的判断或过滤 2.windows上提权的方式和linux提权方式 windows&#xff1a;本地溢出漏洞提权&#xff0c;AT(计划任务提权)&#xff0c;SC(创建服务提权)&#xff0c;PS(微软官方工具pstool)&#xff0c;数据…

20241116下载中科创达的TurboX D660核心板的Android11的SDK的详细LOG

20241116下载中科创达的TurboX D660核心板的Android11的SDK的详细LOG 2024/11/16 15:28 下载速度&#xff0c;工作日&#xff1a;20MBps/周末30MBps。 【实际情况&#xff0c;取决于您的实际网络环境】 https://docs.thundercomm.com/turbox_doc/products/smart-modules/turbox…

计算机网络 (6)物理层的基本概念

前言 计算机网络物理层是OSI模型&#xff08;开放式系统互联模型&#xff09;中的第一层&#xff0c;也是七层中的最底层&#xff0c;它涉及到计算机网络中数据的物理传输。 一、物理层的主要任务和功能 物理层的主要任务是处理物理传输介质上的原始比特流&#xff0c;确保数据…

大模型(LLMs)微调篇

大模型&#xff08;LLMs&#xff09;微调篇 一、如果想要在某个模型基础上做全参数微调&#xff0c;究竟需要多少显存&#xff1f; 一般 n B的模型&#xff0c;最低需要 16-20 n G的显存。&#xff08;cpu offload基本不开的情况下&#xff09; 二、为什么SFT之后感觉LLM傻了…

企业网络链路聚合、数据抓包、远程连接访问实验

前言&#xff1a; 随着信息技术的飞速发展和企业业务的不断扩大&#xff0c;企业网络面临着越来越多的挑战。其中&#xff0c;网络带宽、数据安全和远程访问等问题尤为突出。为了解决这些问题&#xff0c;我们进行了本次企业网络链路聚合、数据抓包和远程连接访问的实验。 链路…