SBERT实验详情

1.模型介绍

a.预训练模型:

    Electra-small 在180G中文数据下pre-trainning模型;

    使用Transformers加载"hfl/chinese-electra-180g-small-generator"语言模型。

b.模型结构:

  • A、B两个句子,分别过同一个Electra-small模型。
  • 分别得到句向量表示,Seq_A_vector、Seq_B_vector。
  • 两个向量进行拼接,[Seq_A_vector, Seq_B_vector],拼接成一个向量。
  • 接一层全链接(hidden_dims = 2048)。
  • 接输出层,即sigmoid到一维向量上。
  • 使用二元交叉熵求Loss。

模型结构:

    image.png

 2.训练方式

        使用Colab+transformers+tf2.0进行训练。

 3.数据准备

        数据为问句对;标签为相似(1),不想似(0)。

        训练集20w条,验证集2w,测试集3w。

 4.调参结果

参数详情:

max_seq_length = 32;learning_rate = 3e-5

a.batch_size

     epoches = 5

batch_size

8

16

32

64

128

loss

0.2892

0.2855

0.3350

0.3399

0.3498

accuracy

0.8797

0.8782

0.8551

0.8544

0.8507

b.epoch

batch_size = 16

epoch

5

7

10

loss

0.2855

0.2687

0.2700

accuracy

0.8782

0.8876

0.8863

c.模型目标函数  

epoch = 5;batch_size = 16

 

concat(u,v)

concat(u,v,|u-v|)

concat(u,v,u*v)

loss

0.2855

0.3320

0.3136

accuracy

0.8782

0.8605

0.8630

d.句向量的生成方式

epoch = 5;batch_size = 16;concat(u,v)

 

cls

mean

max

loss

0.2855

0.2792

0.3050

accuracy

0.8782

0.8837

0.8696

e.bert层选取

epoch = 5;batch_size = 16;concat(u,v);mean

bert层

-1

-2

-3

-1,-2

-1,-2,-3,-4

loss

0.2792

0.2587

0.2601

0.2764

0.2535

accuracy

0.8837

0.8940

0.8924

0.8843

0.8977

2.预训练模型

         更改预训练模型:

模型参数量准确率
hfl/chinese-electra-180g-small-generator4M0.8977
hfl/chinese-electra-180g-small-discriminator16M

0.9002

hfl/chinese-electra-180g-small-ex-generator 7.8M0.8975
hfl/chinese-electra-180g-small-ex-discriminator28.7M0.9061
hfl/chinese-electra-180g-base-discriminator114M0.9059
hfl/chinese-electra-180g-base-generator25M(565MGPU显存)0.9075
bert-base-chinese110M(1333MGPU显存)0.9110

        模型修改:

                 使用sentence-transformers库实现。

                 crossencoder(bert-base) : 0.9306%

                 biencoder(cosine):效果不佳

                 crossencoder的训练方式的准确率可以达到93%,优于之前的最优的91%;之前的模型使用损失函数为分类的交叉熵损失函数,而在相同的数据集标注下,使用cosine损失函数训练时相关系数结果为0.57左右,训练结果不佳。而该实现方式使用sentence-transformers库,使用cosine损失的biencoder训练方式与之前自己实现的结果相同。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
sbert-base-chinese-nli是一种基于中文的预训练模型,用于处理中文自然语言推理(Natural Language Inference)任务。该模型基于Sentence-BERT(SBERT)架构,在大规模的中文文本数据上进行了预训练。 SBERT模型是采用Transformer网络结构的句子嵌入模型,通过预训练将句子映射到一个高维空间中的向量表示。sbert-base-chinese-nli是其中的一个中文版本,被训练用于判断两个句子之间的关系,包括蕴含、中立和矛盾三种情况。 sbert-base-chinese-nli的输入是一对中文句子,输出是一个向量,表示这对句子之间的关系。该模型通过学习句子之间的语义信息和相似性,在句子级别上进行推理。 sbert-base-chinese-nli的应用非常广泛。例如,在问答系统中,可以使用这个模型判断用户提问和文档中的答案之间的相关程度。在文本分类任务中,可以使用该模型对文本进行分类。在信息检索领域,可以使用它来进行相似文档的匹配。 这个模型的好处是,它可以捕捉到句子之间更深层次的语义关系,而不仅仅是基于表面上的字词相似性。这使得它在处理含有歧义或隐含信息的句子时表现更好。 总结来说,sbert-base-chinese-nli是一个基于中文的预训练模型,用于处理中文自然语言推理任务。它通过学习句子之间的语义信息和相似性,可以判断句子之间的关系,并在问答系统、文本分类和信息检索等任务中有广泛应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值