大语言模型学习

基础知识简介 

一、大语言模型(LLM)的概念

LLM定义与特点:处理海量文本,多者可具备数百亿参数,理解语言深度,展现涌现能力。

LLM国内外代表:i.国外有GPT系列、LLaMA等        ii.国内有文心一言、通义千问等。

模型大小与性能能关系:与小模型构架相似,但参数量级提升带来解决复杂任务的显著优势。

LLM应用实例:Chat GPT是LLM的对话应用典范,展示出与人类流畅自然的交互能力。

计算机并不能直接理解字符,例如:“我喜欢你”可以拆解为“我”,“喜欢”,“你”,可以进行排序。所以 大语言模型并不是一个一个字输出,而是一个一个token输出

二、LLM的发展历程

早期语言模型:采用统计学习预测词汇,受限于理解复杂语言规则。
深度学习的引入:Bengio在2003年将深度学习应用于语言模型,增强理解语言的能力。
Transformer架构优势:2018年左右,Transformer模型出现,通过大量文本训练理解语言规则。 大型语言模型时代:随着模型规模扩大,LLM展现出惊人能力,开启新纪元。

三、LLM的特点

 在趋动云部署一个自己的大模型

https://eumgrqwyfu.feishu.cn/docx/LfNpdTGmXo79EuxPtyPckOJ9nYd#XJpbdkRZyovZPhxYOnbcnMvQn6e

 以上是大模型应用的相关文件

创建项目,选择B1.medium规格服务器

选择CUDA12.1 PyTorch2.1.1的镜像

在模型中搜索Qwen2-0.5B-Instruct

点击启动后,进入环境。

在/gemini/code中存放代码,/gemini/pretrain中是我们刚刚挂载的模型

我们在本地解压大模型应用.zip,得到5个文件,进入/gemini/code目录,将文件拖入窗口完成上传

 在test.py中

from transformers import AutoModelForCausalLM, AutoTokenizer

导入transformers库中的  加载模型  和  加载 AutoTokenizer的包

模型即需要使用的大语言模型

model = AutoModelForCausalLM.from_pretrained(
    "/gemini/pretrain/Qwen2-0.5B-Instruct",        #这一行是大语言模型的路径
    torch_dtype="auto",
    device_map="auto"
)

以下代码表示我们加载的是Qwen2-0.5B-Instruct这个大模型中tokenizer 模块对后续文本进行处理

tokenizer = AutoTokenizer.from_pretrained("/gemini/pretrain/Qwen2-0.5B-Instruct")

 为什么要进行token的操作?就是将原始的文本或者句子分解成更小的单元,这些单元就称为token,它可以是一个单词,字符或者是更短的子句。

大模型理解token就像我们一个字一个字地理解,深度学习模型通过理解这些tokens来把握文本含义

prompt = "你是谁?"
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": prompt}
    {"role": "assistent","content","我是rrr"}

prompt就是提示词 ,输入给大模型的东西

role:在和大模型对话中有三种角色,分别是system,users和assistance(以上代码中没有体现)

system是为给大模型的前提条件,然后user问大模型一个prompt,最后大模型回答“我是rrr”

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)

上面代码意思是把prompt放入tokenizer中变为text,把它应用(apply)进去

model_inputs = tokenizer([text], return_tensors="pt").to(device)

然后把一段文本变成短的子句或者词语,然后把他数字化,是模型能够理解

接下来开始实际操作:

现在环境准备中运行一下

运行以下

python test.py

 结果如下图

在流式输出.ipynb文件中有一段代码 

 thread = Thread(target=model.generate, kwargs=generate_params)
    thread.start()

这样来实现多轮对话

在one_chat.py中有

import streamlit as st

他是一个交互式界面,把大语言模型进行一个可视化

进行以下操作

streamlit run one_chat.py

运行一下,会出现两个IP,此处需要新建端口

然后进行外部访问,出现: stable diffusion(文本生成图像或图像生成图像)

Stable Diffusion是一种利用人工智能技术,基于文本描述生成高分辨率、高逼真度图像的深度学习模型。该模型由慕尼黑大学的CompVis研究团体与Stability AI和LAION等研究人员共同开发,并于2022年公布。Stable Diffusion在图像生成领域取得了显著的进步,不仅提升了生成图像的质量和速度,还降低了计算成本,使得该模型能够在消费级显卡上实现图像生成。

核心原理
Stable Diffusion的核心原理基于潜在扩散模型(Latent Diffusion Models),这是一种在低维潜在空间进行的扩散过程模拟。该模型包含以下主要组件:

文本编码器:使用Transformer模型(如BERT或GPT)将文本转换成高维的语义向量,以捕捉文本的意图和语境。
变分自编码器(VAE):将图像压缩到潜在空间中,并通过在潜在空间中进行操作来优化和细化图像细节。VAE由编码器和解码器两部分组成,编码器将图像压缩为潜在空间中的低维表示,解码器则从潜在空间恢复图像。
噪声预测因子(Noise Predictor):一个U-Net模型,用于预测并去除图像在潜在空间中的噪声,从而逐步揭示出图像的细节和形状。
工作流程
Stable Diffusion的工作流程细致地将文本转换为图像,涵盖从文本解析到图像细化的各个阶段:

文本解析:用户输入的文本通过文本编码器处理,转换成包含丰富语义信息的高维向量。
图像生成:在潜在空间中,通过噪声预测因子逐步去除噪声,使图像逐渐变得清晰和真实。
图像细化:使用超分辨率技术进一步提高图像的分辨率和细节质量。
应用领域
Stable Diffusion的应用范围非常广泛,包括但不限于:

图像生成:根据文本描述自动生成高质量的图像,包括自然景观、人脸、艺术作品等。
艺术创作:艺术家和设计师可以利用Stable Diffusion来创造新颖的视觉艺术作品。
影像合成与编辑:在视频制作和电影产业中,用于自动生成或编辑视频场景。
文本处理:在自然语言处理(NLP)中,Stable Diffusion可以用来生成文本摘要或进行文本到文本的转换。
音频生成:在音频领域,可以应用于音乐创作或音效生成。
优点与改进
Stable Diffusion相比之前的扩散模型,具有更高的稳定性和可控性,同时在生成图像的质量、速度和成本上都有显著的进步。其最新版本的XL版本可以在更高的像素级别上生成可控的图像,并且生成效率也得到了大幅提升。此外,Stable Diffusion还通过优化训练数据和文本编码器等方式,进一步提升了模型的性能和生成效果。

总的来说,Stable Diffusion是一种先进的文本到图像的转换技术,为图像生成和创作提供了强大的工具和支持。

大模型不仅仅指大语言模型,实际上是指参数量比较大的模型

进入环境后在网页终端输入以下命令:

tar xf /gemini/data-1/stable-diffusion-webui.tar -C /gemini/code/

chmod +x /root/miniconda3/lib/python3.10/site-packages/gradio/frpc_linux_amd64_v0.2

cd /stable-diffusion-webui && python launch.py --deepdanbooru --share --xformers --listen

 进入以下界面就可以进行后续操作:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值