第二课堂笔记——大语言模型

part1——qwen

在这一部分中需要完成初步运行通义千问,流式输出与在网页窗口进行对话。

1.环境准备

首先配置满足需求的环境。配置环境代码中:

!pip install transformers==4.37.0 -U

用于安装或更新Python的transformers库到特定版本4.37.0。‌这里的-U参数表示如果已安装transformers库,‌则将其更新到指定的版本。‌

!pip install streamlit

 用于安装streamlit库,可以为程序添加web界面。

(!意味着当前环境(不在终端或命令提示符)执行系统命令)

2.创建环境

在终端中输入python test.py启动test文件,创建大模型环境。

test使用预训练的Qwen2-0.5B模型和对应的分词器来生成对特定提示词的回复。‌‌下面是对部分代码含义的介绍。

model = AutoModelForCausalLM.from_pretrained(#加载预训练模型
    "/gemini/pretrain/Qwen2-0.5B-Instruct",#模型路径
    torch_dtype="auto",#自动选择适合的设备与类型
    device_map="auto"
)

tokenizer = AutoTokenizer.from_pretrained("/gemini/pretrain/Qwen2-0.5B-Instruct")#分词器,将文本转化为能被模型理解的数字形式,把文本拆成一个个小的词块,每个词块都和一个整数id相关联,这样模型就好理解了。

prompt = "你是谁?"
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": prompt}
]#messages是一个列表,包含了对话中的不同角色和他们的发言内容。‌role指定角色,content指定发言内容。‘you are a....'为system定义了模型的行为模式:是一个有用的助手。

text = tokenizer.apply_chat_template(......)#使用apply_chat_template(特定聊天模板)的方法进行文本处理

model_inputs = tokenizer([text], return_tensors="pt").to(device)#将处理后的文本转化后发送到指定设备

3.流式输出

定义:流式输出是一种数据处理和传输方式,‌它允许数据以连续流的形式被生成、‌传输和处理,‌而不需要等待整个数据集被完全生成或处理。(就是说它是一个字一个字蹦出来回答你的,不是先全部想好之后才哐一下全都展示给你。)

streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

#创建一个文本迭代器流对象,‌用于流式处理文本生成任务。‌其中,‌tokenizer是用于文本分词的工具,‌skip_prompt=True表示在流式处理时跳过提示符,‌skip_special_tokens=True表示跳过特殊标记。‌

generate_params = dict(
        inputs=model_inputs.input_ids,
        max_new_tokens=512,
        do_sample=True,
        top_k=50,
        temperature=0.7,
        pad_token_id=tokenizer.eos_token_id,
        streamer=streamer
    )

#generate_params是一个字典,‌包含了模型生成文本时所需的参数。‌其中,‌inputs指定了模型的输入;‌max_new_tokens设置了生成文本的最大长度;‌do_sample=True表示采用采样方式生成文本;‌top_k=50表示在采样时只考虑概率最高的50个词汇;‌temperature=0.7用于控制生成文本的随机性;‌pad_token_id=tokenizer.eos_token_id设置了填充词的ID,‌通常用于指定生成文本的结束标志;‌streamer=streamer指定了一个文本迭代器流对象,‌用于流式处理文本生成任务。‌‌

4.web界面对话

在终端中输入 streamlit run one_chat.py执行one_chat文件。

根据输出的内部端口建立端口,得到网址,在浏览器中打开。

part2——stable-diffusion

       建立好项目后,在网页终端输入命令。

       得到内部端口后建立端口,得到网址。

       在stable-diffusion界面,可以根据文本输出相关图像,或者图像生成图像。

       其中sampling steps 采样步数决定了生成图像过程中采取的步骤数量,‌步数越多,‌生成的图像细节越精细,‌但同时也会增加生成图像所需的时间。

       sampling methods会影响采样样本。如Euler a采样器富有创造力,‌适合生成二次元图像和小场景;‌而DDIM采样器收敛快,‌适合生成写实人像和复杂场景‌。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值