一种针对结构化数值型数据生成文本的方法及装置与流程

文档序号:31533067发布日期:2022-09-16 21:15阅读:68来源:国知局
一种针对结构化数值型数据生成文本的方法及装置与流程

1.本发明涉及半导体制造技术领域,尤其涉及一种针对结构化数值型数据生成文本的方法及装置。


背景技术:

2.半导体制造过程中各个机台产生的数据对半导体的生产制造很重要,例如,当晶圆出现良率问题时,可以通过对各个机台产生的历史数据进行回溯分析,确定晶圆的缺陷和/或失效特征,以及缺陷和/或失效特征对应的根因,进而找到提升良率的方案,但是机台产生的数据为结构化数值型数据,需要较高的专业知识对结构化数值型数据进行分析,再结合过往经验才可判断出机台产生的结构化数值型数据披露的异常信息,这无疑增加了工作人员的工作量以及专业门槛。


技术实现要素:

3.本发明的实施例提供一种针对结构化数值型数据生成文本的方法及装置,将结构化数值型数据转化为更易于识别的文本数据,更好的揭示了半导体制造过程中的异常现象。
4.第一方面,本发明提供了一种针对结构化数值型数据生成文本的方法,包括:获取结构化数值数据,该结构化数值数据为半导体制造相关的数值序列;将数值序列输入训练完成的自然语言生成模型,得到数值序列对应的描述文本,描述文本描述了数值序列对应的异常信息。
5.本发明提供的针对结构化数值型数据生成文本的方法,将结构化数值型数据转化为更易于识别的文本数据,更好的揭示了半导体制造过程中的异常现象。
6.在一个可能的实现中,所述自然语言生成模型的架构为seq2seq的架构。
7.在一个可能的实现中,所述自然语言生成模型包括嵌入表示层、基于transformer的语言生成主干模型和指针生成网络;
8.所述将所述数值序列输入训练完成的自然语言生成模型,得到所述数值序列对应的描述文本,包括:
9.将所述数值序列输入所述嵌入表示层,输出所述数值序列的嵌入向量;
10.将所述数值序列的嵌入向量输入所述基于transformer的语言生成主干模型,输出词表概率分布和注意力分布,所述注意力分布表征所述数值序列中各个数值的位置概率分布,也可以说是,当前时间步待生成文本与所述数值序列各个位置的上下文向量之间的交互注意力特征;
11.将所述词表概率分布和注意力分布输入所述指针生成网络,输出所述数值序列对应的描述文本。
12.在另一个可能的实现中,所述基于transformer的语言生成主干模型包括编码器和解码器;
13.所述嵌入表示层的输出端与所述编码器的输入端连接,所述解码器的输出端与所述指针生成网络的输入端连接;
14.所述嵌入表示层为基于bilstm的时序数值嵌入模型。
15.在另一个可能的实现中,所述自然语言生成模型基于训练集训练得到,所述训练集包括多个训练样本对,所述训练样本对包括所述数值序列和所述数值序列对应的描述文本。
16.在另一个可能的实现中,所述数值序列对应的描述文本基于所述数值序列的异常数据段、规则模板、所述异常数据段对应的字段信息确定;
17.所述规则模板用于为所述异常数据段匹配对应的文本描述、所述异常数据段对应的字段信息包括异常数据段对应的时间信息、晶圆批次信息、晶圆编号信息、设备信息中的一种或多种。
18.在一个示例中,所述将所述数值序列输入训练完成的自然语言生成模型,得到所述数值序列对应的描述文本之前,还包括:
19.对所述数值序列进行预处理。
20.在另一个可能的实现中,所述对所述数值序列进行预处理,包括以下的一项或多项:
21.对所述数值序列进行清洗处理,以去除其中大于或等于第一预设阈值的数值和小于或等于第二预设阈值的数值,其中,所述第一预设阈值大于所述第二预设阈值;
22.对所述清洗处理后的数值序列进行标准化处理。
23.第二方面,本发明提供了一种,针对结构化数值型数据生成文本的装置,包括:
24.获取模块,被配置为,获取结构化数值数据,所述结构化数值数据为半导体圆制造相关的数值序列;
25.语言生成模块,被配置为,将所述数值序列输入训练完成的自然语言生成模型,得到所述数值序列对应的描述文本,所述描述文本描述了所述数值序列对应的异常信息。
26.第三方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和/或第二方面所述的方法。
27.第四方面,本发明还提供一种计算设备,包括存储器和处理器,所述存储器中存储有指令,当所述指令被处理器执行时,使得第一方面和/或第二方面所述的方法被实现。
28.第五方面,本发明提供一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括指令,当所述指令执行时,令计算机执行第一方面和/或第二方面所述的方法。
附图说明
29.图1为本发明实施例提供的一种针对结构化数值型数据生成文本的方法的应用场景示意图;
30.图2为本发明实施例提供的一种针对结构化数值型数据生成文本的方法流程图;
31.图3示出了data-to-text模型的推理过程以及训练过程示意图;
32.图4为一种预设的规则模板的示意图;
33.图5为示出了data-to-text模型的一种结构示意图;
34.图6为示出了基于bilstm的时序数值嵌入表示层的结构示意图;
35.图7为decoder block里的masked multihead attention子模块mask原理示意图;
36.图8为本发明实施例提供的另一种针对结构化数值型数据生成文本的流程图;
37.图9为本发明实施例提供的一种针对结构化数值型数据生成文本的装置的结构示意图;
38.图10为本发明实施例提供的计算设备的结构示意图。
具体实施方式
39.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
40.如前所述,由于半导体制造设备产生的数据为结构化的数值数据,而不是用户更易识别的文本数据,因此,需要专业人员对结构化数值数据进行数据分析,来发现其中包含的信息,进而发现半导体制造过程中存在的异常情况,这无疑增加了工作人员的工作量,以及专业门槛。
41.有鉴于此,本发明提出一种针对结构化数值型数据生成文本的方法,将半导体制造设备产生的数据为结构化数值数据,输入训练好的自然语言生成模型,进而得到其对应的描述文本,以更好的披露半导体制造过程中存在的异常情况,更好的辅助半导体良率分析工程师进行良率分析。
42.晶圆制造为半导体制造中的一种典型场景,下面以晶圆制造为例介绍本发明的具体方案。
43.图1示出了本发明实施例提供的一种针对结构化数值型数据生成文本的方法的应用场景示意图。如图1所示,将晶圆制造相关的数值序列,输入data-to-text模型(即自然语言生成模型)中,模型输出文本序列,该文本序列描述了数值序列对应的异常信息。
44.也就是说,data-to-text模型建立了晶圆制造相关的数值序列与描述文本之间的关系,通过将晶圆制造相关的数值序列data-to-text模型,即可得到晶圆制造相关的数值序列对应的描述文本。
45.data-to-text模型可部署于任意具有计算能力的计算设备中,例如,各种服务器设备,包括专用服务器计算机(例如个人计算机服务器、unix服务器、终端服务器)、刀片式服务器、大型计算机、服务器集群或任何其他适当的布置或组合;各种终端设备,包括各种类型的计算机设备,例如,便携式手持设备、通用计算机(例如个人计算机或膝上计算机)、工作站计算机、可穿戴设备等,设备20具体是何种的计算设备,本发明实施例不进行限定。
46.图2为本发明实施例提供的一种针对结构化数值型数据生成文本的方法流程图。该方法可以通过任何具有计算能力的装置、设备、平台或设备集群来执行。本发明对执行该方法的具体计算设备不做具体限定,可根据需要选择合适的计算设备执行。如图2所示,该针对结构化数值型数据生成文本的方法,至少包括步骤s201-s202。
47.在步骤s201中,获取结构化数值数据。
48.其中,结构化数值数据为晶圆制造相关的数值序列。
49.在一个示例中,晶圆制造相关的数值序列可以包括晶圆制造设备相关的数值序列,例如,晶圆制造设备(也可称之为机台)在生产中通过传感器取得的包含设备的状态的数据,例如包括但不限于:温度,湿度,压力,电压,电流等;以及晶圆制造设备的使用率等;
50.和/或,晶圆相关的数据,例如,晶圆在生产流程中通过缺陷检测得到的数据(例如晶圆缺陷数据);晶圆在生产流程中通过电学测试得到的数据(例如晶圆的失效类型数据,包括cpu区间失效、gup区间失效、存储区间失效等);晶圆的良率数据等纯数值型数据。
51.获取方式可以是多种,例如,可以是从半导体制造过程中的各机台的采集设备中直接获取,即采集各机台的实时数据的采集设备直接将采集到数据发送给设备10,或者,从数据库中调取获得第一类数据,该数据库存储有半导体制造过程中各机台产生的结构化数值数据,或者,通过接收用户的输入获取等。
52.可选的,晶圆制造设备产生的数值序列可以是spc(statistical process control,统计过程控制)类型的数据,也即spc时序数值数据。
53.本领域技术人员可以理解的是,spc是一种借助数理统计方法的过程控制工具。它对生产过程进行分析评价,根据反馈信息及时发现系统性因素出现的征兆,并采取措施消除其影响,使过程维持在仅受随机性因素影响的受控状态,以达到控制质量的目的。利用统计的方法来监控过程的状态,确定生产过程在管制的状态下,以降低产品品质的变异。半导体制造过程中设备产生的数据即为spc类型的数据,目前是工程师把这类数据通过spc工具,即使用统计学方法进行分析,然后把分析的结果形成缺陷分析、良率提升的报告文档。
54.在步骤s202中,将数值序列输入训练完成的自然语言生成模型,得到数值序列对应的描述文本,描述文本描述了数值序列对应的异常信息。
55.其中,自然语言生成模型基于训练集训练得到,训练集包括多个训练样本对,每个训练样本对包括数值序列和数值序列对应的描述文本。
56.训练集可以通过多种方式获取,例如,可以通过从工程师经验文档中提取获得,工程师经验文档中记录有晶圆制造设备产生的历史spc时序数值数据,以及对spc时序数值进行的评论文本,从工程师文档中提取得到多条spc时序数值数据,以及spc时序数值对应的评论文本,多条spc时序数值数据和其对应的评论文本即构成了训练集。或者,通过获取多个晶圆制造设备产生的历史spc时序数值数据,再利用预设的规则模板为spc时序数值数据中的异常数据段匹配对应的文本,以及异常数据段对应的字段信息以确定spc时序数值数据对应的描述文本,其中,预设的规则模板用于为异常数据段匹配对应的文本描述、异常数据段对应的字段信息包括异常数据段对应的时间信息、晶圆批次信息、晶圆编号信息、设备信息中的一种或多种。
57.图3示出了data-to-text模型的推理过程以及训练过程。如图3所示,将spc时序数值数据输入训练好的data-to-text模型,得到该spc时序数值数据对应的描述文本,也即更易于识别的自然语言句子。
58.data-to-text模型的训练集可以基于历史spc时序数值数据以及预设的规则模板匹配得到spc时序数值数据的异常数据段对应的文本描述,然后根据检测出异常数据段在spc时序数值数据中的位置,也即检出异常点在序列中的下标,根据下标,查询原始数据,取得异常数据段的额外字段信息,例如可以包括:晶圆(wafer)的制造时间信息、晶圆批次(lot)信息、晶圆编号信息、晶圆测试(test)时间信息、设备(tool)信息等,然后根据字段信息和异常数据段的下标以及规则,按照特定模板拼接成句子,例如,特定模板为:{}时至{}时,lot_id={},wafer_id={}在设备{}进行{}检查时观测到{}现象,这可能指向{}问题。该句子和spc时序数值数据即构成一个训练样本对。
59.也即将通过预设的规则模板匹配到的异常数据段的描述文本、下标的字段信息(晶圆(wafer)的制造时间信息、晶圆批次(lot)信息、晶圆编号信息、晶圆测试(test)时间信息、设备(tool)信息等)、异常数据段填入特定模板中的{}处,即获取得到了spc时序数值数据对应的句子。
60.图4示出了一种预设的规则模板。该规则模板中包括了多个异常判断条件和各个异常判断条件对应的异常现象描述;在多个异常判断条件中,确定异常数据序列所符合的目标异常判断条件;获取目标异常判断条件对应的异常现象描述,作为描述文本。
61.在一种实现中,多个异常判断条件和各个异常判断条件对应的异常现象描述可以参见3所示。当数值序列的异常数据序列符合“1pointis outside the control limits”即“一点落在a区以外”则该数值序列对应的异常现象描述为“a large shift”即“有一个大的偏离”。也就是说,该数值序列的异常数据序列对应的描述文本为“a large shift”。
62.规则模板可以通过编程实现模板,从而得到对异常数据描述的文本。示例性的,一种规则模板的编程实现如下所示:
63.if type==1:
64.phenomenon="a large shift."#有n个点超出ucl或lcl
65.elif type==2:
66.phenomenon="a small sustained shift on the upper side."#有n个点在中线上侧
67.elif type==3:
68.phenomenon="a small sustained shift on the lower side."#有n个点在中线下侧
69.elif type==4:
70.phenomenon="a trend of drift up."#n个点连续上升
71.elif type==5:
72.phenomenon="a trend of drift down."#n个点连续下降
73.elif type==6:
74.phenomenon="a non-random systematic variation."#n个点间替上升下降
75.elif type==7:
76.phenomenon="a medium shift on the upper side."#n1个点中有n个点在中线的上侧zone a或超出上侧zone a
77.elif type==8:
78.phenomenon="a medium shift on the lower side."#n1个点中有n个点在中线的下侧zone a或超出下侧zone a
79.elif type==9:
80.phenomenon="a small shift on the upper side."#n1个点中有n个点在中线的上侧zone b或超出上侧zone b
81.elif type==10:
82.phenomenon="a small shift on the lower side."#n1个点中有n个点在中线的下侧zone b或超出下侧zone b
83.elif type==11:
84.phenomenon="a stratification problem."#连续n个点在zone c
85.elif type==12:
86.phenomenon="a mixture pattern."#连续n个点不在zone c
87.在一个示例中,data-to-text模型的模型架构可以为seq2seq架构。seq2seq架构包括编码器(encoder)和解码器(decoder)。其中,encoder采用transformer,编码方式采用单值mlp映射,保留一定的数值特征,或者其他编码方式突出序列的数值特征。decoder部分先采用多层lstm,并引入copy机制,从decoder输出即为数值序列对应的文本。
88.在另一个示例中,data-to-text模型同样采用seq2seq架构,包括嵌入表示层、基于transformer的语言生成主干模型和指针生成网络;则将数值序列输入训练完成的自然语言生成模型,得到数值序列对应的描述文本,包括:将数值序列输入嵌入表示层,输出数值序列的嵌入向量;将数值序列的嵌入向量输入基于transformer的语言生成主干模型,输出词表概率分布和注意力分布,注意力分布表征数值序列中各个数值的位置概率分布,也可以说是,当前时间步待生成文本与所述数值序列各个位置的上下文向量之间的交互注意力特征;将词表概率分布和注意力分布输入指针生成网络,输出数值序列对应的描述文本。
89.可选的,基于transformer的语言生成主干模型包括编码器和解码器;嵌入表示层的输出端与编码器的输入端连接,解码器的输出端与指针生成网络的输入端连接;嵌入表示层为基于bilstm的时序数值嵌入模型。
90.图5示出了data-to-text模型的一种结构示意图。如图5所示,data-to-text模型由embedding层、encoder端、decoder端、pointer generator层组成。
91.模型编码端的原始输入为一串数值序列,数值需要进行向量化表示后才能进入后续流程,故首先经过embedding层即数值嵌入层形成编码向量。随后进入由多个编码层堆叠构成的编码端,这些编码层学习序列各个位置的相互注意力特征,最终输出序列的上下文编码向量序列。
92.其中,embedding层为基于bilstm的时序数值嵌入表示层,结构如图6所示。
93.解码端原始输入为工程师针对该数值序列所撰写的评论文本,文本经过词嵌入编码后进入由多个解码层堆叠构成的解码端,每个解码层首先会在解码器自注意力子模块学习文本用词之间的语义特征,随后会在编码器-解码器交互注意力子模块将编码器的输出作为输入与本层解码层的自注意力子模块的输出一同计算交叉注意力,学习文本与编码端数值序列上下文向量之间的交互注意力特征,这个过程循环进行直到解码器的最后一层,得到解码端输出。
94.解码端最终输出和解码端最后一层的编码器-解码器交互注意力将被输入到指针生成网络中,该网络将计算生成概率、词表分布和注意力分布,并据此得到最终分布,由最终分布决定该时间步生成或是复制的内容。
95.解码器层与编码器层大部分结构一致,区别在于解码器在编码器层的结构之前加入了遮盖的多头注意力层(masked multi-head attention),与普通的多头注意力层不同的是,每个位置计算注意力只与其前面的位置有关,将其后面的位置遮盖起来,不参与运算,使得解码步骤变成了类似于rnn的循环解码,只有在接受了上一步的解码结果后才能进行本步的解码,如图7所示。
96.在另一个示例中,本发明实施例提供的一种针对结构化数值型数据生成文本的方法还包括在步骤s202之前,对晶圆制造设备产生的数值序列进行预处理的预处理步骤,以及在步骤s202之后的,对data-to-text模型输出的文本进行处理的步骤(参见图8所示)。
97.例如,对数值序列进行预处理的步骤可以包括对数值序列进行清洗处理,以去除其中大于或等于第一预设阈值的数值和小于或等于第二预设阈值的数值,其中第一预设阈值大于第二预设阈值;和/或,对数值序列进行标准化处理。
98.由于数值序列中可能存在远高于正常水平的一些极大的数值或远低于正常水平的一些极小值,这些数值严重影响了wafer(晶圆)的平均值,故将其剔除后再求平均值,也就是对数值序列进行清洗处理,其中的预设阈值可以根据实际情况进行设定,本发明的实施例对预设阈值的取值不进行限定。也就是说,通过数据清洗处理,清洗掉数值序列中的一些偏离正常水平的一些极大值和极小值,以利于获得晶圆的平均值。
99.由于不同的spc数值范围不一(比如ucl、lcl不一样),模型处理序列需要同样的范围,所以需要对不同的spc数值序列做相应的放缩使之纳入到同样的范围中,也就是对数值序列进行标准化处理,采用的方式是:
100.1、对去除离群点的同类型spc数据(也就是清洗处理后的数值序列)计算均值μ和标准差σ;
101.2、x’[i]=(x[i]-μ)/σ(即z-score标准化);
[0102]
3、ucl=μ+3σ;
[0103]
4、lcl=μ-3σ;
[0104]
5、这样处理后的数值序列,超过ucl的值将》3,小于lcl的值将《-3,也就是说,spc数据的ucl和lcl限定的范围将变为[-3,3]。
[0105]
本领域技术人员可以理解的是,ucl的含义为,特性值之规格上限,即产品特性大于ucl在工程上将造成不合格;lcl的含义为,特性值之规格下限,即产品特性小于lcl在工程上将造成不合格。
[0106]
对data-to-text模型输出的文本进行处理的步骤,包括将模型输出的文本数据进行进一步语言加工,以使最后输出的文本更加的通顺易读。
[0107]
在一个示例中,上述方法还可以包括,基于描述文本,进行知识抽取,用于形成与晶圆制造相关的目标知识图谱,该目标知识图谱可以用于晶圆制造相关的自动推理,例如根据晶圆的spc数据即可推理出该晶圆的缺陷、失效类别、缺陷/失效类别的根因、以及对应的解决该根因的决策以提升晶圆的良率中的一种或多种。
[0108]
与前述方法实施例基于相同的构思,本发明实施例中还提供了一种针对结构化数值型数据生成文本的装置900,该针对结构化数值型数据生成文本的装置900包括用以实现图2-8所示的方法中的各个步骤的单元或模块。
[0109]
图9为本发明实施例提供的一种针对结构化数值型数据生成文本的装置的结构示意图。如图9所示,该针对结构化数值型数据生成文本的装置800至少包括:
[0110]
获取模块901,被配置为,获取结构化数值数据,所述结构化数值数据为晶圆制造相关的数值序列;
[0111]
语言生成模块902,被配置为,将所述数值序列输入训练完成的自然语言生成模型,得到所述数值序列对应的描述文本,所述描述文本描述了所述数值序列对应的异常信
息。
[0112]
根据本发明实施例提供的针对结构化数值型数据生成文本的装置900可对应于执行本发明实施例中描述的方法,并且一种针对结构化数值型数据生成文本的装置900中的各个模块的上述和其它操作和/或功能分别为了实现图2-8中的各个方法的相应流程,具体实现可参见上文描述,为了简洁,在此不再赘述。
[0113]
本发明实施例还提供一种计算设备,包括至少一个处理器、存储器和通信接口,所述处理器用于执行图2-8所述的方法。该计算设备可以为服务器或终端设备。
[0114]
图10为本发明实施例提供的计算设备的结构示意图。
[0115]
如图10所示,所述计算设备1000包括至少一个处理器1001、存储器1002、通信接口和1003。其中,处理器1001和存储器1002和通信接口1003通信连接,可以通过无线或有线等方式实现通信。该通信接口1003用于接收用户指令或采集设备发送的信息;存储器1002存储有计算机指令,处理器1001执行该计算机指令,执行前述方法实施例中的方法。
[0116]
应理解,在本发明实施例中,该处理器1001可以是中央处理单元cpu,该处理器1001还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
[0117]
该存储器1002可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1002还可以包括非易失性随机存取存储器。
[0118]
该存储器1002可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data date sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0119]
应理解,根据本发明实施例的计算设备1000可以执行实现本发明实施例中图2-8所示方法,该方法实现的详细描述参见上文,为了简洁,在此不再赘述。
[0120]
本发明的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机指令在被处理器执行时,使得上文提及的针对结构化数值型数据生成文本的方法被实现。
[0121]
本发明的实施例提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括指令,当该指令执行时,令计算机执行上文提及的针对结构化数值型数据生成文本的方法。
[0122]
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清
楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0123]
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0124]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1