从零构建属于自己的GPT系列6:模型本地化部署2(文本生成函数解读、模型本地化部署、文本生成文本网页展示、代码逐行解读)

🚩🚩🚩Hugging Face 实战系列 总目录

有任何问题欢迎在下面留言
本篇文章的代码运行界面均在PyCharm中进行
本篇文章配套的代码资源已经上传

从零构建属于自己的GPT系列1:数据预处理
从零构建属于自己的GPT系列2:模型训练1
从零构建属于自己的GPT系列3:模型训练2
从零构建属于自己的GPT系列4:模型训练3
从零构建属于自己的GPT系列5:模型部署1
从零构建属于自己的GPT系列6:模型部署2

5 writer函数

writer()实际上相当于main函数,这里是依次整个任务的运行控制都在这里,前面的那些函数都是在这里进行调用

def writer():st.markdown( """ ### 杨卓越定制化GPT生成模型 """ )st.sidebar.subheader("配置参数")generate_max_len = st.sidebar.number_input("generate_max_len", min_value=0, max_value=512, value=32, step=1)top_k = st.sidebar.slider("top_k", min_value=0, max_value=10, value=3, step=1)top_p = st.sidebar.number_input("top_p", min_value=0.0, max_value=1.0, value=0.95, step=0.01)temperature = st.sidebar.number_input("temperature", min_value=0.0, max_value=100.0, value=1.0, step=0.1)
  1. writer函数
  2. 这几行表示的是网页界面的标题,你可以自己更改成任意标题
  3. 在 Streamlit 应用程序的侧边栏中创建一个名为 “配置参数” 的子标题,通常用于告知用户这部分侧边栏包含了一些可以配置的参数或选项
  4. Streamlit 包的子功能,设置一个进度条,可以进行进度条的拖拽,用户可以自己设置生成文本最长的长度
  5. 创建了一个滑块,用于选择 top_k 的值
  6. 创建了一个数字输入框,用于设置 top_p 的值
  7. 创建了一个数字输入框用于调节 temperature 参数

这些参数通常用于控制文本生成过程,如控制生成文本的最大长度 (generate_max_len)、控制候选词汇的多样性 (top_k 和 top_p) 以及调节生成的随机性 (temperature)。通过这些控件,用户可以交互式地调整这些参数,从而影响模型的生成结果。

parser = argparse.ArgumentParser()
parser.add_argument('--generate_max_len', default=generate_max_len, type=int, help='生成标题的最大长度')
parser.add_argument('--top_k', default=top_k, type=float, help='解码时保留概率最高的多少个标记')
parser.add_argument('--top_p', default=top_p, type=float, help='解码时保留概率累加大于多少的标记')
parser.add_argument('--max_len', type=int, default=512, help='输入模型的最大长度,要比config中n_ctx小')
parser.add_argument('--temperature', type=float, default=temperature, help='输入模型的最大长度,要比config中n_ctx小')
args = parser.parse_args()

这些都是对应的上面那些进度条的命令行参数,先通过创建的命令行参数指定了有哪些参数,然后再经过那些进度条捕捉到命令行参数

    context = st.text_area("主内容", max_chars=512)title = st.text_area("副内容", max_chars=512)if st.button("点我生成结果"):start_message = st.empty()start_message.write("自毁程序启动中请稍等 10.9.8.7 ...")start_time = time.time()result = predict_one_sample(model, tokenizer, device, args, title, context)end_time = time.time()start_message.write("生成完成,耗时{}s".format(end_time - start_time))st.text_area("生成结果", value=result, key=None)else:st.stop()
  1. 输入的文本
  2. 输入的文本2,两者区别是可以输入两条而已,也可以只输入一条,不会在生成的结果中有区别对待,实际上会将两个输入文本连接到一起
  3. 一个网页界面的按钮,点击开始生成结果
  4. 先清空之前生成的所有内容
  5. 清空过程中,打印的一些内容
  6. 记录当前时间戳
  7. 通过前面的生成样本的函数得到生成的所有文本
  8. 记录结束时间戳
  9. 打印出生成的用时
  10. 展示生成结果
  11. 没有点击生成按钮
  12. 就停止运行程序

6 生成效果展示

6.1 生成过程解读

  1. 打开prompt,先切换到项目的盘
A:
  1. cd到项目地址
cd A:\GPT
  1. 切换到对应的python环境
activate pytorch
  1. 启动网页脚本
streamlit run app.py
  1. 没有异常的话,命令行会出现下面信息
    在这里插入图片描述
  2. 弹出网页界面
    在这里插入图片描述
  3. 输入文本,点击生成,得到生成结果
    在这里插入图片描述

6.2 相关可手动调节参数解读

  1. generate_max_len:能够生成的文本的最大长度,最大可以设置成200
  2. top_k:对每一个生成词,可以有一些多样性
  3. top_p:累加概率的采样,累加概率值,设置的大一下生成的词多样性会大一些
  4. temperature:也是如此,调整多样性的

从零构建属于自己的GPT系列1:数据预处理
从零构建属于自己的GPT系列2:模型训练1
从零构建属于自己的GPT系列3:模型训练2
从零构建属于自己的GPT系列4:模型训练3
从零构建属于自己的GPT系列5:模型部署1
从零构建属于自己的GPT系列6:模型部署2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPHP连接ORACLE数据库教程

目录 概念基本步骤详细操作问题排除参考 概念 要连接Oracle数据库,必须有两个东西,一个PHP官方写的扩展,一个Oracle官方写的客户端PHP是通过扩展去操作oralce客户端连接的服务端数据库,所以两个都不能少,而且版本必须…

大数据讲课笔记1.4 进程管理

文章目录 零、学习目标一、导入新课二、新课讲解(一)进程概述1、基本概念2、三维度看待进程3、引入多道编程模型(1)CPU利用率与进程数关系(2)从三个视角看多进程 4、进程的产生和消亡(1&#xf…

5V低压步进电机驱动芯片GC6150,应用于摄像机,机器人 医疗器械等产品中。具有低噪声、低振动的特点

GC6150是双通道5V低压步进电机驱动器,具有低噪声、低振动的特点,特别适用于相机变焦对焦系统、万向架、摇头机等精度、低噪声STM控制系统,该芯片为每个通道集成了一个256微步的驱动器。通过SPI & T2C接口,客户可以方使地调整驱…

Python+Appium自动化测试之元素等待方法与重新封装元素定位方法

在appium自动化测试脚本运行的过程中,因为网络不稳定、测试机或模拟器卡顿等原因,有时候会出现页面元素加载超时元素定位失败的情况,但实际这又不是bug,只是元素加载较慢,这个时候我们就会使用元素等待的方法来避免这种…

下降路径最小和/最小路径和(dp问题)

1.状态表示 2.状态转移方程 3.初始化 4.填表 从上往下 5.返回值 dp表最后一行的最小值 ------------------------------------------------------------------------------------------------------------------------------- 1.状态表示 2.状态转移方程 3.初始化 4.填表 上…

【教程】app备案流程简单三部曲即可完成

APP备案流程包括以下步骤: 1. 开发者实名认证:在提交备案申请之前,开发者需要通过移动应用开发平台进行实名认证。这个步骤需要提供身份证号码、姓名、联系方式等信息,并上传相关证件照片或扫描件。 2. 应用信息登记&#xff1a…

使用 PyTorch 完全分片数据并行技术加速大模型训练

本文,我们将了解如何基于 PyTorch 最新的 完全分片数据并行 (Fully Sharded Data Parallel,FSDP) 功能用 Accelerate 库来训练大模型。 动机 随着机器学习 (ML) 模型的规模、大小和参数量的不断增加,ML 从业者发现在自己的硬件上训练甚至加…

小程序域名SSL证书能用免费的吗?

众所周知,目前小程序要求域名强制使用https协议,否则无法上线。但是对于大多数开发者来说,为每一个小程序都使用上付费的SSL证书,也是一笔不小的支出。那么小程序能使用免费的SSL证书吗? 答案是肯定的。目前市面上可选…

HCIP---RSTP/MSTP

文章目录 目录 文章目录 前言 一.RSTP诞生背景 二.RSTP对比STP的快速收敛机制 端口角色变化 接口状态变化 RSTP-BPDU 指定端口- P/A机制 BPDU发送变化 端口状态快速切换 优化拓扑变更机制 三.MSTP MSTP诞生背景 MSTP相关概念 MSTP配置 总结 前言 STP协议虽然能够解决环…

记录 | xftp远程连接两台windows

1、打开openssh 设置 -> 应用 -> 可选功能 -> 添加功能 -> OpenSSH 客户端,将 ssh 客户端安装将两台电脑的 ssh 开启,cmd 中输入 net start sshd2、配置 win10 账号密码 3、进行 xftp 连接

租一台服务器多少钱决定服务器的价格因素有哪些

租一台服务器多少钱决定服务器的价格因素有哪些 大家好我是艾西,服务器这个名词对于不从业网络行业的人们看说肯定还是比较陌生的。在21世纪这个时代发展迅速的年代服务器在现实生活中是不可缺少的一环,平时大家上网浏览自己想要查询的信息等都是需要服…

加减乘除简单吗?不,一点都不,利用位运算实现加减乘除(代码中不含+ - * /)

文章目录 🚀前言🚀异或运算以及与运算🚀加法的实现🚀减法的实现🚀乘法的实现🚀除法的实现 🚀前言 这也是阿辉开的新专栏,知识将会很零散不成体系,不过绝对干货满满&…

多维时序 | MATLAB实现SAO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现SAO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现SAO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现SAO-CNN-B…

CommonJs模块化实现原理ES Module模块化原理

CommonJs模块化实现原理 首先看一个案例 初始化项目 npm init npm i webpack -D目录结构如下: webpack.config.js const path require("path"); module.exports {mode: "development",entry: "./src/index.js",output: {path: p…

硬件开发笔记(十六):RK3568底板电路mipi摄像头接口原理图分析、mipi摄像头详解

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134922307 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

Redis缓存主要异常及解决方案

1 导读 Redis 是当前最流行的 NoSQL数据库。Redis主要用来做缓存使用,在提高数据查询效率、保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能。当然在使用过程中,也会出现一些异常情景,导致Redis失去缓存作用。 2 异常类型 异常主要有 缓存雪崩 缓存穿透 缓…

【sqli靶场】第二关和第三关通关思路

目录 前言 一、sqli靶场第二关 1.1 判断注入类型 1.2 判断数据表中的列数 1.3 使用union联合查询 1.4 使用group_concat()函数 1.5 爆出users表中的列名 1.6 爆出users表中的数据 二、sqli靶场第三关 2.1 判断注入类型 2.2 观察报错 2.3 判断数据表中的列数 2.4 使用union联合…

什么是 web 组态?web 组态与传统组态的区别是什么?

组态软件是一种用于控制和监控各种设备的软件,也是指在自动控制系统监控层一级的软件平台和开发环境。这类软件实际上也是一种通过灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。通常用于工业控制,自动…

Spring Boot整合 Spring Security

Spring Boot整合 1、RBAC 权限模型 RBAC模型(Role-Based Access Control:基于角色的访问控制) 在RBAC模型里面,有3个基础组成部分,分别是:用户、角色和权限,它们之间的关系如下图所示 SELECT…

【算法】算法题-20231211

这里写目录标题 一、387. 字符串中的第一个唯一字符二、1189. “气球” 的最大数量三、1221. 分割平衡字符串 一、387. 字符串中的第一个唯一字符 简单 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回…