python包的安装和环境配置总结
1、查看自己CUDA版本号1nvidia-smi 2. 安装torch\torchvision\torchaudio三大组件包下载管理站1 # 该链接貌似已失效包下载管理站2 # 阿里镜像站可用 首先选择torch,ctrl + F 搜索 [cu102-cp38-cp38-win] 这里cu102 是我们下载的 CUDA 10.2 版本,cp38-cp38 是说我们的 Python 版本是 3.8。如果要安装python3.9那将cp3.8改为cp3.9即可。 需要注意的是 python版本号 CUDA版本号 以及 系统是我们需要的。 3.CONDA环境配置例如: 1conda create -n xxx python=3.9 然后在终端执行命令: 1conda activate xxx 4、pip WHL文件执行下面的命令安装轮子 1pip xxx.whl 以上就是配置环境的简明教程 torch_geometric安装torch_geometric是PyG中必不可少的一个包,也是进行图神经网络学习的必备,然而安装这个包并运行一段简单的代码踩了不少坑,记录一下。 执行以下命...
解决 pip 开了网络代理之后无法安装python包的问题
问题描述:开了网络代理后,无法在终端直接使用pip和conda命令,会报错: 12345678910$ pip install netsmLooking in indexes: https://pypi.tuna.tsinghua.edu.cn/simpleWARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)'))': /simple/netsm/WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOF...
vscode上一种优雅的debug方式
vscode 如何debug python torchrun deepspeed[自用,防忘记]⚠️ 写在前面(一定要看) debug程序的方式有很多种。每一种方式都各有缺点:有的方式虽然优雅,但是局限性很大;有的方式麻烦,但是局限性小。 常规方式: 优点:然后可以观察所有线程。一劳永逸。 缺点:就是写参数很麻烦,但是你可以让chatgpt等大模型帮你写。 最最最优雅的方式: 优点:就是需要在代码里面,加入几行代码。方便快捷。 缺点:有时候断点不生效,只能在一个线程里面启动。 建议先使用【常规形式】、如果【常规形式】不够用,再使用【最最最优雅的方式】 B站手把手视频 常规方式:https://www.bilibili.com/video/BV1Hh4y1i7Li 对于torchrun这种形式:https://www.bilibili.com/video/BV1b84y1R75V 对于deepspeed这种形式: https://www.bilibili.com/video/BV1xC4y1P7LH 最最最优雅的方式:https://www.bilibili.co...
Bert用于命名实体识别任务(NER)
前记:BERT(Bidirectional Encoder Representation from Transformers)是2018年10月Google AI研究院提出的一种预训练-微调大模型,和GPT属于是同一时期的产物。BERT在多项自然语言处理任务上都实现了SOTA,抛弃了传统模型,在一种任务上需要修改模型架构的方式,而是同一个模型架构在不需要修改的情况下,应用于多个任务上。因此,一经问世就引起了学术界极大地关注,甚至超过了GPT。 BERT的网络架构使用的是基于Transformer中的Encoder部分,由于其使用Attention的关系,从而避免了传统网络结构,诸如RNN,LSTM,GRU等的遗忘问题,可以捕获一个长序列不同token的相关性问题。 Bert架构图如下: 网络结构介绍:这里重点介绍一下Bert的嵌入编码部分,后面部分就是Encoder模块的堆叠了,并没有什么新奇的。Bert的嵌入编码有三部分,分别是token Embedding,position Embedding, segment Embedding,之所以这里需要segment Embeddi...
大模型中的三角位置编码实现
三角位置编码公式: Transformer中嵌入表示 + 位置编码的实现12345678910111213141516171819202122232425262728293031323334353637import torchimport mathfrom torch import nn# 词嵌入位置编码实现class EmbeddingWithPosition(nn.Module): """ vocab_size:词表大小 emb_size: 词向量维度 seq_max_len: 句子最大长度 (人为设定,例如GPT2的最大长度是1024) """ def __init__(self, vocab_size, emb_size, dropout=0.1, seq_max_len=5000): self.seq_emb = nn.Embedding(vocab_size, emb_size) # 序列中每个token的embedding向量表示 # 位置...
大模型中的KVCache技术
Transformer中的KVCache优化原理前记:现在KVCache已经属于是必备的技术了,但是博主发现自己只是听过这个名词,但是并不了解该技术的原理和实现,遂学习记录了本博客 1.首先KVCache技术有什么用?答:KVCache技术主要帮助模型在推理过程,避免重复的计算,从而减少计算量,加快模型推理速度,同时也会带来成本的降低,设想如果是用户使用一款由该模型作为基座的大模型产品,那么更快的推理速度在用户层面会带来更好的用户体验,同时对于产品运营成本也有所降低。 2.KVCache技术是如何避免掉重复计算的?由下图可知,token在输入模型计算的过程中,存在重复计算的部分,可以发现通过前n个token计算结果获得第n+1个token预测,然后通过这n+1个token再输入到网络中来计算第n+2个token,细细一想,聪明的你是不是发现了后面n+1个token计算的时候,前n个token是不是重复计算了,也就是说 n+1个token输入到模型中,实际上前面n个token的计算,和之前只有n个token输入到网络中的计算结果是一样的,这样就带来了重复计算问题,那我们如何避免掉重...
Attention is all you need.
德语->英语项目: https://github.com/TCcjx/pytorch_transformer-remake 项目目录结构(文件说明): .data(文件夹):数据集Multi30K checkpoints(文件夹):训练权重文件保存处 config.py:全局配置文件,DEVICE以及输入token的最大长度 dataset.py:数据预处理文件,构建德语和英语词表,实现德语和英语的词元token和IDX的一一隐射,以及德语和英语句子预处理函数(输入德语和英语句子,返回分词后的词元列表信息,以及词元ID列表) multihead_attn.py: 构建多头注意力机制模块,这里的实现同时也考虑了解码器中第二个多头注意力机制模块的代码复用,在编码器和解码器的多头注意力机制模块中都可以复用这个多头注意力机制的模块 encoder_block.py:编码器模块的构建 encoder.py:编码器的实现,同时自动处理PAD掩码矩阵,再传入encoder_block中,实现多个encoder_block的堆叠使用 decoder_block.py:解码器模块的构建 de...