DAMODEL——Llama3.1的部署与使用指南

devtools/2025/1/19 11:58:43/

Llama3.1的部署与使用指南

在自然语言处理(NLP)领域,大模型(LLM)是基于深度学习算法训练而成的重要工具,应用范围包括自然语言理解和生成。随着技术的发展,开源的LLM不断涌现,涵盖了机器视觉(CV)、多模态模型以及科学计算等多个领域。

在当前的竞争格局中,开源LLM如雨后春笋般涌现,国内外都出现了不少优秀的开源模型。国外有LLaMA、Alpaca等,国内则有ChatGLM、BaiChuan、InternLM等,用户可以在这些模型的基础上进行本地部署和微调,创建个性化的应用。

Llama3.1介绍

2024年7月23日,Meta发布了其最新的开源模型——Llama 3.1,包括405B、70B和8B版本。值得注意的是,Llama 3.1 405B的上下文长度支持达到128K Tokens,其训练基于150万亿个Tokens,使用超过16,000个H100 GPU,是Meta迄今为止规模最大的Llama模型

image-20240813133905709

本指南主要集中在Llama3.1的8B版本,该版本需要至少16GB的GPU显存。以下是我们的测试环境配置:

  • 操作系统:Ubuntu 22.04
  • Python版本:3.12
  • CUDA版本:12.1
  • PyTorch版本:2.4.0

部署流程

创建云实例

首先,访问控制台-GPU云实例并点击创建实例。在创建页面中,选择合适的付费类型(按量或包月),接着配置GPU数量和型号。建议首次创建选择按量付费,1个NVIDIA-GeForce-RTX-4090 GPU,这样可以满足8B版本的显存需求。

image-20240921193104498

在数据硬盘配置上,默认50GB的硬盘通常足够,但若通过官方方式下载模型,建议扩展至60GB。然后选择基础镜像,确保选择了包含PyTorch的镜像。

创建实例时,务必生成并保存密钥对,以便后续SSH连接使用。

登录实例

实例创建完成后,可以通过多种方式登录:

  • JupyterLab:平台提供了在线JupyterLab入口,登录后可在/root/workspace目录下进行操作。
  • SSH登录:使用终端工具进行SSH登录,输入必要的用户名、主机IP和密钥。

这里我们使用JupyterLab

部署Llama3.1

在这里插入图片描述

在实例中,我们将使用conda管理环境。可以直接创建一个新环境:

conda create -n llama3 python=3.12

image-20240921193655581

切换到新创建的环境:

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

image-20240921194350770

接着,下载Llama-3.1-8B-Instruct模型,使用以下命令进行内网高速下载:

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

image-20240921194433961

下载后,解压缩模型文件:

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

使用指南

模型下载完成后,创建一个名为llamaBot.py的文件,并输入以下代码来加载模型和启动Web服务:

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_tokenmodel = AutoModelForCausalLM.from_pretrained(mode_name_or_path, torch_dtype=torch.bfloat16).cuda()return tokenizer, model# 加载模型和tokenizer
tokenizer, model = get_model()# 管理会话状态
if "messages" not in st.session_state:st.session_state["messages"] = []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)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)response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]st.session_state.messages.append({"role": "assistant", "content": response})st.chat_message("assistant").write(response)

image-20240921195411833

在终端运行以下命令来启动Streamlit服务,确保服务地址设置为0.0.0.0以便于浏览器访问:

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

接着,通过丹摩平台的端口映射功能,将内网端口映射到公网,完成后您就可以通过提供的链接访问LLaMA3.1 Chatbot并与其互动。

进入GPU 云实例页面,点击操作-更多-访问控制:

image-20240921195653583

点击添加端口,添加streamlit服务对应端口:

image-20240921195724711

然后点击相应链接即可进入交互界面。

-更多-访问控制:

[外链图片转存中…(img-t5dURskR-1726919894498)]

点击添加端口,添加streamlit服务对应端口:

[外链图片转存中…(img-1jy0SGBr-1726919894498)]

然后点击相应链接即可进入交互界面。

通过以上步骤,您将成功部署并使用Llama3.1模型,享受与强大聊天机器人的互动体验。


http://www.ppmy.cn/devtools/115326.html

相关文章

Linux中,过滤经过服务器的MAC地址通常涉及几个步骤,包括查看当前连接的MAC地址、使用iptables进行MAC地址过滤

在Linux中,过滤经过服务器的MAC地址通常涉及几个步骤,包括查看当前连接的MAC地址、使用iptables进行MAC地址过滤,以及编写脚本来自动化这些过程。以下是一些具体的方法: 1. 查看当前连接的MAC地址 首先,你需要查看当…

日志系统第一弹:日志系统介绍

日志系统第一弹:日志系统介绍 一、日志的重要性1.什么是日志?2.排查BUG3.监控系统4.监控程序性能 二、日志系统技术1.同步写日志2.异步写日志3.日志文件轮换方案1.日志分类方式2.日志轮换方案 三、项目设计1.目标2.设计1.日志消息模块2.日志格式化模块3.…

政务安全运营核心能力模块

采集能力 提供收集云安全、网络安全、数据安全、应用安全、终端安全、密码安全日志的能力,形成安全数据的大集中,为支撑全面风险感知和安全管控提供数据基础。 威胁分析能力 通过威胁情报、威胁分析模型等,基于对大量历史数据持续进化不断…

探索轻量级语言模型 GPT-4O-mini 的无限可能

随着人工智能技术的日益发展,语言模型正逐渐成为人们日常生活和工作中不可或缺的一部分。其中,GPT-4O-mini 作为一个轻量级大模型,以其强大的功能和易用性吸引了众多关注。本文将带您了解 GPT-4O-mini 的出色表现、应用场景以及如何免费使用这…

CICD简单描述笔记

个人笔记内容 你如何理解持续集成和持续部署(CI/CD)? 持续集成(Continuous Integration, CI) 和持续部署(Continuous Deployment, CD) 是现代软件开发实践中的关键环节,它们旨在提…

Maven笔记(二):进阶使用

Maven笔记(二)-进阶使用 一、Maven分模块开发 分模块开发对项目的扩展性强,同时方便其他项目引入相同的功能。 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享(类似Jar包一样之间引用、复用)…

梧桐数据库(WuTongDB):Volcano/Cascades 优化器框架简介

Volcano/Cascades 是现代关系数据库系统中使用的两种重要的查询优化器框架,它们用于将高层 SQL 查询转换为高效的执行计划。它们采用了一种基于规则的方式来探索各种可能的查询执行计划,目的是选择一个代价最小的计划。以下是对这两种框架的详细讲解&…

常见项目场景题2(多次输错密码禁止登录,分布式下多线程抢夺资源)

多次输错密码后如何禁止一定时间内用户再次登录 通常使用 IP 地址为单位来进行限制,而非具体的用户。这样可以减少误伤其他用户的可能性。 (一个非法用户可能会拿他人的账号不断尝试登录) 同时,以 IP 地址为单位进行限制还可以避…