性能不降反增?缩减率2.64的伪图索引为何有助于RAG

news2024/11/25 3:02:18

a1889c0405e71db10b56220fb350b777.gif

b013a16385ede4e50448d7ca6d2cc173.png

论文题目: 

Empowering Large Language Models to Set up a Knowledge Retrieval Indexer via Self-Learning

作者单位: 

中国人民大学(RUC),上海算法创新研究院(IAAR)

论文地址: 

https://arxiv.org/pdf/2405.16933

代码地址: 

https://github.com/IAAR-Shanghai/PGRAG

afcf5d05cd069946042935defa919716.png

研究动机

检索增强生成(RAG)通过集成外部检索库,为大语言模型(LLMs)提供了一种经济的知识更新策略,从而扩展了 LLMs 的知识边界。然而,数据质量本质上决定着检索性能的上限,因此,如何挖掘和组织庞大的知识,从源头确保数据的质量,是当前 RAG 研究领域的首要议题。

知识精炼(Refinement)因其能够去除无关或冗余信息,大幅降低知识库的存储成本,常被用于检索前的索引阶段,对原始文本进行知识细化。例如,在基于知识图谱(KGs)的 RAG 方法中,文本常被转化为 KGs,以捕捉不同细粒度知识孤岛之间的深层语义。这种将概念聚合的知识细化方法,通过显式揭示隐含的关联关系,能够为 LLMs 提供关联的结构化上下文信息,从而支持更复杂的推理。

然而,在多数情况下,构建严格、完整的 KGs 是极具困难且非必要的,因为 LLMs 本身就具备强大的语义理解能力,能够在灵活的半结构化数据上进行结构化推理。为此,我们放松了 KG  schema 对于数据和关系模式的严格约束,构建了一种介于传统 KGs 与 Chunk 切分之间的形态结构——伪图(PG)

971d517831367b4ad1839cdc42c0d409.png

如图 1 所示,我们将多篇新闻文档中抽取的不同粒度知识,以标记的逻辑串联起来,形成一个结构优化、知识密集、表示灵活的检索知识结构 PG。这种中间形态结构既保留了 KGs 的知识性和压缩性,又兼具普通 Chunk 划分的通用性,可有效避免生成器注意力被无关的噪声信息所分散

接着,我们将 PG 纳入到前处理 RAG 框架中,提出的 PG-RAG 不仅能确保 LLMs 快速访问背景信息,减少生成响应的延迟,还能有效过滤无关细节,提升召回和响应内容的相关性。具体地,在检索阶段,PG-RAG 模仿人类翻阅笔记的行为,利用伪图索引在伪图知识库上进行自适应游走,收集并整合的结构化上下文信息到 LLMs 中,缓解证据缺失导致的幻觉生成现象。

实验结果表明,在文本缩减率高达 2.64 条件下的单文档任务中,PG-RAG 在所有关键评估指标上显著优于当前最佳基准 KGP-LLaMA,整体性能平均提升约 11.6%。其中,BLEU 分数提升约 14.3%,QE-F1 提高约 23.7%。在多文档场景中,PG-RAG 的平均性能至少比最佳基准高约 2.35%。同时,其 BLEU 和 QE-F1 稳定提升约 7.55% 与 12.75%。

836d6707e556fadfe851aee82125e678.png

背景回顾

b2f6389cb73ce9df73079d9c0833494b.png

在知识库构建,即索引阶段,我们需要先对原始数据进行清洗和抽取,将其转换为统一的纯文本格式,我们还需进行文本分块,适应 LLMs 中的上下文限制,然后,获取分块的嵌入用于后续的向量检索。如上表所示,现有的索引构建方法主要分为以下几类:

1. 标准分块将数据划分为固定大小的块;

2. 链式分块允许在块之间建立线性关联,小块用于检索,大块进行召回;

3. 树形分块,如 MEMWALKER 和 RAPTOR,则通过提取和整合段落及其摘要,将形成的摘要树用于层次化检索;与添加全局信息的增量式索引构建方法不同;

4. 提炼并组织文本的压缩式索引构建策略不仅能过滤噪声,还保留了知识间的关联关系。例如,T-RAG 通过提取实体及其从属关系形成的实体树,辅助增强上下文。基于 KGs 的 RAG,如 KG-RAG、SURGE 等,通过在高度压缩的图结构上进行实体匹配与上下文扩充(基于游走或图嵌入)召回的高质量子图,能确保证据的质量,但 KGs 构建困难;

5. 一些方法通过简化 KGs 的 schema,减少知识构建的复杂性,使其更易于维护。例如,Graph-RAG 和 KGP,通过在固定块上用“聚类+语义边”的方式进行知识融合,但这样的知识细化缺乏对知识和知识间丰富关系的挖掘和表征;紧随本文发表的 HippoRAG 直接将文本转为无 schema 的 KGs,以模拟人脑内部知识联想记忆所依赖的海马索引结构,从一定程度上平衡了检索库的知识性和构建方法的普适性。

我们提出的 PG-RAG,则借助 LLMs 的通用学习能力,自主梳理文档内容,将生成的表意清晰,脉络分明的层次化导图直接作为需要长期记忆的知识(伪图)索引,避免策略固有或人为预设的 schema 限制。

具体地,伪图索引构建策略的本质是在无 schema 限制的 KGs 基础上,设限了一种简单且常用的记忆 schema:它引导知识从宽泛的超主题逐步聚焦到特定主题,再经由多条明确的关键词路径路由到具体的事实中去,后又延申至更多相似或互补的关联事实。这种方法由浅入深,允许 PG 在保持对全局视角的把握的同时,具备深入挖掘局部细节的潜力。

e06c472a7900fc34c68a7b7d3acd6807.png

伪图的构建

7bfb4168cc0366fb2f818701c3368c65.png

3.1 事实核查项(FCIs)的抽取与验证

抽取 FCIs:我们先将原始文本转化为包含 FCIs(由 LLMs 抽取)的可验证的事实核查文本(示例见下图)。需要注意的是,LLMs 集中于识别那些可以验证原始文本的关键事实。这种目标明确的验证式抽取方式使得 LLMs 专注于能够直接支持或反驳原文声明的可验证事实,从而尽量避免因上下文缺失或解释错误而引发的幻觉。

这些信息项可以是细粒度的(如具体的数据、日期和地点)或粗粒度的(如观点或政策)。在思维导图生成前,对文本进行这样预转化,能确保事实知识不被遗漏。

22d89214b75f0930fd22201f58535029.png

验证 FCIs:为了确保所提取的 FCIs 与原始文本的一致性,我们依次对每篇文章获取的 FCIs 进行校验。具体地,我们采用了结合 BERT-Score 和 ROUGE-L 指标的综合评估函数,用于评估 FCIs 与原始文本在语义相似和细节召回两方面的表现:

7211c6a2a10a45a0c182bd6d54cf310a.png

对于未验证通过的原始文本,我们用 LLMs 重新生成 FCIs,直至验证通过。

3.2 思维导图生成(文档内知识的梳理)

我们将验证通过的 FCIs 转化为一个层次化的导图:

  1. 将验证过的 FCIs 和它们对应的核心主题(MT)输入到 LLMs 中。

  2. 提示 LLMs 将 FCIs 转化为围绕 MT 的思维导图。形成的思维导图表意清晰、脉络分明,将文本的主题、关键词(路由)和事实等多种类型的知识,用有向的导航线串联成多条知识路由链(事实路径),实现了对文档内知识的梳理。

3.3 知识融合(文档间关系的构建)

我们对多个独立的思维导图进行聚类和链接,形成伪图网络:

  1. 知识嵌入学习(导图索引的构建):通过沿事实路径提取并拼接节点属性,为每个节点生成一个包含丰富上下文信息的嵌入向量,以捕捉从主题到该节点的知识信息:

    4e0cd9bd4d7fdac0f612831aff948025.png

  2. 构建聚类:计算节点嵌入向量之间的相似度,将相似节点聚集为一类,并为每类分配一个唯一的超节点。

  3. 知识链接:为类内节点和对应超节点建立相似链接,将原本孤立的思维导图通过相似的主题或互补的事实关联,增强了网络的导航性和信息的可访问性。

0c807223459bb0eaea48d941984c8f2e.png

通过以上三个步骤,我们实现了对知识的提取、组织和融合,形成了一个灵活的结构化知识网络用于索引。与严格的 KGs 相比(存在数据模式限制,例如将《史蒂夫·乔布斯传》固定在书名或书籍的实体类型中),伪图放松数据模式约束、允许数据根据不同上下文进行适应性划分。以《史蒂夫·乔布斯传》为例,该数据可以充当不同类型的节点:

  • 提供思维导图起点的主题实体。例如,下面的事实路径展示了《史蒂夫·乔布斯传》作为一个主题,关联传记中的具体内容:

    • 《史蒂夫·乔布斯传》-> 乔布斯的生平事迹 -> ...

    • 《史蒂夫·乔布斯传》-> 乔布斯的职业生涯 -> ...

    • 《史蒂夫·乔布斯传》-> 乔布斯的个人生活 -> ...

  • 提供与主题直接相关的详细数据或描述的事实实体。例如,在“美国出版商西蒙舒斯特对外发布出版消息”的主题下,《史蒂夫·乔布斯传》可以直接作为一个事实实体,与出版信息关联:

    • 美国出版商西蒙舒斯特对外发布出版消息 -> 出版书籍 ->《史蒂夫·乔布斯传》

  • 充当主题实体与事实实体之间的中间信息节点的路由实体,帮助阐明和指导知识的传递路径。例如,在“人物传记阅读记录”的主题中,《史蒂夫·乔布斯传》可以用于导航,展示乔布斯传记带来的启发等:

    • 人物传记阅读记录 ->《史蒂夫·乔布斯传》-> 启发 -> 创新精神  ...

    • 人物传记阅读记录 ->《史蒂夫·乔布斯传》-> 启发-> 领导力  ...

    • 美国出版商西蒙舒斯特对外发布出版消息 ->《史蒂夫·乔布斯传》-> 发布日期 -> ...

    • 美国出版商西蒙舒斯特对外发布出版消息 ->《史蒂夫·乔布斯传》-> 市场反响 -> ...

同时,伪图还放松了关系的预设限制。KGs 中的关系通常是预定义的,具有较高的约束性,而伪图采用更通用、更灵活的关系表征方式。相比于固定的相似关系或者预设的复杂关系,伪图的导航线可以隐含地表征包括并列、因果、逻辑后续等更丰富的关系类型。这些关系根据数据本身的语境和内容自动确定,能够更准确地反映知识点之间的实际联系。

fdfe0394b92dca8d8666f2f872491e98.png

伪图的检索

f2db57d33c5f743a20a1f12538a5e489.png

4.1 关键信息定位

我们首先借助 LLMs 将查询转换为关键答题要点(KPs),辅助检索器在 PG 知识库中召回特定的信息。例如,对于简单的事实查询“干眼症的发生趋势”,答题要点可以是“干眼症呈增加或减少趋势”。对于查询,如“哪些环境因素可能导致孩子干眼症症状加重”,模型可生成多角度答题要点,如电子屏幕使用时间、室内空气质量等,确保回答全面。

4.2 逆向DFS扩充上下文

一旦关键点被发现,人们通常会对上下文进一步挑选用于证据的细化。我们设计的伪图检索算法(PGR)参考这种检索直觉,在伪图上定位到的锚节点处进行逆向 DFS 搜索。例如,针对问题“北京实施了哪些防洪措施?”,PGR 首先定位到事实路径“北京 -> 防洪措施 -> 停工”,然后,从锚节点“停工”出发,逆向遍历到的路由节点“防洪措施”能更为全面地支持查询。

对于细节问题,如“防洪措施中的停工与停产有何区别?”,“防洪措施”下的“停产”节点比“停课”有更高的贡献度,作为锚节点补充知识,支持问题的回答。同时,为了提高效率,我们在矩阵中模拟从锚节点逐步进行向上进行 DFS 的自然选择方法,通过预载游走所需的 ID 和评估所需的向量作为模板矩阵,用于并行执行候选节点的重要性评估与选择。其中,ID 模板矩阵记录了从根节点到叶子节点完整路径的 IDs。向量模板矩阵存储了对应位置的知识嵌入。

4.3 控制矩阵生成

对于每个锚节点,我们通过生成控制矩阵以评估候选节点对该节点的支持度。具体控制条件如下:

  1. 支持:如果相似度差值小于支持阈值(例如 0.03),则候选节点的贡献权重设为1。

  2. 模糊:如果相似度差值介于支持阈值和模糊阈值之间(例如 0.05),则贡献权重设为0.5。

  3. 拒绝:如果相似度差值超过模糊阈值,则贡献权重设为 0。

接着,我们计算候选节点的贡献值,贡献权重×节点重要性(节点与 KP 的相似性),然后对游走边界进行初步限制:

  1. 从锚节点开始向左遍历,计算并记录贡献值,直到贡献值为 0 的位置停止,确定左边界。

  2. 然后从左边界向右遍历其他行,计算并记录贡献值,遇到贡献值为 0 的位置停止,即不扩展后续的子节点,最终生成该锚节点对应的控制矩阵(CM)。

4.4 通路矩阵生成

为了进一步细化从锚节点出发的可达范围,确保控制和选择只在可达的候选节点上进行,我们截取了从锚节点出发到限定上限父节点的通路范围(在控制矩阵的生成过程中,锚节点向左遍历的最后一个非零贡献值节点位置即为上限“父节点”位置)。

在模板矩阵中,可以通过行的左遍历来追溯从任一叶子节点到父节点的路径。探索从任一父节点可达的子节点路径,只需在 ID 模板矩阵中找到所有 ID 等于该父节点 ID 的位置,即为共父节点的索引。从这些索引位置向右遍历,即可以找到从该父节点出发的所有遍历路径。在 ID 矩阵中,共父节点的所有路径通常会在连续行中出现。

因此,从任何一个叶子节点到某一父节点的 DFS 可转化为确定包含该父节点的局部连续行的边界。具体地,左边界为上限父节点的列索引,而上下边界由共父的起始和结束行的行索引确定。接着,从这些边界位置并行向右遍历至 ID 不为空以确定右边界,然后,将区域内的值设为 1,其余处设为 0,形成从一个锚节点出发的通路矩阵 PM,指示了从该节点出发的连通候选。

f5b05ed7e8fa3fb81094011115251e4c.png

4.5 结构化上下文生成

染色矩阵:将每个锚节点对应的控制矩阵 CM 与通路矩阵 PM 进行点乘,生成染色矩阵。具体地,节点只有在被选择时会被“染色”,其着色的强度取决于该节点与关键点(KP)的相似度及其对锚节点的支持度。同一节点可以根据不同的查询或锚节点被多次着色,每次着色程度都可能不同。

聚合矩阵:通过叠加所有锚节点的染色矩阵,形成聚合矩阵。这个矩阵中的每个元素记录了候选节点在多个锚节点引导的子图上的总“颜色强度”,即对查询的总贡献值。

上下文的选择:从聚合矩阵中选出总贡献值最高的行(事实路径),并将其整合成知识库中的导图形式,用于支持问题的回答。

1c9c0a0b8976f994dd6a539e0775b9f9.png

e8c550296fe0873f4d9c98583aef01d3.png

91b5c64f909701d46991279f34beea7d.png

实验要点总结

5.1 数据集

本实验中,我们选取了 CRUD-RAG 基准测试中的三个问答(QA)数据集,以评估 RAG 系统在知识密集型应用中的性能,包括模型在回答单文档事实能力和结合多文档信息进行推理的能力:

  1. 单文档问答(1-Document QA)专注于基于事实的问题解答,考察模型精确定位和提取相关信息的能力。

  2. 双文档问答(2-Document QA)用于测试模型是否能够利用两篇文档中的信息进行推理和整合。

  3. 三文档问答(3-Document QA)包含的问题需要模型必须同时综合三篇文档的信息才能作答,进一步增加了任务的难度,要求模型具备深层次的理解和分析能力。

5.2 基线

  • 基础模型(w/o RAG):GPT-3.5

  • 传统的 RAG:关键词检索(BM25)、密集检索(DPR)、混合搜索(BM25+DPR)、混合搜索+重排

  • 基于树的 RAG:Tree traversal、Collapsed tree retrieval

  • 基于图的 RAG:Graph-RAG、KGP

5.3 整体比较

  • 传统 RAG 方法表现较好,优于直接使用基础生成模型,尤其是使用具有混合重排序机制的 RAG。

  • 基于树的 RAG 方法在大数据集上表现不佳,因为聚合效果不好,单个节点信息过载,噪声大。

  • 基于图的 RAG 方法(Graph-RAG 和 KGP)在多文档任务中表现优于其他基线方法,但在单文档任务中优势不明显。

  • PG-RAG 得益于其精炼的伪图结构和基于游走的上下文扩充机制,在不同难度的任务中均表现出色。

9be42dca6b3f2125ab860911a13caaac.png

5.4 知识构建方法分析

  • 传统 RAG 仅进行简单分块,树基和图基 RAG 通过融合算法在块间建立关联关系信息,但均未改变知识原本的嵌入分布,PG-RAG 通过利用 LLMs 进行语义分割,得到的事实嵌入分布更为分散,利于聚类,即知识的融合。

  • RAPTOR Cluster 在大数据集上聚类效果差,KNN 聚类耗时较长,而 PG-RAG 方法知识融合的速度快且效果佳。

8c85e49ff663d47b609af8249ae6e810.png

5.5 知识构建结果分析

融合后的伪图在知识精细度和密度方面表现优异,包含丰富的知识节点,并保留了高质量的关系,最重要的是,相比于不变式的数据分块策略,PG-RAG 具有高达 2.64 的知识压缩率,可以有效减少无关信息的干扰。

89ac278fda5339d0fc6cc41b6d96236f.png

5.6 伪图检索影响分析

与直接使用原始查询相比,PGR 使用的 KPs 能更准确地反映查询意图,提高证据的召回率。此外,在矩阵结构上进行 DFS 的复杂度为 O(m+3n),优于传统 DFS 的复杂度 O(m×n),因为,树深度 n 通常很小,在 3~5 左右。

7c817cd974f31fceaa36766a64ae50b9.png

总结

本论文提出的伪图结构通过放松传统 KGs 中对于数据和关系的模式约束,旨在构建一个更加灵活和自适应的知识网络。它能够根据语境灵活划分数据,表征多样化的关系,形成一个更加全面、系统的知识索引,从而提高知识的组织和访问效率,支持复杂的推理和分析任务。

更多阅读

9d031e203ca803d9e627cf506db3ec0a.png

c49aff1845aa979664403a1e4529a2c7.png

9835d5d51c8ceaae3b815764ae80af8a.png

2c20bd1b521566c68fe02371baf255a7.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

e5e9f0dda3fa78a385892653d7bb8ffd.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

·

17fd3e14f0f9874ead599f97b74bcde8.jpeg

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

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

相关文章

微信公众号多域名回调系统V1.5 源码

这是一款基于ThinkPHP6.0开发的微信公众号多域名回调系统。本系统有如下功能: 微信公众号多域名回调功能:微信公众号后台默认只能授权2个网页域名,用本系统突破这个限制,用同一个公众号对接无限多个网站。网站后台支持回调域名白…

【网络安全学习】漏洞扫描:-03- Nikito与Wapiti漏洞扫描的使用

1️⃣ Nikto漏洞扫描 Nikto是一个开源的Web扫描评估程序,它可以对目标Web服务器进行快速而全面的检查,以发现各种潜在的安全问题和漏洞。 🅰️ 如何使用 ❓ nikto -Display 1234ep -h [域名或IP地址] -o nikto.html # -h参数:指…

用Nuitka打包 Python,效果竟如此惊人!

目录 为什么选择Nuitka? Nuitka的工作原理 Nuitka的工作流程大致如下: 安装Nuitka 实战案例 示例代码 打包程序 运行可执行文件 进阶技巧 优化选项 多文件项目 打包第三方库 使用Python开发一个程序后,将Python脚本打包成独立可执…

【踩坑】修复多GPU通信时all_reduce/broadcast时间不一致的问题

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 背景介绍 原因解释 问题修复 背景介绍 按照网上的说法,计时使用了torch.cuda.Event(enable_timingTrue)和torch.cuda.synchronize(…

windows下 Ubuntu安装docker保姆级教学!非常详细!

保姆级别windows下Ubuntu安装docker教程 卸载原有 Docker执行卸载旧版 docker 命令安装 Docker更新源安装相应的依赖包安装 Docker 镜像使用国内镜像安装安装完成后,对key进行验证安装稳定版的repository再次更新源安装 docker-ce测试是否安装成功更换 docker 源重启 Docker检…

GIT之git clone 时出现如下报错 ERROR

一:Github clone 时出现如下报错 ERROR: You‘re using an RSA key with SHA-1, which is no longer allowed 1.现象 git pull时(或git push, git clone等),出现如下问题。 2. 原因分析 原因是在2022年3月15日之后,github不再支持SHA-1的加密方式了。 3. 解决方案 将…

qmt量化交易策略小白学习笔记第45期【qmt编程之期货行情数据--如何获取日线行情、tick行情】

qmt编程之获取期货行情数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 获取日线行情数…

易支付宝塔一键部署项目 懒人专用包 制作

宝塔一键部署说明 https://www.bt.cn/bbs/thread-33063-1-1.html 1. auto_install.json {"php_ext":"fileinfo","chmod":[],"success_url":"install/?step3&jump1","php_versions":"80","db…

【论文速读】|对BusyBox进行模糊测试:利用大语言模型和崩溃重用挖掘嵌入式系统中的漏洞

本次分享论文:Fuzzing BusyBox: Leveraging LLM and Crash Reuse for Embedded Bug Unearthing 基本信息 原文作者:Asmita, Yaroslav Oliinyk, Michael Scott, Ryan Tsang, Chongzhou Fang, Houman Homayoun 作者单位:1. University of Ca…

GD32F303 低功耗模式要点

我们都知道,MCU有低功耗模式,比如GD32F303芯片,就有Sleep、Deepsleep和Standby三种模式。关于这三种模式的具体使用方法,小伙伴们可以参考《GD32F30x系列用户手册》。 今天我们来聊下几个低功耗模式要点。 1、进入低功耗模式后I…

uniapp 自定义页面顶部导航栏

效果图 1.移除原生导航栏 {"path": "pages/common/homePage/homePage","style": {"navigationBarTitleText": "","navigationStyle": "custom"} } 2.获取不同手机顶部自带 电量高度、信号、时间导航栏…

3D模型在电商行业的应用有哪些?

3D模型在电商行业的应用广泛且多样化,以下是几个主要的应用领域: 1、商品展示: 3D立体展示技术能够利用商品的3D模型进行全方位的展示,支持720旋转和任意缩放,使得消费者能够更直观地了解产品的外观、结构和特点。这…

LearnOpenGL - Android OpenGL ES 3.0 绘制纹理

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口LearnOpenGL 笔记 - 入门 04 你好,三角形OpenGL - 如何理解 VAO 与 VBO 之间的关系LearnOpenGL - Android OpenGL ES 3.0 绘制…

世界财富 500 强公司走向 Web3,加密开发者需求量大增

原文:https://www.coinbase.com/blog/the-state-of-crypto-the-fortune-500-moving-onchain 作者:Coinbase 编译:TinTinLand 美国顶级上市公司在链上的活动量正在突破历史。根据 Coinbase 委托 The Block 进行的研究,全球财富 …

在阿里云服务器Linux系统上从头到尾实现Webapp的部署(安装卸载JDK、安装Tomcat、安装配置MySQL)

输入yum list | grep jdk 选择 devel是软件包中的典型命名格式 devel表示这个包是开发工具相关的 里面包含内容是最完整的 x86表示cpu架构是x86_64 还有openjdk表示开源版本 输入yum install java-1.8.0-openjdk-devel.x86_64 开始下载 遇到问你 is this ok? 输入y表示ok 输…

Anthropic 的 Claude 3.5 Sonnet 在企业人工智能竞赛中胜过 OpenAI 和谷歌

全球领先的人工智能研究公司 Anthropic 宣布推出 Claude 3.5 Sonnet,这是一款集无与伦比的性能和成本效益于一身的开创性人工智能模型。克劳德模型系列的最新迭代产品将彻底改变企业人工智能的格局,以低于竞争对手的成本为企业提供最先进的功能。 Anthr…

Springboot拓展之整合邮件 JavaMail的使用与实操

邮件 电子邮件仍然是我们企业间交往的一种非常常见的方式 发送简单邮件 第一步首先导入坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.6.13</version&…

自学新标日第十六课(完结)

第十六课 单词 单词假名声调词义操作そうさ1操作&#xff0c;操纵機械きかい2&#xff0c;1机械&#xff0c;机器旅行会社りょこうがいしゃ4旅行社営業部えいぎょうぶ3营业部アイティー産業アイティーさんぎょう5it产业&#xff0c;信息技术产业製品せいひん0产品建築家けんち…

【Linux必备工具】自动化构建工具makefile的使用详解

目录 引言 Makefile 简介 依赖关系与依赖方法 make运行规则 依赖关系示例 依赖方法 Makefile 工作原理 示例代码 清理项目与伪目标 清理示例 .PHONY总是被执行 文章手稿&#xff1a; 文章手稿见文末~ 引言 项目构建时遇到的各种挑战如文件编译顺序、库链接、依赖…