深度学习-生成式检索-论文速读-2024-09-14

深度学习-生成式检索-论文速读-2024-09-14

前言:

生成式检索(Generative Retrieval, GR)是一种结合了生成模型和检索系统的人工智能技术方法。这种方法在处理信息检索任务时,不仅依赖于已有数据的检索,还能生成新的、相关的信息或数据来满足查询需求。相对传统基于倒排链的稀疏检索(Sparse Retrieval, SR) 和采用向量化的稠密检索(Dense Retrieval, DR), 生成式检索GR能够突破现有搜推系统多级链路的固有瓶颈限制,END TO END的方式直接生成最终的检索结果,因而在近年来成为研究热点。

1. Transformer Memory as Differentiable Search Index, NIPS, 2022

Advances in Neural Information Processing Systems 35 (2022): 21831-21843.
在这里插入图片描述
作为可微搜索索引的Transformer记忆

摘要
本文提出了一种新的信息检索范式——可微搜索索引(Differentiable Search Index, DSI),它使用单一的Transformer模型将查询文本直接映射到相关的文档标识符(docids)。DSI模型在训练时学习将文档内容与相应的docid关联起来,在检索时根据输入的查询返回相关docid。实验表明,DSI在适当的设计选择下,显著优于双编码器模型等强基线,并且在零样本设置下展现出强大的泛化能力。

创新点

  1. 可微搜索索引(DSI):提出了一种新的检索范式,将检索过程完全集成在单个Transformer模型中,简化了整个检索流程。
  2. 端到端检索:DSI模型可以直接从文本查询映射到docid,无需额外的索引构建步骤。
  3. 零样本学习能力:DSI在没有看到特定查询的情况下也能表现出色,这表明模型具有很好的泛化能力。

算法模型

  • DSI模型:使用预训练的Transformer模型,通过序列到序列(seq2seq)学习系统直接将查询映射到相关的docid。
  • 索引策略:模型在训练阶段学习将文档内容与docid关联,实现索引功能。
  • 检索策略:在给定查询的情况下,模型使用自回归生成的方式返回候选docid的排名列表。
    在这里插入图片描述

实验效果

  • 数据集:使用Natural Questions (NQ) 数据集进行实验,该数据集包含307K个查询-文档训练对和8K个验证对。
  • 性能指标:主要使用Hits@N(N=1, 10)作为评价指标。
  • 结论
    • DSI在小规模数据集上(NQ10K)的Hits@1性能提升了20多个百分点,从12.4%提升到33.9%。
    • 在更大规模的数据集上(NQ320K),DSI的性能提升更加显著,尤其是在使用大型模型时。
    • 在零样本设置下,DSI的Hits@1性能比BM25基线提高了14个百分点。

推荐阅读指数:
★★★★☆

推荐理由
这篇文章提出了一种创新的信息检索方法,通过将检索过程集成在单个Transformer模型中,简化了传统的检索流程。DSI模型不仅在标准的训练设置下表现优异,还在零样本设置下展现出了强大的泛化能力,这对于实际应用中快速适应新查询具有重要意义。此外,文章对DSI的不同变体进行了详细的分析和比较,为未来在这一领域的研究提供了宝贵的参考。对于从事信息检索、自然语言处理和机器学习的研究者和工程师来说,这篇文章提供了新的视角和方法论,值得一读。

2. A Neural Corpus Indexer for Document Retrieval, NIPS, 2022

在这里插入图片描述
用于文档检索的神经语料库索引器

摘要
当前最先进的文档检索解决方案主要遵循索引检索范式,其中索引难以直接针对最终检索目标进行优化。本文旨在展示一个端到端的深度神经网络,统一训练和索引阶段可以显著提高传统方法的召回性能。为此,提出了神经语料库索引器(Neural Corpus Indexer, NCI),这是一个序列到序列的网络,直接为指定查询生成相关文档标识符。为了优化NCI的召回性能,发明了一种前缀感知的权重自适应解码器架构,并利用了包括查询生成、语义文档标识符和基于一致性的正则化技术。实证研究表明,NCI在两个常用的学术基准测试中优于现有方法,分别在NQ320k数据集的Recall@1和TriviaQA数据集的R-Precision上实现了+21.4%和+16.8%的相对提升。

创新点

  1. 端到端深度神经网络:提出了一个统一的深度神经网络模型,用于训练和索引阶段,以提高文档检索的召回率。
  2. 前缀感知的权重自适应解码器:设计了一种新的解码器架构,以适应文档标识符的层次结构。
  3. 语义文档标识符:利用层次k均值算法为每个文档生成语义标识符,使相似文档在层次树中具有“接近”的标识符。
  4. 基于一致性的正则化:采用基于一致性的正则化损失来缓解过拟合问题,提高模型的泛化能力。

算法模型

  • 神经语料库索引器(NCI):一个序列到序列的神经网络模型,通过编码器接收用户查询并生成查询嵌入,通过解码器输出相关文档的标识符。
  • 前缀感知的权重自适应解码器(PAWA):一种新颖的解码器架构,能够根据不同的前缀为解码过程中的分类器分配不同的权重。
  • 层次k均值算法:用于生成文档的语义标识符,将文档组织成树结构,使得语义相似的文档具有相似的前缀。
    在这里插入图片描述

实验效果

  • 数据集:在Natural Questions (NQ) 和 TriviaQA 数据集上进行实验。
  • 性能指标:使用Recall@N、Mean Reciprocal Rank (MRR) 和 R-precision 作为评价指标。
  • 结论
    • NCI在NQ320k数据集上的Recall@1提升了21.4%,在TriviaQA数据集上的R-Precision提升了16.8%。
    • NCI在没有显式排名模型的情况下,自身也达到了有竞争力的MRR分数。

推荐阅读指数
★★★★☆

推荐理由
这篇文章提出了一种创新的文档检索方法,通过端到端的深度神经网络模型,实现了训练和索引阶段的统一,显著提高了检索的召回率。提出的前缀感知的权重自适应解码器和语义文档标识符为文档检索领域带来了新的视角和技术。对于从事信息检索、自然语言处理和深度学习研究的学者和工程师来说,这篇文章提供了新的研究思路和方法,值得一读。

3. Understanding Differential Search Index for Text Retrieval, ACL, 2023

Xiaoyang Chen, Yanjiang Liu, Ben He, Le Sun, Yingfei Sun
理解文本检索中的差异化搜索索引

摘要
本文探讨了差异化搜索索引(Differentiable Search Index, DSI)这一新兴的信息检索框架。DSI利用可微函数直接将查询映射到相关文档标识符的排序列表。然而,由于其端到端神经架构的黑箱特性,DSI在基本索引和检索能力方面仍不明确。为了填补这一空白,本研究定义并检验了一个有效的信息检索框架应具备的三个重要能力:排他性、完整性和相关性排序。通过分析实验,我们发现尽管DSI在记忆从伪查询到文档标识符的单向映射方面表现出熟练度,但在区分相关文档和随机文档方面存在不足,从而影响了其检索效果。为了解决这一问题,我们提出了一种多任务蒸馏方法来提升检索质量,而不改变模型结构,并成功赋予了其改进的索引能力。通过在不同数据集上的实验,我们证明了我们提出的方法优于先前的DSI基线。

创新点

  1. 多任务蒸馏方法:提出了一种新的训练方法,通过从密集检索中学习来提升DSI的效果,同时保持了DSI的优势,如最小的存储成本和端到端的可检索性。
  2. 改进的文档表示:通过捕捉不同粒度的信息并使用密集检索模型编码的文档表示来过滤关键信息,增强了DSI的排他性和完整性。
  3. 显式建模文档相关性:通过显式建模文档之间的联系,模型能够减少输出结果的随机性并提高检索性能。

算法模型

  • DSI-QG:一种基于T5模型的差异化搜索索引,用于直接从查询文本生成相关文档标识符。
  • 多任务蒸馏方法:结合了索引任务和检索任务,通过使用密集检索模型的输出作为训练信号,提升了DSI模型的检索能力。

实验效果

  • 数据集:在MS MARCO和Natural Questions (NQ)数据集上进行实验。
  • 性能指标:使用Hits@1、Hits@10、NDCG@10和P@10作为评价指标。
  • 结论
    • 提出的方法在MS MARCO和NQ数据集上均优于现有的DSI模型。
    • 在具有更完整人类注释的数据集上,提出的方法与密集检索模型TCT-ColBERT的性能相当。

推荐阅读指数
★★★★☆

推荐理由
这篇文章对差异化搜索索引(DSI)进行了深入的分析,并提出了一种新的多任务蒸馏方法来提升DSI的检索效果。文章不仅在理论上提出了创新的训练方法,而且在实验中也验证了方法的有效性。对于从事信息检索、自然语言处理和深度学习研究的学者和工程师来说,这篇文章提供了新的研究思路和方法,值得一读。

4. GLEN: Generative Retrieval via Lexical Index Learning, EMNLP, 2023

Sunkyung Lee, Minjin Choi, Jongwuk Lee

GLEN:通过词汇索引学习生成式检索

摘要
本文提出了一种名为GLEN(Generative retrieval via LExical iNdex learning)的新型生成式检索方法,旨在通过直接生成与查询相关的文档标识符来实现文档检索。GLEN通过两阶段索引学习策略有效地利用动态词汇标识符,使其能够学习有意义的词汇标识符和查询与文档之间的相关性信号。在推理阶段,GLEN使用无冲突推理,利用标识符权重对文档进行排名,而无需额外开销。实验结果证明,GLEN在多个基准数据集上实现了对现有生成式检索方法的超越或具有竞争力的表现。

创新点

  1. 动态词汇标识符:提出了一种新的动态词汇标识符学习方法,通过两阶段索引学习策略来定义和学习词汇标识符。
  2. 两阶段索引学习策略:包括基于关键词的ID分配和基于排名的ID细化,以生成反映查询-文档相关性的标识符。
  3. 无冲突推理:在推理阶段,GLEN使用标识符权重来解决文档标识符冲突问题,无需额外开销。

算法模型

  • GLEN模型:一个基于Transformer的序列到序列网络,用于直接为指定查询生成相关文档标识符。
  • 两阶段索引学习
    • 关键词ID分配:从文档中提取关键词作为标识符,并通过自监督信号学习。
    • 排名ID细化:通过成对排名损失和点式检索损失来学习动态标识符。
  • 无冲突推理:在推理时,使用标识符权重对文档进行排名,解决标识符冲突问题。

实验效果

  • 数据集:在Natural Questions (NQ320k)、MS MARCO和BEIR数据集上进行实验。
  • 性能指标:使用Recall@1、Recall@10、MRR@100、MRR@10和nDCG@10等指标。
  • 结论
    • GLEN在NQ320k数据集上实现了69.1%的Recall@1和86.0%的Recall@10,超过了现有生成式检索方法。
    • 在MS MARCO数据集上,GLEN的MRR@10为20.1%,优于现有方法。
    • 在BEIR数据集上,GLEN的平均nDCG@10为16.8%,显示出良好的零样本学习能力。

推荐阅读指数
★★★★☆

推荐理由
这篇文章提出了一种创新的生成式检索方法GLEN,通过动态词汇标识符和两阶段索引学习策略,有效地提高了文档检索的准确性和效率。GLEN在多个基准数据集上展现了出色的性能,特别是在处理大规模数据集时的表现,使其成为一个有潜力的研究方向。对于从事信息检索、自然语言处理和深度学习研究的学者和工程师来说,这篇文章提供了新的研究思路和方法,值得一读。

5. Generative Retrieval as Dense Retrival, 2023

Thong Nguyen, Andrew Yates

在这里插入图片描述
生成式检索作为密集检索

摘要
本文探讨了生成式检索(Generative Retrieval),这是一种新兴的神经检索范式,旨在通过单一的变换器(transformer)模型同时优化索引和检索流程。尽管这一新范式展现出潜力,但在更新索引和扩展到大型数据集方面面临挑战。文章分析了两种突出的生成式检索变体,并展示了它们可以被概念化为密集检索(Dense Retrieval)的双编码器(bi-encoders)。具体来说,文章分析证明了生成式检索过程可以分解为查询向量和文档向量之间的点积,类似于密集检索。这种分析引导我们提出了一种新的生成式检索变体,称为Tied-Atomic,通过结合密集检索的技术来解决更新和扩展问题。在两个数据集NQ320k和完整MSMARCO上的实验证实了这种方法在不降低检索效果的同时,能够使模型扩展到大型数据集。

创新点

  1. 生成式检索与密集检索的关联:文章将生成式检索的概念与密集检索相联系,提供了一种新的视角来理解和改进生成式检索。
  2. Tied-Atomic模型:提出了Tied-Atomic模型,该模型通过结合密集检索的技术,解决了生成式检索在更新索引和扩展到大型数据集方面的挑战。
  3. 点积相似性建模:展示了生成式检索过程可以被分解为查询向量和文档向量之间的点积,这与密集检索中的相似性建模方法相似。

算法模型

  • 生成式检索:使用单一变换器模型进行索引和检索,通过生成相关文档标识符来响应查询。
  • Tied-Atomic:提出的新变体,通过将文档文本与词汇(DocID)嵌入联系起来,并使用对比损失进行训练,从而增强了生成式检索模型。

实验效果

  • 数据集:NQ320k和完整的MSMARCO数据集。
  • 性能指标:使用MRR@100(Mean Reciprocal Rank at 100)等指标进行评估。
  • 结论
    • Tied-Atomic模型在NQ320K数据集上的表现与DSI(Differentiable Search Index)模型和NCI(Neural Corpus Indexer)模型相当,甚至在某些指标上有所提升。
    • 在MSMARCO数据集上,Tied-Atomic模型表现出良好的可扩展性,与ANCE等密集检索模型相比具有竞争力。

推荐阅读指数:
★★★★☆

推荐理由
这篇文章为生成式检索领域提供了重要的见解,特别是在如何将生成式检索与密集检索相结合以提高检索系统的效率和可扩展性方面。提出的Tied-Atomic模型不仅在理论上具有创新性,而且在实验中也显示出了良好的性能和可扩展性,这对于研究人员和实践者在设计和优化检索系统时具有重要的参考价值。此外,文章的分析和实验结果为未来在这一领域的研究提供了新的方向和思路。

6. Learning to Tokenize for Generative Retrieval, NIPS, 2024

W Sun, L Yan, Z Chen, S Wang, H Zhu, P Ren, Z Chen, D Yin, M Rijke, Z Re

为生成式检索学习分词

摘要
本文提出了一种新的信息检索范式——生成式检索,它通过使用生成语言模型(LMs)直接为给定查询生成文档标识符(docids)的排名列表。文档分词是生成式检索中的一个关键问题,它决定了模型是否能够通过简单地解码其docid来精确检索任何文档。大多数现有方法采用基于规则的分词,这些方法通常是特定于场景的,并且泛化能力不强。与此相反,本文提出了一种新颖的文档分词学习方法GENRET,它通过离散自编码方法学习将完整文档语义编码到docids中。GENRET通过渐进式训练方案和多种聚类技术来捕获docids的自回归特性并稳定训练过程。在NQ320K、MS MARCO和BEIR数据集上的实验表明,GENRET在NQ320K数据集上建立了新的最先进水平,并且在未见过的文档上相比生成式检索基线取得了显著改进。

创新点

  1. 文档分词学习框架GENRET:提出了一种新的文档分词学习方法,通过离散自编码方案学习将文档编码为语义docids。
  2. 渐进式训练方案:为了稳定训练过程,提出了一种渐进式训练方案,允许通过固定优化的前缀docids来稳定模型训练。
  3. 多样化聚类技术:提出了参数初始化策略和基于多样化聚类技术的docid重新分配,以增加生成docids的多样性。
    在这里插入图片描述

算法模型
GENRET由三个主要组件构成:

  1. 文档分词模型:将文档转换为离散的docids。
  2. 生成式检索模型:给定查询时,以自回归方式生成docids。
  3. 重构模型:使用生成的docids重构原始文档,确保docids捕获文档的语义信息。

实验效果

  • NQ320K数据集:GENRET在NQ320K数据集上取得了68.1%的R@1和75.9%的MRR,相比之前的最先进方法有显著提升。
  • MS MARCO数据集:GENRET在MS MARCO数据集上取得了47.9%的R@1和58.1%的MRR,超过了包括ANCE和Sentence-T5在内的基线方法。
  • BEIR数据集:在BEIR数据集上,GENRET在多个子数据集上展现了竞争力,平均nDCG@10为41.1,超过了包括BM25和DocT5Query在内的基线方法。

推荐阅读指数
★★★★☆

推荐理由
这篇论文在文档检索领域提出了一种创新的文档分词学习方法,通过自编码框架和渐进式训练方案,有效地提高了生成式检索模型的性能。特别是在处理未见过的文档时,GENRET展现出了良好的泛化能力。这对于信息检索、自然语言处理和机器学习领域的研究者和实践者来说,是一篇值得阅读的论文。此外,论文中提出的多样化聚类技术和渐进式训练方案,也为解决类似问题提供了有价值的思路和方法。

7. Generative Hierarchical Materials Search, 2024

S Yang, S Batzner, R Gao, M Aykol, AL Gaunt… - arXiv preprint arXiv …, 2024
https://arxiv.org/pdf/2409.06762
在这里插入图片描述
生成式层次化材料搜索

摘要

这篇文章介绍了一种名为生成式层次化材料搜索(GenMS)的新方法,它利用大规模训练的生成模型来产生文本、视频以及科学数据,如晶体结构。在材料科学,尤其是晶体结构的应用中,领域专家的高级指令对于自动化系统输出可行的候选晶体至关重要。文章提出了一种端到端的语言到结构生成方法,将问题表述为多目标优化问题,并设计了GenMS以可控方式生成晶体结构。GenMS包括一个语言模型,它接受高级自然语言作为输入并生成关于晶体的中间文本信息(例如化学式),以及一个扩散模型,它接受中间信息作为输入并生成低级别的连续值晶体结构。此外,GenMS还使用图神经网络来预测生成的晶体结构的属性(例如形成能)。在推理过程中,GenMS利用所有三个组件来对可能的结构空间进行前向树搜索。实验表明,GenMS在满足用户请求和生成低能结构方面,比其他直接使用语言模型生成结构的方法表现更好。

创新点

  1. 端到端语言到结构生成:提出了一种新颖的方法,将高级自然语言描述直接转换为晶体结构。
  2. 多目标优化:将语言到结构的生成问题转化为多目标优化问题,允许在化学式和结构级别进行优化。
  3. 层次化搜索:通过结合语言模型、扩散模型和图神经网络,实现了从高级语言描述到低级结构的层次化搜索。
  4. 属性预测:使用图神经网络预测生成晶体结构的属性,如形成能,以辅助选择。

算法模型

GenMS由以下三个主要组件构成:

  1. 语言模型:接收高级自然语言指令,生成关于晶体的中间文本信息,如化学式。
  2. 扩散模型:接受中间信息作为输入,生成低级别的连续值晶体结构。
  3. 图神经网络:预测生成的晶体结构的属性,如形成能。
    在这里插入图片描述

实验效果

  • 成功率:GenMS在满足用户请求方面超过80%的成功率,而直接使用预训练的语言模型生成结构的成功率接近0%。
  • 形成能:GenMS生成的结构具有较低的形成能,通过DFT计算验证。
  • 独特性:生成的晶体结构中,有较高比例是独特的,不存在于现有的材料数据库中。
  • 匹配率:生成的结构与材料项目中的相应家族结构匹配率高。

推荐阅读指数:★★★★☆

推荐理由

这篇论文在材料科学领域提出了一种创新的方法,通过结合自然语言处理和生成模型,实现了从自然语言描述到晶体结构的自动生成。这种方法不仅提高了生成结构的准确性和效率,而且为材料设计提供了一种新的自动化工具。对于从事材料科学、计算化学以及人工智能领域的研究者和工程师来说,这篇文章提供了一种新的视角和工具,值得一读。

8. Hi-Gen: Generative Retrieval For Large-Scale Personalized E-commerce Search, ICDM, 2024.

Yanjing Wu, Yinfu Feng, Jian Wang, Wenji Zhou, Yunan Ye, Rong Xiao, Jun Xiao

Hi-Gen: 大规模个性化电子商务搜索的生成式检索

摘要
本文提出了一种用于大规模个性化电子商务搜索的生成式检索方法Hi-Gen。该方法通过设计一个度量学习模型来学习项目的特征表示,捕获语义相关性和效率信息,然后通过类别引导的层次聚类方案生成docID。此外,提出了位置感知损失来提高解码阶段语言模型的性能。Hi-Gen在公共和行业数据集上进行了广泛的实验,证明了其有效性和效率。在线AB测试实验表明,Hi-Gen在召回数量和商品交易总额上都有显著提升。
在这里插入图片描述

创新点

  1. 类别引导的层次聚类:利用项目嵌入和效率分数,通过层次聚类生成具有清晰语义含义的docID。
  2. 位置感知损失:在解码阶段,提出了位置感知损失来区分位置的重要性,并挖掘同一位置不同token之间的内在关系。
  3. 在线实时大规模召回的两种变体:Hi-Gen-I2I和Hi-Gen-Cluster,支持在线服务过程中的实时大规模召回。

算法模型
Hi-Gen模型包括以下几个关键组件:

  1. 表示学习模型:使用度量学习来学习项目的区分性特征表示。
  2. 类别引导的层次聚类:根据项目嵌入和效率分数,通过层次聚类生成docID。
  3. 位置感知损失:在语言模型的解码阶段使用,以提高解码性能。
  4. 在线服务优化:Hi-Gen-I2I和Hi-Gen-Cluster两种变体,用于在线大规模召回。
    在这里插入图片描述
    在这里插入图片描述

实验效果

  • 公共数据集AOL4PS:Hi-Gen在Recall@1和Recall@10上分别比最佳基线模型提高了3.30%和7.73%。
  • 行业数据集AEDST:Hi-Gen在Recall@1、Recall@50和Recall@100上分别比最佳基线模型提高了4.62%、25.87%和28.37%。
  • 在线AB测试:Hi-Gen在召回数量和商品交易总额上分别提高了6.89%和1.42%。

推荐阅读指数
★★★★☆

推荐理由
这篇论文针对大规模个性化电子商务搜索问题提出了一种创新的生成式检索方法。通过结合度量学习和层次聚类技术,Hi-Gen能够有效地捕获项目的语义和效率信息,并在解码阶段利用位置感知损失提高检索性能。此外,论文还提出了两种变体以支持在线服务过程中的实时大规模召回,这些方法在公共和行业数据集上的实验结果证明了其有效性。对于从事电子商务搜索、推荐系统和生成式检索研究的研究人员和工程师来说,这篇论文提供了有价值的见解和技术方案。

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

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

相关文章

解锁SQL无限可能 | 基于SQL实现的一种时序数据的波峰个数检测算法

目录 0 算法原理 1 数据准备 2 问题分析 3 小结 数字化建设通关指南专栏原价99,现在活动价39.9,按照阶梯式增长,直到恢复原价 0 算法原理 波峰识别算法 序列数据是按照时间进行采集,其中400个点一个周期,一条数据…

【零散技术】Odoo17通过Controller下载PDF

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo作为一款开源ERP,拥有极佳的拓展性,Odoo的Controller框架也让它具备了作为微信小程序后端的能力,那么就存在 需要通过小程序来下载PDF的业务情况。 目录 1.功能代码 1.1 manifest 设置 …

Tensorflow—第五讲卷积神经网络

本讲概述 卷积实际上就是特征提取。本讲我们先了解学习卷积神经网络基础知识,再一步步地学习搭建卷积神经网络,最后会运用卷积神经网络对cifar10 数据集分类。在本讲的最后附上几个经典卷积神经网络:LeNet、AlexNet、VGGNet、InceptionNet和…

在Linux中安装FFmpeg

在Linux中安装FFmpeg有两种方法。 安装FFmpeg(方法一) 第一步,下载FFmpeg。 登录地址:John Van Sickle - FFmpeg Static Builds下载安装包ffmpeg-git-amd64-static.tar.xz。然后使用WinSCP将安装包上传到文件夹/usr/local/src中…

vue2基础系列教程之插槽slot你不得不知道的知识点及面试高频问题

vue2中对插槽的介绍,花了大量的章节篇幅,可想而知,它在框架中的重要性。 slot及slot-scope自 2.6.0 起被废弃。新推荐的语法请查阅v-slot,就语法我们这里就一笔带过,主要学习新的语法 你不能不知道的slot知识点 插槽的作用&#…

C++知识要点总结笔记

文章目录 前言一、c基础1.指针和引用指针和引用的区别函数指针 2.数据类型整型 short int long 和 long long无符号类型强制类型转换怎样判断两个浮点数是否相等? 3.关键字conststaticconst和static的区别define 和 typedef 的区别define 和 inline 的区别define和c…

PostgreSQL(PG)(二十二)

🌻🌻 目录 🌻🌻 一、PostgreSQL 简介1.1、PG 的历史1.2、PG的社区1.2.1 纯社区1.2.2 完善的组织结构1.2.3 开源许可独特性 1.3 、PostgreSQL与MySQL的比较 二、PostgresQL的下载安装2.1、Windows上安装 PostgreSQL2.2、远程 连接 …

Pikachu靶场之XSS

先来点鸡汤,少就是多,慢就是快。 环境搭建 攻击机kali 192.168.146.140 靶机win7 192.168.146.161 下载zip,pikachu - GitCode 把下载好的pikachu-master,拖进win7,用phpstudy打开网站根目录,.....再用…

Unity3D下如何播放RTSP流?

技术背景 在Unity3D中直接播放RTSP(Real Time Streaming Protocol)流并不直接支持,因为Unity的内置多媒体组件(如AudioSource和VideoPlayer)主要设计用于处理本地文件或HTTP流,而不直接支持RTSP。所以&…

【话题讨论】AI时代程序员核心力:技术深耕,跨界学习,软硬兼备

目录 引言 一、AI辅助编程对程序员工作的影响 1.1 AI工具如何提升工作效率 1.2 AI工具的风险 1.3 应对策略 二、程序员应重点发展的核心能力 2.1 核心竞争力 2.2 企业和教育机构的调整 三、人机协作模式下的职业发展规划 3.1 持续学习的重要性 3.2 选择适合自己的…

Python3网络爬虫开发实战(17)爬虫的管理和部署(第一版)

文章目录 一、 Scrapyd 分布式部署1.1 了解 Scrapyd1.2 准备工作1.3 访问 Scrapyd1.4 Scrapyd 的功能1.5 ScrapydAPI 的使用 二、Scrapyd-Client 的使用2.1 准备工作2.2 Scrapyd-Client 的功能2.3 Scrapyd-Client 部署 三、Scrapyd 对接 Docker3.1 准备工作3.2 对接 Docker 四、…

Java Web服务运行一段时间后出现cpu升高导致的性能下降问题排查

背景 有个web服务,运行一段时间后,出现cpu逐渐占用高,服务处理请求整体性能下降问题。 异常情况时, 同时jvm的cpu上涨 最终表现为,处理内部逻辑执行耗时变高。 排查原因 原来服务的jvm启动参数带了 -XX:-TieredCom…

Java项目实战II基于Java+Spring Boot+MySQL的校园社团信息管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今高校…

马匹行为识别系统源码分享

马匹行为识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

计算机毕业设计 在线新闻聚合平台的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

【计算机毕设-大数据方向】基于Hadoop的智能交通数据分析可视化系统的设计与实现

💗博主介绍:✌全平台粉丝5W,高级大厂开发程序员😃,博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 【联系方式】👇👇👇最下边👇👇&…

Redis的存储原理和数据模型

一、Redis是单线程还是多线程呢? 我们通过跑redis的代码,查看运行的程序可以得知,Redis本身其实是个多线程,其中包括redis-server,bio_close_file,bio_aof_fsync,bio_lazy_free,io_t…

Mina protocol - 体验教程

Mina protocol - 体验教程 一、零知识证明( Zero Knowledge Proof )1、零知识证明(ZKP)的基本流程工作流程: 2、zkApp 的优势:3、zkApp 每个方法的编译过程: 二、搭建第一个zkapp先决条件1、下载或者更新 zkApp CLI​2…

Chainlit集成LlamaIndex实现知识库高级检索(句子窗口节点检索)

检索原理 句子窗口检索原理 通常在执行基础的RAG检索时我们会将文档按指定的块大小(chunk_size)进行切割,然后进行embedding的向量化处理后存入向量数据库中,在检索时我们会计算用户问题(question) 与文档块的相似度,并选取K个最相似的文档(…

LeetCode[中等] 49.字母异位词分组

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 思路&#xff1a; new Dictionary<string, List<string>>() 存储数据&#xff0c;key为排序之后的字符…