当前位置: 首页 > news >正文

大白话讲清楚embedding原理

Embedding(嵌入)是一种将高维数据(如单词、句子、图像等)映射到低维连续向量的技术,其核心目的是通过向量表示捕捉数据之间的语义或特征关系。以下从原理、方法和应用三个方面详细解释Embedding的工作原理。

一、Embedding的基本原理

  1. 高维数据的表示
    在计算机中,所有数据本质上都是以数字形式存储的,例如文本数据通常被编码为one-hot向量(每个词对应一个维度,只有一个维度为1,其余为0)。然而,one-hot编码存在两个问题:

    • 维度过高:每个词都需要一个独立的维度,导致向量非常稀疏且难以处理。
    • 语义信息缺失:one-hot向量无法反映词之间的语义关系,例如“king”和“queen”在one-hot编码下是完全独立的。
      【python函数】torch.nn.Embedding函数用法 …
  2. 向量空间模型
    Embedding通过将高维稀疏向量映射到低维稠密向量空间,使得相似的对象在向量空间中彼此靠近。例如,“king”和“queen”在低维空间中可能非常接近,因为它们在语义上相关。
    深度学习中Embedding的理解_深度学习 embedding什么意思-CSDN博客

  3. 数学基础
    Embedding通常通过神经网络中的“嵌入层”实现,该层将输入数据(如单词ID)映射为低维连续向量。例如,通过训练一个全连接神经网络,可以将单词的one-hot编码转换为固定长度的稠密向量。

二、Embedding的生成方法

  1. 无监督学习
    嵌入层通常通过无监督学习训练,无需人工标注。常见的无监督方法包括:

    • Word2Vec:通过预测上下文中的词或目标词来学习词向量。例如,CBOW(连续词袋模型)通过上下文预测目标词,而Skip-Gram则通过目标词预测上下文。
    • GloVe:基于全局统计信息优化目标函数,捕捉全局语义关系。
    • FastText:扩展了Word2Vec,考虑子词信息以提高对未登录词的支持。
  2. 监督学习
    在某些任务中,嵌入层可以通过监督学习进一步优化。例如,在问答系统中,通过微调预训练的嵌入层来适应特定任务。

  3. 深度学习框架中的应用
    在Transformer等大模型中,嵌入层是模型的基础组件之一。它不仅用于词嵌入,还可以扩展到句子嵌入、图像嵌入等。例如,BERT通过双向Transformer结构预训练深度双向表示。

三、Embedding的应用

  1. 自然语言处理(NLP)

    • 文本分类:通过将文本转换为稠密向量表示,可以用于情感分析、主题分类等任务。
    • 问答系统:利用嵌入层捕捉问题和答案之间的语义关系,从而提高回答准确性。
    • 推荐系统:通过用户行为和物品特征的嵌入表示,实现个性化推荐。
  2. 计算机视觉(CV)
    在图像识别任务中,嵌入层可以将图像特征映射到低维空间,便于后续分类或聚类。

  3. 图数据分析
    图嵌入技术(如Node2Vec、DeepWalk)通过学习节点的邻接关系生成节点向量,用于社交网络分析、推荐系统等。

四、总结

Embedding技术通过将高维稀疏数据映射到低维稠密向量空间,解决了传统one-hot编码的高维度和语义缺失问题。它广泛应用于NLP、CV和图数据分析等领域,并且是现代大语言模型(如BERT、GPT)的核心技术之一。通过无监督学习和深度学习框架的支持,Embedding能够捕捉数据的语义关系和特征信息,从而提升模型性能。

Embedding技术在实际应用中面临的具体挑战和限制是什么?

Embedding技术在实际应用中面临的具体挑战和限制可以从以下几个方面进行分析:

1. 硬件资源限制

Embedding技术通常需要处理高维数据并将其映射到低维空间,这需要强大的计算能力。然而,在嵌入式系统或工业环境中,硬件资源(如内存和处理能力)往往有限。例如,嵌入式系统通常受限于有限的硬件资源,这使得设计者必须在性能和资源使用之间进行权衡。此外,将大型AI模型部署到嵌入式系统时,如何在有限的硬件上运行这些模型也是一个主要挑战。

2. 实时性要求

许多嵌入式系统需要在特定的时间窗口内完成任务,这就要求实时操作系统(RTOS)的选择和管理必须非常谨慎。如果Embedding技术无法满足实时性需求,可能会导致系统无法按预期工作。

3. 固件更新与兼容性

在嵌入式设备中,固件更新是一个复杂且耗时的过程。由于嵌入式系统通常需要长期运行,因此在部署前必须对固件进行全面的兼容性测试。这一过程可能需要数周甚至数月的时间。此外,固件更新的部署也需要严格的安全部署流程,以减少热修复的需求。

4. 安全性问题

虽然引擎作为安全解决方案具有许多优点,但其计算带宽有限,且无法处理高吞吐量的应用。此外,由于嵌入式设备直接访问硬件并独立于操作系统,这使得它们成为潜在的安全威胁。

5. 稀疏特征处理

尽管Embedding技术在处理稀疏特征方面表现出色,但如何高效地处理稀疏特征仍然是一个挑战。例如,传统的one-hot编码方法虽然简单,但效率较低且容易丢失信息。而更先进的Embedding方法(如Word2Vec)虽然能够捕捉语义关系,但在大规模数据集上的训练仍然需要大量的计算资源。

6. 持续变化的环境

在实际应用中,环境或系统行为的持续变化可能会影响Embedding模型的性能。例如,在推荐系统中,用户行为和偏好可能会随时间发生变化,这要求Embedding模型能够动态适应这些变化。

7. 验证与合成挑战

在嵌入式系统中,自动化验证和合成是确保系统可靠性的关键步骤。然而,当前的验证方法通常生成带有约束的测试向量,并使用基于断言的验证方法,这增加了开发和部署的复杂性。

总结

Embedding技术在实际应用中面临的主要挑战包括硬件资源限制、实时性要求、固件更新与兼容性问题、安全性问题、稀疏特征处理、持续变化的环境以及验证与合成的复杂性。

Embedding技术除了NLP、CV和图数据分析之外,还有哪些潜在的应用领域?

Embedding技术除了在自然语言处理(NLP)、计算机视觉(CV)和图数据分析等领域的广泛应用外,还有许多潜在的应用领域。以下是基于我搜索到的资料总结出的几个主要方向:

  1. 推荐系统
    Embedding技术在推荐系统中被广泛应用,通过将用户和物品映射为稠密的向量表示,捕捉潜在的关系,从而提升推荐的准确性。例如,通过学习用户行为和物品特征之间的语义关系,可以实现个性化推荐。

  2. 多模态数据融合
    Embedding技术可以将不同模态的数据(如文本、图像、音频等)映射到统一的低维空间中,从而实现跨模态信息的整合和分析。这种能力使得Embedding技术在多媒体处理、跨模态检索等领域具有重要应用价值。

  3. 大规模信息网络分析
    在大规模信息网络(如社交网络、语言网络等)中,Embedding技术被用于节点分类、链接预测和可视化任务。例如,LINE算法通过优化目标函数,能够高效地嵌入大规模网络中的节点到低维空间,从而支持网络分析。

  4. 生物信息学与计算生物学
    Embedding技术在生物信息学中也有重要应用,例如用于基因表达数据的降维分析、蛋白质功能预测、疾病基因发现等。这些应用通过将高维生物数据映射到低维空间,揭示了数据中的潜在结构和关系。

  5. 时间序列预测
    Embedding技术在时间序列预测中也有潜在应用。通过将时间序列数据转换为稠密向量表示,可以更好地捕捉时间序列之间的动态关系,从而提高预测模型的性能。

  6. 强化学习与行为建模
    在强化学习中,Embedding技术可以用于学习环境中的状态表示,帮助智能体更好地理解环境并做出决策。此外,在行为建模中,通过嵌入用户行为数据,可以更准确地预测用户行为模式。

  7. 知识图谱构建与推理
    Embedding技术在知识图谱构建中也发挥了重要作用。通过将实体和关系映射为稠密向量,可以实现知识图谱的推理和扩展,支持语义搜索和问答系统。

  8. 多标签分类与链接预测
    在多标签分类任务中,Embedding技术能够捕捉标签之间的语义关系,从而提高分类性能。此外,在链接预测任务中,通过嵌入节点特征,可以有效预测网络中的潜在链接。

  9. 跨领域应用
    Embedding技术还可以应用于其他领域,如金融风险评估、社交网络分析、物联网数据分析等。通过将复杂数据映射为低维向量,可以简化计算过程并提高模型效率。

如何评估和比较不同Embedding方法的效果和性能?

评估和比较不同Embedding方法的效果和性能是一个复杂的过程,需要结合多种指标和实验设计。以下从多个角度详细说明如何进行评估和比较:

1. 评估方法的分类

根据,评估Embedding的质量通常分为内部评估(Intrinsic Evaluation)和外部评估(Extrinsic Evaluation):

  • 内部评估:主要通过分析Embedding向量本身的语义质量,例如其在语义相似性或逻辑推理中的表现。例如,测试Embedding是否能准确捕捉语义关系。
  • 外部评估:通过将Embedding应用于下游任务(如文本分类、情感分析等),间接验证其实际效果。例如,将Embedding输入到逻辑回归、SVM或深度学习模型中,观察模型性能。

2. 不同场景下的评估指标

根据,在检索场景中,常用的评估指标包括:

  • 召回率(Recall) :检索到的相关项占所有相关项的比例。
  • 精确度(Precision) :检索到的相关项占检索出的总项的比例。
  • 平均倒排文档数(MRR) :平均每个查询的排名位置。
  • 归一化倒排文档数(nDCG) :衡量排序质量的指标。

这些指标可以量化Embedding在特定任务中的表现,帮助我们理解其在实际应用中的优劣。

3. 具体案例分析

(1)节点嵌入方法的比较

和提供了关于节点嵌入方法的实验结果:

  • 在CiteSeer数据集上,DeepWalk的初始得分较低(0.33),但通过调整参数后得分提升至0.56,而随机森林的得分仅为0.08。这表明DeepWalk在优化后具有更高的性能。
  • 在PPI数据集上,InstantEmbedding表现最佳,平均准确率为33.36%,而DeepWalk和node2vec的表现次之。
  • 此外,指出,调整维度大小对性能有显著影响,例如DeepWalk在维度为200时训练时间较短且效果较好。
(2)文本嵌入方法的比较

展示了多种文本嵌入方法(如SBERT、Ada、Babbage等)在五个问题上的表现:

  • 总体来看,Davinci在所有问题上得分最高,但在某些特定问题上(如Q3和Q4),Ada的表现优于其他方法。
  • Curie在大多数问题上的表现最差,仅在少数问题上表现较好。
(3)图像嵌入方法的比较

探讨了在ImageNet-1k数据集上不同嵌入方法的表现:

  • 研究发现,通过迁移学习预训练模型可以提高性能,并且在不同数据集上的迁移性测试表明,这些方法具有较好的泛化能力。

4. 其他关键因素

(1)维度选择

指出,嵌入向量的维度对性能有重要影响。例如,在DeepWalk实验中,当维度为200时,训练时间较短且性能稳定。这表明较小的维度可能更适合实际应用。

(2)多参数组合

提到,许多嵌入方法涉及多个超参数组合,盲目调整可能会导致资源浪费。因此,在评估时应尽量减少不必要的参数搜索。

(3)任务适应性

强调,在选择嵌入方法时,应根据具体任务特点进行调整。例如,在情感分析任务中,使用特定的文本嵌入方法可能比通用方法更有效。

5. 综合建议

为了全面评估和比较不同Embedding方法的效果和性能,建议采取以下步骤:

  1. 明确任务需求:根据任务类型(如文本分类、图像检索等)选择合适的评估指标。
  2. 多维度测试:结合内部评估和外部评估,从语义质量、实际应用效果等多个角度进行测试。
  3. 参数优化:合理设置嵌入方法的超参数,并通过交叉验证找到最优配置。
  4. 对比分析:将不同方法在相同条件下的表现进行对比,例如中提到的迁移学习实验中提到的节点嵌入方法对比。
在深度学习框架中,Embedding层的设计和优化策略有哪些?

在深度学习框架中,Embedding层的设计和优化策略涉及多个方面,包括其基本功能、实现方式以及针对不同场景的优化方法。以下将结合我搜索到的资料详细说明:

1. Embedding层的基本功能与作用

Embedding层的主要作用是将高维稀疏特征(如ID)转换为低维稠密向量,从而便于神经网络处理和理解。例如,在自然语言处理任务中,Embedding层可以将单词或符号映射为连续向量,这些向量能够更好地反映语义关系。此外,Embedding层在推荐系统中也扮演重要角色,通过捕获用户和物品的低维特征表示,用于计算相似性或预测评分。

2. Embedding层的实现方式

Embedding层通常通过以下方式实现:

  • one-hot编码:将输入特征进行one-hot编码后,与权重矩阵相乘生成新的输入层。
  • GPU缓存:针对计算量大的问题,可以利用GPU的内存带宽优势,通过缓存热门嵌入来提升性能。例如,Fleche提出了一种基于GPU缓存的嵌入方法,显著提高了预测延迟。
  • 混合并行策略:在一些复杂模型中,如DreamShard,采用了特征交互、模型并行和数据并行的混合策略,以优化嵌入层的计算效率。

3. Embedding层的优化策略

3.1 基于硬件的优化
  • GPU缓存:为了解决嵌入层计算量大导致的延迟问题,Fleche提出了一种在GPU上缓存热门嵌入的方法。这种方法通过利用GPU的内存带宽优势,显著提高了嵌入层的性能。
  • 内存优化:针对嵌入层内存占用大的问题,可以采用压缩技术或优化数据存储格式,减少显存占用。
3.2 算法层面的优化
  • Adam优化器:Adam是一种基于自适应估计的一阶梯度优化算法,适用于大规模数据和参数的优化问题。它能够自动调整学习率,并且在实践中表现优于其他优化方法。
  • 开关式优化策略:在推荐系统中,可以使用开关式优化策略来动态调整模型参数,从而提高预测精度。
3.3 模型结构设计
  • 多任务学习:通过共享参数的方式实现跨任务学习,提高模型泛化能力。例如,在多任务学习模型中,不同任务层共享权重并相互影响。
  • 混合并行策略:DreamShard模型采用特征交互、模型并行和数据并行的混合策略,以优化嵌入层的计算效率。

4. 应用场景中的具体实践

4.1 推荐系统

在推荐系统中,Embedding层被广泛用于捕捉用户和物品的低维特征表示。例如:

  • 纯ID基元项嵌入:直接使用用户ID或物品ID作为输入,生成对应的稠密向量。
  • 混合嵌入:结合用户行为、物品属性等多模态信息,生成更丰富的特征表示。
4.2 自然语言处理

在自然语言处理任务中,Embedding层常用于词汇表示和文本分类。例如:

  • 词嵌入:将单词映射为稠密向量,用于捕捉语义关系。
  • 序列建模:结合LSTM等序列模型,进一步提升文本分类和生成任务的效果。

5. 总结

Embedding层的设计和优化策略在深度学习框架中具有重要意义。从硬件层面的GPU缓存到算法层面的优化(如Adam优化器),再到模型结构设计(如多任务学习和混合并行策略),这些策略共同提升了嵌入层的性能和效率。

Word2Vec、GloVe和FastText等无监督学习方法在处理大规模数据集时的效率和准确性如何?

Word2Vec、GloVe和FastText是三种经典的无监督学习方法,用于从大规模数据集中生成词向量。它们在效率和准确性方面各有优劣,具体表现如下:

1. 效率

  • Word2Vec

    • Word2Vec的训练速度通常较快,尤其是在处理大规模数据集时。其核心模型包括CBOW(连续词袋模型)和Skip-gram两种方式。CBOW通过上下文预测目标词,而Skip-gram则相反,通过目标词预测上下文。
    • Word2Vec还采用了负采样(Negative Sampling)和层次softmax(Hierarchical Softmax)等技术来进一步提高训练效率。负采样通过随机删除高频词,减少计算复杂度;层次softmax则通过分层策略降低CPU使用率。
    • 然而,当数据集非常大时,Word2Vec的计算效率可能会受到限制,因为其需要处理大量的上下文关系。
  • GloVe

    • GloVe利用全局词汇共现统计信息,通过矩阵分解生成词向量。这种方法在计算上较为高效,尤其是在大规模数据集上,因为其可以并行化处理。
    • 研究表明,GloVe在处理大规模数据集时具有较高的计算效率,尤其是在内存使用方面表现优异。
  • FastText

    • FastText在训练速度上表现优异,特别是在处理大量类别时。其采用了N-gram方法来捕捉词序信息,并通过分层softmax策略加速训练。
    • FastText还能够处理未出现在训练数据中的单词,通过将其分解为n-gram形式生成词向量。

2. 准确性

  • Word2Vec

    • Word2Vec生成的词向量在语义和句法相似性任务上表现良好。然而,其准确性可能受到训练数据集规模和质量的影响。例如,在某些任务中,Word2Vec的表现不如GloVe。
    • Word2Vec的局限性在于其对词序信息的捕捉能力较弱,这在某些任务中可能导致性能下降。
  • GloVe

    • GloVe生成的词向量在语义相似性和命名实体识别等任务中表现突出。例如,在奇异性任务中,GloVe的正确率高达65.3%。
    • 研究表明,GloVe在多个数据集上的表现优于Word2Vec和FastText。
  • FastText

    • FastText在文本分类任务中表现出色,尤其是在准确率和召回率方面。例如,在实验中,FastText的精确率和召回率分别达到了0.7883941970958493和0.7883941970958493。
    • FastText还能够有效处理未见过的单词,这使其在实际应用中更具鲁棒性。

3. 综合比较

  • 在效率方面,GloVe通常优于Word2Vec和FastText,特别是在大规模数据集上。这是因为GloVe的并行化能力和内存优化使其更适合处理海量数据。
  • 在准确性方面,GloVe在多个任务中表现最佳,尤其是在语义相似性和命名实体识别等任务中。然而,FastText在文本分类任务中表现尤为突出,尤其是在准确率和召回率方面。

总结

Word2Vec、GloVe和FastText各有优劣。Word2Vec适合快速生成高质量的词向量,但可能在大规模数据集上效率较低;GloVe在计算效率和准确性方面表现均衡,尤其适合处理大规模数据集;FastText则在文本分类任务中表现优异,同时具备处理未见过单词的能力。

相关文章:

大白话讲清楚embedding原理

Embedding(嵌入)是一种将高维数据(如单词、句子、图像等)映射到低维连续向量的技术,其核心目的是通过向量表示捕捉数据之间的语义或特征关系。以下从原理、方法和应用三个方面详细解释Embedding的工作原理。 一、Embe…...

电脑优化大师-解决电脑卡顿问题

我们常常会遇到电脑运行缓慢、网速卡顿的情况,但又不知道是哪个程序在占用过多资源。这时候,一款能够实时监控网络和系统状态的工具就显得尤为重要了。今天,就来给大家介绍一款小巧实用的监控工具「TrafficMonitor」。 「TrafficMonitor 」是…...

el-table组件样式如何二次修改?

文章目录 前言一、去除全选框按钮样式二、表头颜色的修改 前言 ElementUI中的组件el-table表格组件提供了丰富的样式,有一个全选框的el-table组件,提供了全选框和多选。 一、去除全选框按钮样式 原本默认是有全选框的。假如有一些开发者,因…...

java练习(1)

两数之和(题目来自力扣) 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相…...

UbuntuWindows双系统安装

做系统盘: Ubuntu20.04双系统安装详解(内容详细,一文通关!)_ubuntu 20.04-CSDN博客 ubuntu系统调整大小: 调整指南: 虚拟机中的Ubuntu扩容及重新分区方法_ubuntu重新分配磁盘空间-CSDN博客 …...

DeepSeek大模型技术深度解析:揭开Transformer架构的神秘面纱

摘要 DeepSeek大模型由北京深度求索人工智能基础技术研究有限公司开发,基于Transformer架构,具备卓越的自然语言理解和生成能力。该模型能够高效处理智能对话、文本生成和语义理解等复杂任务,标志着人工智能在自然语言处理领域的重大进展。 关…...

MusicFree-开源的第三方音乐在线播放和下载工具, 支持歌单导入[对标落雪音乐]

MusicFree 链接:https://pan.xunlei.com/s/VOI0RrVLTTWE9kkpt0U7ofGBA1?pwd4ei6#...

Versal - 基础4(VD100+Versal IBERT)

1. 简介 在之前的一篇博文中,我分享了在 Zynq Ultrascale MPSoC 中使用 IBERT 的方法。 《Vivado - 集成眼图分析仪 Serial I/O IBERT 误码率_vivado ibert-CSDN博客》 本文进一步探讨 Versal 中使用 IBERT 的方法。 2. 硬件平台 芯片:XCVE2302-SF…...

vue2和vue3路由封装及区别

Vue 2 和 Vue 3 在路由封装方面有一些区别,主要体现在 Vue Router 版本的升级(Vue Router 3 -> Vue Router 4)上。下面我们来对比一下 Vue 2 和 Vue 3 在路由封装上的主要区别,并提供相应的代码示例。 1. Vue 2 路由封装&#…...

Windows 系统下使用 Ollama 离线部署 DeepSeek - R1 模型指南

引言 随着人工智能技术的飞速发展,各类大语言模型层出不穷。DeepSeek - R1 凭借其出色的语言理解和生成能力,受到了广泛关注。而 Ollama 作为一款便捷的模型管理和部署工具,能够帮助我们轻松地在本地环境中部署和使用模型。本文将详细介绍如…...

性能测试网络风险诊断有哪些?

目录 一、网络定位分析手段 二、sar命令 三、netstat命令 以下是几种常见的网络风险诊断方法 网络连通性检查 带宽与延迟测量 丢包率分析 网络拓扑结构审查 安全设备影响评估 协议层面上的优化 负载均衡器效能检验 云化服务架构下的特殊考量 系统应用之间的交换&am…...

八股文 (一)

文章目录 项目地址一、前端1.1 大文件上传,预览1.2 首页性能优化1.2 流量染色,灰度发布1.3 Websock心跳机制,大数据实时数据优化1.4 Gpu 加速 fps优化1.5 echarts包大小优化和组件封装1.6 前端监控系统1.7 超大虚拟列表卡顿1. 实现2. 相关问题(1) 什么是虚拟化列表,为什么要…...

TVM调度原语完全指南:从入门到微架构级优化

调度原语 在TVM的抽象体系中,调度(Schedule)是对计算过程的时空重塑。每一个原语都是改变计算次序、数据流向或并行策略的手术刀。其核心作用可归纳为: 优化目标 max ⁡ ( 计算密度 内存延迟 指令开销 ) \text{优化目标} \max…...

c语言进阶(简单的函数 数组 指针 预处理 文件 结构体)

c语言补充 格式 void函数头 {} 中的是函数体 sum函数名 &#xff08;&#xff09; 参数表 #include <stdio.h>void sum(int begin, int end) {int i;int sum 0;for (i begin ; i < end ; i) {sum i;}printf("%d到%d的和是%d\n", begin, end, sum); …...

终极版已激活!绿话纯净,打开即用!!!

今天我想和大家聊聊一个非常实用的工具——视频转换大师最终版。 视频转换大师终极版&#xff0c;堪称一款全能型的视频制作神器&#xff0c;集视频转换与编辑功能于一体。它搭载的视频增强器技术&#xff0c;能够最大限度地保留原始视频质量&#xff0c;甚至还能实现质量的进…...

Vue.js 什么是 Composition API?

Vue.js 什么是 Composition API&#xff1f; 今天我们来聊聊 Vue 3 引入的一个重要特性&#xff1a;组合式 API&#xff08;Composition API&#xff09;。如果你曾在开发复杂的 Vue 组件时感到代码难以维护&#xff0c;那么组合式 API 可能正是你需要的工具。 什么是组合式 …...

MySQL高可用

一、mysql路由 1.利用路由器的连接路由特性&#xff0c;用户可以编写应用程序来连接到路由器&#xff0c;并令路由器使用响应的路由策略来处理连接来使其连接到正确的mysql数据库服务器 2.mysql route的部署方式 需要在所有数据库主机之外再打开一台主机mysql-router 配置mysql…...

30.Word:设计并制作新年贺卡以及标签【30】

目录 NO1.2 NO3邮件合并-信函 NO4邮件合并-标签​ NO1.2 另存为/F12&#xff1a;考生文件夹&#xff1a;Word.docx布局→页面设置对话框→页边距&#xff1a;上下左右→纸张&#xff1a;宽度/高度&#xff08;先调页边距&#x1f197;&#xff09;设计→页面颜色→填充效果→…...

Flink2支持提交StreamGraph到Flink集群

最近研究Flink源码的时候&#xff0c;发现Flink已经支持提交StreamGraph到集群了&#xff0c;替换掉了原来的提交JobGraph。 新增ExecutionPlan接口&#xff0c;将JobGraph和StreamGraph作为实现。 Flink集群Dispatcher也进行了修改&#xff0c;从JobGraph改成了接口Executio…...

大模型本地化部署(Ollama + Open-WebUI)

文章目录 环境准备下载Ollama模型下载下载Open-WebUI 本地化部署的Web图形化界面本地模型联网查询安装 Docker安装 SearXNG本地模型联网查询 环境准备 下载Ollama 下载地址&#xff1a;Ollama网址 安装完成后&#xff0c;命令行里执行命令 ollama -v查看是否安装成功。安装成…...

C++哈希(链地址法)(二)详解

文章目录 1.开放地址法1.1key不能取模的问题1.1.1将字符串转为整型1.1.2将日期类转为整型 2.哈希函数2.1乘法散列法&#xff08;了解&#xff09;2.2全域散列法&#xff08;了解&#xff09; 3.处理哈希冲突3.1线性探测&#xff08;挨着找&#xff09;3.2二次探测&#xff08;跳…...

IME关于输入法横屏全屏显示问题-Android14

IME关于输入法横屏全屏显示问题-Android14 1、输入法全屏模式updateFullscreenMode1.1 全屏模式判断1.2 全屏模式布局设置 2、应用侧关闭输入法全屏模式2.1 调用输入法的应用设置flag2.2 继承InputMethodService.java的输入法应用覆盖onEvaluateFullscreenMode方法 InputMethod…...

网络工程师 (11)软件生命周期与开发模型

一、软件生命周期 前言 软件生命周期&#xff0c;也称为软件开发周期或软件开发生命周期&#xff0c;是指从软件项目的启动到软件不再被使用为止的整个期间。这个过程可以细分为多个阶段&#xff0c;每个阶段都有其特定的目标、任务和产出物。 1. 问题定义与需求分析 问题定义…...

【人工智能】基于Python的机器翻译系统,从RNN到Transformer的演进与实现

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器翻译(Machine Translation, MT)作为自然语言处理领域的重要应用之一,近年来受到了广泛的关注。在本篇文章中,我们将详细探讨如何使…...

网络工程师 (12)软件开发与测试

一、软件设计 &#xff08;一&#xff09;定义与目的 软件设计是从软件需求出发&#xff0c;设计软件的整体结构、功能模块、实现算法及编写代码的过程&#xff0c;旨在确定系统如何完成预定任务。其目标是确保目标系统能够抽象、普遍地完成预定任务&#xff0c;并为后续的软件…...

3.Spring-事务

一、隔离级别&#xff1a; 脏读&#xff1a; 一个事务访问到另外一个事务未提交的数据。 不可重复读&#xff1a; 事务内多次查询相同条件返回的结果不同。 幻读&#xff1a; 一个事务在前后两次查询同一个范围的时候&#xff0c;后一次查询看到了前一次查询没有看到的行。 二…...

Python字典详解:从入门到实践

Python字典详解&#xff1a;从入门到实践 字典&#xff08;Dictionary&#xff09;是Python中最重要且最常用的数据结构之一。本文将深入讲解字典的特性、操作方法和实际应用案例。 1. 字典简介 字典是可变的、无序的键值对集合&#xff0c;使用{}创建。每个元素由key: valu…...

91,【7】 攻防世界 web fileclude

进入靶场 <?php // 包含 flag.php 文件 include("flag.php");// 以高亮语法显示当前文件&#xff08;即包含这段代码的 PHP 文件&#xff09;的内容 // 方便查看当前代码结构和逻辑&#xff0c;常用于调试或给解题者提示代码信息 highlight_file(__FILE__);// 检…...

41【文件名的编码规则】

我们在学习的过程中&#xff0c;写出数据或读取数据时需要考虑编码类型 火山采用&#xff1a;UTF-16 易语言采用&#xff1a;GBK php采用&#xff1a;UTF-8 那么我们写出的文件名应该是何种编码的&#xff1f;比如火山程序向本地写出一个“测试.txt”&#xff0c;理论上这个“测…...

蓝桥杯备赛经验帖

蓝桥杯备赛经验帖 作者&#xff1a;blue 时间&#xff1a;2025.2.1 文章目录 蓝桥杯备赛经验帖1.为什么有这篇文章2.赛制3.比赛流程4.如何准备5.其他建议6.一些感悟 1.为什么有这篇文章 ​ 笔者近期发现&#xff0c;观看我写的两道第十五届蓝桥杯题解的人数逐渐增多&#xf…...