声明:非广告,为用户的真实体验

Llama3.1简介

2024 年 7 月 23 日 Meta宣布推出迄今为止最强大的开源模型——Llama 3.1 405B,同时发布了全新升级的 Llama3.1 70B 和 8B 模型。
Llama 3.1 405B支持上下文长度为128K Tokens,在基于15万亿个Tokens、超1.6万个H100 GPU上进行训练,这也是Meta有史以来第一个以这种规模进行训练的Llama模型。

实例部署

创建云实例

登录丹摩智算平台进入控制台,点击GPU云实例进入如下界面:
在这里插入图片描述
点击创建实例选择实例配置,本次体验选择按量付费NVIDIA-GeForce-RTX-4090(LLaMA3.1 8B 版本至少需要GPU显存16G)即够用。GPU数量选择1、数据硬盘扩至70GB(默认50GB,前面部署没问题,使用时创建文件会出问题)。
在这里插入图片描述
在这里插入图片描述
镜像选择Pytorch2.4.0即可如图:
在这里插入图片描述
按提示创建密钥对
在这里插入图片描述
选择已经创建好的密钥对
在这里插入图片描述
点击立即创建即完成云实例创建。如图:
在这里插入图片描述

部署Llama3.1

JupyterLab在线访问实例的 JupyterLab 入口
在这里插入图片描述点击操作下的入口进入JupyterLab 界面如下图:
在这里插入图片描述
点击终端入口如上图箭头所指进入云实例数据盘位置如下界面:
在这里插入图片描述
创建conda 管理环境,执行命令

conda create -n llama3 python=3.12

执行结果如图:
在这里插入图片描述
执行命令切换到新创建的环境

conda activate llama3

注意:有的时候在执行切换环境的命令时,会提示Run ‘conda init’ Before ‘conda activate’,遇到这种情况在当前的终端执行会一直报错,关闭当前的终端,重新打开再按照顺序分别执行’conda init’ 、 'conda activate llama3’即可切换成功。
执行结果如图切换成功:
在这里插入图片描述
继续安装部署LLama3.1需要的依赖:

pip install langchain==0.1.15
pip install streamlit==1.36.0
pip install transformers==4.44.0
pip install accelerate==0.32.1

注意:这个执行过程可能要稍微长点,因为要下载一些比较大的依赖资源,耐心等待即可。看下图其实速度还时蛮快的
在这里插入图片描述
执行结果如图即成功:
在这里插入图片描述
下载 Llama-3.1-8B 模型,平台已预制Llama-3.1-8B-Instruct模型,执行以下命令即可内网高速下载:

wget http://file.s3/damodel-openfile/Llama3/Llama-3.1-8B-Instruct.tar

确实时高速下载,有图为证:
在这里插入图片描述
执行结果如图即成功:
在这里插入图片描述
解压缩/Llama-3.1-8B-Instruct.tar

tar -xf Llama-3.1-8B-Instruct.tar

执行结果如图即成功:
在这里插入图片描述

使用Llama3.1

新建 llamaBot.py 文件并在其中输入以下内容:

vim llamaBot.py

按 i 进入文件编辑模式,将如下内容写到文件中:

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
import streamlit as st

# 创建一个标题和一个副标题
st.title("💬 LLaMA3.1 Chatbot")
st.caption("🚀 A streamlit chatbot powered by Self-LLM")

# 定义模型路径
mode_name_or_path = '/root/workspace/Llama-3.1-8B-Instruct'

# 定义一个函数,用于获取模型和tokenizer
@st.cache_resource
def get_model():
    # 从预训练的模型中获取tokenizer
    tokenizer = AutoTokenizer.from_pretrained(mode_name_or_path, trust_remote_code=True)
    tokenizer.pad_token = tokenizer.eos_token
    # 从预训练的模型中获取模型,并设置模型参数
    model = AutoModelForCausalLM.from_pretrained(mode_name_or_path, torch_dtype=torch.bfloat16).cuda()
  
    return tokenizer, model

# 加载LLaMA3的model和tokenizer
tokenizer, model = get_model()

# 如果session_state中没有"messages",则创建一个包含默认消息的列表
if "messages" not in st.session_state:
    st.session_state["messages"] = []

# 遍历session_state中的所有消息,并显示在聊天界面上
for msg in st.session_state.messages:
    st.chat_message(msg["role"]).write(msg["content"])

# 如果用户在聊天输入框中输入了内容,则执行以下操作
if prompt := st.chat_input():
    
    # 在聊天界面上显示用户的输入
    st.chat_message("user").write(prompt)
    
    # 将用户输入添加到session_state中的messages列表中
    st.session_state.messages.append({"role": "user", "content": prompt})

    # 将对话输入模型,获得返回
    input_ids = tokenizer.apply_chat_template(st.session_state["messages"],tokenize=False,add_generation_prompt=True)
    model_inputs = tokenizer([input_ids], return_tensors="pt").to('cuda')
    generated_ids = model.generate(model_inputs.input_ids,max_new_tokens=512)
    generated_ids = [
        output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
    ]
    response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

    # 将模型的输出添加到session_state中的messages列表中
    st.session_state.messages.append({"role": "assistant", "content": response})
    # 在聊天界面上显示模型的输出
    st.chat_message("assistant").write(response)
    print(st.session_state)

ESC退出文件编辑模式,shift+冒号进入命令模式,输入wq,按回车保存文件退出。
输入ll命令查看llamaBot.py文件存在即成功,如下图:
在这里插入图片描述
运行以下命令,启动 streamlit 服务,server.port 可以更换端口:

streamlit run llamaBot.py --server.address 0.0.0.0 --server.port 1024

注意:服务地址务必指定位0.0.0.0,否则无法通过浏览器访问

执行结果如下图:
在这里插入图片描述
这个时候通过http://0.0.0.0:1024/无法访问,需要通过丹摩智算平台提供的端口映射能力,把内网端口映射到公网,进入GPU 云实例页面,点击相应的云实例下的操作=>更多=>访问控制,如下图:
在这里插入图片描述
添加streamlit服务端口,其他默认,点击确定即可
在这里插入图片描述
保存后,复制下图箭头所指链接去浏览器访问即可。
在这里插入图片描述
在浏览器访问,初次加载大约需要3分钟左右,之后可以类似正常的Chatgpt,可以问出自己想要知道的问题了!!!
在这里插入图片描述

体验心得

初次使用丹摩平台搭建LLaMA3.1的体验非常棒,丹摩平台提供了一个友好的界面和易用的操作系统,使得初次使用者可以快速上手并开始使用模型。LLaMA3.1的性能非常出色,能够处理复杂的自然语言处理任务,包括语言翻译、文本生成和问答等。我尝试了多个任务,结果都非常满意。

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐