Llama 3 超级课堂 -笔记

课程文档: https://github.com/SmartFlowAI/Llama3-Tutorial

课程视频:https://space.bilibili.com/3546636263360696/channel/series

1  环境配置

1.1 创建虚拟环境,名为:llama3

conda create -n llama3 python=3.10

1.2  下载、安装 pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1

conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia

 

1.3  通过软连接获取 Meta-Llama-3-8B-Instruct模型

ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct ~/model/Meta-Llama-3-8B-Instruct

1.4  获取Xtuner微调工具

cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .

 2   Llama 3 Web Demo 部署

3  XTuner 完成小助手认知微调 

3.1 自我认知训练数据集准备

cd ~/Llama3-Tutorial
python tools/gdata.py 

以上脚本在生成了 ~/Llama3-Tutorial/data/personal_assistant.json 数据文件格式如下所示: 

训练模型

xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth

Adapter PTH 转 HF 格式
xtuner convert pth_to_hf /root/llama3_pth/llama3_8b_instruct_qlora_assistant.py \/root/llama3_pth/iter_500.pth \/root/llama3_hf_adapter

 模型合并

export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge /root/model/Meta-Llama-3-8B-Instruct \/root/llama3_hf_adapter\/root/llama3_hf_merged

模型推理

streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \/root/llama3_hf_merged

 

4 Llama 3 图片理解能力微调 

获取 Llama3 权重、Visual Encoder 权重、 Image Projector 权重

由上图报错,deepspeed未安装,所以通过 pip install deepspeed。以及也要需要安装 mpi4py

使用pip install mpi4py时,报如下错误出错,解决方法,见:https://blog.csdn.net/weixin_51762856/article/details/134247764 

 由于显存有限,无法进行模型训练了

 5  Llama 3 高效部署实践

安装lmdeploy最新版

 直接使用lmdeploy进行推理,显存占有:36G左右

 推理结果:

 把--cache-max-entry-count参数设置为0.5 ,显存占有:28G左右

 把--cache-max-entry-count参数设置为0.01,显存占16G左右

 使用W4A16量化

lmdeploy lite auto_awq \/root/model/Meta-Llama-3-8B-Instruct \--calib-dataset 'ptb' \--calib-samples 128 \--calib-seqlen 1024 \--w-bits 4 \--w-group-size 128 \--work-dir /root/model/Meta-Llama-3-8B-Instruct_4bit

使用Chat功能运行W4A16量化后的模型。 

 启动API服务器

lmdeploy serve api_server \/root/model/Meta-Llama-3-8B-Instruct \--model-format hf \--quant-policy 0 \--server-name 0.0.0.0 \--server-port 23333 \--tp 1

 本地需要ssh转发

 命令行客户端连接API服务器

网页客户端连接API服务器

pip install gradio==3.50.2
lmdeploy serve gradio http://localhost:23333 \--server-name 0.0.0.0 \--server-port 6006

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

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

相关文章

论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition

文章汇总 存在的问题 由于提示文本和图像特征之间固有的模态差异,常规的提示方法的性能受到限制。 动机 让视觉信息自己给自己提示 解决办法 SPM涉及到图像编码器跨空间和通道维度产生的固有语义特征的系统选择,从而产生自提示信息。随后&#xff…

nginx反向代理使用(详细版)

1. 下载nginx,解压;(随便放在哪里) 2. 在nginx-1.26.0文件夹下创建web文件夹,继续在web文件夹下创建abcd.test.cn文件夹(文件夹的名字就叫abcd.test.cn); 3. 配置前端代理&#xff…

人工智能应用正在改变我们的生活

在这个AI蓬勃发展的时代,你如何使用人工智能?如果您认为还没有,请再想一想。人工智能已经为我们的许多日常活动提供了动力,尽管您可能还没有有意将其用作工具,但这种情况可能会在不久的将来发生变化。随着顶尖科技公司…

二叉树的前序遍历(leetcode)

144. 二叉树的前序遍历 - 力扣(LeetCode) 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 这道题的启发性真的很强 ,这里必须传入i的指针进去,下一次栈帧i,但回到了上一层i又变回到了原来的i&#…

霍廷格电源 Tru plasma DC3030 通快DC3040 MF3030

霍廷格电源 Tru plasma DC3030 通快DC3040 MF3030

(十)Python基础练习题一(50道选择题)#Python

本文整理了Python基础知识相关的练习题,共50道,适用于刚入门初级Python想巩固基础的同学。来源:如荷学数据科学题库(技术专项-Python一)。 1) 2) 3) 4) 5) 6…

LeetCode题练习与总结:不同的二叉搜索树--96

一、题目描述 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出&…

【平衡二叉树】AVL树(双旋)

🎉博主首页: 有趣的中国人 🎉专栏首页: C进阶 🎉其它专栏: C初阶 | Linux | 初阶数据结构 小伙伴们大家好,本片文章将会讲解AVL树的左双选和右双旋的相关内容。 如果看到最后您觉得这篇文章写…

k8s 理论知识基本介绍

目录 一 k8s 理论前言 (一)微服务是什么 1,应用场景 2,API 是什么 (二),微服务 如何做版本迭代 1. Docker镜像构建 2. 版本标记 3. Docker Registry 4. 环境一致性 5. 滚动更新…

C#中json数据序列化和反序列化的最简单方法(C#对象和字符串的相互转换)

文章目录 将C#对象转换为json字符串Newtonsoft模块的安装用Newtonsoft将对象转换为json字符串 将json字符串转换为C#对象 将C#对象转换为json字符串 本介绍将基于C#中的第三方库Newtonsoft进行,因此将分为Newtonsoft模块的安装和使用两部分。该模块的优势在于只需要…

等保2.0的全面解读与实施策略

《网络安全等级保护基本要求》(等保2.0)是中华人民共和国国家安全部于2019年6月发布的网络安全等级保护标准。该标准规定了我国关键信息基础设施的网络安全等级保护要求和评估标准,对于保障我国网络安全具有重要的意义。下面是对等保2.0的全面…

安全风险 - 如何解决 setAccessible(true) 带来的安全风险?

可能每款成熟的金融app上架前都会经过层层安全检测才能执行上架,所以我隔三差五就能看到安全检测报告中提到的问题,根据问题的不同级别,处理的优先级也有所不同,此次讲的主要是一个 “轻度问题” ,个人认为属于那种可改…

利用一段代码轻松绕过PHP授权系统

利用一段代码轻松绕过PHP授权系统 第一步:首先你需要改名全局文件 比如说全局文件 common.php,那么 你将他改为core.php 第二步:创建文件 创建一个文件,和改名前的全局文件名称一样,然后把以下代码复制进去就OK了 …

SpringBoot解决CORS跨域——WebMvcConfigurationSupport

前端请求后端报错了。 状态码:403 返回错误:Invalid coRs request 增加配置类WebMvcConfig Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Overridepublic void addCorsMappings(CorsRegistry registry) {// 允许跨域…

【java】异常与错误

Throwable包括Error和Expected。 Error Error错误是程序无法处理的,由JVM产生并抛出的。 举例:StackOverflowError \ ThreadDeath Expected Expected异常包括两类,即受检异常(非运行时异常)和非受检异常(运行时异常),异常往往…

6. RedHat认证-基于公钥的认证方式

6. RedHat认证-基于公钥的认证方式 主要学习客户端访问服务端的时候,免密登录这一方式 注意: 免密登录只是基于公钥认证的一个附带属性(基于公钥认证的方式更加安全,防止黑客暴力破解) 第一步:将客户端生成的秘钥传送到服务器 在客户端通过…

MIT 6.5840(6.824) Lab1:MapReduce 设计实现

1 介绍 本次实验是实现一个简易版本的MapReduce,你需要实现一个工作程序(worker process)和一个调度程序(coordinator process)。工作程序用来调用Map和Reduce函数,并处理文件的读取和写入。调度程序用来协…

编译适配纯鸿蒙系统的ijkplayer中的ffmpeg库

目前bilibili官方的ijkplayer播放器,是只适配Android和IOS系统的。而华为接下来即将发布纯harmony系统,是否有基于harmony系统的ijkplayer可以使用呢? 鸿蒙版ijkplayer播放器是哪个,如何使用,这个问题,大家…

IP代理中的SOCKS5代理是什么?安全吗?

在互联网世界中,网络安全和个人隐私保护变得日益重要。SOCKS5代理作为一种安全高效的网络工具,不仅可以保护个人隐私安全,还可以提供更稳定、更快度的网络连接。本文将带大家深入了解SOCKS5代理在网络安全领域中的应用。 什么是SOCKS5代理 …

【Cesium解读】Cesium中primitive/entity贴地

官方案例 Cesium Sandcastle Cesium Sandcastle 好文推荐:Cesium贴地设置_primitive贴地-CSDN博客 scene.globe.depthTestAgainstTerrain true; True if primitives such as billboards, polylines, labels, etc. should be depth-tested against the terrain…