【随手记录】Llama Tutorial 大语言模型实践 手把手系列带实践源码

news2024/9/21 14:35:40

这个tutorial的契机是yy突然看到了一个workshop 所以类似于一周大作业的形式,输入command输出使用了自动驾驶哪些模块,代码在这里 所以就干一干,顺便写一个tutorial给大家参考和教程 引申更多的应用

参考资料:

  1. https://github.com/facebookresearch/codellama, https://github.com/facebookresearch/llama
  2. 模型申请地址:https://ai.meta.com/llama/ → 然后按download,填写完后 就会收到两封邮件
  3. https://github.com/oobabooga/text-generation-webui
  4. 写tutorial期间的代码:https://github.com/KTH-RPL/DriveCmd_LLM

所有模型参数和所需要的GPU并行,注意这只是模型load占用的memory 如果token或者batch size较大 也需要很多GPU显存,表格下方会说明每个之间的区别,MP是指并行GPU的数量 默认是多少,所有模型我都在 这边服务器的A100试过 Size已经是乘过数量的了 是总和需要的memory

ModelSizeMP
code-7B~12.5G1
code-13B24G2
code-34B63G4
7b-chat~12.5G1
13b-chat24G2
70b-chat~160G8

  • 7B, 13B, 34B 指示模型参数量
  • chat 指示经过了对话的fine-tuned 【 llama2论文原文:a fine-tuned version of Llama 2 that is optimized for dialogue use cases】
  • code 指示此llama版本经过了code数据集的训练,can use text prompts to generate and discuss code. 此处为 官方blog

温馨提示 下列内容和 此 https://github.com/KTH-RPL/DriveCmd_LLM README 有重复:里面包含了example和我们写的prompt流程等 and yy尝试的chatgpt api那边的script

1. 申请下载模型

具体如图:

  1. https://ai.meta.com/llama/ 点击download
  2. 填写资料,勾上所有的东西
  3. 接受terms 然后点continue
  4. 大概10分钟内能收到两封邮件,告诉你可用的权重和其下载地址【注意!这个地址有限制比如下载超过3次/24小时后 请重新返回步骤一】

2. 模型部署

正如前言中提到的,大部分本地自己用的电脑 可能只能跑最小的模型也就是7b的 GPU的占用率大概是12G,如下图为我运行repo里的代码时占用截图 【上一个A100试了一下 这么一看我本机3090 也带不动】

内存的增大原因:

  • prompt 长短 也就是你给模型的输入文字 可能很多 【这也是为什么chatgpt按token收费
  • 输出的语句长短 也就是模型给你的回答 【我这因为让他解释他的输出了 所以也比较长

回归正题,接下来是clone两边的代码,一个是code一个是llama 前者经过了八股文、leetcode训练【我是这么理解的 hhh 通俗易懂】 后者是原生态

  1. https://github.com/facebookresearch/llama, 注意复制链接的时候 也别给错了 看对邮件给
  2. https://github.com/facebookresearch/codellama 同上理

以下为演示截图

  1. git clone 对应代码
  2. 进入文件夹
  3. 运行download.sh
  4. copy 邮件里收到的下载链接【第一次没看仔细 一直在填自己的email 可还行
  5. 选择下载什么模型,注意全部下载的话 可能比较大 建议硬盘空间不够的 选一个最小的 先试试

3. 模型运行

这一步官方的README写的挺不错的,依赖很少 照着pip install -r requirements.txt就行,基本无障碍,最好是建一个conda的环境,别和系统混了,此处为运行示例:

torchrun --nproc_per_node 1 example_completion.py \
    --ckpt_dir CodeLlama-7b/ \
    --tokenizer_path CodeLlama-7b/tokenizer.model \
    --max_seq_len 128 --max_batch_size 4

截图运行及GPU占用:

正常我们想要的应该是chat 聊天形式的所以选择以下模型会有更好的效果:

ModelSizeMP
CodeLlama-7b-Instruct~12.5G1
CodeLlama-13b-Instruct24G2
CodeLlama-34b-Instruct63G4
llama-2-7b-chat~12.5G1
llama-2-13b-chat24G2
llama-2-70b-chat~160G8

4. More

可以参考 前言中我提到的task 给出的一个结果调用,这里是任务的报告pdf:https://arxiv.org/abs/2311.08206 更方便大家直接选择和对比,对应代码在 https://github.com/KTH-RPL/DriveCmd_LLM

还有就是如果想自己部署一个chatgpt,或者是在苹果系统下(which 内存就是显卡内存 可以参考这个b站视频:苹果M2 Ultra:AI大模型的新希望

自己部署一个chatgpt参考code:

  • llama or codellama 作为model和basic
  • text generation web UI 作为一个web的界面 这样才能开启正常对话, https://github.com/oobabooga/text-generation-webui

部署后的示意图:

同时这里面也提到了其他的大语言模型 可以尝试的:Multiple model backends: transformers, llama.cpp, ExLlama, ExLlamaV2, AutoGPTQ, GPTQ-for-LLaMa, CTransformers, AutoAWQ

还有一些vision assistance的模型可以一起,免费版chatgpt 4.0 (但是试了一下即使是70B的 效果在我们的任务上也没有 3.5API调用的高,果然还是钱的问题

其中有一个大视觉语言模型 可以关注:https://github.com/haotian-liu/LLaVA

5. Llama2 论文速读

主要是记录一下一些细节 比如模型和模型之间的不同,fine-tuned的实现等。

首先是关于llama2-chat的训练,如下图:得到llama2后 经过RLHF 步骤得到的chat模型 【RLHF 是一种模型训练过程,应用于微调的语言模型,以进一步使模型行为与人类偏好和指令遵循保持一致。】

下图说明了 训练的一些细节:

  • token是指将所有number 拆分成独立的digits 然后使用use bytes 去decompose 未知的UTF-8,总的词汇是32k token
  • 预训练 2T 的token后 模型也没有饱和

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

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

相关文章

【软考篇】中级软件设计师 第三部分(二)

中级软件设计师 第三部分(二) 二十四. 概念设计阶段24.1 E-R模式24.2 E-R图 二十五. 网络和多媒体25.1 计算机网络分类25.2 OSI/RM参考模型25.3 网络互联硬件25.4 TCP/IP分层模型 二十六. IP地址26.1 子网划分26.2 特殊IP26.3 IPv626.4 冲突与和广播域26…

使用html2canvas插件进行页面截屏

使用纯html实现过程 <!DOCTYPE html> <html><head><title>使用html2canvas生成网页截图</title><script src"https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script> </head><body><h1>…

jQuery使用echarts循环插入图表

目录 jQuery动态循环插入echarts图表 y轴显示最大值和最小值 x轴只显示两个值&#xff0c;开始日期和结束日期 jQuery动态循环插入echarts图表 html .center_img_list 是我们循环数据的地方 <div class"center_img shadow"><div class"center_img_b…

python_pycharm安装与jihuo

目录 环境&#xff1a; 安装包与jihuo文件&#xff1a; 安装python3.8.10 安装pycharm jihuo pycharm 概述 过程 jihuo 相关文件 环境&#xff1a; window11 python3.8.10 pycharm-professional-2019.1.3 安装包与jihuo文件&#xff1a; 安装python3.8.10 安装pyc…

算法通关村——归并排序

归并排序 1、归并排序原理 ​ 归并排序是一种很经典的分治策略。 ​ 归并排序(MERGE-SORT)简单来说就是将大的序列先视为若干小的数组&#xff0c;分成几个比较小的结构&#xff0c;然后是利用归并的思想实现的排序方法。将一个大的问题分解成一些小的问题分别求解&#xff…

mask-rcnn原理与实战

一、Mask R-CNN是什么&#xff0c;可以做哪些任务&#xff1f; Mask R-CNN是一个实例分割&#xff08;Instance segmentation&#xff09;算法&#xff0c;可以用来做“目标检测”、“目标实例分割”、“目标关键点检测”。 1. 实例分割&#xff08;Instance segmentation&am…

pipeline + node +jenkins+kubernetes部署yarn前端项目

1、编写Dockerfile文件 # Set the base image FROM node:16.10.0# WORKDIR /usr/src/app/ WORKDIR /home/option# Copy files COPY ./ /home/option/# Build arguments LABEL branch${BRANCH} LABEL commit${COMMIT} LABEL date${BUILD_DATE} ARG ENV# Set ENV variables ENV …

Python循环的技巧和注意事项

在Python中&#xff0c;主要使用for循环和while循环进行迭代。为了更有效的使用循环&#xff0c;避免一些常见的陷阱&#xff0c;总结了一些关于使用循环的注意事项。 1. 避免无限循环 在while循环中&#xff0c;程序会一直执行循环体&#xff0c;直到条件不再满足&#xff0c…

2023年05月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 有列表L=[‘UK’,‘china’,‘lili’,“张三”],print(L[-2])的结果是?( ) A: UK B: ‘lili’,‘张三’ C: lili D: ‘UK’,‘china’,‘lili’ 答案:C 列表元素定位 第2题 …

【VSCode】配置C/C++开发环境教程(Windows系统)

下载和配置MinGW编译器 首先&#xff0c;我们需要下载并配置MinGW编译器。 下载MinGW编译器&#xff0c;并将其放置在一个不含空格和中文字符的目录下。 配置环境变量PATH 打开控制面板。可以通过在Windows搜索栏中输入"控制面板"来找到它。 在控制面板中&#xf…

Apache Pulsar 技术系列 - 基于 Pulsar 的海量 DB 数据采集和分拣

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案&#xff0c;支持多租户、低延时、读写分离、跨地域复制、快速扩容、灵活容错等特性。本文是 Pulsar 技术系列中的一篇&#xff0c;主要介绍 Pulsar 在海量DB Binlog 增量数据采集、分拣场景下的应用。 前言…

电视剧剪辑,微课制作神器Camtasia的干货介绍,建议收藏。

最近无论是b站&#xff0c;抖音&#xff0c;快手等视频软件中都有不少微课视频、电视剧解说横空出世&#xff0c;通过这些“热度”带来的收益也是无法估量的&#xff0c;很多自媒体博主月入上万惹人羡慕。 不少朋友也想在这股短视频洪流中分一碗羹&#xff0c;但又苦于技术跟不…

大模型架构创新已死?

金磊 白交 发自 凹非寺 量子位 | 公众号 QbitAI 一场围绕大模型自研和创新的讨论&#xff0c;这两天在技术圈里炸了锅。 起初&#xff0c;前阿里技术VP贾扬清&#xff0c;盆友圈爆料吐槽&#xff1a;有大厂新模型就是LLaMA架构&#xff0c;但为了表示不同&#xff0c;通过改变…

RocketMQ中的消息种类以及消费模式

RocketMQ中的消息种类以及消费模式 前言消息的种类按消息的发送方式同步消息异步消息单向消息 按消息的种类普通消息&#xff08;Normal Message&#xff09;顺序消息&#xff08;Orderly Message&#xff09;延时消息&#xff08;Delay Message&#xff09;事务消息&#xff0…

2023年阿里云服务器购买指南,优惠云服务器性能说明

云服务器作为当下互联网行业的重要基础设施之一&#xff0c;对于个人博客、企业展示型官网以及开发者来说&#xff0c;是必不可少的工具。2023年&#xff0c;阿里云金秋云创季推出了两款特惠的云服务器&#xff0c;为用户提供了更加优惠和实用的选择。 1. 轻量应用服务器2核2G…

除了Excel中可以添加公式之外,在Word中也可以添加公式,不过都是基于表格

公式是必不可少的,因为它们有助于简化任何数学任务。微软的应用程序中有许多数学公式。微软应用程序之一的Word配备了一个公式功能,可以执行各种操作。本文将讨论如何在Word中使用和添加公式。 在Word中,公式主要用于表格。因此,你需要有一个表格才能在Word中使用公式。 …

盘点30个Python树莓派源码Python爱好者不容错过

盘点30个Python树莓派源码Python爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1LA4cLunntKW3qO5aok3xAQ?pwd8888 提取码&#xff1a;8888 项目名称 PiCar-raspber…

2023亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

响应系统的作用与实现

首先讨论什么是响应式数据和副作用函数&#xff0c;然后尝试实现一个相对完善的响应系统。在这个过程中&#xff0c;我们会遇到各种各样的问题&#xff0c;例如如何避免无限递归&#xff1f;为什么需要嵌套的副作用函数&#xff1f;两个副作用函数之间会产生哪些影响&#xff1…

儿童水杯上架亚马逊美国站CPC认证办理 ,常见儿童产品CPC认证测试要求

美国CPSC从2021/03/22开始改革&#xff0c;凡是他们管辖范围内的产品&#xff0c;都会被标记审查&#xff0c;如有相关产品请提前准备好相关文件比如CPC检测报告、认证等等&#xff0c;以备目的港海关审查。 CPC认证介绍 CPC证书即儿童产品证书&#xff0c;适用于12岁以下的儿…