【NLP 面经 6】
当上帝赐予你荒野时,就意味着,他要你成为高飞的鹰
—— 25.4.3
一、机器翻译任务,Transformer结构模型改进
在自然语言处理的机器翻译任务中,你采用基于 Transformer 架构的模型。在翻译一些具有丰富文化内涵、习语或隐喻的句子时,翻译质量较差,并且在处理生僻词汇时也经常出现错误。请从模型架构、训练数据和推理优化三个方面分析可能的原因,并提出相应的改进措施。
模型架构方面
- 原因:
- 缺乏外部知识融合:Transformer 架构虽然强大,但它主要基于输入文本自身学习语义表示,缺乏对外部文化知识、习语和隐喻含义的直接理解。当遇到包含这些内容的句子时,模型难以准确捕捉其背后的深层含义,导致翻译质量下降。
- 词汇表征局限性:对于生僻词汇,Transformer 模型依赖于训练数据中学习到的词向量表示。如果生僻词在训练数据中出现频率极低,模型很难学习到准确反映其语义的向量表示,从而在翻译时容易出错。此外,Transformer 基于词块(token)的处理方式,对于一些不能简单拆分为常见词块的生僻词,可能无法有效处理。
- 多头注意力机制不足:虽然多头注意力机制有助于模型捕捉不同层面的语义信息,但在处理具有文化内涵、习语或隐喻的句子时,多头注意力可能无法充分聚焦到关键信息上。这些特殊表达往往需要更深入的语义理解和上下文关联,而标准的多头注意力机制可能无法满足这种需求。
- 改进措施:
- 融合外部知识:引入知识图谱等外部知识源,将文化知识、习语和隐喻的解释融入模型。例如,可以在模型的输入层或中间层,将相关知识编码为额外的特征向量,与文本的词向量一起输入到 Transformer 模型中,帮助模型更好地理解和翻译具有特殊文化内涵的句子。
- 优化词汇表征:采用动态词向量生成方法,对于生僻词,在推理时根据其上下文动态生成更准确的词向量。可以结合预训练语言模型在更大语料库上学习到的知识,对生僻词的表示进行微调。另外,改进词块划分策略,使生僻词能被更合理地分解为有意义的词块,提高模型对生僻词的处理能力。
- 增强注意力机制:设计专门针对文化内涵、习语和隐喻处理的注意力机制变体。例如,基于语义相似度的注意力机制,在计算注意力权重时,不仅考虑词与词之间的位置关系,还考虑其语义相似度,使模型能够更精准地聚焦于与特殊表达相关的信息,提升翻译质量。
训练数据方面
- 原因:
- 数据覆盖不全面:训练数据可能没有充分涵盖各种文化背景下的表达方式、习语和隐喻。如果模型没有见过足够多的此类示例,就无法学习到准确的翻译模式,导致在翻译相关句子时表现不佳。同样,生僻词汇在训练数据中的缺失或低频出现,使得模型缺乏对其正确翻译的学习机会。
- 标注不准确或不一致:对于包含文化内涵、习语和隐喻的句子,其翻译可能存在多种合理的表达方式,标注过程中可能出现不准确或不一致的情况。这会误导模型学习,导致翻译结果不稳定。而生僻词的标注也可能因为人工判断的误差或不同标注者理解的差异,影响模型对其的学习效果。
- 数据缺乏上下文信息:机器翻译训练数据通常只包含源语言句子及其对应的目标语言翻译,缺乏相关的上下文信息。对于具有文化内涵、习语或隐喻的句子,上下文对于准确理解和翻译至关重要。缺少上下文信息,模型很难把握这些特殊表达在特定语境下的含义,从而影响翻译质量。
- 改进措施:
- 扩充数据多样性:收集更多包含丰富文化内涵、习语和隐喻的句子,以及含有生僻词汇的文本数据。可以从不同领域、体裁和文化背景的文本中获取数据,如文学作品、新闻报道、社交媒体等。同时,利用数据增强技术,对现有数据进行变换生成更多类似数据,增加模型对特殊表达和生僻词的学习机会。
- 提高标注质量:制定详细且统一的标注指南,对标注人员进行培训,确保标注的准确性和一致性。对于具有多种合理翻译的情况,可以采用众包标注并结合专家审核的方式,选取最恰当的标注结果。对于生僻词的标注,参考权威词典和专业领域知识,减少标注误差。
- 添加上下文信息:在训练数据中尽可能添加上下文信息,例如提供包含目标句子的段落或篇章。模型在训练时可以利用这些上下文更好地理解特殊表达和生僻词的含义。此外,也可以通过预处理步骤,提取与目标句子相关的关键上下文特征,如主题信息、情感倾向等,与句子一起输入模型,辅助模型进行更准确的翻译。
推理优化方面
- 原因:
- 缺乏后处理机制:在推理阶段,模型直接输出翻译结果,没有对包含文化内涵、习语、隐喻或生僻词的翻译进行专门的后处理。这些特殊部分可能需要进一步调整和优化,以符合目标语言的表达习惯,但模型缺乏这样的机制,导致翻译质量不高。
- 解码策略单一:如果采用贪心搜索等简单的解码策略,模型在翻译过程中可能只选择局部最优解,忽略了全局的语义连贯性和特殊表达的准确性。对于包含复杂文化内涵和生僻词的句子,这种单一的解码策略容易导致翻译错误或不合理的结果。
- 推理资源限制:在实际应用中,推理可能受到硬件资源(如内存、计算能力)的限制。为了满足资源要求,可能会对模型进行压缩或简化,这可能会影响模型在处理复杂句子和生僻词时的性能,导致翻译质量下降。
- 改进措施:
- 增加后处理步骤:在推理后,引入专门针对文化内涵、习语、隐喻和生僻词的后处理模块。例如,使用基于规则的方法,对识别出的特殊表达和生僻词翻译进行调整,使其更符合目标语言习惯。也可以利用语言模型对翻译结果进行打分和修正,提高翻译的流畅性和准确性。
- 优化解码策略:采用更复杂的解码策略,如束搜索,在每一步生成翻译时保留多个候选词,综合考虑后续步骤的可能性,选择全局最优的翻译路径。这样可以避免贪心搜索的局限性,提高翻译的准确性,特别是对于包含特殊表达和生僻词的句子。还可以结合强化学习优化解码策略,通过奖励机制引导模型生成更准确的翻译。
- 优化推理资源配置:在满足资源限制的前提下,对模型进行优化,如采用知识蒸馏等技术,在不损失太多性能的情况下压缩模型大小。同时,合理分配计算资源,对于包含特殊表达和生僻词的句子,可以适当增加计算资源,确保模型能够充分处理这些复杂部分,提升翻译质量。
二、文本摘要任务
在自然语言处理的文本摘要任务中,你使用基于 Transformer 的生成式模型。生成的摘要出现信息重点把握不准、关键信息遗漏,并且在生成较长文本的摘要时,结构不清晰、逻辑连贯性
模型架构方面
- 原因:
- 多头注意力机制局限:虽然 Transformer 中的多头注意力机制能捕捉不同层面语义信息,但在处理长文本时,可能无法精准聚焦到最重要信息上。对于文本摘要,需要突出关键信息,但多头注意力可能对各部分信息关注较为平均,导致重点把握不准,关键信息遗漏。
- 缺乏层次化结构:模型没有对文本的层次结构进行有效建模。长文本通常包含段落、句子、词等不同层次,而简单的 Transformer 架构难以区分不同层次信息的重要性。在生成摘要时,不能合理地从不同层次提取关键信息,使得摘要结构不清晰,逻辑连贯性差。
- 位置编码不足:Transformer 的位置编码主要用于标识词在序列中的位置,但在处理长文本生成摘要时,仅靠这种简单位置编码可能无法充分体现文本的逻辑顺序和结构信息。这使得模型在生成摘要时,难以按照合理逻辑组织信息,影响摘要的逻辑连贯性。
- 改进措施:
- 改进注意力机制:设计自适应的注意力机制,例如基于强化学习的注意力机制,让模型在训练过程中学习如何更有效地聚焦关键信息。可以引入奖励机制,对准确捕捉关键信息生成摘要的情况给予奖励,从而引导模型在生成时重点关注重要内容,减少关键信息遗漏。
- 构建层次化模型:在 Transformer 架构基础上,添加层次化编码模块。先对文本进行句子级别的编码,例如通过卷积神经网络(CNN)提取句子特征,再对这些句子特征进行段落级别的编码,如使用循环神经网络(RNN)处理。最后将层次化编码后的信息输入到 Transformer 解码器生成摘要,使模型能更好地利用不同层次信息,生成结构清晰、逻辑连贯的摘要。
- 优化位置编码:结合句法和语义信息改进位置编码。比如,利用依存句法分析获取词与词之间的结构关系,将这种结构信息融入位置编码中,让模型能更好地理解文本的逻辑顺序。或者根据文本的语义角色标注信息,调整位置编码,使模型在生成摘要时能按照更合理的逻辑组织信息。
训练数据方面
- 原因:
- 数据标注问题:摘要标注可能存在主观性和不一致性,不同标注者对同一文本生成的摘要可能有较大差异。这种标注的不准确性会误导模型学习,使得模型难以准确把握信息重点,导致生成的摘要关键信息遗漏或重点不突出。
- 数据多样性不足:训练数据集中文本类型、主题和长度分布不均衡,模型对某些类型文本学习过度,对其他类型文本学习不足。例如,数据集中新闻类文本较多,而小说类文本较少,当对小说类长文本生成摘要时,模型可能因缺乏相关学习而出现结构不清晰、逻辑连贯性差的问题。
- 缺乏结构信息:训练数据仅包含文本和对应的摘要,没有提供额外的文本结构信息,如段落关系、句子重要性等。模型在训练过程中无法学习到如何根据文本结构生成逻辑连贯、结构清晰的摘要,导致在处理长文本时摘要质量下降。
- 改进措施:
- 提高标注质量:制定详细明确的标注指南,对标注者进行培训,统一标注标准。采用多轮标注和交叉验证的方式,对标注结果进行审核和修正。可以利用自动评估指标(如 ROUGE 等)辅助标注过程,确保标注的准确性和一致性,让模型学习到准确的信息重点和关键信息提取方式。
- 扩充数据多样性:收集更多不同类型、主题和长度的文本及其摘要,丰富训练数据的多样性。例如,除了常见的新闻、论文文本,还应包括小说、诗歌、技术文档等多种类型文本。对数据进行合理的预处理和清洗,确保数据质量。同时,采用数据增强技术,如对文本进行同义词替换、句子重组等操作,增加数据的多样性,使模型能更好地适应各种文本的摘要生成。
- 添加上下文结构信息:在训练数据中加入文本的结构信息,如通过依存句法分析获取句子的结构信息,通过文本分区算法确定段落关系,将这些信息与文本和摘要一起作为训练数据。模型在训练过程中可以学习利用这些结构信息,生成结构清晰、逻辑连贯的摘要。例如,对于长文本,模型可以根据段落关系确定摘要中各部分内容的组织顺序。
生成策略方面
- 原因:
- 贪心搜索局限:如果采用贪心搜索策略生成摘要,每次只选择概率最高的词,容易陷入局部最优解。这会导致生成的摘要缺乏全局规划,重点把握不准,关键信息遗漏。因为贪心搜索没有考虑后续词的选择对整体摘要的影响,只关注当前步骤的最优选择,使得摘要的逻辑连贯性和结构合理性较差。
- 缺乏摘要规划:生成策略没有对摘要的结构和内容进行有效的规划。在生成过程中,没有预先确定摘要应包含哪些关键信息以及如何组织这些信息,只是逐词生成,导致生成的摘要结构不清晰,逻辑连贯性差。
- 未考虑语义连贯性:在生成过程中,没有充分考虑生成的词与前文的语义连贯性。生成的词可能在局部上概率较高,但与前文结合后语义不连贯,影响摘要的整体质量。例如,生成的相邻句子之间缺乏逻辑联系,使得摘要难以理解。
- 改进措施:
- 采用束搜索或其他优化策略:用束搜索代替贪心搜索,在每一步生成时保留多个概率较高的候选词(束宽决定候选词数量)。通过综合考虑后续生成步骤,从多个候选路径中选择最优摘要,避免陷入局部最优,提高摘要的准确性和逻辑性。此外,还可以考虑使用强化学习等方法来优化生成策略,根据生成摘要的质量反馈来调整生成过程,使生成的摘要更符合要求。
- 引入摘要规划机制:在生成摘要之前,先对输入文本进行分析,确定摘要的大致结构和关键信息。可以使用基于规则或机器学习的方法来进行规划,例如,通过对大量高质量摘要的统计分析,学习不同类型文本摘要的结构模式,然后应用到生成过程中。在生成时,按照预先规划的结构和关键信息框架,逐步填充内容,使生成的摘要结构清晰、逻辑连贯。
- 增强语义连贯性:在生成过程中,利用语言模型的概率分布和语义理解能力,结合注意力机制,确保生成的词与前文在语义上连贯。例如,在计算生成下一个词的概率时,不仅考虑当前词的概率,还考虑该词与前文的语义相关性,通过调整概率分布来生成更连贯的摘要。可以使用预训练的语言模型(如 GPT 系列)来评估生成文本的语义连贯性,并在生成过程中进行优化。
三、文本分类任务
请解释以下配置字典中各键值对的含义,并指出在基于 Transformer 架构的文本分类任务中,哪些参数对模型性能影响较大,为什么。
config = {"data_dir": "data/text_classification","train_file": "train.csv","test_file": "test.csv","model_name": "distilbert-base-uncased","max_seq_length": 128,"num_labels": 5,"batch_size": 32,"num_epochs": 5,"learning_rate": 2e-5,"warmup_steps": 500,"weight_decay": 0.01,"dropout_rate": 0.1,"hidden_dropout_prob": 0.1,"attention_probs_dropout_prob": 0.1,"output_dir": "outputs/text_classification","logging_steps": 10,"save_steps": 500,"seed": 42 }
键值对的含义:
data_dir
:指定数据目录,这里为"data/text_classification"
,表明文本分类任务的数据存储在该目录下。
train_file
:训练数据文件名称,"train.csv"
表示训练数据以 CSV 格式存储。
test_file
:测试数据文件名称,"test.csv"
用于评估模型在未见过的数据上的性能。
model_name
:选用的预训练模型名称,"distilbert-base-uncased"
代表 DistilBERT 无大写字母版本的基础模型,是一种轻量级的 Transformer 架构模型。
max_seq_length
:输入序列的最大长度,设置为128
,意味着输入文本会被截断或填充到 128 个词元(token),以适应模型输入要求。
num_labels
:分类任务的类别数量,5
表示该文本分类任务有 5 个不同的类别。
batch_size
:每次训练时使用的样本数量,32
表示每批训练数据包含 32 个样本。
num_epochs
:训练模型时数据遍历的轮数,5
表示会对训练数据进行 5 次完整的遍历。
learning_rate
:学习率,2e-5
(即 0.00002)控制优化器每次更新参数的步长大小。
warmup_steps
:在训练初期,学习率会逐渐增加到设定值,warmup_steps
指定了这个逐渐增加的步数,这里为500
步。
weight_decay
:权重衰减系数,0.01
用于防止过拟合,通过对模型参数进行惩罚,使参数值不会过大。
dropout_rate
:随机失活率,应用于整个模型,0.1
表示在训练过程中,每个神经元有 10% 的概率被随机置为 0,以防止过拟合。
hidden_dropout_prob
:隐藏层的随机失活概率,0.1
意味着隐藏层中的神经元有 10% 的概率在训练时被随机置为 0,进一步防止过拟合。
attention_probs_dropout_prob
:注意力概率的随机失活概率,0.1
表示在多头注意力机制中,注意力分数有 10% 的概率被随机置为 0,有助于提高模型的泛化能力。
output_dir
:模型输出目录,"outputs/text_classification"
用于存放训练好的模型、日志文件等输出结果。
logging_steps
:每10
步记录一次训练日志,方便监控训练过程。
save_steps
:每500
步保存一次模型,便于后续使用和评估。
seed
:随机数种子,设置为42
以确保实验的可重复性。
对文本分类模型影响较大的参数和原因:
model_name
:不同的预训练模型具有不同的架构和预训练方式,蕴含的语言知识和表示能力不同。例如distilbert-base-uncased
相对轻量级,参数量少,训练速度快,但可能在复杂任务上不如参数更多的模型。选择合适的预训练模型对模型性能有决定性影响,它为下游任务提供了基础的语言表示。
max_seq_length
:决定了模型能够处理的文本长度。如果设置得过短,可能会截断重要信息,导致模型无法捕捉完整语义;设置过长则会增加计算量,且可能引入过多噪声。合适的max_seq_length
能使模型在有效利用文本信息和计算资源之间达到平衡,对性能影响显著。
batch_size
:影响模型训练的稳定性和收敛速度。较大的batch_size
可以使梯度计算更准确,但可能导致内存不足,且在小数据集上容易过拟合;较小的batch_size
梯度更新更频繁,但可能使训练过程波动较大。合适的batch_size
有助于模型更快更好地收敛,从而提升性能。
num_epochs
:控制训练数据的遍历次数。过少的num_epochs
可能导致模型没有充分学习到数据中的模式,而过多则可能引发过拟合。找到合适的num_epochs
能让模型在学习数据特征和避免过拟合之间取得平衡,对性能有重要影响。
learning_rate
:直接影响优化器更新模型参数的步长。过大的learning_rate
可能使模型在训练过程中错过最优解,无法收敛;过小则会使训练过程极为缓慢,甚至可能陷入局部最优。合适的learning_rate
是模型能够有效收敛并达到良好性能的关键因素之一。
weight_decay
:用于正则化,防止过拟合。合适的weight_decay
值可以避免模型参数过大,使模型泛化能力更强。如果值过大,可能会过度约束参数,导致模型欠拟合;值过小则可能无法有效防止过拟合,从而影响模型在测试数据上的性能。
四、代码题:单词接龙
给定一个单词列表,其中每个单词仅包含小写英文字母。找到其中可以组成最长单词接龙序列的长度。单词接龙的规则是:下一个单词的首字母必须是上一个单词的尾字母。
例如,给定单词列表
["abc", "cde", "efg", "ghi"]
,最长单词接龙序列为["abc", "cde", "efg", "ghi"]
,长度为 4。请实现以下函数:
def longest_word_chain(words):# 在此处编写你的代码pass
算法与思路
- 初始化:
words_set = set(words)
将输入的单词列表words
转换为集合words_set
,这样后续查找单词是否存在的时间复杂度从 O(n) 降为 O(1)。dp = {}
创建一个空字典dp
,用于存储每个单词作为单词接龙序列结尾时的最长长度。max_length = 0
初始化最长单词接龙序列长度为 0。
- 按长度排序遍历单词:
for word in sorted(words, key=len)
按单词长度对单词列表进行排序,确保在处理较长单词时,较短单词的最长接龙长度已经计算出来。dp[word] = 1
初始化当前单词的最长接龙长度为 1,因为每个单词自身可以构成长度为 1 的接龙序列。
- 尝试构建接龙序列:
- 内层循环
for i in range(len(word))
遍历当前单词的每个位置。 prev_word = word[:i] + word[i + 1:]
通过去掉当前单词word
的第i
个字母,得到一个可能的前一个接龙单词prev_word
。if prev_word in words_set and prev_word in dp:
检查prev_word
是否在单词集合words_set
中且已经在dp
字典中有记录。如果满足条件,说明可以基于prev_word
构建更长的接龙序列。dp[word] = max(dp[word], dp[prev_word] + 1)
更新dp[word]
为当前值与dp[prev_word] + 1
中的较大值,即取更长的接龙长度。
- 内层循环
- 更新最大长度:
max_length = max(max_length, dp[word])
在每次处理完一个单词后,更新max_length
为当前的max_length
和dp[word]
中的较大值。
- 返回结果:
- 最后返回
max_length
,即最长单词接龙序列的长度
- 最后返回
def longest_word_chain(words):'''["abc", "cde", "efg", "ghi"]1:word:"abc"; dp['abc'] = 1; i = 0; prev_word: "bc";
'''words_set = set(words)dp = {}max_length = 0for word in sorted(words, key=len):dp[word] = 1for i in range(len(word)):prev_word = word[:i] + word[i + 1:]if prev_word in words_set and prev_word in dp:dp[word] = max(dp[word], dp[prev_word] + 1)max_length = max(max_length, dp[word])return max_length
相关文章:
【NLP 面经 6】
当上帝赐予你荒野时,就意味着,他要你成为高飞的鹰 —— 25.4.3 一、机器翻译任务,Transformer结构模型改进 在自然语言处理的机器翻译任务中,你采用基于 Transformer 架构的模型。在翻译一些具有丰富文化内涵、习语或隐喻的句子时…...
地质科研智能革命:当大语言模型“扎根”地质现场、大语言模型本地化部署与AI智能体协同创新实践
在地质学迈向“深时数字地球”(Deep-time Digital Earth)的进程中,传统研究方法正面临海量异构数据(地质图件、遥感影像、地震波谱等)的解析挑战。大语言模型(LLM)与AI智能体的本地化部署技术&a…...
蓝桥王国(Dijkstra优先队列)
问题描述 小明是蓝桥王国的王子,今天是他登基之日。 在即将成为国王之前,老国王给他出了道题,他想要考验小明是否有能力管理国家。 题目的内容如下: 蓝桥王国一共有 N 个建筑和 M 条单向道路,每条道路都连接着两个…...
美团mtgsig1.1 分析 mtgsig
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 逆向过程 mtgsig有问题的请求3次左右…...
基于STM32、HAL库的CH224Q快充协议芯片简介及驱动程序设计
一、简介: CH224Q是一款USB Type-C快充协议芯片,支持多种快充协议,包括: USB PD 3.0 QC4 QC3.0/2.0 AFC FCP SCP APPLE 2.4A BC1.2 该芯片通过I2C接口与主控MCU通信,可以灵活配置输出电压和获取充电状态信息…...
SvelteKit 最新中文文档教程(18)—— 浅层路由和 Packaging
前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …...
蓝桥杯-数字诗意
问题描述 在诗人的眼中,数字是生活的韵律,也是诗意的表达。 小蓝,当代顶级诗人与数学家,被赋予了"数学诗人"的美誉。他擅长将冰冷的数字与抽象的诗意相融合,并用优雅的文字将数学之美展现于纸上。 某日&a…...
深入探索 Node.js 文件监听机制:从前端工程化到原理剖析
在现代化前端开发中,文件监听(File Watching)是实现高效开发体验的核心技术之一。从 webpack 的热模块替换到 Vite 的即时刷新,从 CSS 预处理到静态资源打包,背后都依赖于稳健的文件监听机制。本文将深入探讨基于 Node…...
2025 年河北交安安全员考试:巧用行业报告丰富知识储备
河北交通行业发展迅速,各类行业报告蕴含大量有价值信息。考生可从河北省交通运输行业发展报告、安全专项检查报告等资料入手。在行业发展报告中,了解本省交通建设规模、重点项目规划等内容,这些信息与交安安全员工作紧密相关。比如࿰…...
Java9新特性
新的Jshell Java9引入了交互式编程工具jshell,可用于快速测试和学习Java。 特性 该工具可用于快速测试代码片段,无需创建java文件。支持自动补全和历史命令支持保存和加载会话 不可变集合工厂方法 Java9新增了List.of()、Set.of()、Map.of()和Map.o…...
CS内网渗透 - 如何通过冰蝎 Webshell 上线 Weblogic 服务器到 Cobalt Strike 并绕过杀软检测(360、火绒)?
目录 1. 冰蝎连接上 Weblogic 服务器如何上线到 Cobalt Strike 2. 服务器安装杀毒工具如何绕过杀软上线到 Cobalt Strike 2.1 杀软对 Webshell 命令执行的检测及绕过 2.2 杀软对 Cobalt Strike 上线木马的检测及绕过 2.3 杀软对这两方面的限制及综合绕过 3. 如何生成免杀…...
Linux开发过程中常用命令整理
docker ps -a查看所有(包括已经停止的) systemctl 功能:控制系统服务的启动关闭等 语法:systemctl start | stop | restart | disable | enable | status 服务名 start,启动stop,停止status,查看状态disable…...
触想工业一体机助力打造安全智能的数字化配电系统
一、项目开发背景 现代社会运行依赖稳定的电力供应,尤其在工业生产、城市基础设施、商业建筑等关键领域,即便是0.1秒的电力中断也可能导致严重后果。同时,随着全球用电负荷加剧及能源结构转型,对电力系统的运维效率、能源利用和数…...
从代码学习深度学习 - 序列到序列学习 GRU编解码器 PyTorch 版
文章目录 前言一、数据加载与预处理1.1 读取数据1.2 预处理数据1.3 词元化1.4 词频统计1.5 构建词汇表1.6 截断与填充1.7 转换为张量1.8 创建数据迭代器1.9 整合数据加载二、训练辅助工具2.1 时间记录器2.2 累加器2.3 准确率计算2.4 GPU 上的准确率评估2.5 GPU 设备选择2.6 梯度…...
华为AI-agent新作:使用自然语言生成工作流
论文标题 WorkTeam: Constructing Workflows from Natural Language with Multi-Agents 论文地址 https://arxiv.org/pdf/2503.22473 作者背景 华为,北京大学 动机 当下AI-agent产品百花齐放,尽管有ReAct、MCP等框架帮助大模型调用工具࿰…...
基于PyTorch 实现一个基于 Transformer 架构的字符级语言模型
这篇教程将带你一步步在 JupyterLab 中实现一个简单的语言模型。我们将从零开始,使用 PyTorch 实现一个基于 Transformer 架构的字符级语言模型。尽管在实际应用中,大多数人更倾向于使用 Hugging Face 的预训练模型,但本文的目的是让你了解语…...
苹果签名的工具有哪些
嗯,用户问的是关于苹果企业签名的工具有哪些。首先,我需要确认用户的需求。苹果企业签名通常指的是使用苹果的企业开发者账号(Apple Developer Enterprise Program)来对应用进行签名,这样应用可以不通过App Store直接分…...
解决.net接口防暴力调用问题
在 .NET 中,为解决接口防暴力调用问题,可通过限制请求频率实现。下面给出几种不同实现方式。 基于内存的简单速率限制 此方法适用于单服务器环境,它借助内存字典来记录每个客户端的请求次数和时间。 MemoryRateLimitMiddleware.cs using …...
java设计模式-桥接模式
桥接模式(Bridge) 基本介绍 1、桥接模式(Bridge)是指:将实现与抽象放在两个不同的类层次中,是两个层次可以独立改变。 2、是一种结构设计模 3、Bridge模式给予类的最小单元设计原则,通过使用封装,聚合及继承等行为让不同的类承担不…...
cdw2: TypeScript
一、javascript的问题 二、初识typescript https://mp.weixin.qq.com/s/wnL1l-ERjTDykWM76l4Ajw 三、类型 二进制:ob开头,八进制:0o开头,十六进制:0x开头 开发中不这样写 这样写 匿名函数的参数最好不要…...
Linux驱动开发:SPI驱动开发原理
前言 本文章是根据韦东山老师的教学视频整理的学习笔记https://video.100ask.net/page/1712503 SPI 通信协议采用同步全双工传输机制,拓扑架构支持一主多从连接模式,这种模式在实际应用场景中颇为高效。其有效传输距离大致为 10m ,传输速率…...
Java 通过 JNI 调用 C++ 动态库的完整流程
介绍使用 JNI 调用 C 编写的动态链接库的全过程。 示例环境 项目说明JDK8C 编译器Visual Studio 2019Java 开发工具IntelliJ IDEA 2021.3操作系统Windows 10 Java 项目结构概览 编写 Java 类 在 org.jni.nativejni 包下创建类 HelloWorldJni.java: package org…...
oracle 11g密码长度和复杂度查看与设置
一 查看当前的密码复杂度设置 SELECT * FROM dba_profiles WHERE resource_name PASSWORD_VERIFY_FUNCTION; LIMIT表示分配给该 PROFILE 的密码验证函数名称。如果为 NULL,表示未设置密码验证函数。 #查看是否有相关密码验证函数 select object_name from dba…...
1021 Deepest Root
1021 Deepest Root 分数 25 全屏浏览 切换布局 作者 CHEN, Yue 单位 浙江大学 A graph which is connected and acyclic can be considered a tree. The height of the tree depends on the selected root. Now you are supposed to find the root that results in a highest…...
1. 三带一
所谓“三带一”牌型,即四张手牌中,有三张牌一样,另外一张不与其他牌相同,换种说法,四张手牌经过重新排列后,可以组成 AAABAAAB 型。 输入格式 第一行输入一个整数 TT ,代表斗地主的轮数。 接…...
pytorch计算图Computation_graph是什么
文章目录 一、AI系统中的计算图(宏观)二、动态计算图(微观)2.1 张量计算图2.2 计算图的定义2.3 节点类型2.4 计算图的动态性2.5 计算图的正向传播是立即执行的2.6 计算图在反向传播后立即销毁2.7 计算图中的Function2.8 计算图与反…...
HTML5元素
HTML5的<section>元素和<article>元素 <section>元素定义文档中的一部分,着重于对页面内容进行分块或者分段,通常可以分为引言、内容和联系人信息等几个部分。 <section><h1>WWF</h1><p>WWF 是世界自然基金…...
单reactor实战
前言:reactor作为一种高性能的范式,值得我们学习 本次目标 实现一个基于的reactor 具备echo功能的服务器 核心组件 Reactor本身是靠一个事件驱动的框架,无疑引出一个类似于moduo的"EventLoop "以及boost.asio中的context而言,不断…...
【C#知识点详解】LinkedList<T>储存结构详解
今天来介绍一下LinkedList<T>的内部结构,说不多说直接开始。 内部数据 LinkedList是一个双向链表结构的容器,其内部为非连续的内存空间。LinkedList包含的主要成员示例如下: //起始LinkedListNode节点 internal LinkedListNode<T&g…...
智能穿梭车在快消行业的融合升级:效率革命与数据智能的双重赋能
快消品牌(FMCG)的核心挑战在于高频周转、海量SKU、短时效性,而智能穿梭车的技术进化(如AI调度、5G通信、柔性载具)与快消行业的业务需求(如全渠道订单履约、动态库存优化)深度结合,正…...
(二)链表结构
备注:根据coderwhy数据结构与算法课程进行笔记总结 1.数组缺点: 数组创建通常需要申请一段连续的内存空间,且大小固定,因此当前数组不能满足容量需求时,就需要扩容。在数组开头或中间位置插入数据成本很高࿰…...
oracle json笔记
文章目录 json_valuejson_value示例json_value on error如何使用 TODO json_queryjson_query示例 json_tablejson_table 示例 json_existsjson_exists示例json_exists报错 ORA-40458: 在谓词外部使用了 JSON_EXISTS json_objectjson_arrayjson_mergepatchjson_objectaggjson_ar…...
c编译和c++编译有什么区别?
文章目录 c编译和c编译有什么区别多态函数重载虚函数表 vtable 输入输出同步类型检查模板和特化链接 C 标准库 C 能编译 C 的代码吗? c编译和c编译有什么区别 多态 函数重载 C 支持多个同名函数(参数不同),这是编译期多态 编译…...
【Mysql】主从复制和读写分离
一、定义 1、什么是读写分离? 在主库master上负责处理事务性写入操作,在从库slave上负责处理查询操作,并通过主从复制将主库上的数据同步给从库。 2、为什么要读写分离? 从集中到分布,最基本的一个需求不是数据存储的…...
泛目录排名——深入理解与优化 SEO:提升网站可见性的关键策略
https://www.zhanqun.xin/ 在数字化时代,互联网上的信息呈爆炸式增长。对于企业和网站运营者而言,如何让自己的网站在海量的网络内容中脱颖而出,吸引目标受众的关注,成为了一项至关重要的挑战。搜索引擎优化(SEO&#…...
汇丰eee2
聚合和继承有什么样的优点和区别,什么时候决定用,现实开发中,选择哪一种去使用? 聚合的优点: 灵活性: 聚合是一种弱耦合关系,被聚合对象可以独立存在,可以灵活地替换或修改被聚合对…...
C#网络编程(Socket编程)
文章目录 0、写在前面的话1、Socket 介绍1.1 Socket是什么1.2 Socket在网络中的位置 2、C# 中的Socket参数2.1 超时控制参数2.2 缓冲区参数2.3 UDP专用参数 3、C# 中的Socket API3.1 Socket(构造函数)3.1.1 SocketType3.1.2 ProtocolType3.1.3 AddressFa…...
使用Python的Schedule库实现定时任务,并传递参数给任务函数
哈喽,大家好,我是木头左! 本文将详细介绍如何使用schedule库来创建定时任务,并展示如何向任务函数传递参数。 安装Schedule库 需要安装schedule库。你可以使用以下命令通过pip进行安装: pip install schedule基本用法 schedule库的基本用法非常简单。你可以通过调用sch…...
Unity Input 2023 Release-Notes
🌈Input 2023 Release-Notes 版本更新内容2023.2.17Input: Crash on InputDeviceIOCTL when closing Unity editor(UUM-10774)2023.2.16Input: Crash on InputDeviceIOCTL when closing Unity editor(UUM-10774)2023.2.15Input: Crash on InputDeviceIOCTL when clo…...
IP查询能够帮助企业进行数字化转型
企业如今正面临着用户行为碎片化、市场竞争白热化的挑战。那么企业要如何从海量网络数据中精准捕捉用户需求就十分重要了。而IP查询技术也正帮助越来越多的企业在精准营销、风险防控、合规运营等领域开辟新的增长空间。 https://www.ipdatacloud.com/?utm-sourceLMN&utm-…...
Nginx漏洞复现
vulhub起靶场 Nginx 文件名逻辑漏洞(CVE-2013-4547) 上传1.gif,内容为 <?php phpinfo();?> http://your-ip:8080/uploadfiles/1.gif[0x20][0x00].php访问文件位置,这里0x00要改包 先访问/uploadfiles/1.gif a.php&…...
数据结构|排序算法(二)插入排序 希尔排序
一、插入排序 1.算法思想 插入排序(Insertion Sort)是一种简单的排序算法,其基本思想是:将待排序的元素插入到已经有序的序列中,从而逐步构建有序序列。 具体过程如下: 把待排序的数组分为已排序和未排…...
OpenBMC:BmcWeb 处理http请求5 检查权限
OpenBMC:BmcWeb 处理http请求4 处理路由对象-CSDN博客 在通过url获取了路由对象后,如果该请求是有session的,那么下一步需要检查权限 1.validatePrivilege调用时传入了一个lambda(1)做为回调 validatePrivilege(req, asyncResp, rule,[req, asyncResp, &rule, params =…...
CentOS 系统磁盘扩容并挂载到根目录(/)的详细步骤
在使用 CentOS 系统时,经常会遇到需要扩展磁盘空间的情况。例如,当虚拟机的磁盘空间不足时,可以通过增加磁盘容量并将其挂载到根目录(/)来解决。以下是一个完整的操作流程,详细介绍了如何将新增的 10G 磁盘…...
Axure RP 9 for Mac 交互原型设计 安装教程@[TOC](文章目录)
Axure RP 9 for Mac 交互原型设计 安装教程TOC 一、介绍 Axure RP 9是一款功能强大的原型设计和协作工具。它不仅能够帮助用户快速创建出高质量的原型设计,还能促进团队成员之间的有效协作,从而极大地提高数字产品开发的效率和质量。拥有直观易用的界面…...
每日一题(小白)暴力娱乐篇19
样例: 6 1 1 4 5 1 4 输出: 56 66 52 44 54 64 分析题意可以得知,就是接收一串数字,将数字按照下标每次向右移动一位(末尾循环到第一位),每次移动玩计算一下下标和数字的乘积且累加。 ①接收…...
LeetCode 第53题:最大子数组和
题目描述: 给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。 示例1: 输入:nums [-2,1,-3,4,-1,2,1,-5,4] 输出ÿ…...
顺序表:从数组到高效数据管理的进化之路
一、线性表:数据结构的 “基础骨架” 在数据结构的世界里,线性表是最基础的结构之一。它是由n个具有相同特性的数据元素组成的有限序列,就像一列整齐排列的士兵,每个元素都有唯一的前驱(除了第一个)和后继…...
TS知识补充第一篇 ✅
目录 1️⃣ any、unknow和never 2️⃣ 函数重载 3️⃣ typeof和keyof(配合构建字典类型的Demo,巨好用‼️) 4️⃣ TS的条件类型 5️⃣ TS的声明合并 一、any、unknow和never any any类型表示一个值可以是任何类型。通常在不确定变量的类型…...
每日一题(小白)模拟娱乐篇18
今天和大家一起玩个小游戏,给小朋友分糖果🍬 由题知就是小朋友每次给左手边的小朋友分一半糖果,一轮下来如果是奇数糖果老师就给他补一个直到所有小朋友拥有相同数量的糖果,问问老师发放了多少糖果。用程序进行模拟的大概思路就是…...