自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用Python开发一个上传文件的服务

1、安装uvicorn,利用其来作为web服务器2、安装Starlette,利用其来作为web开发框架3、安装python-multipart,让其支持form表达形式的文件上传4、postman:文件上传的发起者,这样我们就不用写前端界面了。

2024-04-26 14:39:02 245 1

原创 动态规划:LeetCode第10题 正则表达式匹配

给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.''*'所谓匹配,是要涵盖字符串s的,而不是部分字符串。false"a" 无法匹配 "aa" 整个字符串。true因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。true".*" 表示可匹配零个或多个('*')任意字符('.')。

2024-03-04 21:09:27 963

原创 预训练大模型LLM的PEFT之—— Prefix Tuning

Prefix Tuning是2021.01提出来的,在它之前,我们使用prompt主要是人工设计模板或者自动化搜索模板,也就是prompt范式的第一阶段,就是在输入上加上prompt文本,再对输出进行映射。这种离散模板对模型的鲁棒性很差。所以后续的研究都将离散生成prompt方式转成连续的方式。Prefix Tuning是在模型输入前添加一个连续的且是任务特定的向量序列,该序列称之为prefix,然后在训练的时候固定PLM的所有参数,只更新优化特定任务的prefix。

2024-02-29 17:58:37 539

原创 预训练大模型LLM的PEFT之——LORA

LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS,直接翻译过来就是大模型的低秩适配2021年微软提出的LoRA,它的灵感来自于 Li和 Aghajanyan等人的一些关于内在维度(intrinsic dimension)的发现:模型是过参数化的,它们有更小的内在维度(low intrinsic dimension)。于是假设模型在任务适配过程中权重的改变量是低秩(low “intrinsic rank”)的,由此提出LoRA方法。

2024-02-23 11:04:12 1039

原创 预训练大模型LLM的微调PEFT(概述)

参数有效的微调,该微调仅仅微调非常少(额外的)模型参数,而不需要微调模型的所有参数,这将显著的降低计算和存储成本,同时也能产生与完全微调模型相当的性能,这是不是让我们欣喜若狂,实现了我们既要……又要……的夙愿。其实PEFT是一个统称,不同的实现策略让PEFT又有进一步的分类,今天先列出来huggingface的peft包支持的微调方法,后续我再仔细讲解不同的peft方法的异同和相应的微调代码:PROMPT_TUNINGMULTITASK_PROMPT_TUNINGP_TUNINGPREFIX_TUN

2024-02-21 20:03:12 279

原创 全网最容易理解的KMP算法讲解

其实网上有很多讲解KMP算法的文章,详略不一,我认为有两点没有解释清楚:第一点:匹配失败以后,模式串的位移;第二点:next数组的生成算法;希望本篇文章能将KMP算法清晰易懂的拆解开来。

2024-02-19 19:49:33 929

原创 uvicorn日志清空问题以及uvicorn日志配置

1、默认的uvicorn的日志清空存在BUG,建议不要使用2、采用按一定的间隔来生成文件的策略更简单,让Python自己来维护日志文件的生成与清理。

2024-01-22 09:54:04 654

原创 Python通过配置文件控制日志打印

作为一个Java程序员,我们使用过log4j,logback等一系列的日志打印框架,还有比较简单的@Slf4j,只需要一个annotation,就可以很简单的输出日志了,并且日志文件可以按天或者按大小进行滚动,那么在Python里面该如何做呢?其实Java里面的日志配置可以非常平滑的迁移到Python里面来。

2024-01-15 16:17:07 944

原创 图像分类:对google/vit-large-patch32-384模型进行微调

针对google/vit-large-patch32-384模型进行微调,根据自己的数据来训练自己的分类。大模型出现以后,我们不需要再重头来训练我们的模型,直接根据已经训练好的大模型进行微调即可

2023-11-14 14:22:27 491

原创 huggingface如何加载本地数据集进行大模型训练

利用Dataset.from_generator()函数,通过定义一个生成器,就能根据将我们本地自定义的数据转换成大模型需要的任何的格式类型。

2023-11-14 09:48:14 1647

原创 Java的非堆内存与元空间

按照官方的说法:“Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。

2023-11-01 15:27:31 435

原创 Python利用队列Queue实现多进程Process间通信

利用multiprocessing的Process可以非常方便的实现多进程架构,另外使用它的Queue也可以非常便捷的进行进程间通信,这样每个进程指定特定的GPU卡,就实现了GPU卡的利用。

2023-10-20 08:43:26 237

原创 利用uvicorn、Starlette和pipeline将一个训练好的大模型发布成一个web服务

利用uvicorn、Starlette和pipeline将一个训练好的大模型发布成一个web服务

2023-09-27 19:51:19 354

原创 正确设置PyTorch训练时使用的GPU资源

通过Linux的export设置CUDA_VISIBLE_DEVICES环境变量,达到正确设置PyTorch训练时使用的GPU资源的目的

2023-09-21 16:58:48 3384

原创 在PyTorch里面利用transformers的Trainer微调预训练大模型

利用Trainer提供的api,只需要简简单单的九步,十几行代码就能进行大模型的微调,你要不要动手试一试?

2023-09-20 15:18:14 1210 2

原创 大模型:如何利用旧的tokenizer训练出一个新的来?

如果我们需要的语言中没有可用的大语言模型,或者我们要预测的数据集与我们选择的大语言模型训练的数据集非常不同,我们就需要使用适合我们的数据的tokenizer从头开始重新训练模型,训练tokenizer可以不必从头开始

2023-09-19 19:04:44 694

原创 如何才能避免辛苦开发出来的产品惨遭市场冷遇?

1、用户探索的认知循环 定义用户痛点假设与解决方案假设的三种工具:头脑风暴、深入观察/访谈、从他人的失败中学习 这三种工具形成了用户探索的学习和认知的循环;围绕用户痛点,从行动开始,用科学试错的方式来获取认知,由行而知再由知而行,形成认知的不断更迭。认为用户痛点和解决方案在本质上都是未知的、无法完美预测的,需要通过不断地验证与更迭,从而找到真实的需求和有效的解决方案。从别人的失败中获取有用的信息,拓展自己的认知,是一种低 成本的获取认知方式。1、用户痛点的大小决定了创新产品的空间,痛点越大, 机会越大;

2023-09-12 08:32:44 278

原创 详解Hugging Face Transformers的TrainingArguments

TrainingArguments是Hugging Face Transformers库中用于训练模型时需要用到的一组参数,用于控制训练的流程和效果。本文章详细列出了90个参数的解释,供大家选用

2023-09-11 21:12:15 5802

原创 利用微调的deberta-v3-large来预测情感分类

通过手动输入一段话来测试我们情感分类的大模型准确率,并且介绍了如何获取对应的预测下标和使用softmax函数来计算出相应的概率

2023-09-06 19:50:03 668

原创 使用Python virtual environment来创建独立的Python运行环境

Python virtual environment(虚拟环境)是Python中用于管理依赖关系和项目环境的工具。虚拟环境可以使您在同一台计算机上的不同项目之间隔离依赖关系和环境。在Python应用程序中,我们通常会使用很多第三方库和依赖项,并且在不同的项目中使用的库可能有所不同,版本也可能不同。使用虚拟环境可以避免在不同项目之间发生依赖问题,使得项目之间的隔离更加彻底。

2023-09-06 09:50:03 495

原创 利用emotion数据集微调deberta-v3-large大模型的文本分类

通常大家觉得大模型微调比较麻烦,其实只要看到这篇博客,就能实现文本的分类,直接代码贴进去运行即可,非常的便捷。

2023-09-05 21:24:54 1099

原创 利用大模型MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7实现零样本分类

在当今信息爆炸的时代,如何高效地对文本进行分类和标注变得愈发重要。特别是在没有足够上下文信息的情况下,如何将一段文本准确地分类到预定义的标签中,是一个具有挑战性的任务。这篇文章使用 Hugging Face 的预训练模型进行 Zero Shot 分类。

2023-09-04 20:05:43 836

原创 NGINX平滑加权轮询算法 Java实现

基于权重的轮询调度是在基本的轮询调度上,给每个节点加上权重,这样对于权重大的节点, 其被调度的次数会更多。比如a, b, c三台机器的负载能力分别是4:2:1,则可以给它们分配的权限为4, 2, 1。 这样轮询完一次后,a被调用4次,b被调用2次,c被调用1次。对于普通的基于权重的轮询算法,可能会产生以下的调度顺序{a, a, a, a, b, b, c}。这样的调度顺序其实并不友好,它会一下子把大压力压到同一台机器上,这样会产生一个机器一下子很忙的情况。 于是乎,就有了平滑的基于权重的轮询算法。

2023-08-18 11:39:11 346

原创 搞定libstdc++.so.6 version GLIBCXX_3.4.21 not found

OSError: Could not load shared object file: libllvmlite.soErrors were: [OSError("/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/conda3/lib/python3.9/site-packages/llvmlite/binding/libllvmlite.so)"), OSError('libllvmlite.so: c

2023-08-10 21:41:36 2936

原创 语音识别模型whisper的参数说明

它是在各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。如果为true,则前一个模型的输出会作为下一个窗口的提示,禁用可能导致窗口之间的文本不一致,但该模型不太容易陷入故障循环。在CPU接口下,torch使用的线程数量,取代 MKL_NUM_THREADS/OMP_NUM_THREADS。在srt和vtt中说出的每个单词下面加下划线(条件:--word_timestamps True)模型文件的保存路径,默认值:~/.cache/whisper。

2023-06-30 17:09:52 10671 5

原创 NexNosql Client与chatGPT的对话

本文介绍了一款集成Elasticsearch、Redis和MongoDB的数据库管理工具——nexnosql client。作者分享了自己使用不同客户端工具的烦恼,以及如何通过nexnosql client实现三种不同数据库的便捷管理,节约时间和精力。文章从客户端工具的便捷性、功能特点和界面设计方面分别进行了阐述,并强烈推荐其他数据库操作者也尝试使用这个工具。

2023-05-12 09:23:05 1251 1

原创 MongoDB管理神器来袭!NexNoSqlClient让你的效率翻倍!

如果你在日常工作中需要经常使用MongoDB,那么你一定体验过这样一些痛点;繁琐的脚本编写,冗长的命令行操作,复杂的数据建模,现在有了NexNoSalClient,这些问题将不再是问题!NexNoSalClient是一款跨平台的NoSOI集群管理利器,它可以帮助我们轻松连接和管理ES,redis,MongoDB集群,让我们免除繁琐的脚本编写和冗长的命令行操作。更重要的是,它提供了图形化的操作界面,让我们可以通过简单的点选实现数据的增删查改,数据建模,索引的修改等功能,大大提高了我们的使用效率和工作质量。

2023-04-26 15:03:49 2878 10

原创 可选择的Elasticsearch好用的可视化客户端工具

NexNoSQL Client是全网唯一一款不需要写任何DSL语句就能操作elasticsearch的客户端软件,并且还支持Redis和MongoDB

2023-04-11 20:13:39 14132 5

原创 NexNoSQL Client:Elasticsearch、Redis、MongoDB三合一的可视化客户端管理工具

NexNoSQL Client:Elasticsearch、Redis、MongoDB三合一的可视化客户端管理工具

2023-04-04 19:29:41 3923 3

原创 Electron开发的应用利用github维护版本并自动升级

对于使用electron开发的软件来说,自动升级非常简单,只需要安装对于的自动升级模块就能支持,关键的是升级包放在什么位置呢?互联网给我们提供了变量,尤其是GitHub,不仅仅是一个代码仓库,也可以管理版本包,我们就利用这个特性,来实现electron软件的自动更新升级

2023-03-22 21:51:53 1243

原创 Electron应用图标的配置与生成

electron修改项目打包后的exe图标和打开之后的窗口图标

2023-03-21 21:05:22 8418 5

原创 nodejs判断MongoDB集合_id的类型

我们在使用MongoDB的时候,采用了上面两种生成_id的方式,对于需要使用唯一ID的文档,我们就自己生成,否则我们就使用MongoDB自动生成的_id。因为我们的_id有两种生成方式,在使用nodejs操作MongoDB的时候,删除和更新的时候因为_id字段类型的问题导致无法更新和删除。如果集合使用了MongoDB自动生成的_id,在操作的时候,必须这样写:{_id: new ObjectID(_id)}记录当前查询出来的每个文档_id的类型,然后在更新的时候根据_id的类型来生成对应的_id类型。

2023-03-13 20:32:06 354

原创 使用electron-vite +Vue+ElementPlus开发跨平台桌面应用

使用electron-vite +Vue+ElementPlus开发跨平台桌面应用,实现ES友好的客户端

2023-02-27 17:00:58 2675

原创 Fast-ES:全网唯一的Elasticsearch桌面客户端软件

Fast-ES是一款操作elasticsearch的桌面客户端,通过简单便捷的可视化界面,替代了复杂的DSL语句编写,从而实现了“快”速上手、“快”捷使用elasticsearch的效果。• 快速上手,省去elasticsearch DSL学习成本,桌面客户端即开即用• 快捷操作,可视化界面一目了然,减少查找、编写脚本时间• 功能全面,包含数据操作、数据建模、管理监控三大基础功能,另有高级操作扩展补充,覆盖索引、文档相关绝大多数elasticsearch使用场景

2023-02-15 21:33:47 749

原创 四步搞定PPT设计【年终总结篇】

要想做好PPT不是一件容易的事情,其中最让大家忽略的就是分析目标,首先是受众分析,很多时候我们没有去想这个PPT到底是为谁而做,其次是结果分析,我想通过这个PPT达到什么样的结果,它决定了你输出PPT的内容与质量;第三是重点分析,通过突出什么才能打动我们的受众从而收获到我们想要的结果。

2023-01-18 17:39:26 1161

原创 菜菜学paddle第八篇:图像增强的5种方法

在实际任务中,原始数据集未必完全含有解决任务所需要的充足信息。通过分析任务场景的复杂性和当前数据集的短板,对现有数据有针对性做一些数据增强/增广的策略的修改,以提供更加多样性的、匹配任务场景复杂性的新数据,往往可以显著的提高模型效果。数据增强是一种挖机数据集潜力的方法,可以让数据集蕴含更多让模型有效学习的信息。这些方法是领域和任务特定的,扩大训练数据集,抑制过拟合,提升模型的泛化能力。

2022-12-30 09:19:19 1118

原创 菜菜学paddle第七篇:目标检测的基本概念

在前面的几篇中,我们学习了使用卷积神经网络进行图像分类,比如手写数字识别是用来识别0~9这十个数字。与图像分类处理单个物体的识别不同,目标检测它识别的不仅是物体,还是多个物体,不仅要确定物体的分类,还要确定物体的位置。比如下图:目标检测不仅要告诉我们这张图片上既有小狗也有小猫,还要告诉小狗处于左边红色方框内,而小猫处于右边的红色方框内。也即目标检测的输出结果是【目标分类+目标坐标】

2022-12-15 08:39:04 774

原创 解决mysql存储emoji表情唯一索引报错问题

很多文档或者工具把MySQL的COLLATE翻译成排序规则,我认为稍微有点欠妥,或者说不够直观,其实它的英文是“perform comparisons according to a variety of collations”,翻译成比较规则更合适一些,需要排序的场景肯定需要比较,需要比较的场景不一定需要排序。

2022-12-12 15:20:32 802

原创 菜菜学paddle第六篇:利用LeNet卷积神经网络识别手写数字

本文介绍了使用LeNet这个经典的卷积神经网络来在MNIST数据集上实现手写体数字识别任务

2022-11-25 17:52:45 1009

原创 菜菜学paddle第五篇:卷积神经网络概念深度解析

本文讲解了卷积神经网络里面涉及的几个概念,比如如何计算卷积,卷积核,过滤器,填充,步幅,感受野,同时也说明为什么会有输入多通道,输出多通道。池化怎么做,怎么进行批归一化和丢弃

2022-11-23 16:17:44 911

空空如也

空空如也

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

TA关注的人

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