自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 使用20分钟语音数据进行语音复刻

最近做了一些tts方面的工作,其中一项就是音色克隆,调研了许多开源项目,经过对比发现百度的开源项目paddlespeech的效果还不错,项目的活跃度也很高,比较适合初学者或者感兴趣的同学入门。使用aishell3开源语音数据可以将上述的几个模块的模型训练到比较高的准确率,音色克隆的意义在于使用少量的语音数据进行音色克隆。这部分也是tts的模块,将文字的发音序列加上音色的特征合成出梅尔频谱序列,该模型为WaveNet,也是一个seq2seq的模型。因此考虑微调的方法可以较好地取得不错的效果。

2022-12-22 11:00:00 753 1

原创 docker部署tf-serving模型

自从使用docker制作python环境镜像之后,越来越觉得docker非常方便和友好,之前部署模型一直都是直接启用flask服务的形式,最近正好在弄bert模型,为了提高bert模型在cpu服务器上的推理效率,打算使用tf-serving的服务,虽然快不了多少,但是提升一点是一点,同时也省的每次直接部署的时候拷贝模型文件了。在模型保存之前注意设置好模型的存储路径,需要注意的一点就是模型的版本,版本一般为数字,因为如果检测不到模型的版本,启动服务的时候会报错。二、模型配置文件及多模型部署。

2022-09-12 10:21:28 931

原创 python多进程使用

ps:对于远程过程调用的高级应用程序而言,比如使用进程池,Pool可以提供指定数目的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,就重用进程池中的进程。例如当被操作对象数目不大时,可以直接利用multiprocessing中的Process动态生成多个进程,十几个还好,但如果是上百个上千个,手动的去限制进程数量却又过于繁琐,此时可以发挥进程池的功效。

2022-09-11 10:13:35 580

原创 基于Bert的文本精排算法

以上就是对bert模型精排算法的探索与实践,总的来说大体框架还是没太大的变化,主要是数据集构造和loss函数的选择,数学公式还是有一点复杂,如果数据集质量不够好还是不推荐使用,因为最终效果指标不好界定,top1和top2区别也不一定太大,收益不是特别明显。将Bert计算出的logits当作相关性r,带入到上面的loss中训练就行了,在实际过程中,还有一个对相关性大小的界定,模型输出的r为0-1之间的数值,阈值定在多少,相关性为1,会影响最终模型的效果,因此需要在测试集上进行探索。,r表示相关性的数值。

2022-09-08 14:07:21 1001

原创 bert模型蒸馏实战

由于bert模型参数很大,在用到生产环境中推理效率难以满足要求,因此经常需要将模型进行压缩。常用的模型压缩的方法有剪枝、蒸馏和量化等方法。比较容易实现的方法为知识蒸馏,下面便介绍如何将bert模型进行蒸馏。一、知识蒸馏原理模型蒸馏的目的是用一个小模型去学习大模型的知识,让小模型的效果接近大模型的效果,小模型被称为student,大模型被称为teacher。知识蒸馏的实现可以根据teacher和student的网络结构的不同设计不同的蒸馏步骤,基本结构如下所示: 损失函数需要计算两个部分,cross entr

2022-06-30 10:29:13 1377

原创 基于bert特征提取的FAQ问答系统构建

faq的问答系统是目前用的比较广泛的问答系统,由于它落地简单,并且大部分场景都需要,构建一个faq问答系统可以作为一个baseline快速应用到实际场景中。下面就介绍如何快速构建一个faq问答的baseline。一、环境的搭建faq的核心技术是信息检索,信息检索的常用工具则是es,es既可以对faq知识库存储,又可以快速查询文本。同时也有配套的可视化工具kibana,方便数据查询和管理。此外,es的社区也很活跃,文档和讨论的问题也方便使用。elasticsearch+kibana安装使用docker容器拉取

2022-06-02 14:14:31 1055

原创 基于bert的文本匹配任务(二)

文本匹配任务是nlp中非常常见的任务,最常用的场景包括文本搜索、智能客服、推荐等。简单的文本匹配算法有字面匹配,包括词频,ngram等,基本上通过tf-idf,ngram等算法统计词频,得到句子的数值向量,然后进行距离计算,得到文本的距离数值,距离越小则代表文本之间的相似度越高。但是通过词频统计得到的句子向量有两个弊端:其中之一是由于词的类别太多,得到的向量为稀疏向量,维度太高;其二,词频的匹配基本都是字面意义上的匹配,相同的词出现越多代表两个文本越相似,忽视了句子本身的语义信息,具有一定的局限性。后续出现

2022-05-27 14:55:41 2964

原创 docker创建python容器

使用docker可以方便地将算法所需的环境部署到其他的服务器上,最近使用docker构建了一下python环境,并将容器部署到服务器上使用,踩了一些坑,记录一下。一、拉取docker的python镜像docker pull python:3.7.11直接就构建了一个基础的镜像环境。二、进入镜像安装所需的包docker run -it python:3.7.11 /bin/bashpip install -i https://pypi.tuna.tsinghua.edu.cn/si

2022-04-06 20:43:57 3690 1

原创 语音数据处理流程

语音数据是由录音设备采集的文件,文件后缀一般为.wav格式,在进行模型训练的时候,需要将录音数据转变成多帧的数值数据。语音数据属于信号处理的范畴,步骤确实比较繁琐,但也比较固定和单一。一般的流程入下:1.读取音频数据python使用soundfile读取wav文件 def read_data(self, file_path, name): ''' 读取音频数据 :return: ''' file_path =

2022-03-04 16:50:22 3851 2

原创 基于bert的命名实体识别任务(一)

自从bert提出后,nlp领域的预训练语言模型持续刷新各种任务榜单,各种预训练语言模型不断提出并更新迭代,最新的GPT3以千亿级的参数再次刷新了榜单任务。但是在工业界,bert的预训练+微调的任务模式还是在发挥一定的作用。因此本篇博客主要介绍在tf2.x的版本下使用bert模型进行命名实体识别任务。bert模型的原理还是先简单介绍一下,主要从一下几个方面:一、任务目标bert的目标是学习大量的没有标注的语料数据,进而提取出语言模型,便于下游的微调任务。在训练的过程中主要有两个任务:其一是根据上下

2022-02-23 16:25:52 6609

原创 基于tensorflow2.x的文本匹配任务(四)

文本匹配任务也是nlp领域中一个非常常见的任务了,也是在文本检索、文本召回中需要用到的关键技术了。比较经典的文本匹配模型有dssm这种一条样本匹配多个候选集的模型,还有Siamese孪生网络这种双塔模型。这两种模型都可以作为文本匹配任务的baseline首先尝试。下面简单介绍一下这两个模型的原理。一、DSSM模型DSSM深度语义匹配模型原理很简单:获取搜索引擎中的用户搜索query和doc的海量曝光和点击日志数据,训练阶段分别用复杂的深度学习网络构建query侧特征的query ...

2022-01-10 22:15:06 685

原创 基于tensorflow2.x的命名实体识别任务(三)

上一篇博客介绍了文本分类任务的text_cnn模型,本篇博客主要介绍一下另一个常见的nlp任务,命名实体识别。简单来说,命名实体识别也可以算分类,但是它的不同点在它是对整个句子的每一个字做实体标签预测,也可以称为序列标注任务。还是从以下几个步骤来简单说明一下命名实体识别任务:一、原始数据预处理首先来看下命名实体识别任务的语料和标签是怎么样的,其中一条样本可以如下示例:text:人 民 网 1 月 1 日 讯 据 《 纽 约 时 报 》 报 道 , 美 国 华 尔 街 股 市...

2021-12-30 22:23:56 1456 3

原创 基于tensorflow2.x的文本分类任务(二)

上一篇博客主要介绍了在文本在输入到模型前做的一系列必不可少的数据预处理操作。本篇博客主要介绍一下作为baseline的文本分类任务的模型在tf2.x框架下是如何构建的。提到文本分类,现在基本都是想到深度学习,然后准确率比较高的方法就是预训练语言模型加微调,然后比较经典一点还有text_cnn,lstm等;本篇博客主要将text_cnn的构建情况,至于bert这类的预训练模型后续会专门再整体总结一下。本篇博文主要将text_cnn,作为比较经典的模型,具备速度快,准确率高等有点,是非常适合作为base

2021-12-28 22:56:34 996

原创 基于tensorflow2.x的nlp任务(一)

作为一个一直使用tf1.x版本的人,为了继续使用google强大的开源技术,同时也为了适配高级的3090系列显卡,还是学习了一下tf2.x版本,并重构了一些nlp相关任务的代码,将其全部用tf2.0版本替换。为了记录详细的nlp任务过程,本篇博文主要先记录一下从文本数据读取到处理成为batch数据输入到模型训练的一系列过程;这个过程可以主要分为tokenizer,embedding和data_generator这几个步骤。一、Tokenizer这个单词顾名思义就是将文本转换成token的表现形式

2021-12-23 21:24:37 948

原创 对话系统rasa学习及使用

最近要做一个简单金融场景的对话问答系统,由于一开始没有业务数据,首先想到的就是话术模版问答,在调研了一些技术文章和系统后,发现比较常用的就是rasa,比较适合单一业务场景的对话,大厂的开放式问答可能是很多人自主研发的一套框架,对于很多中小厂则主流使用的是rasa,可以减少一部分基建的时间。一个完整的对话系统流程图如下所示:Rasa的框架涵盖了上图右边虚线框的部分。rasa简介网上资料很多,直接贴github上的描述:Rasa is an open source machine

2021-07-12 18:16:40 2494

原创 tensorflow1.x版本代码迁移到2.0

由于3090显卡只支持tf2.0以后的版本,而且随着显卡的更新换代,tf1.x版本也不支持更高级的显卡,所以有必要将1.x版本的代码转成2.0后的版本。Tf2.0版本和tf1.0版本的主要区别  主要区别在于tf1.x是静态图,需要先把模型结构先定好,再进行训练Tf2.0版本则是动态图,训练前不用先构建完整的结构,而是按流程一步步构建,因此在训练的时候tf1.x相比于tf2.0占cpu内存大,训练的速度更快代码转换主要分几个方面:输入、模型网络、训练、模型保存1.输入 .

2021-07-12 18:13:42 1645

原创 深度学习模型部署的几种方法

由于模型训练完之后需要上线部署,这个过程中需要将模型集成到当前的软件架构中,因此要根据软件架构考虑模型的实际部署方法。目前来看主流的部署方法有以下几种方案:1.python服务接口在python服务器上部署模型文件,给出一个http服务,后台通过这个服务就可以调用模型进行输入输出了。优点:算法与后端的工作界限明显,不需要特别多的沟通;在使用模型前还需要进行数据预处理,不需要额外再进行代码迁移。缺点:需要服务器安装python环境,维护的成本增加,服务器之间接口的通信问题,获取模型输出所需

2021-07-12 18:12:48 7665

原创 RTX3090环境安装及性能测试体验

最近公司需要自己组装3090显卡,记录一下装机踩的坑。首先安装Ubantu20.04,进入系统后有配置显卡所需环境有几个需要注意的地方:一、网络设置机器没有无线网卡只能使用usb共享手机热点联网;需要买外接网卡chrome浏览器安装wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.debsudo dpkg -i google-chrome-stable_current_amd64.

2021-07-12 18:11:26 1146

原创 深圳租房信息聚类与回归分析

一、简介随着越来越多的人才涌入深圳工作,深圳的房价近两年来直线上升,增长速度一直居高不下。而每年刚来到来到深圳的毕业生们一开始都需要租房,而租房真的是一个折磨人的活计,想要找到一个租金便宜地段好真的是难上加难;一些黑心房东和中介坑害租客的话题也是层出不穷。因此笔者就想对链家网上的租房信息进行数据分析,看看影响房租的主要特征有那些,以及对房租进行线性回归预测。本项目使用reques和Beat

2017-12-16 11:45:55 2138 1

原创 Titanic生还率预测

Titanic生还率预测是Kaggle的经典项目,最近学习了机器学习与数据分析相关算法,参考了Kaggle里一些Kernels,通过此项目来锻炼自己所学的知识。主要使用Python语言里的pandas、sk-learn、matplotlib包进行相关数据分析。主要分析思路分为四个部分:导入数据、数据可视化、数据整理、调用算法预测。一、导入数据#导入数据,简单查看数据特点af=pd

2017-11-26 18:16:25 529

原创 使用pip安装numpy遇到问题

根据教程将numpy安装包从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy下载后进行安装由于我的电脑是64位的,所以我根据python和bit选择合适的安装包:numpy‑1.13.3+mkl‑cp27‑cp27m‑win_amd64.whl将包放到本地文件夹后发现:pip安装报错:is not a supported wheel on

2017-10-07 09:29:05 9067

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除