GPT引领了AIGC时代的到来,即AI生成内容(文本、图片、音频、视频)
GPT,GPT是一种生成式的、预训练的大模型,属于深度学习:
G:Generative 生成式 GPT能够通过深度学习算法对已有数据库进行学习,再根据输入的指令生成全新的内容,也即拥有原创能力,同一个问题每次提问所获得的答案都不一样。 GPT生成答案时,采用了自回归语言模型,会基于上下文信息并预测单词的概率分布来生成下一个单词,并将其添加到已生成的答案中。也就是一边回答一边猜测:下一个词句该说什么才符合提问常见条件和语义逻辑,表现为逐字生成的打字机效果。
P:Pre-trained 预训练 GPT利用海量语料数据进行预先训练、深度学习,从而使得模型能够掌握自然语言的语法、语义和知识等方面的信息,构建一个千亿级参数的知识数据库以供检索。
T:Transformer 转换模型 GPT所用的机器强化学习系统架构,是基于Transformer这一个由谷歌设计的大语言模型,通过神经网络模型来模拟人脑的学习方式,从而实现对复杂数据的更高效的分析和学习,能够更准确地理解语义、创造出新的内容。
Transformer的核心机制Self-Attention: 注意力机制,找到一句话中重要的字/词,类似于人阅读一句话,会判断出这句话的重点,那注意力机制也可以拓展到多模态(图片、音频、视频) 自注意力机制,一句话中的词彼此对比找重点 多头自注意力机制,找多个重点
1.GPT原理:文本如何映射到语义空间,是如何做到的,流程如下
一段文本要映射到语义空间是需要经过两步处理:Tokenizer、Embedding
GPT使用BPE(Byte Pair Encoding)作为Tokenizer(分词器),它的原理是将字/词拆成一个个字节,统计训练集中的“字节对”出现的频次,选择出现频次最高的“字符对”,合并为一个新的符号,并基于新的符号再次统计频次再进行一轮新的合并,最终达到目标大小。而这符号的集合我们称之为词汇表,字符我们称之为token。
项目搭建
显卡:NVIDIA P2000 4GB显存,约等于GTX1060
内存:32内存
CPU:Intel 6核12线程
硬盘:SSD预留220G空间
系统:Windows10
Python:3.7.4以上
Anaconda:新版
PyTorch:CUDA 11.3
1.环境配置
2.使用预训练ResNet网络给图片分类
from torchvision import models
dir(models)
resnet = models.resent101(pretrained=True)
#对图像做预处理
from torchvision import transforms
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
mean=[0.485,0.456,0,406],
std=[0.229,0.224,0.225]
)
])
#加载图像
from PIL import Image
img=Image.open('D:/pytorchProject/data/1/dog1.jpg')
img
#预处理
img_t =preprocess(img)
#构建批图像
import torch
batch_t=torch.unsqueeze(img_t,0)
out= resnet(batch_t)
out
加载映射关系
with open(''D:/pytorchProject/data/1/imagenet_classes.txt') as f:
labels=[line.strip() for line in f.readlines()]
#进行接收
_, index =torch.max(out,1)
#概率值进行转换
percentage= torch.nn.functional.softmax(out,dim=1)[0]*100
labels[index[0]], percentage[index[0]].item()
#将前五的输出,做排序处理下
_,indices =torch.sort(out,descending=True)
[(labels[[]idx],percentage[idx].item()) for idx in indices[0][:5]]