深度学习
文章平均质量分 79
yukai08008
这个作者很懒,什么都没留下…
展开
-
Python - 深度学习系列38 重塑实体识别5-预测并行化改造
一个在理论上证明可以显著提升效率的点在于,模型进行实体识别时先切分了短句,然后按短句进行了去重:相同短句的实体结果一定是相同的。实验中,200条新闻产生了约5万个短句,去重后只剩下约3.5万。所以即使在这一步也是有提升的。当然,这种方式同样也可以被用于pipeline。还有就是在处理填充时,并不按照最大长度统一填充。而是按照句子长度的统计特性分为了短、中、长三种方式。从统计上看,约70%的短句长度是在20个字符以内的,真正超过50个字符的短句(中间无分隔符),即使从语法上来看也是比较奇怪的。原创 2024-06-04 10:21:14 · 651 阅读 · 0 评论 -
Python - 深度学习系列36 重塑实体识别3
从应用的角度,对实体识别的全流程进行进一步的明确。从全流程的角度上看,需要对数据做一些规范,并允许在不同的阶段插进来进行修改和迭代。原创 2024-05-29 11:16:50 · 1082 阅读 · 0 评论 -
Python - 深度学习系列35 重塑实体识别2
上一篇介绍了如何进行训练,这篇讨论如何应用。详细review了之后,发现其实早先的服务还是略有欠缺的。原创 2024-05-22 15:20:17 · 1233 阅读 · 0 评论 -
Python - 深度学习系列34 重塑实体识别
transformers 演变出了两个主要分支BERT(Encoder Only)和GPT(Decoder Only),中间分支的概念相对淡一些。本次的目的在与梳理和重建实体识别模型,来取得更好的效果。原创 2024-05-21 14:18:41 · 881 阅读 · 0 评论 -
Python - 深度学习系列32 - glm2接口部署实践
前阵子,已经对glm2的接口部署做了镜像化。为啥不用glm3: 因为出现中英文混杂情况的概率较高。原创 2024-04-11 14:38:41 · 829 阅读 · 0 评论 -
Python - 深度学习系列31 - ollama的搭建与使用
做这个的主要目的是为了搭建Langchain的本地环境,使用LangChain让LLM具备调用自定义函数的功能。原创 2024-03-31 12:41:13 · 3262 阅读 · 2 评论 -
Python - 深度学习系列30 - 使用LLaMA-Factory微调模型
最实用的一种利用大语言模型的方式是进行微调。预训练模型与我们的使用场景一定会存在一些差异,而我们又不可能重头训练。微调的原理并不复杂,载入模型,灌新的数据,然后运行再训练,保留checkpoints。但是不同项目的代码真的不太一样,每一个都要单独去看的话比较费神。本篇简单讨论一下用LLaMA-Factory微调模型的体验。原创 2024-03-21 21:43:54 · 1239 阅读 · 0 评论 -
Python - 深度学习系列28 - 下载seqeval错误:raw.githubusercontent.com连接失败
重新搭建Electra模型。原创 2022-08-03 17:31:21 · 490 阅读 · 0 评论 -
Python - 深度学习系列26 - 使用cnocr进行汉字OCR5
说明上一回讲到当我们找到文本块之后,可以将文本块分割成行,利用cnocr就可以很好的识别了。所以现在的问题是如何从原始图中找到文字内容块。内容我分析了一下,最佳的选择应该是使用yolo进行目标识别,具体可以参考我的这篇文章,但是一来这需要标记一些样本图片,二来这个项目是很久之前搞的,当时并没有按PM进行归集,要重读代码比较费时间。顺带要吐槽一下苹果的m1,适配简直差极了,Labelmg也不能装,各种机器学习的包都不能搞,目前只能用conda应付一下。中间Rosseta也不好用,我同步的包文件都掉了,我原创 2021-12-04 00:05:04 · 820 阅读 · 0 评论 -
Python - 深度学习系列25 - 使用cnocr进行汉字OCR4
说明继续进行解析,将块状文本变为条状识别。内容上一次说到,cnocr识别一行文字还是可以的,碰到块状就不大行了。于是我们先假设能分离出块状文字,然后进行分行后处理。1 导入包from PIL import Imageimport numpy as np import matplotlib.pyplot as pltimport pandas as pd import copy%matplotlib inline2 读入原始图片with open('test2.png','rb'原创 2021-12-02 16:04:11 · 715 阅读 · 0 评论 -
Python - 深度学习系列24 - 使用cnocr进行汉字OCR3
说明顺着上一篇的思路继续往下走,一方面往实现需求的角度走,看还需要做些什么。另一方面顺带把对图片的处理按PM方式重新梳理起来,不想以后再从0回忆了。内容1 思路之前发现如果把原始图片给cnocr识别时,抠图部分就错了。一个简单的逻辑:1 抠图 - > 形成文字块2 文字块识别 -> 一段文字于是我截一段话:1 文字块识别调用程序后,我发现对于文本块的图像切割还是混乱的所以cnocr不能直接接受文字块。我猜测cnocr在做的时候就是针对单行的,并且做了对图片的翻转、扭曲原创 2021-12-01 15:59:50 · 1531 阅读 · 0 评论 -
Python - 深度学习系列23 - 使用cnocr进行汉字OCR2
说明离上次使用隔得有点久,我都忘了有这茬了。最近正好有一个应用,需要进行场景文字识别,而我也不想花太多精力搞,这个包应该是合适的。上次的介绍cnocr的文章在这里,总体上来说,识别效果还可以。内容1 背景大致要识别这样的图片里的文字理论上,我觉得应该:1 使用目标识别(例如yolo)把文本块找出来2 对文本块进行预处理(例如形变恢复,或者去噪)3 对文本块拆分4 对拆分的文本块预测5 合并结果肯定是没时间去标记样本搞yolo的,肯定也是没时间去做汉字识别模型的。所以我觉得cno原创 2021-11-30 18:59:01 · 1563 阅读 · 0 评论 -
Python - 深度学习系列22 - Electra并行处理修改
说明原来做的一版是逐条预测的,效率太低,这里改为并行预测的。内容原创 2021-05-28 11:12:21 · 304 阅读 · 0 评论 -
Python - 深度学习系列21 - 使用cnocr进行汉字OCR
说明ocr的用途还是比较广的,可以将大量的图片转为文字。如果从NLP的角度来说,这算是数据的清洗和提取吧。本篇使用cnocr做一些简单的应用。内容1 关于数据处理使用深度学习来识别字符,哪怕是手写字符也有不低的成功率。但是这个前提是图片是规整的,干净的。通常我们获得的图片格式比较多,所以第一步事实上是要索引蕴含相关目标的图片区域。所以,类似时间序列的分割,或者是数据表格的分割,机器学习的第一步总是把要关注的点放在合适的尺度上。所以,通用的OCR处理方案(甚至是其他的图像识别方案)应该都是:1原创 2021-05-20 18:06:43 · 4851 阅读 · 5 评论 -
Python - 深度学习系列20 - BERT/Electra应用方向梳理
说明通过NER的应用(识别公司名、人名、地名和时间),已经将BERT和Electra进行大规模的计算,以下梳理下其他的应用方向。BERT:BERT是2018年10月由Google AI研究院提出的一种预训练模型。BERT的全称是Bidirectional Encoder Representation from Transformers。BERT在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类,并且在11种不同NLP测试中创出SOTA表现,包括将GLUE基原创 2021-05-08 11:16:33 · 450 阅读 · 3 评论 -
Python - 深度学习系列19 - 使用docker 镜像快速进行本地cuda调用
说明原来使用过各种方法装过CUDA环境,最简单的显然是在本机装好驱动后直接拉取支持gpu的docker镜像,然后开始使用。内容小插曲:先是运行的好好的,碰到一个问题。之前应用显卡的程序还在跑,我看到这个提示以后重启了一下kernal就干脆起不来了。└─ $ nvcc -cnvcc fatal : No input files specified; use option --help for more information# 但是还是可以查看显卡的型号的└─ $ ubuntu-dri原创 2021-04-28 16:01:16 · 732 阅读 · 1 评论 -
Python - 深度学习系列17 - 使用docker搭建pytorch+jupyter环境
说明搭建一个pytorch的环境(cuda)内容1 搜索镜像到dokcer去寻找镜像拉取镜像的命令docker pull pytorch/pytorch:latest2 更换系统的源cp /etc/apt/sources.list /etc/apt/sources.list.bak# 阿里云源echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse">>/e原创 2021-02-04 20:40:48 · 627 阅读 · 0 评论 -
Python - 深度学习系列16 - 使用docker搭建TensorFlow1.14 GPU+jupyter环境
说明首先应当先装好显卡驱动,然后寻找合适的镜像,并加以修改就可以了。另外,使用docker调用显卡,需要安装nvidia-docker2,参考这篇文章是可行的内容1 寻找并拉取镜像找到构建好的合适的镜像在这里搜索,看所有的tag选择复制对应的docker pull命令,拉取镜像我获取了带jupyter的版本。2 进入镜像,进行修改和测试┌─root@m5-desktop:~└─ $ docker run -it -p8888:8888 --gpus all 60c989453335原创 2021-02-04 13:34:02 · 626 阅读 · 0 评论 -
Python - 深度学习系列14- 关于时间序列模型的一点思考
说明今天看了会书,有些关于时间序列处理的想法先记下来,以后有时间了再实践。内容1 时间序列的分割问题这个问题应该来说一直存在 ,以前看过不少文章,对于序列的分割都是采用定长的模式。例如,关于股价的预测,很多模型采用了30天的窗口或者50天的窗口分割数据。问题是,谁能保证这个长度的窗口正好符合你要解决的问题?因此对于时间序列来说,第一步是合理的分割数据。例如,可以使用概率图的方法来推断可能的分割点,从而将数据分为长短不一,但是更加合理的n个段。2 中文NLP处理首先还是分词。目前大家比较习惯了用原创 2021-01-09 19:55:53 · 229 阅读 · 0 评论 -
Python - 深度学习系列13- 显卡与CPU计算对比
说明因为装3060Ti的时候踩了坑(雷?),所以不太清楚这张卡是不是如同之前想象的一样,所以这篇文章会进行一系列的实验和对比。可能对其他希望用显卡进行计算的人有所帮助。1 本篇的代码可以在装好显卡(以及环境)以后测试。2 估算CPU以及不同显卡间的算力差距。显卡计算的特点是:只要内存不爆,那么多大的矩阵计算时间是差不多的。1 基本概念如果把显卡只当成矩阵计算的工具,那么最重要的就是矩阵的尺寸/数据类型。因为矩阵占用的空间是平方增加的,所以要清除存储允许的计算上限。float16类型在原创 2020-12-20 16:09:12 · 6596 阅读 · 1 评论 -
Python - 深度学习系列9- CUDA运行时实验
说明对CUDA运行时的状态和效果进行一些观察和对比,以便更合理的配置硬件和评估效能内容1 使用CUDA计算是不是CPU就空闲了?不全是。CPU应该还是配合着进行了一些存储资源的调用,总体上还是比较空闲的,但是有1/4的资源被占用了。估计整体情况是任务(数据)从硬盘上被CPU调出,存在内存里。然后将内存里的数据送给显卡计算(CUDA),显卡计算完成后将数据再返回内存,再由CPU通过网络发出或者重新持久化到硬盘上。所以硬盘存取、内存存取和CPU的速度要快,这样才能充分利用显卡。目前这个配置使用的是原创 2020-12-03 16:00:36 · 529 阅读 · 0 评论 -
Python - 深度学习系列8- Ubuntu 搭建Cuda环境
说明内容包含以下几块:1 ubuntu安装Cuda的一般方法2 ubuntu安装GTX1060 铭影GTX10603 ubuntu安装3060Ti4 使用docker安装cuda1 内容1.1 CUDA与CUDNN这部分内容参考这篇文章CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。NVIDIA CUDNN是用于深度原创 2020-12-03 15:00:10 · 427 阅读 · 0 评论 -
Python - 深度学习系列5-图像的一些基础处理
说明使用深度模型大概一半时间都在处理图片?本文介绍使用yolo时的一些图片处理方法。将base64传递的图片进行处理后再进行识别和输出,yolo返回的结果改为:1 返回坐标和类别2 返回根据坐标切割的图片和类别3 返回在原图上进行划线和标注的图片Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在H原创 2020-09-04 12:26:39 · 1825 阅读 · 0 评论