LLMs-入门三:基于JupyterLab部署Llama 2


上篇地址: https://blog.csdn.net/Josong/article/details/133637382

说明

使用JupyterLab的前提是需要安装Anaconda3。可参考如下文档

  • https://blog.csdn.net/cc10182436/article/details/131592560
    注:在jupyterLab上通过pip install安装工具时,如果报权限不够,可以在末尾加上“–user”,如下图所示
    在这里插入图片描述
    注:上面安装的是Jupyter 在其环境中添加了基于 LLM 的聊天机器人

1、配置环境变量

“我的电脑”→【右键】→选择“属性”进入到设置页面→选择“关于”,在该页面选择“高级系统设置”→进入到“系统属性”页面→选择【高级】页签→选择【环境变量】→在“系统变量”中配置Anaconda3,如下图所示
注:在新版的Anaconda3安装时并不会自动添加环境变量
在这里插入图片描述

2、启动JupyterLab

“开始菜单”→搜索“cmd” →选择【以管理员身份运行】→进入到命令窗口页面,在该页面输入如下命令并回车

jupyter lab

回车后当显示如下信息表示已经成功启动
在这里插入图片描述

3、进入命令窗口页面

启动完成后,会弹出如下页面
在这里插入图片描述
在该页面上可以选择不同的应用程序:

  • Jupyter Notebook
    在这里插入图片描述
  • Jupyter Console
    在这里插入图片描述
  • Other
    在这里插入图片描述
    注:本文档使用“Jupyter Notebook”,也可以直接点击桌面上已经安装好的进行使用
    在这里插入图片描述

4、基于JupyterLab部署Llama 2

1)使用 huggingface_hub Python库

在jupyter notebook上运行代码,可以使用如下两行代码进行登录。

from huggingface_hub import notebook_login
notebook_login()

在这里插入图片描述
点击https://huggingface.co/settings/tokens 获取tokens地址获取tokens。将tonkens填写到文本框中点击【Login】完成登录
在这里插入图片描述

2)安装transformers和sentencepiece套件

transformers库是基于pytorch或tensorflow深度学习库的(现在也支持JAX),因此需要安装这两个软件包之一。下面的命令同时安装sentencepiece分词器,如果没有安装pytroch,也会自动安装对应的pytorch版本。

pip install transformers sentencepiece

在这里插入图片描述

3)验证torch是否安装

import torch

在这里插入图片描述

4)基于Transformers库载入如下模型

模型解释:

  • AutoModelForCausalLM:用于加载模型(初始化模型)
  • AutoTokenizer:自动分词器
  • TextStreamer:处理文本的生成过程
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
model_path = "daryl149/llama-2-7b-chat-hf"
model = AutoModelForCausalLM.from_pretrained(model_path).cuda()

下载该模型需要一些时间,如下图所示
在这里插入图片描述
说明:如果在下载模型过程中无法正常完成下载,我们可以在HuggingFace上手动将相关内容下载下来,并且复制到本机执行过程中生成的默认的目录中

  • HuggingFace上下载的内容:
    在这里插入图片描述
  • 本机执行过程中生成的默认目录:
    在这里插入图片描述
    复制完成后,重新执行Transformers库载入模型命令
    在这里插入图片描述
    这样就会自动的从本地缓存文件中读取。
    注:当我们重新执行时,要确保自己本机的内存要大于16GB,最好是32GB,否则会报没有足够的内存的错误(基于无GPU,只有CPU的场景)
    在这里插入图片描述

5)加载分词器

tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast = False)

在这里插入图片描述

6)文本处理

  • “skip_prompt = True”文本处理过程中遇到提示词将跳过提示词
  • “skip_special_tokens = True”文本片过程中,在开头或结尾遇到特殊标记时,将自动去调这些特殊标记
streamer = TextStreamer(tokenizer, skip_prompt = True, skip_special_tokens = True)

7)向llama提问题

prompt = "How to make money on the internet?"
generated_ids = model.generate(tokenizer(prompty, return_tensors = 'pt').input_ids.cuda(), max_new_tokens = 1000, streamer = streamer)

提问后的回复如下
在这里插入图片描述

  • max_new_tokens:我们可以通过调整该数的大小,修改输出结果的文字量
    以上就是基于Colab部署开源模型Llama 2的全过程

下一篇提前预告:LLMs-入门四:基于LLaMA-Efficient-Tuning对LLMs做微调

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值