自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【工程实际】logging

使用logging模块作为日志记录。

2024-11-01 14:56:22 65

原创 【工程实践】使用FastAPI进阶

使用pydantic对输入文本进行校验,是否符合输入规则。

2024-07-24 10:16:39 279

原创 【大模型】大模型微调方法总结(四)

在实验中,我们发现不同的理解任务通常用不同的提示长度来实现其最佳性能,这与Prefix-Tuning中的发现一致,不同的文本生成任务可能有不同的最佳提示长度。2.缺少深度提示优化,在Prompt Tuning和P-tuning中,连续提示只被插入transformer第一层的输入embedding序列中,在接下来的transformer层中,插入连续提示的位置的embedding是由之前的transformer层计算出来的,这可能导致两个可能的优化挑战。大模型的Prompt构造方式严重影响下游任务的效果。

2024-06-28 14:00:59 762

原创 【工程实践】大模型推理指定GPU

使用大模型进行推理,一般是在docker容器中,记录推理过程中遇到的问题。

2024-06-28 13:59:59 366

原创 【大模型】大模型微调方法总结(三)

因为之前的人工构建的template是离散的,且针对不同的下游任务,需要构建不同的模版。手动尝试最优的提示无异于大海捞针,于是便有了自动离散提示搜索的方法,但提示是离散的,神经网络是连续的,所以寻找的最优提示可能是次优的。Prompt token 的长度在20左右时的表现已经不错(超过20之后,提升Prompt token长度,对模型的性能提升不明显了),同样的,这个gap也会随着模型参数规模的提升而减小(即对于超大规模模型而言,即使 Prompt token 长度很短,对性能也不会有太大的影响)。

2024-06-26 10:29:57 722

原创 【大模型】大模型微调方法总结(二)

对于 N 的不同的下游任务训练 N 个 Adapter 模块,使用 AdapterFusion 组合 N 个适配器中的知识,将预训练参数 Θ 和全部的 Adapter 参数 Φ 固定,引入新的参数 Ψ,使用 N 个下游任务的数据集训练,让 AdapterFusion 学习如何组合 N 个适配器解决特定任务。如果始终将维度限制在64,将导致平均准确率略微下降。),在不影响任务性能的情况下,对Adapter动态高效的移除,尽可能的减少模型的参数量,提高模型在反向传播(训练)和正向传播(推理)时的效率。

2024-06-26 10:29:26 665

原创 【大模型】大模型微调方法总结(一)

微调是指调整大型语言模型(LLM)的参数以适应特定任务的过程。这是通过在与任务相关的数据集上训练模型来完成的。所需的微调量取决于任务的复杂性和数据集的大小。在深度学习中,微调是一种重要的技术,用于改进预训练模型的性能。除了微调ChatGPT之外,还有许多其他预训练模型可以进行微调。

2024-06-26 10:28:54 418

原创 【工程实践】数据清洗

有个很著名的论断:一个数据科学家80%的时间花在了数据清洗,20%的时间花在算法模型上面。数据清洗很像一个筛沙子的过程,通过整合筛选,筛出金子般的数据洞察/模型预测。不然的话,建模分析就是garbage in, garbage out (垃圾进,垃圾出)

2024-06-12 14:29:46 225

原创 【工程实践】gradio调用模型与展示

模型在云端部署好之后,衍生出Flask、Fastapi的接口,可以借助gradio调用接口展示在前端。

2024-06-12 14:25:24 336

原创 【工程实践】CatBoost进行多分类

CatBoost是俄罗斯的搜索巨头Y andex在2017年开源的机器学习库,和lightgbm、xgboost并成为gbdt三大主流神器库,它是一种基于对称决策树(oblivious trees)算法的参数少、支持类别型变量和高准确性的GBDT框架,主要说解决的痛点是高效合理地处理类别型特征,另外提出了新的方法来处理梯度偏差(Gradient bias)以及预测偏移(Prediction shift)问题,提高算法的准确性和泛化能力。

2024-06-12 14:24:20 1110

原创 【大模型】LangChain自定义 LLM 类

为便捷构建 LLM 应用,需要基于本地部署的LLM模型,自定义一个 LLM 类,将LLM接入到 LangChain 框架中。完成自定义 LLM 类之后,可以以完全一致的方式调用 LangChain 的接口,而无需考虑底层模型调用的不一致。

2024-05-23 15:20:24 376

原创 【工程实践】Triton Inference Server

Triton Inference Server是英伟达Nvidia开源的高性能推理,可以在CPU、GPU上加速模型推理的一个工具。Triton Inference Server是一个适用于深度学习与机器学习模型的推理服务引擎,支持将TensorRT、TensorFlow、PyTorch或ONNX等多种AI框架的模型部署为在线推理服务,并支持多模型管理、自定义backend等功能。将模型转成onnx之后,使用Triton Inference Server加载并提供服务,推理速度提升,内存占用减少。

2024-05-21 11:08:15 930

原创 【深度学习】Pytorch模型转成Onnx

工作时需要将模型转成onnx使用triton加载,记录将pytorch模型转成onnx的过程。

2024-05-14 20:58:16 777 1

原创 【大模型】ChatGlm3-6B调用Tools

使用ChatGlm3-6B base模型调用Tools

2024-05-06 18:25:39 237

原创 【深度学习】pip 临时换源

例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch,这样就会从清华这边的镜像去安装torch库。可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple。

2024-03-21 11:04:59 229

原创 【大模型】Lora

Low-Rank Adaptation(低秩适应)是一种针对大型语言模型(如GPT-3等)在下游任务上进行的参数效率优化技术。这种方法的核心思想是,在模型适应下游任务的过程中,不是更新全部的模型参数,而是仅更新一部分参数,以此来减少需要训练的参数量,提高训练效率,并减少内存消耗。具体而言,低秩适应通过矩阵分解的技术,将大型语言模型中的权重矩阵分解为两个更小的矩阵的乘积,这两个小矩阵是可训练的。在训练过程中,只训练这两个小矩阵,而固定住原始预训练模型的权重。

2024-03-11 18:12:33 2092

原创 【大模型】微调ChatGlm3-6b

指令微调ChatGlm3-6b。微调教程在github地址中给出,微调环境是Qwen提供的docker镜像为环境。镜像获取方式:docker pull qwenllm/qwen:cu117。

2024-02-26 09:10:36 2391 3

原创 【大模型】微调Qwen1.8B

使用地址数据微调Qwen1.8B。Qwen提供了预构建的Docker镜像,在使用时获取镜像只需安装驱动、下载模型文件即可启动Demo、部署OpenAI API以及进行微调。获取方式:docker pull qwenllm/qwen:cu117。

2024-02-21 11:26:08 2732 1

原创 【工程实践】使用flask、fastaip开启服务与调用

工作中,模型训练好之后,需要部署在云端供下游调用。云端部署服务时,可以选择使用FastAPI,也可以使用Flask,搭建过程大同小异,此文记录服务搭建过程。

2023-12-19 15:07:13 713 1

原创 【大模型】Prompt

Prompt就是“提示”的意思,通俗解释可以参考你画我猜游戏。如下图所示:提示词就作为Prompt,指导对方说出正确答案。而自然语言处理任务中的Prompt也有同样的效果,指导模型输出正确的答案。 Prompt刚刚出现的时候,还没有被叫做Prompt,是研究者们为了下游任务设计出来的一种输入形式或模板,它能够帮助PLM“回忆”起自己在预训练时“学习”到的东西,因此后来慢慢地被叫做Prompt了。 Prompt Learning是指对输入文本信息按照特定模板进行处理,把任务重构成一

2023-12-19 15:06:08 2158

原创 【深度学习】对比学习的损失函数

损失(Contrastive Learning Loss)是一种用于自监督学习的损失函数。它侧重于学习一个特征空间,其中相似的样本被拉近,而不相似的样本被推远。在二分类任务中,对比学习损失可以用来学习区分正负样本的特征表示。损失函数有多种,其中比较常用的一种是InfoNCE loss。InfoNCE Loss损失函数是基于的一个损失函数,是由NCE Loss损失函数演变而来。

2023-12-19 15:04:45 13593

原创 【深度学习】Sentence Embedding-BERT-Whitening

flow模型本身很弱,BERT-flow里边使用的flow模型更弱,所以flow模型不大可能在BERT-flow中发挥至关重要的作用。反过来想,那就是也许我们可以找到更简单直接的方法达到BERT-flow的效果。BERT-whitening则认为,flow模型中涉及到的逆变换和雅可比行列式计算实际需要满足变换简单、易计算的特点。因此每一层的非线性变换能力就“很弱”,为了保证充分的拟合能力,模型就必须堆得非常深。但实际上BERT-flow所使用的模型计算量并大。

2023-12-19 15:02:34 1245

原创 【深度学习】Sentece Embedding - SImCES

句子向量表示一直作为很多自然语言处理任务的基石,一直是NLP领域的热门话题,BERT-Flow以及BERT-whitenning其实像是后处理,将bert的输出进行一定的处理来解决各向异性的问题。而《Simple Contrastive Learning of Sentence Embeddings》,即「简单的对比句向量表征框架」,通过一种简单的去做句子嵌入。而且在可以不要监督数据的情况下,生成质量较好的句子向量。文章被收录在EMNLP2021。

2023-12-19 15:01:24 1407

原创 【工程实践】使用modelscope下载大模型文件

Modelscope(魔搭社区)是阿里达摩院的一款开源模型平台,里面提供了很多的热门模型供使用体验,其中的模型文件可以通过git clone 快速下载。并且为模型提供了Notebook的快速开发体验,使用阿里云服务,不需要额外部署机器进行模型的运行调试,即可自动在阿里云进行实例创建。

2023-12-08 11:18:56 4377

原创 【工程实践】Docker使用记录

前言服务上线经常需要将服务搬到指定的服务器上,经常需要用到docker,记录工作中使用过dcoker指令。

2023-11-13 16:53:00 678

原创 【深度学习】Sentence Embedding-BERT-Flow

BERT等语言模型在多数NLP任务中取得优异的表现,但如果直接取BERT输出的句向量作表征,取得的效果甚至还不如Glove词向量。Bert-flow论文中指出,产生该现象的原因是BERT模型的各向异性过高,Transformer模型的输出中,高频词汇分布集中,低频词汇分布分散,整个向量空间类似于锥形结构。

2023-10-24 08:44:44 436

原创 【深度学习】对比学习

对比学习有的paper中称之为自监督学习[1],有的paper称之为无监督学习[2],自监督学习是无监督学习的一种形式,现有的文献中没有正式的对两者进行区分定义,这两种称呼都可以用。其常见的主要思想是模型能够更加重新的学习到编码器的特征:尽可能的缩小相似样本的距离,拉大正负样本的距离,这里可以理解为让聚类的界限更加明显。自监督学习(Self-supervised learning)可以避免对数据集进行大量的标签标注。

2023-09-13 15:55:33 998

原创 【大模型】ChatGPT

本文主要介绍GPT模型的训练方法,包括预训练、监督微调、奖励建模和强化学习这四个阶段。不同微调模型具备不同特点,基础模型更富创造力,而强化学习微调后可获得最高质量的回复。在使用GPT的使用,可以利用提示工程技巧,比如提供充足上下文、引导模型步步思考等。当前模型依然存在各种局限,人类应谨慎而有效地将其应用于低风险的协作场景中,不能轻视其潜在风险。总体而言,本文系统地介绍了GPT训练的全流程和具体应用中的各种关键技巧。

2023-09-01 17:21:16 2770 3

原创 【工程实践】使用git clone 批量下载huggingface模型文件

经常需要下载模型到服务器,使用git clone方法可以快速实现模型下载。

2023-08-31 16:10:04 4440

原创 【工程实践】使用pandas的记录

工作中处理数据时,经常需要使用pandas,记录一些工作中使用pandas的习惯。

2023-08-21 14:11:21 172

原创 【深度学习】NLP中的对抗训练

在NLP中,对抗训练往往都是针对嵌入层(包括词嵌入,位置嵌入,segment嵌入等等)开展的,思想很简单,即针对嵌入层添加干扰,从而提高模型的鲁棒性和泛化能力,下面结合具体代码讲解一些NLP中常见对抗训练算法。

2023-08-14 15:49:32 1600

原创 【深度学习】再谈向量化

向量化于人工智能时代而言,有着里程碑式的意义。人工智能与向量化,就如同西方与耶路撒冷。

2023-08-11 08:35:15 3044

原创 【工程实践】解决使用tf2onnx将模型转化为onnx格式时报错:AttributeError: ‘FuncGraph‘ object has no attribute ‘_captures‘

如标题所述,使用tf2onnx将tensorflow模型转换为onnx时候报错,AttributeError: 'FuncGraph' object has no attribute '_captures'。

2023-08-10 15:27:12 884

原创 【工程实践】使用Roformer-sim(SimBERTv2 )做数据增强

Roformer-sim为基础模型做数据增强,用作数据增强与文本相似度计算。

2023-08-09 10:46:11 1204 3

原创 【工程实践】解决Synonyms无法下载词向量文件

使用EDA(Easy Data Augmentation)做数据增强时,需要借助Synonyms库,完成同义词的提取。Synonyms 是一个中文近义词工具包,它可用于如文本对齐、推荐算法、相似度计算、语义偏移、关键字提取、概念提取、自动摘要、搜索引擎等很多自然语言理解 (NLP) 任务。该工具包目前能搜索近义词和比较语句相似度等任务,且词汇量达到了 125,792。该中文近义词工具包采用的基本技术是 Word2vec。

2023-08-07 15:52:57 460

原创 【工程实践】使用EDA(Easy Data Augmentation)做数据增强

EDA是一种简单但是非常有效的文本数据增强方法,是由美国Protago实验室发表于 EMNLP-IJCNLP 2019 会议。EDA来自论文《EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks》对于提高文本分类任务性能的简单数据增强技术,文中提出了四种数据增强技术方案,具体包括同义词替换随机插入随机交换随机删除。

2023-08-07 15:06:03 1618

原创 【大模型】GPT-3

GPT-3这是一个具有1750亿个参数的自回归语言模型,比之前的任何非稀疏语言模型大至少10倍,并在few-shot设置下测试其性能。对于所有任务,GPT-3都是在没有任何梯度更新或微调的情况下应用的,仅通过与模型的文本交互来指定任务。GPT-3的主要目标是用更少的领域数据、且不经过精调步骤去解决问题。主要贡献:证明了通过增大参数量就能让语言模型显著提高下游任务在Few-shot(仅给定任务说明和少量示例)设置下的性能。有时甚至达到了与现有最先进的微调方法相比的竞争力。

2023-07-26 08:50:28 2113

原创 【大模型】GPT-2

GPT-2继续沿用了原来在GPT中使用的单向 Transformer 模型,尽可能利用单向Transformer的优势,做一些BERT使用的双向Transformer所做不到的事。那就是通过上文生成下文文本。​ GPT-2的目标是为了训练一个泛化能力更强的词向量模型,它并没有对GPT-1的网络机构进行过多的结构创新和设计,只是使用了更大的数据集和更大的网络参数。

2023-06-25 11:09:58 2921

原创 【大模型】GPT-1

在自然语言处理任务中,存在大量无标签的语料数据,而有标签的语料数据相对较少,因此基于有监督训练的模型性能的提升大大受限于数据集。为了解决这个问题,GPT-1的作者们提出先在大量的无标签数据上训练一个语言模型,然后再在下游具体任务的有标签数据集上进行Fine-Turn。GPT-1:使用通用的预训练提升自然语言的理解能力,使用没有标号的文本来预训练模型,最后在子任务上微调模型。

2023-06-21 14:31:55 3134

原创 【工程实践】python实现多进程

Python中比较常见的并发方式主要有两种:多线程和多进程。多线程即在一个进程中启动多个线程执行任务。一般来说使用多线程可以达到并行的目的,但由于Python中使用了全局解释锁GIL的概念,导致Python中的多线程并不是并行执行,而是“交替执行”。类似于下图。所以Python中的多线程适合IO密集型任务,而不适合计算密集型任务。Python提供两组多线程接口,一是thread模块_thread,提供低等级接口。

2023-06-21 09:08:30 2762

空空如也

空空如也

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

TA关注的人

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