System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ANN和BERT的语义检索模型建立方法技术_技高网

一种基于ANN和BERT的语义检索模型建立方法技术

技术编号:39935717 阅读:3 留言:0更新日期:2024-01-08 22:10
一种基于ANN和BERT的语义检索模型建立方法,属于文本检索领域,包括以下步骤:S1、数据准备:准备若干个文本的训练数据和测试数据;S2、数据预处理:对所述训练数据进行预处理,包括文本清洗、文本数据预处理,以便于ANN和BERT模型的输入;S3、BERT预训练:通过BERT模型,具体采用RoBERTa模型,从文本中捕捉到丰富的语义信息,然后采用TinyBERT进行结构蒸馏,通过多次调整参数来进行训练,能够大大提高预训练知识的保留,减少流失。本发明专利技术提供了一种基于ANN和BERT的语义检索模型建立方法,基于ANN和BERT的特性,将二者相结合,建立一种准确率和效率更高的语义检索模型。

【技术实现步骤摘要】

本专利技术属于文本检索领域,具体涉及一种基于ann和bert的语义检索模型建立方法。


技术介绍

1、近年来,随着大规模数据和深度学习技术的发展,文本相似性匹配在各种自然语言处理应用中变得越来越重要,如:构建搜索引擎、问答社区、客服聊天机器人、内容推荐等,但是一些搜索算法模型或在搜索效率上较低,或在搜索精度上较低,会影响到语义检索的速度和精确度,例如,模型对相关领域知识理解不够充分造成搜索召回结果存在实体偏差的问题;模型对长尾样本语义理解不充分,则部分长尾低频搜索词下召回的结果较少等问题。

2、为了克服现有技术中搜索算法模型在搜索效率上较低、在搜索精度上较低的问题,需要一种更好的语义检索模型,本专利技术针对这一技术问题进行解决。


技术实现思路

1、本专利技术提供了一种基于ann和bert的语义检索模型建立方法,基于ann和bert的特性,将二者相结合,建立一种准确率和效率更高的语义检索模型。

2、一种基于ann和bert的语义检索模型建立方法,包括以下步骤:

3、s1、数据准备:准备若干个文本的训练数据和测试数据;

4、s2、数据预处理:对所述训练数据进行预处理,包括文本清洗、文本数据预处理,以便于ann和bert模型的输入;

5、s3、bert预训练:通过bert模型,具体采用roberta模型,从文本中捕捉到丰富的语义信息,然后采用tinybert进行结构蒸馏,通过多次调整参数来进行训练,当模型设置为316h_12l_12a,即自注意力头设置为12个,隐藏单元设置为316个,训练层仍为同一的12层时,能够大大提高预训练知识的保留,减少流失;

6、s4、使用预训练的bert模型对文本数据进行特征提取:首先,使用双向transformer模型的encoderlayer对文本进行特征提取,然后,对文本数据进行微调,以适应特定的任务;

7、s5、建立索引:将所有文本特征表示存储在ann索引中;

8、s6、检索阶段:当有新的检索query时,同样使用bert模型提取其特征,然后,使用ann索引来查找最接近查询对话的最近邻。

9、进一步的,所述步骤s2中的文本清洗包括以下步骤:

10、s21、筛选与主题相关的数据:从原始数据集中筛选出与挖掘主题相关的数据,处理无关数据和重复数据;

11、s22、处理缺失值:识别缺失值并通过删除、替换、插补进行处理;

12、s23、处理异常值:识别异常值并通过删除、视为缺失值进行处理。

13、进一步的,所述步骤s2中的文本数据预处理包括以下步骤:

14、s24、数据脱敏:对敏感数据进行变形处理,以保护数据隐私;

15、s25、分词:将文本分割成单个的词语、标点符号,以便更好地提取特征;

16、s26、去除停用词:去除常见但无意义的词语,以减少噪声;

17、s27、词干提取:提取词语的基本形式,以减少词汇量的冗余。

18、进一步的,所述步骤s3包括以下步骤:

19、s31、安装transformers和pytorch;

20、s32、加载所需的模型和数据集,python代码如下:

21、from transformers import robertamodel

22、s33、准备数据加载器,将数据集转换为适合训练和评估的形式,并将其加载到pytorch张量中;

23、s34、开始训练,使用hugging face的trainer类来管理训练过程;

24、s35、使用tinybert对训练得到的roberta模型进行结构蒸馏,并创建一个12层的tinybert模型;

25、s36、准备蒸馏数据,需要将原始的roberta模型的预测结果(概率值)和tinybert模型的预测结果(概率值)作为蒸馏数据;

26、s37、开始蒸馏,hugging face的distillationloss类来计算蒸馏损失。

27、进一步的,所述步骤s4包括以下步骤:

28、s41、将输入文本映射为一系列的tokens,并添加特殊的tokens作为边界标识;

29、s42、将tokens转换为对应的索引序列,并将它们输入到bert模型的encoderlayer中;

30、s43、在每个encoderlayer中,bert使用自注意力机制对输入序列进行编码,得到每个token的表示向量;

31、s44、将表示向量逐层传递,直到最后一层,得到每个token的最终表示向量;

32、s45、将每个token的表示向量输入到全连接层中,得到每个token的预测结果。

33、进一步的,所述步骤s5中的ann索引使用locality sensitive hashing (lsh)技术来构建,以便快速查找近似最近邻,具体是将每个文本特征表示转换为二进制向量,并使用lsh算法将这些向量哈希为一系列桶;然后,在每个桶中维护一个最小堆,用于快速查找最近邻。

34、进一步的,所述步骤s6具体为:在索引中执行多次查询,每次返回最近的k个候选对话,然后合并这些候选对话并进行下一步筛选,在查询时使用近似最近邻算法来快速查找最近邻。

35、本专利技术的技术效果如下:

36、(1)本方案中的训练模型通过不断地调整,从4层自训练的bert模型,逐步更新为统一12层预训练模型,采用开源roberta预训练模型进行训练,同时,采用tinybert进行结构蒸馏,通过多次调整参数训练来调整参数达到最优,提高了预训练知识的保留,减少流失,提高了搜索的精度,并且可以快速查找近似最近邻,提高了搜索效率;

37、(2)采用tinybert结构蒸馏,tinybert是一种将大型预训练语言模型的知识蒸馏到较小模型的方法,以在资源受限的环境中实现高性能;

38、(3)bert模型的特征提取过程是基于全局的上下文信息,同时使用了双向信息流,这样不仅可以提取当前词的前文信息,还可以提取当前词的后文信息,有助于理解语义和上下文关系;

39、(4)在特征提取的过程中,bert模型将输入的文本数据转化为768维的向量表示。这些向量包含了文本的特征信息,可以用于后续的分类、聚类等任务。

本文档来自技高网...

【技术保护点】

1.一种基于ANN和BERT的语义检索模型建立方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于ANN和BERT的语义检索模型建立方法,其特征在于,所述步骤S2中的文本清洗包括以下步骤:

3.根据权利要求1所述的基于ANN和BERT的语义检索模型建立方法,其特征在于,所述步骤S2中的文本数据预处理包括以下步骤:

4.根据权利要求1所述的基于ANN和BERT的语义检索模型建立方法,其特征在于,所述步骤S3包括以下步骤:

5.根据权利要求1所述的基于ANN和BERT的语义检索模型建立方法,其特征在于,所述步骤S4包括以下步骤:

6.根据权利要求1所述的基于ANN和BERT的语义检索模型建立方法,其特征在于,所述步骤S5中的ANN索引使用Locality Sensitive Hashing (LSH)技术来构建,以便快速查找近似最近邻,具体是将每个文本特征表示转换为二进制向量,并使用LSH算法将这些向量哈希为一系列桶;然后,在每个桶中维护一个最小堆,用于快速查找最近邻。

7.根据权利要求1所述的基于ANN和BERT的语义检索模型建立方法,其特征在于,所述步骤S6具体为:在索引中执行多次查询,每次返回最近的K个候选对话,然后合并这些候选对话并进行下一步筛选,在查询时使用近似最近邻算法来快速查找最近邻。

...

【技术特征摘要】

1.一种基于ann和bert的语义检索模型建立方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的基于ann和bert的语义检索模型建立方法,其特征在于,所述步骤s2中的文本清洗包括以下步骤:

3.根据权利要求1所述的基于ann和bert的语义检索模型建立方法,其特征在于,所述步骤s2中的文本数据预处理包括以下步骤:

4.根据权利要求1所述的基于ann和bert的语义检索模型建立方法,其特征在于,所述步骤s3包括以下步骤:

5.根据权利要求1所述的基于ann和bert的语义检索模型建立方法,其特征在于,所述步骤s4包括以下步骤:

<...

【专利技术属性】
技术研发人员:宋耀魏传强司君波李涛李玉
申请(专利权)人:山东齐鲁壹点传媒有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1