首页 > 其他分享 >【随手记录】Llama Tutorial 大语言模型实践

【随手记录】Llama Tutorial 大语言模型实践

时间:2023-11-15 16:00:16浏览次数:38  
标签:Llama 随手 https 模型 github chat llama com Tutorial

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

参考资料:

  1. https://github.com/facebookresearch/codellamahttps://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

Model Size MP
code-7B ~12.5G 1
code-13B 24G 2
code-34B 63G 4
7b-chat ~12.5G 1
13b-chat 24G 2
70b-chat ~160G 8

  • 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 聊天形式的所以选择以下模型会有更好的效果:

Model Size MP
CodeLlama-7b-Instruct ~12.5G 1
CodeLlama-13b-Instruct 24G 2
CodeLlama-34b-Instruct 63G 4
llama-2-7b-chat ~12.5G 1
llama-2-13b-chat 24G 2
llama-2-70b-chat ~160G 8

4. More

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

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

自己部署一个chatgpt参考code:

部署后的示意图:

同时这里面也提到了其他的大语言模型 可以尝试的: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后 模型也没有饱和

标签:Llama,随手,https,模型,github,chat,llama,com,Tutorial
From: https://www.cnblogs.com/kin-zhang/p/17834075.html

相关文章

  • 【随手记】mybatis动态sql foreach遍历List<Map>问题
    使用mybatis时经常需要在xml里写动态sql,发现foreach标签使用的问题foreach标签使用当Mapper传参是List<Map<String,Object>集合的形式时,不能直接使用参数名,会找不到对应的参数。list类型的参数会特殊处理封装在map中,map的key就叫list所以collection属性值只能是"list"//m......
  • 软件设计Tutorial 6_原型模式
    [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。实验要求:1. 画出对应的类图;  2. 提交源代码(用C++完成); #include<iostream>#include<cstring>classVec......
  • 软件设计Tutorial 13_享元模式
    [实验任务一]:围棋设计一个围棋软件,在系统中只存在一个白棋对象和一个黑棋对象,但是它们可以在棋盘的不同位置显示多次。实验要求:1. 提交类图;  2.提交源代码;3.注意编程规范;4.要求用简单工厂模式和单例模式实现享元工厂类的设计。 packageXiang;publicclassBla......
  • ScholarAI ChatGPT Plugin Tutorial, Use Cases & Prompts
    https://roihacks.com/scholarai-chatgpt-plugin/?utm_source=youtube&utm_medium=social&utm_campaign=scholarai-chatgpt-plugin......
  • 开源大语言模型Llama 2
    Llama2Github开源地址我们正在释放大型语言模型的潜力。我们最新版本的Llama现在可供个人、创作者、研究人员和各种规模的企业使用,以便他们可以负责任地进行实验、创新和扩展他们的想法。此发布包括预训练和微调的Llama语言模型的模型权重和起始代码,参数范围从7B到70B......
  • WPF Video Tutorials
    WPFVideoTutorialsListofWPFvideotutorialsforfree…http://movielibrary.lynda.com/html/modPage.asp?ID=359http://www.bestechvideos.com/category/web-tech/wpf/http://windowsclient.net/learn/videos_wpf.aspx......
  • 通义千问, 文心一言, ChatGLM, GPT-4, Llama2, DevOps 能力评测
    引言“克隆dev环境到test环境,等所有服务运行正常之后,把访问地址告诉我”,“检查所有项目,告诉我有哪些服务不正常,给出异常原因和修复建议”,在过去的工程师生涯中,也曾幻想过能够通过这样的自然语言指令来完成运维任务,如今AI助手Appilot利用LLM蕴藏的神奇力量,将这一切变成了......
  • 通义千问, 文心一言, ChatGLM, GPT-4, Llama2, DevOps 能力评测
    引言“克隆dev环境到test环境,等所有服务运行正常之后,把访问地址告诉我”,“检查所有项目,告诉我有哪些服务不正常,给出异常原因和修复建议”,在过去的工程师生涯中,也曾幻想过能够通过这样的自然语言指令来完成运维任务,如今AI助手Appilot利用LLM蕴藏的神奇力量,将这一切变成......
  • YOLOv8上手——随手录
    YOLO81.配置环境pytorch环境以及cudn环境就不详解,只需要根据pytorch官网安装后再pipopencv即可正常运行2.gityolov8(ps:现在也可以直接通过pip下载yolo8了)运行起来可以看官网给出的文档,里面有许多案例以及参数的含义,一下内容都是根据博主个人常用的,不够详细敬请谅解from......
  • 使用 Appilot 部署 Llama2,会聊天就行!
    Walrus是一款基于平台工程理念的应用管理平台,致力于解决应用交付领域的深切痛点。借助Walrus将云原生的能力和最佳实践扩展到非容器化环境,并支持任意应用形态统一编排部署,降低使用基础设施的复杂度,为研发和运维团队提供易用、一致的应用管理和部署体验,进而构建无缝协作的软件交......