前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >丹摩智算:探索Llama3.1模型的部署与使用

丹摩智算:探索Llama3.1模型的部署与使用

作者头像
屿小夏
发布2024-09-26 08:32:57
980
发布2024-09-26 08:32:57
举报
文章被收录于专栏:IT杂谈学习

📑前言

在人工智能领域,自然语言处理(NLP)技术的进步为机器与人类的交流开辟了新天地。最近,Meta推出的Llama3.1模型以其卓越的性能和开源特性,成为了NLP领域的一大热点。本文将带你深入了解Llama3.1模型,并探索如何在丹摩智算平台上部署和使用这一强大的工具。

一、Llama3.1模型简介

Llama3.1是Meta于2024年7月23日宣布推出的开源模型,包括405B、70B和8B三个版本。其中,405B版本支持上下文长度为128K Tokens,基于15万亿个Tokens和超过1.6万个H100 GPU进行训练,是Meta有史以来规模最大的Llama模型。

Llama3.1模型在图像质量、提示词的准确跟随、尺寸适应性、排版以及输出的多样性方面,已经超越了市场上的Midjourney v6.0、DALL·E 3 (HD)和SD3-Ultra等流行模型,确立了图像合成技术的新高度。

二、部署流程

2.1 创建实例

部署Llama3.1的第一步是创建GPU云实例。在丹摩智算平台的控制台中,选择GPU云实例并点击创建实例。在实例配置中,根据需求选择付费类型,短期需求可以选择按量付费或包日,长期需求可以选择包月套餐。

对于GPU的选择,推荐至少选择NVIDIA GeForce RTX 4090,因为它提供了60GB内存和24GB的显存,足以满足Llama3.1 8B版本的部署需求。此外,建议将数据硬盘扩容至60GB,以存储较大的模型文件。

2.2 登录实例

实例创建成功后,可以通过多种方式登录,包括JupyterLab和SSH登录。JupyterLab提供了一个在线访问实例的入口,而SSH登录则需要提供用户名、远程主机域名或IP、端口号以及登录密码或密钥。

2.3 部署Llama3.1

部署Llama3.1之前,需要使用conda创建一个新的Python环境,并安装必要的依赖,包括langchainstreamlittransformersaccelerate

接下来,下载并解压Llama3.1模型文件。丹摩智算平台提供了内网高速下载服务,可以快速下载预制的Llama-3.1-8B-Instruct模型。

三、使用教程

3.1 创建Chatbot

模型部署完成后,可以创建一个简单的Chatbot来测试模型的性能。首先,新建一个名为llamaBot.py的文件,并编写以下代码:

代码语言:javascript
复制
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 = 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)

3.2 启动服务

在终端中运行以下命令,启动streamlit服务:

代码语言:javascript
复制
streamlit run llamaBot.py --server.address 0.0.0.0 --server.port 1024

通过丹摩智算平台提供的端口映射功能,将内网端口映射到公网,然后通过访问链接即可打开LLaMA3.1 Chatbot交互界面,并与其进行对话。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 📑前言
  • 一、Llama3.1模型简介
  • 二、部署流程
    • 2.1 创建实例
      • 2.2 登录实例
        • 2.3 部署Llama3.1
        • 三、使用教程
          • 3.1 创建Chatbot
            • 3.2 启动服务
            相关产品与服务
            NLP 服务
            NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档