模型使用的是:uer/sbert-base-chinese-nli · Hugging Face

使用sentencetransformer微调模型

sentence_transformers 官网:SentenceTransformers Documentation — Sentence-Transformers documentation

使用自己的数据微调模型

sentence_transformer 使用自己训练数据微调模型的代码如下所示。(模型为计算句子相似度)

from sentence_transformers import SentenceTransformer,SentenceDataset,InputExample,evaluation,losses,util
class sbert():def build_train_data(self,o1,o2,n1,n2,train_size):train_data = []for i in range(train_size):train_data.append(InputExample(tests=[o1[i],o2[i]],label=1.0))train_data.append(InputExample(tests=[n1[i],n2[i]],label=1.0))return train_datadef build_evaluation_data(o1,o2,n1,n2,train_size,eval_size):s1 = o1[train_size:]s2 = o2[train_size:]s1.extend(list(n1[train_size:]))s2.extend(list(n2[train_size:]))score = [1.0]*eval_size + [0.0]*eval_sizeevaluator = evaluation.EmbeddingSimilarityEvaluator(s1,s2,score)return evaluatordef callback(self,score,epoch,steps)print('score:{},epoch:{},steps:{}'.format(score,epoch,steps))def train(self):#1.获取正、负样本,o1是标准问,O2是相似问o1,o2 = self.get_act_data()n1,n2 = self.get_neg_data()#2.定义训练集、测试集大小 + 构造训练数据train_size = int(len(o1)*0.8)eval_size = len(o1) - train_sizetrain_data = self.build_train_data(o1,o2,n1,n2,train_size)#3.定义测试数据evaluator = self.build_evaluation_data(o1,o2,n1,n2,train_size,eval_size)#4.需要训练的模型mode = SentenceTransformer('模型地址')#5train_dataset = SentenceDataset(train_data,model)train_dataloader = DataLoader(train_dataset,shuffle =true, batch_size = 8)train_loss = losses.CosineSimilarityLoss(model)#6.调试模型model.fit(train_objectives = [(train_dataloader,train_loss)],epochs = 1,warmup_steps = 100,evaluator = evaluator,evaluation_steps = 100,output_path = '存调试后模型的地址',save_best_model = True,callback = self.callback)

sentence_transformer使用自己微调后的模型的代码如下所示:

#1. 定义模型
model = SentenceTransformer('模型地址')
#2.编码向量
o1_emb = model.encode(['数据list','求求一定要好运啊'])
o2_emb = model.encode(['一定要是列表','我绝对可以好运']
#计算相似度
cosine_score0 = util.cos_sim(o1_emb,o2_emb)
cosine_score = []
for i in range(len(cosine_score0)):cosine_score.append(cosine_score0[i][i].numpy().tolist()

增加模型层数

from sentence_transformers import SentenceTransformer, models
from torch import nnword_embedding_model = models.Transformer('bert-base-uncased', max_seq_length=256)
pooling_model = models.Pooling(word_embedding_model.get_word_embedding_dimension())
dense_model = models.Dense(in_features=pooling_model.get_sentence_embedding_dimension(), out_features=256, activation_function=nn.Tanh())model = SentenceTransformer(modules=[word_embedding_model, pooling_model, dense_model])

sentence_transformers 微调模型相关推荐

  1. 谷歌创造ImageNet1K新纪录:性能不佳的微调模型不要扔,求一下平均权重就能提升性能...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 如何最大限度地 ...

  2. NLP论文解读:无需模板且高效的语言微调模型(下)

    ©原创作者 | 苏菲 论文题目: Prompt-free and Efficient Language Model Fine-Tuning 论文作者: Rabeeh Karimi Mahabadi 论 ...

  3. 【深度学习-微调模型】使用Tensorflow Slim fine-tune(微调)模型

    本文主要讲解在现有常用模型基础上,如何微调模型,减少训练时间,同时保持模型检测精度. 首先介绍下Slim这个Google公布的图像分类工具包,可在github链接:modules and exampl ...

  4. 在线部分:werobot服务、主要逻辑服务、句子相关模型服务、BERT中文预训练模型+微调模型(目的:比较两句话text1和text2之间是否有关联)、模型在Flask部署

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 智能对话系统:Unit对话API 在线聊天的总体架构与工具介绍 ...

  5. TensorFlow 工程实战(一):在TFhub中下载预训练的pb文件,并使用 TF-Hub 库微调模型评估人物年龄

    实例描述 有一组照片,每个文件夹的名称为具体的年龄,里面放的是该年纪的人物图片. 微调 TF-Hub 库,让模型学习这些样本,找到其中的规律,可以根据具体人物的图片来评估人物的年龄. 即便是通过人眼来 ...

  6. 训练自己的ChatGPT-OpenAI 微调模型

    OpenAI终于下定决心--正式开放ChatGPT API! ChatGPT API地址:https://platform.openai.com/docs/guides/chat gpt-3.5-tu ...

  7. Hugging Face实战(NLP实战/Transformer实战/预训练模型/分词器/模型微调/模型自动选择/PyTorch版本/代码逐行解析)下篇之模型训练

    模型训练的流程代码是不是特别特别多啊?有的童鞋看过Bert那个源码写的特别特别详细,参数贼多,运行一个模型百八十个参数的. Transformer对NLP的理解是一个大道至简的感觉,Hugging F ...

  8. 打造自己的图像识别模型2——使用 TensorFlow Slim 微调模型

    最近在搞自己的深度学习图像识别模型.这是第二步 本文主要讲解在现有常用模型基础上,如何微调模型,减少训练时间,同时保持模型检测精度. 主要参考书籍<21个项目玩转深度学习:基于TensorFlo ...

  9. 哈工大团队开源医学智能问诊大模型 | 华佗: 基于中文医学知识的LLaMa指令微调模型

    原文: CVHub 门头沟学院AI视觉实验室御用公众号 | 学术 | 科研 | 就业 185篇原创内容 公众号 Title: HuaTuo: Tuning LLaMA Model with Chine ...

  10. 最新版本 Stable Diffusion 开源 AI 绘画工具之微调模型篇

    ✨ 目录

最新文章

  1. 【跃迁之路】【725天】程序员高效学习方法论探索系列(实验阶段482-2019.2.15)...
  2. 浙江省团校计算机考试试题及答案,2001年秋浙江省高校计算机等级考试试卷(二级C)及答案..doc...
  3. aop拦截mybatis执行sql_Java进阶架构之开源框架面试题系列:Spring+SpringMVC+MyBatis
  4. 图解 Go 切片的深拷贝和浅拷贝
  5. 一开始买的是MacBook air,后来分了专业之后发现要用的软件需要Windows系统,该怎么办?
  6. final关键字修饰类,方法以及变量的特点 学习
  7. vs2015 html预览,Blend for Visual Studio 2015 预览版
  8. outlook 让附件在正文中显示 (REF rich リッチ)
  9. 转:C#读取PDF、TXT内容
  10. 制度罚则-- 代码走查规范
  11. c语言编程创意表白,C语言和图形界面编程打造——浪漫的表白程序
  12. STM8S003F3 内部时钟初始化以及定时器做延时的使用
  13. ffmpeg实现视频切割
  14. 数字 IC 技能拓展(18)如何快速上手 FPGA 开发板呢
  15. 关于北京租房,我想吐槽的一些东西
  16. 2020年最新一二三线互联网公司出炉,附校招和社招薪资行情
  17. 程序员如何在5年内达到年薪 50 万?
  18. WIN XP 开机正常,过了进度条之后黑屏
  19. 用计算机语言编写累加程序,用汇编语言实现如下程序:进行自然数相加(1+2+3... 汇编语言 编写程序实现自然数1到100的累加。要求用......
  20. Citavi文献导入【终极版】

热门文章

  1. windows系统下的文件长名和文件短名
  2. 计算机系统:计算机系统的基本组成
  3. IDEA 2018 激活补丁 激活到2100年 ,最新版不用注册机
  4. PhalApi 事务操作
  5. 网吧玩吃鸡提示服务器维护,绝地求生游戏更新维护给网吧带来的影响
  6. Akka学习笔记:Actors介绍
  7. c语言确定母亲节思路,C语言有关确定日期的相关问题
  8. Java前端内联和外联的区别,css外联和内联、嵌入的区别是什么?
  9. php 建行外联平台退款
  10. java m个苹果n个篮子_m个苹果放在n个盘子中有多少种结果