【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…

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 下载…

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…

如何选择最佳的机器学习分类模型?基于使用贝叶斯和异步连续减半算法(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 贴上标签。没有两颗糖果的口味是相同的。 糖果的选择直接影响到格里莎的幸福感。我们可…

[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的发展&#…

WebRTC实现多人通话-Mesh架构【保姆级源码教程】

一、Mesh架构 WebRTC&#xff08;Web Real-Time Communications&#xff09;中的Mesh架构是一种将多个终端之间两两进行连接&#xff0c;形成网状结构的通信模式。以下是关于WebRTC的Mesh架构的详细解释&#xff1a; 基本概念&#xff1a;在Mesh架构中&#xff0c;每个参与者…

map、set底层封装模拟实现(红黑树)

文章目录 一、红黑树1.1红黑树的规则&#xff1a;1.2红黑树的插入操作1.2.1不需要旋转&#xff08;如果叔叔存在且为红,这里的C表示孩子&#xff0c;P表示父亲&#xff0c;U表示叔叔&#xff0c;G表示祖父&#xff09;&#xff0c;包含四种情况&#xff0c;无论孩子在哪里&…

对XYctf的一些总结

对XYctf的一些总结 WEB 1.http请求头字段 此次比赛中出现的&#xff1a; X-Forwarded-For/Client-ip&#xff1a;修改来源ip via&#xff1a;修改代理服务器 还有一些常见的字段&#xff1a; GET&#xff1a;此方法用于请求指定的资源。GET请求应该安全且幂等&#xff0c…

202003青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 运行下方代码段,输出的结果是(   )。 a=(1,2,3)print(type(a))A :<class ‘float’> B :<class ‘int’> C :<class ‘str’> D :<class ‘tuple’> 正确答案:D 试题解析: 第 2 题 【单选题】 content.txt中原来的内容…

“前人种树,后人乘凉”:【薪象营】五一探访活动弘扬传统美德

在五一劳动节这一天&#xff0c;唐刚携带【唐江军】的前成员&#xff0c;前往广州开展了一场特殊的慈善探访活动。这不仅是一个简单的慈善活动&#xff0c;更是唐刚希望向新成立的【薪象营】传承的一种精神和行动典范。 精神传承与实际行动 唐刚&#xff0c;【唐江军】的发起人…

3D模型实时变形算法

最近&#xff0c;在尝试渲染一些奇怪的形状后&#xff0c;我陷入了计算机图形学的困境。事实证明&#xff0c;对于我试图解决的具体问题&#xff0c;没有现有的选项完全适合我想要做的事情。几周后&#xff0c;我终于带着一些答案再次浮出水面&#xff0c;写了很多行代码&#…

webpack4和webpack5区别1---loader

webpack4处理图片和字体的loader file-loader file-loader的作用是处理webpack中的静态资源文件。File Loader可以将各种类型的文件&#xff0c;如图像、字体、视频等转换为模块并加载到Web应用程序中。它通过import或require语句引入文件资源&#xff0c;并将其放置在输出目…

【蓝桥杯备赛国赛】5-5

文章目录 求阶乘双子数 求阶乘 求阶乘 分析k的范围&#xff0c;10的18次方。这个数字很大 想要末尾有0的存在必须要2和5&#xff0c;但是通过分析2的数目应该是远远多于5的&#xff0c;所以只要5的数目够多即可。所以for循环的层次也是10的九次方以上&#xff0c;必然会超时&…

优雅处理返回信息状态码:Result对象在Spring Boot中的应用

前言 在开发过程中&#xff0c;处理返回的信息状态码是一个重要的问题&#xff0c;尤其是在大型项目中。为了统一处理这些状态码&#xff0c;我在Spring Boot中创建了一个名为Result的Java对象&#xff0c;用于封装返回的信息和状态码。在本文中&#xff0c;我将分享如何实现这…