llama3-8B模型8G显存量化部署

基于InternStudio平台,使用8G显存部署量化后的llama3-8b

Llama-3简单介绍

本次Llama-3的介绍与前两个版本差不多,大量的测试数据和格式化介绍。但Meta特意提到Llama-3使用了掩码和分组查询注意力这两项技术。
目前,大模型领域最流行的Transformer架构的核心功能是自我注意力机制,这是一种用于处理序列数据的技术,可对输入序列中的每个元素进行加权聚合,以捕获元素之间的重要关系。但在使用自我注意力机制时,为了确保模型不会跨越文档边界,通常会与掩码技术一起使用。在自我注意力中,掩码被应用于注意力权重矩阵,用于指示哪些位置的信息是有效的,哪些位置应该被忽略。通常当处理文档边界时,可以使用两种类型的掩码来确保自我注意力不会跨越边界:

  • 填充掩码,当输入序列的长度不一致时,通常会对较短的序列进行填充,使其与最长序列的长度相等。填充掩码用于标记填充的位置,将填充的部分掩盖,使模型在自我注意力计算中忽略这些位置。
  • 未来掩码,在序列生成任务中,为了避免模型在生成当前位置的输出时依赖后续位置的信息,可以使用未来掩码。
    未来掩码将当前位置之后的位置都掩盖起来,使得自我注意力只能关注当前或之前的位置。
    此外,在Transformer自注意力机制中,每个查询都会计算与所有键的相似度并进行加权聚合。
    而在分组查询注意力中,将查询和键分组,并将注意力计算限制在每个查询与其对应组的键之间,从而减少了模型计算的复杂度。
    由于减少了计算复杂度,分组查询注意力使得大模型更容易扩展到处理更长的序列或更大的批次大小。这对于处理大规模文本数据或需要高效计算的实时应用非常有益。
    同时分组查询注意力允许在每个查询和其对应组的键之间进行关注的计算,从而控制了注意力的范围。这有助于模型更准确地捕捉查询和键之间的依赖关系,提高了表示能力。

    Meta表示,Llama-3 还使用了一个 128K的词汇表标记器,能更有效地编码语言,在处理语言时也更加灵活。训练数据方面,lama3在超过 15T tokens的公开数据集上进行了预训练。这个训练数据集是 Llama2的7倍,包含的代码数量也是 Llama 2 的4倍。为了实现多语言能力,Llama3的预训练数据集中有超过 5% 的高质量非英语数据,涵盖 30 多种语言。

量化部署

由于算力资源有限,使用InternStudio平台,8G显存部署量化后的llama3-8B。查看开发机的显存,如下图所示:
在这里插入图片描述

  • 首先配置基本环境命令如下:
conda create -n llama3 python=3.10 #创建名字llama3的虚拟环境,python版本为3.10
conda activate llama3   #激活llama3环境
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia #下载pytorch

等待一会,即可安装成功。使用pip list,查看安装的结果,如下图所示:
在这里插入图片描述

  • 其次下载模型
    新建文件夹
mkdir -p ~/model  #创建model文件夹
cd ~/model#切换model文件夹

使用软链接 InternStudio 中的模型命令如下

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

使用上述软连接命令后,在model目录下即可出现模型的文件夹,如下图所示:
在这里插入图片描述

  • Web Demo 部署
    拉取Llama3-Tutorial代码。
cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial

安装 XTuner 时会自动安装其他依赖

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

下图为代码下载完成的效果:
在这里插入图片描述
下图为安装好依赖的效果:
在这里插入图片描述
运行 web_demo.py

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

运行上述代码,由于显存为8G,会出现显存不够的情况,如下图:
在这里插入图片描述
此时需要运行量化后的命令即可。

streamlit run ~/Llama3-Tutorial/tools/internstudio_quant_web_demo.py   ~/model/Meta-Llama-3-8B-Instruct

效果如下:
在这里插入图片描述
本次实验参考Llama3-Tutorial这个教程,有兴趣者可以访问了解一下。

  • 17
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Llama3-8b是一个开源的聊天机器人模型,可以用于自然语言处理和对话生成任务。如果您希望进行私有化部署,可以按照以下步骤进行操作: 1. 获取源代码:首先,您需要从Llama3-8b的开源代码库中获取源代码。您可以在GitHub上找到该项目,并将其克隆到本地。 2. 环境配置:在进行私有化部署之前,您需要配置适当的环境。确保您的系统满足所需的软件和硬件要求,并安装必要的依赖项。 3. 数据准备:为了训练和使用Llama3-8b模型,您需要准备相应的数据集。这可能包括对话数据、语料库等。确保数据集的质量和多样性,以提高模型的性能。 4. 模型训练:使用准备好的数据集,您可以开始训练Llama3-8b模型。根据您的需求和资源情况,您可以选择在单个GPU或多个GPU上进行训练。训练过程可能需要一定的时间和计算资源。 5. 模型部署:一旦训练完成,您可以将Llama3-8b模型部署到私有环境中。这可能涉及将模型加载到服务器或云平台,并设置相应的API接口供其他应用程序调用。 6. 安全性和隐私保护:在进行私有化部署时,确保采取适当的安全措施来保护用户数据和系统安全。这可能包括数据加密、访问控制、身份验证等。 7. 持续优化和更新:私有化部署后,您可以根据实际需求对Llama3-8b模型进行持续优化和更新。这可能包括增加新的训练数据、微调模型参数等。 希望以上步骤对您进行Llama3-8b的私有化部署提供了一些指导。如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值