【书生·浦语】大模型实战营——第四课作业

教程文档:https://github.com/InternLM/tutorial/blob/main/xtuner/self.md
在这里插入图片描述
在这里插入图片描述
基础作业需要构建数据集,微调模型,让其明白自己的弟位(OvO!)

微调环境准备

进入开发机后,先bash,再创建conda环境。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

微调数据准备

创建data目录用于存放用于训练的数据集。

mkdir -p /root/personal_assistant/data && cd /root/personal_assistant/data

在data目录下创建一个json文件personal_assistant.json作为本次微调所使用的数据集。json中内容可参考下方(复制粘贴n次做数据增广,数据量小无法有效微调,下面仅用于展示格式,下面也有生成脚本)

其中conversation表示一次对话的内容,input为输入,即用户会问的问题,output为输出,即想要模型回答的答案。

[{"conversation": [{"input": "请介绍一下你自己","output": "我是不要葱姜蒜大佬的小助手,内在是上海AI实验室书生·浦语的7B大模型哦"}]},{"conversation": [{"input": "请做一下自我介绍","output": "我是不要葱姜蒜大佬的小助手,内在是上海AI实验室书生·浦语的7B大模型哦"}]}
]

以下是一个python脚本,用于生成精神扰动(bushi)数据集。

import json# 输入你的名字
name = 'Shengshenlan'
# 重复次数
n = 10000data = [{"conversation": [{"input": "请做一下自我介绍","output": "我是{}的小助手,内在是上海AI实验室书生·浦语的7B大模型哦".format(name)}]}
]for i in range(n):data.append(data[0])with open('personal_assistant.json', 'w', encoding='utf-8') as f:json.dump(data, f, ensure_ascii=False, indent=4)

在data目录下新建一个generate_data.py文件,将以下代码复制进去,将name和conversation内容进行修改,然后运行该脚本即可生成数据集。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置准备

将微调模型复制到指定目录
在这里插入图片描述
拷贝一个配置文件到当前目录,过程有点漫长。
在这里插入图片描述
得到配置文件后,我们修改其中的一些路径与内容。
在这里插入图片描述
按照教程修改配置文件中的一些内容,尤其注意这个evaluation_inputs,需要跟你生成数据集的问题尽可能相似。
在这里插入图片描述

微调启动

xtuner train /root/personal_assistant/config/internlm_chat_7b_qlora_oasst1_e3_copy.py

训练过程
在这里插入图片描述
训练到后面,可以看到loss相当低,其实我们是在数据集上过拟合了。
在这里插入图片描述

微调后参数转换/合并

在这里插入图片描述
因为我这里复制了3w个数据,训练了一个epoch,所以pth那里要写epoch_1.pth
随后,键入以下命令进行参数的转换。

xtuner convert pth_to_hf $CONFIG_NAME_OR_PATH $PTH $SAVE_PATH

在这里插入图片描述
出现All Done,则表明参数已经转换成功了。
键入以下命令,进行模型的merge
在这里插入图片描述
出现如下图的All Done,则表明模型merge已经完成
在这里插入图片描述

网页DEMO

安装网页Demo所需依赖

pip install streamlit==1.24.0

下载InternLM代码
在这里插入图片描述
将/root/personal_assistant/code/InternLM/web_demo.py中的29和33行的模型路径改为/root/personal_assistant/config/work_dirs/hf_merge
在这里插入图片描述
文件保存后,进入对应环境,并使用以下命令来运行。

 streamlit run /root/personal_assistant/code/InternLM/web_demo.py --server.address 127.0.0.1 --server.port 6006

在这里插入图片描述
load model end后即可进行问答。

效果

微调前
在这里插入图片描述
微调后
在这里插入图片描述
后面的文字有删除线的原因:
网页显示应该是用markdown语法展示的。我句子里“噢”后面有个波浪号,能力后面有个波浪号,两个波浪号中间变成删除线了。

踩坑

坑点1:改的web_demo不是运行命令中对应的web_demo文件

教程(https://github.com/InternLM/tutorial/blob/main/xtuner/self.md)中修改web_demo时,修改的是root/code目录下的InternLM的web_demo,把这里面的文件参数路径改了。
在这里插入图片描述
然而,在后续streamlit启动时,运行的却是另一个目录里的web_demo文件。
在这里插入图片描述

所以,教程中改路径部分,目录应为/root/personal_assistant/code/InternLM/web_demo.py
或者把后面启动命令的personal_assistant给去掉。
总之就是保证你改的是那个文件,启动也得是那个文件

坑点2:模型回答时报出 StreamlitAPIException: Failed to load the provided avatar value as an image

仔细看报错,其实是读取不到图片。
在这里插入图片描述
但我看了一下目录,相对于web_demo.py来说,这个路径没有错呀?
此时,看vs code ports 6006端口的命令,我陷入了沉思。这里的doc/imgs/user.png是一种相对路径的写法,但是运行的时候,这个相对路径是相对谁的呢?是python?还是streamlit?还是web_demo.py?
在这里插入图片描述
所以,为了排除相对路径的困扰,将web_demo.py文件中的76行、77行的user_avator、robot_avator变量写成绝对路径,就可以顺利运行。如下所示:
在这里插入图片描述

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

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

相关文章

列表解析与快速排序

排序是在对文本、数值等数据进行操作时常用的功能,本文介绍两种常用的排序方式,借此学习列表解析,并巩固递归算法。 1 选择排序 说到排序,以数值为例,肯定涉及到值大小的对比,选择排序即通过依次在子集中…

蓝桥杯 python 第二题 数列排序

这里给出一种解法 """ # 错的 n int(input()) dp[int(i) for i in input().split(" ")] dp.sort() print(" ".join(str(i) for i in dp)) """#这个是对的 num int(input())l list(map(int, input().split()))l.sort()pr…

AI文本生图模型Stable Diffusion部署教程

本文基于CentOS8进行Stable Diffusion开源框架部署. 1. DNS配置(但是今天出现了偶尔无法下载问题) 为了加速Github访问,我在本机配置如下 (sd) [rootshenjian stable-diffusion-webui]# cat /etc/hosts 127.0.0.1 shenjian localhost localhost.localdomain localhost4 loca…

修改权限控制(chmod命令、chown命令)

1.chmod命令 功能:修改文件、文件夹权限(注意,只有文件、文件夹的所属用户或root用户可以修改) 语法:chmod [-R] 权限 参数 权限,要设置的权限,比如755,表示:rwxr-xr-x…

【面试突击】生产部署面试实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

如何从电脑找回/恢复误删除的照片

按 Shift Delete 以后会后悔吗?想要恢复已删除的照片吗?好吧,如果是这样的话,那么您来对地方了。在本文中,我们将讨论如何从 PC 中检索已删除的文件。 自从摄影的概念被曝光以来,人们就对它着迷。早期的照…

Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Windows Server 2012 R2部署项目

JDK 下载JDK 1.直接官网下载:http://www.oracle.com/; 2.我用的是1.8,阿里云盘分享地址:https://www.aliyundrive.com/s/u4V9x1AHL2r 安装jdk 双击安装点击下一步如果不改变路径就一直下一步 安装完成直接点击关闭即可&#x…

GPT Store,是否会成为下一个App Store?

经历了一场风波后,原本计划推出的GPT Store终于成功上线。OpenAI在北京时间1月11日推出了GPT Store,被广泛视为类似于苹果的"App Store",为人工智能应用生态系统迈出了重要一步。然而,OpenAI要想将GPT Store打造成苹果般…

一、docker的安装与踩坑

目录 一、安装docker(centos7安装docker)1.安装环境前期准备2.参考官网安装前准备3.参考官网安装步骤开始安装docker4.运行首个容器 二、安装一些软件的踩坑1.启动docker踩坑2.安装mysql踩坑3.罕见问题 三、关于我的虚拟机 一、安装docker(ce…

如何再造宇宙厂所有APP?

本文内容,纯属十年老架构师杜撰,切勿照着实操,可能会给你带来几十亿的流量,怕你的服务器扛不住。 1. 破音 前端用uniapp,花800买个短视频应用模板,后端用golang支持高并发, 数据库用图数据库加elastic se…

ArchVizPRO Interior Vol.8 URP

ArchVizPRO Interior Vol.8 URP是一个在URP中制作的建筑可视化项目。这是一个完全可导航的现代公寓,包括一个带开放式厨房的客厅、休息区、两间卧室和两间浴室。从头开始构建每一个细节,这个室内有130多件家具和道具、自定义着色器和4K纹理。所有家具和道具都非常详细,可以在…

基于 LangChain+大模型,我打造一款自己的LLM应用

本文共计1.7w字,梳理不易,喜欢点赞、收藏、关注。需要技术交流,可以加入我们 目录 通俗易懂讲解大模型系列技术交流一、LangChain是什么二、LangChain核心组件2.1 Models2.2 Indexes2.2.1 Document Loaders2.2.2 Text Splitters2.2.3 Vectors…

网络安全B模块(笔记详解)- MYSQL信息收集

MYSQL信息收集 1.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL03进行服务信息扫描渗透测试(使用工具Nmap,使用必须要使用的参数),并将该操作显示结果中数据库版本信息作为Flag提交; Flag:MySQL 5.5.12 2.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL0…

【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析

基于MATLAB的多模光纤模场分布的仿真分析 一、引言 (1)多模光纤的概念 多模光纤(MMF)是一种具有较大纤芯直径的光纤结构,其核心直径通常在10-50微米范围内。与单模光纤(SMF)相比,…

Linux QT以太网配置及相关知识

Linux QT以太网配置及相关知识 平台和内容概述安装Qt Creator设计用户界面编辑源代码自定义LineEdit创建槽函数以太网逻辑功能实现静态配置ui逻辑:功能概述代码实现DNS退出程序输入框中的ip规范保存数据和读取数据构建文件编译运行平台注意点开机自动配置以太网总结平台和内容…

FreeRtos Queue (一)

本篇主要讲队列的数据结构和初始化 一、队列的数据结构 二、队列初始化完是什么样子的 队列初始化的函数调用关系:xQueueGenericCreate->prvInitialiseNewQueue->xQueueGenericReset 所以,最终初始化完的队列是这样的 假设申请了4个消息体&…

SQL:一行中存在任一指标就显示出来

当想要统计的两个指标不在一张表中时,需要做关联。但很多情况下,也没有办法保证其中一张表的维度是全的,用left join或right join可能会导致数据丢失。所以借助full join处理。 如,将下面的数据处理成表格中的效果(维…

AI副业拆解:人像卡通化,赋予你的形象全新生命力

大家好我是在看,记录普通人学习探索AI之路。 🔥让你的形象瞬间穿越二次元!🚀人像卡通化,捕捉你的独特魅力,让真实与梦幻在此刻交融。🎨 今天为大家介绍如何免费把人像卡通化--漫画风 https://w…

大模型开启应用时代 数钉科技一锤定音

叮叮叮叮!数钉智造大模型,“定音”强势发布! 随着科技的飞速发展,大模型技术已逐渐成为推动产业变革的核心力量。在这一浪潮中,数钉科技凭借深厚的技术积累和敏锐的市场洞察力,成功利用大模型技术搭建起智能…