【论文复现】ChatGPT多模态命名实体识别
📝个人主页🌹:Eternity._
🌹🌹期待您的关注 🌹🌹
❀ChatGPT
- ChatGPT辅助细化知识增强!
- 1. 研究背景
- 2. 模型结构和代码
- 3. 任务流程
- 第一阶段:辅助精炼知识启发式生成
- 第二阶段:基于辅助精炼知识的实体预测
- 4. 数据集介绍
- 5. 性能展示
- 6. 实现过程
- 7. 运行过程
ChatGPT辅助细化知识增强!
多模态命名实体识别(MNER)技术近期备受瞩目。随着社交媒体上涌现出海量由图像与文本交织而成的非结构化内容,这些帖子展现出了社交媒体特有的属性,诸如言简意赅及不拘一格的表达方式。这些独特之处,无疑给传统的命名实体识别(NER)手段带来了前所未有的挑战。
在本文的探讨中,我构思了一个双阶段架构,其核心在于将ChatGPT作为隐性的知识宝库,并激发其潜力,以启发式的方式产生辅助性的知识,从而助力实体预测的精准度更上一层楼。具体而言,该架构中融入了一个多模态相似样例感知组件,该组件能够从预设的少量人工样本中精挑细选,筛选出恰当的样例。随后,这些样例将被巧妙地嵌入到专为MNER设计的格式化提示模板之中,进而引导ChatGPT生成更为精细的辅助知识。最终,这些宝贵的知识将与原始文本融合,一并输入至下游模型,进行更为深入的加工处理。
【注】 文章中所用到的数据集,都经过预处理的数据集文件(.txt),代码和数据集都放在了附件中,感兴趣的小伙伴可以进行下载,谢谢支持!
1. 研究背景
社交媒体平台上的多模态命名实体识别(MNER)任务,其核心在于借助图像信息来强化文本实体的预测能力。当前的研究焦点大多集中在如何最大限度地挖掘和利用与文本相关的图像数据,或是如何将外部知识库中的显式知识融入其中。然而,这些研究路径要么未能充分意识到为模型引入外部知识的重要性,要么在知识检索过程中遭遇了信息冗余的难题。
本文所涉及的所有资源的获取方式:这里
2. 模型结构和代码
我的模型设计包含两个核心阶段。在首个阶段,即辅助细化知识的生成过程中,我运用了一组精心挑选的预定义人工样本,并借助多模态相似示例感知模块来精准筛选相关性高的实例。随后,这些精心挑选的示例被巧妙地融入格式规范的提示中,以此强化给予ChatGPT的启发式信息,从而提炼出更为精确的知识。进入第二个阶段,即基于辅助知识的实体预测阶段,我将原始文本与ChatGPT所产出的知识信息加以整合。这一整合后的输入随后被送入基于转换器的编码器,以生成相应的token表示。最终,这些表示被进一步传递给线性链条件随机场层,用以预测原始文本序列的概率分布。
3. 任务流程
1. 任务公式化
将MNER任务视为一个序列标注任务。给定一个包含n个词元的句子
T= t 1 t_1 t1…, t n t_n tn及其对应的图像I,MNER的目标是定位并分类句中提到的命名实体,生成标签序列y= y 1 y_1 y1…, y n y_n yn,其中 ( y i ∈ Y (y_i \in Y (yi∈Y) 是使用BIO2标注体系的预定义语义类别。
2. 上下文学习
GPT-3及其后续模型ChatGPT(以下简称GPT)是基于大量数据集预训练的自回归语言模型。在推理过程中,上下文少样本学习通过在冻结的GPT模型上执行文本序列生成任务的方式来完成新的下游任务。具体来说,给定一个测试输入x,其目标y基于格式化的提示p(h,C,x)作为条件进行预测,其中h指的是描述任务的提示头,C= c 1 c_1 c1…, c n c_n cn是n个上下文示例构成的上下文。所有的h、C、x、y均为文本序列,目标y= y 1 y_1 y1…, y L y_L yL,是长度为L的文本序列。在每一步解码过程中,我们有: y l = arg max y l p LLM ( y l ∣ p , y < l ) y_l = \arg\max_{y_l} p_{\text{LLM}}(y_l \mid p, y_{<l}) yl=argylmaxpLLM(yl∣p,y<l)
其中,LLM代表预训练的大型语言模型的权重,这些权重在新任务中是冻结的。每个上下文示例
c i c_i ci=( x i x_i xi, y i y_i yi)由任务的输入-目标对构成,这些示例可以手动构建或从训练集中采样。
虽然GPT-4可以接受多模态信息输入,但这一功能仅处于内部测试阶段,尚未公开使用。此外,与ChatGPT相比,GPT-4的成本更高,API请求速度较慢。为了提高可复现性,我们仍然选择ChatGPT作为主要的研究对象,并且提供的这一范式也可以用于GPT-4。
为了使ChatGPT能够完成图文多模态任务,使用了先进的多模态预训练模型将图像转换为图像说明。最后将测试输入x设计为以下模板:
其中,t、p和q 代表特定的测试输入。\n
表示模板中的换行符。同样,每个上下文示例
c i c_i ci的定义也遵循以下类似模板:
其中, t i t_i ti, p i p_i pi,q, a i a_i ai指的是从预定义的人工样本中检索的文本-图像问题-答案四元组。 MNER 的完整提示模板由固定提示头、一些上下文示例和测试输入组成,被馈送到 ChatGPT 以进行辅助知识生成。
第一阶段:辅助精炼知识启发式生成
人工精选的上下文样本
在提升ChatGPT于MNER任务中的效能方面,关键在于精心挑选恰当的上下文样本。获取那些准确标注且能精准体现数据集标注风格,并能为辅助知识扩展提供渠道的样本,是一项艰巨的任务。直接从原始数据集中筛选这些样本并不现实。为此,我采取了随机抽样的策略,从训练集中审慎地选取了一部分样本进行人工标注。针对Twitter-2017数据集,我随机抽取了200个训练样本进行细致标注;而对于Twitter-2015数据集,则标注了120个样本。标注流程包含两大环节:首先是识别句子内的命名实体,其次是结合图像、文本内容及相关知识,给出全面详尽的阐释。在标注实践中,标注者需从人类视角出发,准确判断并解析样本。对于图像与文本相关联的样本,我们明确指出图像突出了文本中的哪些实体;对于图像与文本无关的样本,则直接表明图像描述与文本内容无直接联系。这一精细的标注流程为ChatGPT提供了明确指引,助力其生成高度相关且富有价值的回应。
多模态相似样本智能筛选模块
鉴于GPT的少样本学习能力在很大程度上受上下文样本选择的影响,我研发了多模态相似样本智能筛选(MSEA)模块,旨在精准挑选适合的上下文样本。MNER作为一项典型的多模态任务,其预测精准度依赖于文本与视觉信息的深度融合。因此,我们将文本与图像的融合特征作为衡量样本相似性的基准。而这种多模态融合特征可源自前期的多模态命名实体识别(MNER)模型。在将MNER数据集D和预定义的人工样本G表示为:
D = { ( t i , p i , y i ) } i = 1 M D = \{(t_i, p_i, y_i)\}_{i=1}^M D={(ti,pi,yi)}i=1M
G = { ( t j , p j , y j ) } j = 1 M G = \{(t_j, p_j, y_j)\}_{j=1}^M G={(tj,pj,yj)}j=1M
其中, t j t_j tj, p j p_j pj, y j y_j yj,分别指代文本、图像和真实标签。基于D训练的基础MNER模型
M主要由骨干编码器 M b M_b Mb和CRF解码器 M c M_c Mc组成。输入的多模态图像-文本对通过编码器
M b M_b Mb编码,得到多模态融合特征H:
H = M b ( t , p ) H = M_b(t, p) H=Mb(t,p)
在以往的研究中,经过交叉注意力投射到高维潜在空间的融合特征H会直接输入到解码层,以进行结果预测。我们的模型选择H作为相似示例的判断依据,因为在高维潜在空间中相近的示例更有可能具有相同的映射方式和实体类型。计算测试输入与每个预定义人工样本的融合特征H的余弦相似度。然后,选择前N个相似的预定义人工样本作为上下文示例,以启发ChatGPT生成辅助的精炼知识:
( I = arg max j ∈ { 1 , 2 , . . . , N } ∥ H ∥ 2 ∥ H j ∥ 2 H T H j (I = \arg\max_{{j \in \{1, 2, ..., N\}}} \frac{\|H\|_2 \|H_j\|_2}{H^T H_j} (I=argmaxj∈{1,2,...,N}HTHj∥H∥2∥Hj∥2)
I 是G中前N个相似样本的索引集。上下文示例C定义如下:
C = { ( t j , p j , y j ) ∣ j ∈ I } C = \{(t_j, p_j, y_j) \mid j \in I\} C={(tj,pj,yj)∣j∈I}
为了高效实现相似示例的感知,所有的多模态融合特征可以提前计算并存储。
3. 启发式增强提示生成
在获得上下文示例C之后,构建了一个完整的启发式增强提示,以利用ChatGPT在MNER任务中的少样本学习能力。提示头、一组上下文示例和测试输入共同构成了一个完整的提示。提示头根据任务需求以自然语言描述MNER任务。鉴于输入的图像和文本不一定总是直接相关,鼓励ChatGPT发挥其自主判断力。上下文示例由MSEA模块的结果 C = c 1 , ⋯ , c n C = c_1, \cdots, c_n C=c1,⋯,cn 构建。对于测试输入,答案部分留空,由ChatGPT生成。
第二阶段:基于辅助精炼知识的实体预测
定义经过上下文学习后由ChatGPT生成的辅助知识为Z = {z_1, ···, zm},其中m是Z的长度。将原始文本的长度。将原始文本T = {t_1, ···, t_n}与获得的辅助精炼知识Z拼接为与获得的辅助精炼知识Z拼接为[T; Z]$,并将其输入基于Transformer的编码器:
h 1 , ⋯ , h n , ⋯ , h n + m = embed ( [ T ; Z ] ) h_1, \cdots, h_n, \cdots, h_{n+m} = \text{embed}([T; Z]) h1,⋯,hn,⋯,hn+m=embed([T;Z])
由于Transformer编码器中使用的注意力机制,得到的词元表示 H = ( h 1 , ⋯ , h n ) H = (h_1, \cdots, h_n) H=(h1,⋯,hn)包含了来自辅助知识Z的相关线索。与先前的研究类似,将H输入标准的线性链条件随机场层,定义给定输入句子T的标签序列y的概率为:
P ( y ∣ T , Z ) = ∑ y ′ ∈ Y ∏ i = 1 n ψ ( y i − 1 ′ , y i ′ , h i ) ∏ i = 1 n ψ ( y i − 1 , y i , h i ) P(y \mid T, Z) = \frac{\sum_{{y' \in Y}} \prod_{{i=1}}^{n} \psi(y'_{i-1}, y'_i, h_i)}{\prod_{{i=1}}^{n} \psi(y_{i-1}, y_i, h_i)} P(y∣T,Z)=∏i=1nψ(yi−1,yi,hi)∑y′∈Y∏i=1nψ(yi−1′,yi′,hi)
其中 ( ψ ( y i − 1 , y i , h i ) (\psi(y_{i-1}, y_i, h_i) (ψ(yi−1,yi,hi))和 ( ψ ( y i − 1 ′ , y i ′ , h i ) (\psi(y'_{i-1}, y'_i, h_i) (ψ(yi−1′,yi′,hi))是势函数。最后,使用负对数似然作为带有真实标签 y∗的输入序列的损失函数:
L NLL ( θ ) = − log P θ ( y ∗ ∣ T , Z ) L_{\text{NLL}}(\theta) = -\log P_\theta(y^* \mid T, Z) LNLL(θ)=−logPθ(y∗∣T,Z)
4. 数据集介绍
我们在两个公共 MNER 数据集上进行了实验:Twitter-2015和 Twitter-2017。这两个数据集都是从Twitter平台上收集的,包含了文本和图像的配对信息,主要用于研究在社交媒体短文本场景下的多模态命名实体识别和情感分析等任务。
1. Twitter-2015: 推文中的文本部分被手动标注了命名实体,并使用BIO2(Beginning- Inside-Outside)标注方案对命名实体进行分类。实体类别包括人物(Person)、组织(Organization)、地点(Location)等。3373/723/723(train/development/test)
2. Twitter-2017: 相比于Twitter-2015,Twitter-2017数据集的规模更大,包含了更多的推文样本。Twitter-2017不仅扩大了数据规模,还提高了标注的多样性和复杂性,推文中的命名实体更加丰富。此外,推文配对的图像信息在识别命名实体方面也具有重要作用,尤其是那些无法通过文本直接判断的实体。4000/1000/3257(train/development/test)
5. 性能展示
1. Twitter-2015:
Model | Pre | Rec | F1 |
---|---|---|---|
UMT | 71.67 | 75.23 | 73.41 |
UMGF | 74.49 | 75.21 | 74.85 |
MNER-QG | 77.76 | 72.31 | 74.94 |
R-GCN | 73.95 | 76.18 | 75.00 |
CAT-MNER | 78.75 | 78.69 | 78.72 |
Proposed | 79.21 | 79.45 | 79.33 |
2. Twitter-2017:
Model | Pre | Rec | F1 |
---|---|---|---|
UMT | 85.28 | 85.34 | 85.31 |
UMGF | 86.54 | 84.50 | 85.51 |
MNER-QG | 88.57 | 85.96 | 87.25 |
R-GCN | 86.72 | 87.53 | 87.11 |
CAT-MNER | 90.27 | 90.67 | 90.47 |
Proposed | 90.86 | 92.01 | 91.43 |
6. 实现过程
在下载附件并准备好数据集并调试代码后,进行下面的步骤,附件已经调通并修改,可直接正常运行;
1. 环境要求
python == 3.7
torch == 1.13.1
transformers == 4.30.2
modelscope == 1.7.1
2. 我们的项目基于AdaSeq, AdaSeq项目基于Python版本>= 3.7和PyTorch版本>= 1.8。
3. 下载
git clone https://github.com/modelscope/adaseq.git
cd adaseq
pip install -r requirements.txt -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
4. 将我们的附件文件夹复制到/adaseq/examples/
-adaseq
---|examples
-----|ER
-------|twitter-15-txt.yaml
-------|twitter-17-txt.yaml
5. 用我们的adaseq文件夹替换原来的adaseq文件夹
-adaseq
---|.git
---|.github
---|adaseq <-- (Use our adaseq replace it)
---|docs
---|examples
---|scripts
---|tests
---|tools
6. 训练模型
python -m scripts.train -c examples/ER/twitter-15.yamlpython -m scripts.train -c examples/ER/twitter-17.yaml
7. 运行过程
-
训练过程
-
最终结果
编程未来,从这里启航!解锁无限创意,让每一行代码都成为你通往成功的阶梯,帮助更多人欣赏与学习!
更多内容详见:这里
相关文章:

【论文复现】ChatGPT多模态命名实体识别
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ChatGPT ChatGPT辅助细化知识增强!1. 研究背景2. 模型结构和代码3. 任务流程第一阶段:辅助精炼知识启发式生成第二阶段…...

管理 Elasticsearch 变得更容易了,非常容易!
作者:来自 Elastic Ken Exner Elasticsearch 用户,我们听到了你的心声。管理 Elasticsearch 有时会变得很复杂,面临的挑战包括性能调整、问题检测和资源优化。我们一直致力于简化你的体验。今天,我们宣布了自收购 Opster 以来的一…...
SynchronousQueueworkQueue.offer() 和 poll() 方法的超时控制及线程池的讨论
2024.11.12 11:26 问:workQueue.offer(command) 这里 workQueue.poll(keepAlive, TimeUnit.NANOSECONDS) : 这里的 workQueue.offer(command) 没有超时时间控制? Claude 3.5 Haiku 非常好的问题!我来详细解释 offer() 和 poll() 方法的区别…...
自动驾驶---“火热的”时空联合规划
1 背景 早期的不少规划算法都是横纵分离的(比如Apollo),先求解path之后,依赖path的结果再进行speed的求解。这种横纵解耦的规划方式具有以下特点: 相对较为简单,计算量通常较小,容易实现实时性要求。但是由于分别规划横向和纵向运动,可能会忽略两者之间的耦合关系,导致…...
命令行工具进阶指南
🚀 命令行工具进阶指南:Git、Shell与效率工具的进阶之路 掌握命令行工具,让你的开发效率突飞猛进。本文将深入探讨 Git 高级技巧、Shell 脚本自动化以及各种效率倍增的 CLI 工具。 📑 目录 Git 高级技巧与工作流Shell 脚本自动化…...

扫雷游戏代码分享(c基础)
hi , I am 36. 代码来之不易👍👍👍 创建两个.c 一个.h 1:test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…...

基于vue框架的的社区居民服务管理系统8w86o(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:居民,楼房信息,报修信息,缴费信息,维修进度 开题报告内容 基于Vue框架的社区居民服务管理系统开题报告 一、研究背景与意义 随着城市化进程的加速,社区居民数量激增,社区管理面临着前所未有的挑战。传统的社区…...
一分钟快速熟悉makedown
Markdown 是一种轻量级标记语言,广泛用于编写文档、撰写博客、创建 README 文件等。它的语法简单易学,能够快速生成格式化的文本。以下是 Markdown 的一些常用语法和示例: 1. 标题 Markdown 支持六级标题,使用 # 符号表示。 # …...
P8649 [蓝桥杯 2017 省 B] k 倍区间:同余,前缀和,组合数,区间个数
题目描述 给定一个长度为 NN 的数列,A1,A2,⋯ANA1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai1,⋯Aj(i≤j)Ai,Ai1,⋯Aj(i≤j) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 KK 倍区间。 你能求出数列中总共有多少个 KK 倍区…...

产业与学术相互促进,2024年OEG海上能源博览会助力全球能源可持续发展
10月30日至31日,2024年OEG海上能源全产业链博览会在上海跨国采购会展中心成功举办。本次大会系全球海洋工程与高端装备领域的年度国际交流盛会——第十一届全球FPSO&FLNG&FSRU大会,同期举办第七届亚洲海洋风能大会。本次大会暨博览会由上海船舶工…...

【GDB调试】智慧中控项目的调试
一.在执行的智慧中控项目的时候,喊语音模块唤醒(小欣小欣)的时候遇到了:Segmentation fault 段错误 二.遇到段错误,一般是以下情况: “Segmentation fault”(段错误)是Linux系统中常见的程序异常终止信号。…...

《一本书讲透 Elasticsearch》京东评论采集+存储+可视化全 AI 实现
经常和出版社编辑老师交流读者的反馈。毕竟是小众书籍,豆瓣评分的人并不多。 而京东作为主要读书销售渠道,非常有必要整合一下京东读者评论,看看读者们都说了什么,以便后续的改进! 一条条的翻看非常不方便,…...
uniapp中webview全屏不显示导航栏解决方案
uniapp官网文档地址:https://uniapp.dcloud.net.cn/api/window/window.html#getappwebview <template><view class"index"><u-navbar :is-back"true" title"标题"" :title-width"650"></u-navb…...
Dear ImGui 使用VS2022编译为静态库
Dear ImGui 是一个无臃肿的 C++ 图形用户界面库。它输出优化的顶点缓冲区,您可以在支持 3D 管道的应用程序中随时渲染这些缓冲区。它速度快、可移植、与渲染器无关且自成一体(无外部依赖项)。 Dear ImGui 旨在实现快速迭代,并让程序员能够创建内容创建工具和可视化/调试工具…...

5G 现网信令参数学习(3) - RrcSetup(1)
目录 1. rlc-BearerToAddModList 1.1 rlc-Config 1.1.1 ul-AM-RLC 1.1.2 dl-AM-RLC 1.2 mac-LogicalChannelConfig 2. mac-CellGroupConfig 2.1 schedulingRequestConfig 2.2 bsr-Config 2.3 tag-Config 2.4 phr-Config 2.5 skipUplinkTxDynamic 3. physicalCellG…...
PHP实现身份证OCR识别API接口
随着社会的发展,身份认证需求不断增长,这与身份证OCR识别技术的发展密切相关。在当今社会,各个领域都需要进行身份认证。传统的人工手动录入身份证信息费时费力,速度慢且容易出错,体验不佳。而身份证 OCR 识别技术通过…...

关于 Qt+Osg中使用背景图HUD受到后绘制几何图形顶点颜色影响 的解决方法
若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/143607816 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、Op…...

[CKS] K8S AppArmor Set Up
最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] …...

redis笔记-数据结构
zset zset一方面它是一个 set,保证了内部value 的唯一性,另一方面它可以给每个 value 赋予一个 score,代表这个 value 的排序权重。 zset的底层是由字典和跳表实现。 字典主要用来存储value和score的对应关系。跳表这个数据结构主要用来提…...
webpack的常见配置
Webpack 是一个现代 JavaScript 应用的模块打包工具,用于将项目中的多个文件和依赖打包成浏览器可以识别的文件,通常是一个或多个 JavaScript、CSS 或其他静态资源的 bundle(将多个模块或文件合并成一个或几个文件的过程,这些合并…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...