自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 htop指令的输出理解释

例子中,已使用内存为 16.4 GB,总内存为 188 GB,使用占比约为 8.7%。表示系统的CPU的核心数,每个核心后的数字就是核心的利用率。例子中,系统有64个核心,每个核心利用率都满了,表示当前CPU核心都被完全占用,没有任何空闲容量,这是计算的瓶颈。负载平均值,它是一个衡量系统忙碌程度的指标,表示在一段时间内,等待 CPU 处理的平均任务(进程)数量。最近在测试服务的性能,使用了htop指令,记录一下指令输出的内容要怎么去理解,下面给出一个htop输出的截图,总共分为8个模块,然后逐个进行解释。

2025-03-24 17:41:51 172

原创 celery进程卡死解决办法

今天在用celery做消息队列管理的时候出现了进程卡死的现象,具体表现为 celery 的 inference_task 函数接收到app 传来的请求,inference_task 在执行的时候直接卡在 model_pipeline 的地方不动了。另外,如果直接在 tasks.py 中加载模型,那么 app.py 引用 tasks.py 的时候也会导致重复加载,所以目前的办法就是 tasks.py 从其他脚本中导入加载好的模型,然后再延迟导入。

2025-03-19 13:43:03 174

原创 日志监控工具openobserve使用案例

分享一个日志监控工具,openobserve(简称 o2),它是一个云原生可观察性平台,专为日志、指标、跟踪、分析 而构建,旨在以 PB 级规模运行。下面通过一个使用案例来分享o2的使用。首先是我们的服务产生日志,然后使用 filebeat 将日志解析并发送到 o2 平台,最后 o2 平台对日志进行可视化展示、分析等等。以上就是全部的内容了,介绍的比较简单,也是为了方便入门,后面更多的功能还需要进一步探索。默认只支持上传最近5小时的日志,超过5小时之前的不会传送。

2025-03-14 17:20:06 319 1

原创 loguru简单使用案例

今天使用了loguru来记录日志,感觉十分的方便,特此记录一下。

2025-01-03 00:10:56 385

原创 Git常用命令总结

本篇文章分享的是一些git的使用方法,掌握这些方法基本就可以满足日常的开发需求了。

2024-12-28 22:43:56 799

原创 基于Fastapi搭建API服务实践案例

本文讲述了如何使用fastapi搭建一个属于自己的服务,整个服务使用fastapi框架搭建,celery管理任务队列,slowapi限制请求的频率,主要技术点就是这么几个,其实实践起来也是很简单的,那么我们就开始吧!该服务以高效、模块化和异步化的架构设计,满足了非实时语音转写的需求,并具有良好的可扩展性和稳定性。

2024-12-28 17:09:01 1036

原创 深度学习模型部署框架之mnn

本文是深度学习模型部署框架的第三篇,更多部署框架可以查看本专栏的其他文章。概念:mnn是一个轻量级的深度神经网络引擎,支持深度学习的推理与训练。适用于服务器、个人电脑、手机、嵌入式各类设备。优势:轻量性,无任何依赖;兼容性好,支持常见的框架;工具齐全,与开发者交流方便。坑点:实践的不多,目前没发现什么坑点。本文介绍了mnn的在应用方面的一些经验总结,更多内容参阅文档。

2024-12-08 18:34:16 686

原创 深度学习模型部署框架之tflite

本文是深度学习模型部署框架的第二篇,更多部署框架可以查看本专栏的其他文章。概念:TensorFlow Lite 是TensorFlow在移动和嵌入式设备上的轻量级推理框架,专门针对资源受限的环境进行了优化,以便在手机、嵌入式设备上运行深度学习模型。优势:缩减了模型的大小和功耗,适合嵌入式等资源受限的设备。坑点:tfl 目前主要支持 cnn 相关的算子 ,对 rnn 等其他网络中的算子还没有很好的支持。对自家的tf框架支持比较好,对于其他框架支持不佳。

2024-12-08 18:25:56 1584

原创 深度学习模型部署框架之ONNX Runtime

本文是深度学习模型部署框架的第一篇,更多部署框架可以查看本专栏的其他文章。概念:onnx一种开源模型格式,专注于推理所需的能力。同时,它还是一个中间深度学习框架,用于连接不同深度学习框架之间的转换。优势:跨平台兼容性好;性能优化;支持多种框架。坑点:onnx只是一个格式,就和json一样,只要满足规则,就是合法的。因此单纯从pytorch转成onnx格式很简单,但是不同后端框架接受的onnx是不一样的。

2024-12-08 18:07:18 2642

原创 机器翻译模型及评估指标总结

最近在做有关机器翻译的相关工作,所以记录一下。在这篇文章中,总结了一些常见的机器翻译开源模型,分析主流的评估指标如 BLEU、ROUGE 和 METEOR,并通过代码示例演示这些指标的实现,最后结合实际应用场景,分享我在机器翻译技术落地过程中的实践经验和思考,希望为读者提供一些参考与启发。在这篇文章中,系统总结了常见的开源机器翻译模型及其相关的应用链接,深入分析主流评估指标并展示实现代码的具体过程,最后结合实际项目的经验,分享机器翻译技术在落地过程中的一些解决方案,希望能够为读者提供全面的思路和实践参考。

2024-12-07 23:17:32 2612

原创 音频降噪模型总结

这篇文章介绍了7种常见的且效果不错的音频降噪模型,他们是从7个音频降噪项目总结而成,包含了源码以及效果展示。在项目的最后也贴出了参考的项目的地址,如果不想一次性看这么多的模型,也可以分别单独去看对应的项目。项目地址放在最后,如果最近在看音频降噪的小伙伴,可以好好看一下这个项目,相信你会有不少的收获,

2024-09-25 23:50:56 468

原创 Gradio使用案例

Gradio 是一个非常方便的 Python 库,用于快速构建用户友好的机器学习模型和其他应用程序的 Web 界面。通过 Gradio,你可以轻松地将机器学习模型转换成一个交互式的 Web 应用,而无需复杂的前端开发技能。这个程序创建了一个 Web 应用,用户可以上传音频并选择语言,推理结果显示在文本框中。Gradio 提供了简洁易用的界面,允许快速构建并分享应用,适合测试、演示和模型部署。gradio 是用于构建 Web 界面的库,能够快速将 Python 函数变为带有用户交互界面的应用程序。

2024-09-22 17:16:07 1314

原创 websocket的基本概念及基本用法

本文为websocket系列文章的第一篇,主要讲解一些websocket的基本概念和使用方法。WebSocket 是一种网络通信协议,它允许在客户端和服务器之间建立一个持久的连接,使得数据可以实时、双向地传输,从而为需要快速、连续交互的应用如在线游戏、聊天应用和实时数据更新提供了一个高效、低延迟的通信解决方案。本文讲解的内容很简单,更多的是为了加深对websocket的理解所做的一些笔记。

2024-09-10 00:16:38 530

原创 python的一些并发执行案例(多线程、多进程、协程、子进程)

Python作为一种广泛应用的编程语言,虽然因其GIL(全局解释器锁)限制,导致在多线程并发执行中存在一定局限性,但它依然提供了多种并发执行方式。通过合理地运用多线程、多进程、协程、以及子进程,开发者可以在不同场景下大幅提升程序性能。本篇文章将围绕Python的几种主要并发执行模式进行探讨,结合实际案例展示如何在不同任务场景中选择并实现这些技术。我们将重点介绍多线程适用于IO密集型任务的场景,多进程在CPU密集型任务中的优势,协程在高并发异步任务中的强大能力,以及子进程在独立进程间通信中的独特价值。

2024-09-08 23:56:36 1581

原创 Tensorboard常见用法示例

通过运行这个脚本我们可以得到一个存放在 ‘/data/chenkj/tensorboard’ 下的文件,再运行下面代码就可以启动tensorboard了,我们只需要复制这行代码打印出的网址就可以在浏览器中在线查看模型的结构了,比如输出的是 http://0.0.0.0:6007/,只需要把0.0.0.0换成你开启tensorboard的机器的ip就行了,下面其他例子都是一样的操作,后续就不赘述了。

2024-09-06 22:03:58 340

原创 dataset和dataloader学习笔记

通过获取一个batch数据的讲解,加上代码中的注释基本就能搞明白是怎么组织数据和获取数据的了,这里额外讲解一下dataloader中的collate_fn参数的作用。拿到的结果是一个元组列表,类似:samples = [(X[1],Y[1]),(X[4],Y[4]),(X[8],Y[8]),(X[9],Y[9])]其中 features = torch.stack([X[1],X[4],X[8],X[9]])假定m=4, 拿到的结果是一个列表,类似:indices = [1,4,8,9]

2024-09-05 00:33:43 457

原创 安装tensorrt_llm踩坑总结

这些警告信息表明在编译或链接过程中找不到某些共享库 (libopen-rte.so.40, libopen-pal.so.40, libm.so.6, libhwloc.so.15)。这些库是 OpenMPI(用于并行计算的消息传递接口)的依赖库。其实系统中是有这些文件的,只不过没有在指定的路径下,所以只需要找到这些文件,然后重新指定一下这些文件的路径。除了文件找不到,各种库的版本适配也是个大问题,因为这个框架一直在迭代,还不是很稳定,建议安装tensorrt_llm。

2024-07-26 15:07:25 2070 3

原创 提升基于python的web服务并发性能

首次尝试多进程的时候没有共享模型,导致每增加一路的并发就要加载一次模型,这样显存很快就爆了,增加了共享模型之后,每增加一个进程加载一次模型,显存的使用大大降低,这样最终限制并发路数的瓶颈就是GPU的使用率。问题出在我的服务是跑在单个线程上的,虽然用了异步的处理方式,但由于python的GIL的限制,并不能做到真正的并行处理,导致并发路数提不上去。测试并发性能的时候显存、内存、带宽这些资源都没有达到瓶颈,但是并发的路数却提不上去。一般有两种方式,多线程和多进程,打破GIL的限制,这里我使用的是多进程的方式。

2024-07-24 16:20:53 291

原创 Some tensors share memory, this will lead to duplicate memory on disk

报错的代码,在执行完这行代码后的到的 supported_classes 为 (PreTrainedModel,) ,这时保存checkpoint的逻辑又要经过多次判断才能保存,所以就出错了。报错发生在 trainer 保存 checkpoint 的时候,从源码来看,trainer 在保存 checkpoint 的时候会经过一系列的判断,然后选择合适的方法来保存。这种方法仅是为了解决问题而提出的,感觉走的是歪路,但是经过验证保存的 checkpoint 是正常可用的。此外,这种方法不一定能适用各种场景。

2024-07-20 12:48:54 770 1

原创 Couldn‘t apply path mapping to the remote file. /home/anaconda/envs/whisper/lib/python3.10/

点击Path mappings右边的文件夹,点击左上方的加号,然后手动输入本地路径和远程路径,点击完成,问题解决。今天试着远程调试代码,配置好路径之后还是遇到了如题的报错,然后一顿鼓捣,最后通过以下方法解决问题。1、点击Edit Configurations。

2023-12-05 11:05:52 1289

原创 whl is not a supported wheel on this platform报错处理

安装pytorch的时候一直报错whl is not a supported wheel on this platform,搞了很久一直没有解决,后来发现是自己安装的anaconda是32位的,真的是绝望,耽误事啊!一个小错,始终没有发现,记录下来,希望能帮到和我一样的人。

2023-10-12 23:44:15 5359

原创 从零开始训练大模型—以RoBERTa为例

本文讲述了如何从零开始训练一个大模型,这个从零开始值是指从源码层面自己处理数据、搭建模型。RoBERTa是基于BERT进行改进得到的, RoBERTa 相较于 BERT 最大的改进有三点:1)动态 Masking: BERT的masking是在预处理时进行的,导致这种Masking是静态的,每个epoch的masking结果一致。而RoBERTa中使用Dynamic Masking,只是在序列送入模型中的时候才去进行动态的masking,这样在更大的数据集上或者更多步数的训练上会表现更好。

2023-08-16 21:15:00 2885 4

原创 从源码层面理解Bert模型

本篇讲解的Bert的也是之前看过的内容,现将源码及本人做的思维导图贴出来,希望能帮到有需要的同学。以上就是全部内容了,本文主要贡献就是分享了自己做的思维导图,并没有对Bert模型进行详细解读,是因为笔者相信在理解了Transformer模型之后,Bert的理解将会容易很多。思维导图是基于笔者个人的理解整理而成,如有错误欢迎批评指正。参考文章:https://wmathor.com/index.php/archives/1457/

2023-08-15 15:35:03 221 1

原创 基于模型结构与模型源码两个层面理解Transformer

之前看的Transformer源码,当时为了理解Transformer的框架,就从模型结构和模型源码两个层面做了思维导图。最近在复盘,从两个层面上又梳理了一遍,针对重要部分的内容,将个人的理解记录下来。本文从Transformer的模型结构和模型源码两个层面对Transformer进行解读。在模型结构层面上,分析了Transformer主要结构的功能;在模型源码层面,记录了本人对于源码的理解。以上就是全部内容了,本文内容都是基于个人的理解进行的记录,如果错误欢迎批评指正。

2023-08-14 21:45:22 274

原创 时间序列的异常检测与预测方法总结

以上就是全部内容了,如有问题,欢迎评论区一起交流。

2023-06-25 17:34:47 6727 6

原创 基于flask和docker的深度学习模型部署

最近使用了flask和docker部署了一个深度学习的模型,做的是nlp的情感分析,经历了九九八十一难终于算是部署成功了,自己也总结了这次模型部署的流程,记录下来供自己和大家参考。以上就是全部的内容了,这是基于我自己做的项目部署来记录的,所以有一定的格式规范,比如需要准备app bin等文件。不知道是否写的足够清楚,如果有啥疑问欢迎留言,大家一起交流。

2023-05-05 14:37:28 525 1

原创 条件debug的设置

以上就是全部的内容了,常见的注意点也提了一嘴,希望能帮到像我一样的小白。

2023-04-10 10:06:46 471 1

原创 GPT-3.5-turbo小白连接教程

以上就是全部内容了,也是参考官网的教程来搞得,没啥技术含量,就当记录一下小白的成长经历吧。考考:链接1:https://www.bilibili.com/video/BV1q8411u7KL/?链接2:https://platform.openai. com/account/api-keys。

2023-04-07 10:30:31 12813 9

原创 服务器中下载特定版本的安装包

以上方法虽然能在低版本python下安装高版本的安装包,但是因为python版本较低的原因还是会出现报错,比如依赖包里需要的某些函数可能会缺失。以上就是全部内容了,虽然是比较笨的方法,但也是自己慢慢摸索出来的,记录下来作为小白成长日记的一部分。

2023-04-07 09:36:21 442 1

空空如也

空空如也

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

TA关注的人

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