- 博客(300)
- 资源 (4)
- 收藏
- 关注
原创 vllm启动大语言模型时指定chat_template
"content": "你是我的小助理"},"content": "告诉我你是谁"],}'
2024-10-14 21:29:46 1916
原创 vllm使用BitAndBytes量化模型失败
意思是vllm不支持在bitsandbytes量化后的模型中使用tensor并行加速,也就是–tensor-parallel-size的值不能大于1。
2024-09-08 16:04:29 962
原创 对象存储数据库minio的持久化存储
启动容器目录映射了一个目录到docker内的/bitnami/minio/data。这个目录存储持久化数据到磁盘,重启容器也不担心丢失。但如果使用的是minio/minio镜像,则需将映射目录映射到docker的/data目录。我这里拉取的是bitnami/minio,它比官方的minio/minio更强大。
2024-09-03 20:50:57 433
原创 使用docker部署tensorrtllm推理大模型baichuan2-7b
大模型的推理框架,我之前用过vllm和mindie。近期有项目要用tensorrtllm,这里将摸索的过程记录下,特别是遇到的问题。我的环境是Linux+rt3090。
2024-09-03 20:32:11 1301
原创 昇腾环境下使用docker部署mindie-service
MindIE是基于昇腾硬件的运行加速、调试调优、快速迁移部署的高性能深度学习推理框架。它包含了MindIE-Service、MindIE-Torch和MindIE-RT等组件。我主要用MindIE-Service的功能,这个组件对标的是vllm这样的大语言推理框架。
2024-07-08 20:22:45 2145 6
原创 使用vllm部署大语言模型
vLLM是一个快速且易于使用的库,用于LLM(大型语言模型)推理和服务。通过PagedAttention技术,vLLM可以有效地管理注意力键和值内存,降低内存占用和提高计算效率。vLLM能够将多个传入的请求进行连续批处理,从而提高整体处理速度。
2024-07-08 19:32:37 2612
原创 在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调
LoRA 提出在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新,从而减少适配下游任务所需要训练的参数。
2024-07-02 18:22:01 2111
原创 什么是指令微调(LLM)
经过大规模数据预训练后的语言模型已经具备较强的模型能力,能够编码丰富的世界知识,但是由于预训练任务形式所限,这些模型更擅长于文本补全,并不适合直接解决具体的任务。指令微调是相对“预训练”来讲的,预训练的时候是使用大量无标注的文本,让模型每次都预测下一个字符的方式来训练。而指令微调也可以叫“监督微调”,也就是对于输入文本有标准答案,用标准答案来训练模型。一般预训练完毕后就要进行指令微调,经过指令微调后,大语言模型能够展现出较强的指令遵循能力,可以通过零样本学习的方式解决多种下游任务。
2024-06-28 18:25:03 3320
原创 将huggingface的大模型转换为safetensor格式
很多huggingface的大语言模型都是pytorch的格式,但是mindie需要safetensor格式,另外mindieservice加载原始的baichuan2-13b的模型出错,后来排查是bfloat16数据格式的问题,所以这次转换要一次性转为float16的格式。看下模型下的config.josn文件,可以看到torch_dtype已经变为float16格式,转换之前这里是bfloat16。可以看到多了safetensor结尾的模型,原来bin后缀的也没删。
2024-06-27 14:07:24 1030
原创 解决llama-factory运行中的No module named ‘_bz2‘和No module named ‘_lzma‘
在llama-factory执行lora微调时,按照手册安装了依赖,微调还是遇到错误。可以看到我出错的代码位于/usr/local/python3.10.2。这个库是有的,但是位置是/usr/lib/python3.10/我是在华为昇腾训练服务器的docker内遇到的。,我用类似的方法一并解决了。
2024-06-27 11:06:19 629
原创 在昇腾开发环境合并baichuan2-13B模型的lora文件
别人使用lora的方式对baichuan2-13b的模型进行了微调训练,希望我能部署到mindie服务中。"base_model_name_or_path": "/home/xxxxx/baichuan-inc/Baichuan2-13B-Chat", #这里是微调基础模型路径。。。。。。。。。。
2024-06-24 18:00:25 638
原创 LLM中的few-shot是什么意思
我上篇博客写了我做的测试Baichuan2-13B模型的一些工作,测试过程免不了要修改代码,在代码中接触了下所谓的few-shot。比如,所谓2-shot,就是在提示词里提供两个问题和答案,让大模型以为自己回答过问题,后面生成文本会参考前面的内容。2-shot的提示词如下:而0-shot,或者zero-shot在正式的问题前面就没有追加的例子。
2024-05-22 16:36:06 598
原创 baichuan2-13b-base的C-Eval得分简析
可以看到偏记忆、偏文的容易得高分,偏理工科(特别是数学)容易得低分,数学的得分和瞎猜差不多,四个选项随机选也能得0.25左右啊。最终平均得分0.587。
2024-05-22 16:15:27 532
原创 深度学习口型驱动Visemenet使用小结
看官网资料,他们主要是做口型动画的,他们的主要方法和概念在论文《》里有介绍。他们通过观察发现,人们发音时的动作有两个重要维度,一是下巴骨骼的运动,二是嘴部肌肉的运动。而不同的说话"风格",可以通过调整这两个维度从而捕捉到更有表达力的口型。比如同一个人用不同的情绪来发同一个音素,其口型差距巨大。不同的发音方法对应的嘴唇宽度和下巴位移量都不一样。在JALI的坐标轴中,五种风格的发音分布如下。其横坐标是下巴位移,纵坐标是嘴唇形变。当然,除了下巴和嘴唇宽度,正常的视位口型还是需要的。
2024-04-30 19:47:02 1285
原创 使用共振峰提取元音音素/从声音生成口型动画
这个变量是下一步要用的。视位序列内容是0~5的数字,0表示静音状态,1-5分别表示a\o\e\i\u的嘴型视位。》中的方法可以提取音频文件的共振峰,使用三个共振峰作为三个坐标,和标准的元音共振峰求欧氏距离,距离最近的就是对应的原因。由于上面生成的视位fps是40,我在生成视频前将视位id做了滤波,也就是每4个位置进行统计,压缩为一个视位,压缩后的视位就是4个位置上出现最多的视位。所以我生成的视频是10fps的。我选取了a\o\e\i\u的对应的5张图片对应的视位,存到一个名称为viseme的目录下,如下。
2024-04-19 23:20:25 1432
原创 音素与视素(Viseme)
音素(Phoneme),是人类语言中能够区别意义的最小声音单位。视素(Viseme),是指与某一音素相对应的嘴、舌头、下腭等可视发音器官所处的状态。Viseme是MEPG4标准提出来的概念。有时Viseme也翻译为视位。下面会混用这两个翻译方法,但意义一样。
2024-04-17 23:10:36 968 1
原创 使用python+librosa提取共振峰
我的需求是在做动画的时候由音频文件生成嘴型动画,免去做口型的K帧的工作量。在考察了一些技术后,我发现,如果能让算法从音频文件生成音素序列或者blendshaps权重系数序列是比较符合我需求的。离线在线都行,我不需要实时。声音驱动人脸的比较出名的应该是英伟达的Audio2Face,这个方案生成的是Audio2Mesh,不是blendshaps。
2024-04-17 17:38:52 1535 1
原创 口型动画论文2:《基于语音驱动的表情动画设计与实现》
根据音素之间互相影响的规律,按照容易被影响的程度将汉语声母、韵母进行等级的划分,越高级表示越不容易受到影响,如表3-3所示,表3-4所示。根据表格显示的等级,高等级的韵母更不容易受到低等级韵母的影响,高等级的韵母更容易对低等级的韵母、声母产生影响。本文的衍生的成品不是一个软件,而是一段动画,而且是根据已有的语音来设计嘴型动画,作者根据汉语的发声特点设计了14种静态视位。可惜作者是艺术学院的,不是计算机相关专业,最终只是形成了一个给人看的做动画的技能指南,而不是一个自动化的软件工具。
2024-04-13 23:45:21 433
原创 口型动画论文解读1:《与汉语语音同步的三维人脸动画的研究》
这篇论文的成果中也有对表情的的实现。但是很可惜只是简单的表情演示,没有将表情和口型动画结合起来。完全可以增加一个情感分析模块,然后在口型动画中增加表情。
2024-04-13 15:45:30 531 1
原创 汉语语音基本特性
人的发音生理机构如图 2.3.1所示,发音时由肺部收缩送出一股直流空气,经气管流至喉头声门处(声门即声带开口处),在发声之初,声门处的声带肌肉收缩,声带并拢间隙小于 1mm,这股直流空气冲过很小的缝隙,使声带得到横向和纵向的速度,此时,声带向两边运动,缝隙增大(成年男性开到最大时,截面积约为 20mm),声门处压力下降,弹性恢复力将声带拉回平衡位置并继续趋向闭合,即声带产生振动,而且具有一定的振动周期,如图 2.3.2所示。,是一种三维图形,纵轴对应于频率,横轴对应于时间,图像的黑白度正比于语音信号的。
2024-04-01 18:14:57 1438
原创 windows下QT如何集成OpenCV
由于安装的时候我选择的QT组件都是MInGW的,所以无法使用VS studio版本的dll库。在解压opencv后找到x64\mingw\bin目录,复制需要的dll模块到自己的工程下,如果没有特别需要,复制三个最常用的就够了。》中的说法,vs的c++ abi是stdcall, 而mingw使用的调用方式是cdecl。我一开始下载的opencv官方预编译的包,结果一直显示“error: undefined reference to”这样的错误。我是在windows下创建的Cmake类型的Qt工程。
2024-03-29 14:36:06 817
原创 数字人:试用FACEGOOD-Audio2Face的不愉快经历
就像名字中的那样,这其实是一个Audio2Face。主要就是将语音转口型的一个算法,内含了tensorflow的预训练模型,也提供了训练代码。但是该方案还包含了ASR和TTS的流程,包含了一整个问答的流程。中间只缺了连gpt生成内容的部分,这部分代码可以自己加。整体框图如下:上图ASR和TTS之间插入调用大预言模型的代码。不加的话会比较奇怪,自己识别后又TTS。facefood的这个开源不走心,没法用于自己的ARKit方案。除非你打算用官方的116维权重的3D模型。
2024-03-25 11:27:29 2048 3
原创 布料放大100倍后是什么样子
生活中绝大多数面料都是人造化学材料做成的。将纺织面料放大100X以上看到的样子都是那种塑料的感觉,和宏观的外观差别很大。我最近在做这方面的事情,这里分享几张布料的放大图片。这些布料看上去都很普通,但是放大后各有特点。
2024-03-19 16:12:45 266
原创 在Qt中使用线程类QThread
QThread是qt中的一个线程类。目前我了解到的共有两种用法,一种是作为普通的线程,就像c++标准库中的std::thread一样,另一种就是作为信号槽的容器,负责调用qt的时间循环。
2024-03-19 15:42:46 677
原创 QT之QString.arg输出固定位数
最后一个参数是QChar,这是一个16位的字符类型,并不是c++中的char。我需要用QString输出一个固定位数的数字字符串。
2024-02-23 10:17:41 811
原创 python/numpy读取二进制文件
我有一个文件,内容是摄像头的BGR数据,分辨率是1920X1080, 每个像素3个字节,共6220800字节。我已经写到磁盘上的文件里,需要用python读取到numpy中进行处理。使用open打开文件,二进制读取后用np.frombuffer转换为numpy.ndarray。使用numpy的fromfile函数直接从磁盘读取。
2024-02-21 17:02:35 544
原创 PySimpleGUI:让spin支持循环
自己用PySimpleGUI写了个小工具,但是发现它的spin不支持循环。Tkinter本身的Spinbox有wrap这个开关可以觉得是否支持循环,但是没看到PySimpleGUI也支持这个特性。
2024-01-22 18:18:46 460
原创 PySimpleGUI主题窗口样式
PySimpleGUI是一个基于Tthinter的简单GUI框架,可以作为python下跨平台的轻量级UI来使用。我看到示例代码里有设置主题的代码,所以找官方文档看了下,可以预览素有主题,方法是:这个代码会生成所有窗口的预览样式。窗口较多,我这里截图分开来展示。在自己的代码头部,使用以下代码设置主题:这里的主题名称在下面的主题样式中有显示,填写对应的名称即可。PySimpleGUI定义的主题就是设置了按钮、窗口、背景等元素的颜色等信息。所有的主题列表如下:参考资料PySimpleGUI 教程官网
2024-01-08 15:24:26 944
原创 解决pyuvc无法读取yuv格式的问题
我使用pyuvc访问uvc摄像头,但是发现pyuvc只支持了MJPEG的格式和GRAY格式。后面通过阅读pyuvc的代码,发现libuvc本身没有限制YUV的格式,是pyuvc限制的。首先修改_supported_formats,增加对uvc.UVC_FRAME_FORMAT_YUYV和uvc.UVC_FRAME_FORMAT_ANY的支持。编译生成新的whl文件在源码的wheelhouse/目录下。我的摄像头返回的是packaged格式的YUV420数据,我直接保存到磁盘文件中。在编译中我遇到的问题在。
2024-01-05 11:38:50 672
原创 delvewheel进行repair时报Unable to find library: msvcr100.dll【已解决】
我系统是64位的windows,我系统上在C:\Windows\SysWOW64这个目录下是存在msvcr100.dll这个文件的,但是它是32位的,delvewheel 把它忽略了。如果whl是64位CPU,则要求dll也要是64位的。可以看到,这里的类型判断和上面截图里二进制内容是对应的,PE后面跟着0x8664就是64位,跟着0x14c就是32位。网上各种修复方法,试了都不靠谱,还是下载了delvewheel源码一点点加打印分析,发现是dll和whl的CPU位宽类型不一样导致的。
2024-01-05 10:56:32 1005
原创 使用python访问uvc摄像头
我有个支持uvc的摄像头,想通过python获取图像并设置其参数。如果在linux下,使用v4l2的相关库即可,在windows下我想了两个办法,一是使用opencv-python,二是安装一个叫pyuvc的库。
2023-12-27 17:06:49 3497 6
原创 linux下使用v4l2-ctl查看摄像头数据
我有一个支持uvc的相机,通过USB线和我的linux开发机连起来了。为了查看它的信息,我上网发现有v4l-utils这个包。这个包的工具可以让我在写代码前就对相机的参数有个大概了解。摄像头的有些参数是可调的,有些甚至支持zoom和云台的控制,具体的情况是看相机端实现的。虽然下面显示/dev下两个设备,但是实际上就一个摄像头(Webcam gadget),下面用/dev/video0来访问。我主要是用v4l2-ctl来查看摄像头的信息。我这个相机是4K的,可以看到4K的格式。
2023-12-27 15:13:51 4061
原创 label_studio中uwsgi内存占用高的问题排查
在大内存的host系统上申请的内存多,在内存不那么富裕的host系统上,docker起来后申请的内存就少。本来发现问题的是label_stuido17.3, 我下载了18.02版本的docker,问题也是一样的,看github上的issues,没看到跟我一样的问题。我用docker-compose控制docker看到的内存大小,结果只要不够的话,uwsgi根本就起不来,我猜测它有办法获取host系统上实际的内存大小,然后计算预申请的内存大小,不够的话就死给你看。箭头左边是默认值,右边是我修改的值。
2023-09-20 14:17:55 470 2
原创 transformer大语言模型(LLM)部署方案整理
大模型的基本特征就是大,单机单卡部署会很慢,甚至显存不够用。毕竟不是谁都有H100/A100, 能有个3090就不错了。目前已经有不少框架支持了大模型的分布式部署,可以并行的提高推理速度。不光可以单机多卡,还可以多机多卡。
2023-09-13 11:25:55 5027
原创 ARM汇编1:如何在C语言中使用汇编
我最近对ARM的NEON编程有兴趣,主要是为了想学习一些矩阵计算加速相关的知识。但是我又不想写纯粹的汇编语言,我想在C语言中嵌入汇编来使用。经过检索学习,我找到两种可行的方式。我在阅读ncnn代码的时候,发现下面这两种方式都有用到。为了后续能愉快的阅读ncnn代码,将相关知识做个简单的整理。
2023-03-11 15:31:10 1337 1
原创 将pytorch的pth文件固化为pt文件
上面代码保存了state_dict, 所以保存的文件中是不含模型结构的,固化时需要从代码构造网络结构。好在项目是完全开源,将原项目下的model目录拷贝过来就行。,这个项目提供了预训练模型,我想要将该模型固化,然后转换格式后在嵌入式端使用。另外不能忘记调用eval() 来固化参数。我参考了一个开源的人像语义分割项目。
2023-03-08 15:13:54 3069 1
IT++信号处理和通信C++ 库
2024-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人