【LLama】Llama3 的本地部署与lora微调(基于xturn)

系列课程代码+文档(前2节课可跳过):https://github.com/SmartFlowAI/Llama3-Tutorial
课程视频:https://space.bilibili.com/3546636263360696/channel/series
XTuner :https://github.com/InternLM/xtuner/blob/main/README_zh-CN.md

一、Llama 3 本地部署(Nidia3090显卡)

教程所提供的在线显卡只有8G, 微调和推理时一般是16-20G,所以本地部署。

下载llama3模型

# 如果下面命令报错则使用 apt install git git-lfs -y
conda install git-lfs
git-lfs install
git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct

下载在本地后的内容
在这里插入图片描述

本地环境

conda create -n llama3-xtuner python=3.10 -y
conda activate llama3-xtuner
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia

其他依赖

git clone https://github.com/InternLM/xtuner.git
cd xtuner
conda activate llama3-xtuner
pip install -e .

运行llama3-instruct

Llama3-Tutorial-main

streamlit run ~/code/Llama3-Tutorial-main/tools/internstudio_web_demo.py \~/code/Meta-Llama-3-8B-Instruct

在这里插入图片描述

二、 使用Xturn微调llama3 (1条数据)

主要参考:https://github.com/SmartFlowAI/Llama3-Tutorial/blob/main/docs/assistant.md

2.1 生成训练数据

重复次数 n = 2按需要修改,跑流程时可以很小,原始设置是2000
改为自己的名字:
name = ‘曾小蛙’
author=“星艺AI”

import json# 输入你的名字
name = '曾小蛙'
author="星艺AI"
# 重复次数
n = 2data = [{"conversation": [{"system":"你是一个懂中文的小助手","input": "你是(请用中文回答)","output": "您好,我是{},一个由 {} 打造的人工智能助手,请问有什么可以帮助您的吗?".format(name, author)}]}
]for i in range(n):data.append(data[0])with open('data/personal_assistant.json', 'w', encoding='utf-8') as f:json.dump(data, f, ensure_ascii=False, indent=4)

生成的训练用的json

在这里插入图片描述

2.2 修改训练脚本

Llama3-Tutorial/configs/assistant/llama3_8b_instruct_qlora_assistant.py

在这里插入图片描述

2.3 开始训练

xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py

保存的结果
在这里插入图片描述

2.4 Adapter PTH 转 HF 格式

xtuner convert pth_to_hf ~/code/Llama3-Tutorial-main/work_dirs/llama3_8b_instruct_qlora_assistant/llama3_8b_instruct_qlora_assistant.py \~/code/Llama3-Tutorial-main/work_dirs/llama3_8b_instruct_qlora_assistant/iter_20.pth \~/code/Llama3-Tutorial-main/work_dirs/llama3_hf_adapter

在这里插入图片描述

2.5 合并lora到llama3中

记得将模型换为自己的路径·
本文使用相对路径,llama3的模型与教程代码在

export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge ./Meta-Llama-3-8B-Instruct \./Llama3-Tutorial-main/work_dirs/llama3_hf_adapter\./Llama3-Tutorial-main/work_dirs/llama3_hf_merged

在这里插入图片描述

2.6 推理微调后的模型 (过拟合,还需要重新调参数)

Llama3-Tutorial-main是手动下载的

streamlit run ./Llama3-Tutorial-main/tools/internstudio_web_demo.py \./Llama3-Tutorial-main/work_dirs//llama3_hf_merged

在这里插入图片描述

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

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

相关文章

如何完美解决Outlook大文件传送问题,提升办公协作效率?

在日常工作中,邮件是一种常用的通信方式,经常用来发送各类文件,比如报告和文档、合同和协议、财务报表、营销资料、设计文件等。但有时文件会比较大,因此Outlook大文件传送时,会遇到附件大小受限的情况。常用的解决发送…

Leetcode—724. 寻找数组的中心下标【简单】

2024每日刷题&#xff08;129&#xff09; Leetcode—724. 寻找数组的中心下标 实现代码 class Solution { public:int pivotIndex(vector<int>& nums) {int sum accumulate(nums.begin(), nums.end(), 0);int prefix 0;for(int i 0; i < nums.size(); i) {i…

Verilog中使用generate…for语句简化代码

在某个module中包含了很多相似的连续赋值语句&#xff0c;请使用generata…for语句编写代码&#xff0c;替代该语句&#xff0c;要求不能改变原module的功能。 原代码如下&#xff1a; &#xff08;CSDN代码块不支持Verilog&#xff0c;代码复制到notepad编辑器中&#xff0c…

FastDDS编译安装说明

1.安装ASIO 1.1 sudo apt-get install autoconf 1.2 下载asio源码&#xff08;git clone https://github.com/chriskohlhoff/asio.git&#xff09; 1.3 找到autogen.sh所在的目录 1.4 ./autogen.sh 1.5 ./configure 1.6 make && sudo make install 2.安装tinyxm…

2024-5-6(Vue)

1.Vue介绍&#xff1a;构建用户界面的渐进式框架 1&#xff09;构建用户界面&#xff1a;基于数据渲染出用户可以看到的界面 2&#xff09;渐进式&#xff1a;循序渐进&#xff0c;不用非得把Vue中所有的API学完才能开发Vue&#xff0c;可以学一点开发一点 3&#xff09;框架…

ai写作工具推荐:如何用AI人工智能进行写作

AI写作工具&#xff1a;提升创作效率的秘密武器 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;包括写作。AI写作工具&#xff0c;就是利用人工智能技术&#xff0c;帮助我们进行文本生成、语言优化等工作的工…

[综合应用]dns nfs httpd php mysql

第一步&#xff1a;搭建三台主机 主机名称 Ip地址 角色 503A 192.168.68.10 Mysql从 503B 192.168.68.11 Mysql从&#xff0c;nfs服务端&#xff0c;dns服务端 503Cmysql 192.168.68.12 MySQL主&#xff0c;web客户端 第二步&#xff1a;在503B上配置DNS 2.1 下载…

7-Zip的介绍

7-Zip是一个免费、开源的压缩和解压缩软件&#xff0c;是Windows平台上最受欢迎的压缩工具之一。它支持多种压缩格式&#xff0c;包括7z、RAR、ZIP、CAB、ARJ、GZIP、BZIP2、TAR、CPIO、RPM和DEB等。此外&#xff0c;7-Zip还提供了强大的加密和文件分割功能&#xff0c;以及能够…

Hbase 常用shell操作

目录 1、创建表 1.1、启动HBase Shell 1.2、创建表 1.3、查看表 1.4、删除表 2、插入数据 2.1、put命令 3、查看数据 3.1、get命令 3.2、查询数据中文显示 4、更新数据 4.1、使用put来更新数据 5、删除数据 5.1、delete命令 5.2、删除指定列的数据 5.3、delete…

Django开发实战之登录用户鉴权登录界面实现

Django自带的鉴权系统非常的安全&#xff0c;大家可以放心使用&#xff0c;那么如何使用呢&#xff1f; 1、首先需要检查settings文件种的INSTALLED_APPS&#xff0c;有没有这两部分内容&#xff1a; 2、检查中间件&#xff0c;比如这两个中间件&#xff0c;一个是用于登录&a…

CMakeLists.txt语法规则:条件判断中表达式说明一

一. 简介 前面学习了 CMakeLists.txt语法中的 部分常用命令&#xff0c;常量变量&#xff0c;双引号的使用。 前面一篇文章也简单了解了 CMakeLists.txt语法中的条件判断&#xff0c;文章如下&#xff1a; CMakeLists.txt语法规则&#xff1a;条件判断说明一-CSDN博客 本文…

恒生电子,快手25届实习内推

恒生电子&#xff0c;快手25届实习内推 ①快手 【岗位】算法、工程、游戏&#xff0c;产品运营、市场、职能等 【一键内推】https://campus.kuaishou.cn/recruit/campus/e/h5/#/campus/jobs?codecampuswQrLOMvHE 【内推码】campuswQrLOMvHE ②恒生电子 【招聘岗位】JAVA、测试…

Python项目开发实战:贪吃蛇大作战游戏(案例教程)

一、引言 贪吃蛇大作战是一款经典的游戏,其简单的规则和富有挑战性的游戏机制使得它成为休闲娱乐的首选之一。在这个项目中,我们将使用Python编程语言结合pygame库来开发一款贪吃蛇游戏。下面将详细介绍游戏的开发过程,包括需求分析、设计、实现以及测试等关键步骤。 二、需…

大数据技术概述_4.大数据的应用领域

1.制造业的应用 制造业目前正在向信息化和自动化的方向发展。在产品的设计、生产和销售中&#xff0c;越来越多的企业使用计算机辅助设计&#xff08;CAD&#xff09;、计算机辅助制造&#xff08;CAM&#xff09;等软件&#xff0c;数控机床、传感器等设备&#xff0c;物料需求…

如何选择最佳的机器学习分类模型?基于使用贝叶斯和异步连续减半算法(ASHA)优化的最佳分类模型自动选择方法

目录 一、主要内容&#xff1a; 二、贝叶斯优化算法&#xff1a; 三、异步连续减半优化算法&#xff1a; 四、代码运行效果&#xff1a; 五、代码下载&#xff1a; 一、主要内容&#xff1a; 对于分类问题&#xff0c;不同机器学习模型分类的效果不同&#xff0c;而且在同…

新代数控Syntec网络IP配置设定教程

点击面板【维护】→【网络设定】→【IP地址取得方法&#xff1a;直接指定IP地址】→【IP地址&#xff1a;输入采集需要设定的IP】→【子网掩码&#xff1a;255.255.255.0】→【预设网关】 输入方法&#xff1a;点击面板上的【ENTER】输入键&#xff0c;输入相关参数即可。

LeetCode-1463. 摘樱桃 II【数组 动态规划 矩阵】

LeetCode-1463. 摘樱桃 II【数组 动态规划 矩阵】 题目描述&#xff1a;解题思路一&#xff1a;动态规划一般有自顶向下和自底向上两种编写方式&#xff0c;其中自顶向下也被称为「记忆化搜索」。解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给你一…

Codeforces Round 456 (Div. 2) - B. New Year‘s Eve (位运算,Bitsmasks)

由于格里莎去年表现良好&#xff0c;新年前夕&#xff0c;戴德-莫罗兹带着一大包礼物来看望他&#xff01;袋子里装着 n 颗来自老式面包店的糖果&#xff0c;每颗糖果都按照口味从 1 到 n 贴上标签。没有两颗糖果的口味是相同的。 糖果的选择直接影响到格里莎的幸福感。我们可…

controllor校验body字段非空

1、想要字段非空&#xff1a;字段加上注解 NotBlank NotNull Data public class UpdateQcStateParam {NotBlankNotNullApiModelProperty(value "er")private String orderType;NotBlankNotNullApiModelProperty(value "tr")private String orderSerialNo…

[CR]厚云填补_M3R-CR Dataset and Align-CR

Multimodal and Multiresolution Data Fusion for High-Resolution Cloud Removal: A Novel Baseline and Benchmark Abstract 去云(Cloud Removal)是遥感领域的一个重要且具有挑战性的问题&#xff0c;近年来在这一领域取得了显著进展。两个主要问题仍然阻碍着CR的发展&#…