DAMODEL丹摩智算:LLama3.1部署与使用

文章目录

前言

[一、LLaMA 3.1 的特点](#一、LLaMA 3.1 的特点)

二、LLaMA3.1的优势

三、LLaMA3.1部署流程

(一)创建实例

(二)通过JupyterLab登录实例

(3)部署LLaMA3.1

(4)使用教程

总结


前言

LLama3.1 是 Meta(Facebook 母公司)发布的系列大语言模型之一,属于 LLaMA(Large Language Model Meta AI)模型系列。LLaMA 模型的目标是通过更高效的设计在保持模型性能的前提下,显著降低其计算和资源需求。LLaMA 3.1 是该系列的最新版本,继承了前面版本,如 LLaMA 1 和 LLaMA 2的许多技术优势,并对模型架构、训练数据和推理能力进行了改进。


一、LLaMA 3.1 的特点

LLaMA 3.1主要有以下4个特点:

  • 规模较大且高效:LLaMA 3.1 在参数量上相比前代有所增加,但在设计和训练过程中注重提高效率,因此能够在相对较少的资源下达到与更大模型相似的性能水平。

  • 更多的训练数据:该版本的模型通过更广泛、更丰富的语料库进行训练,覆盖了更多领域的信息,使得它在回答问题、生成内容以及自然语言理解方面更强大。

  • 优化的推理性能:LLaMA 3.1 通过对推理算法和模型架构的优化,减少了推理时间,提高了在不同任务上的响应速度。

  • 开源的方式:与前代模型类似,LLaMA 3.1 也继续采用开源模式,这意味着研究人员和开发人员可以在其基础上进行进一步的研究和开发。这种开放性是 Meta 希望推动 AI 社区共同进步的一个关键策略。


二、LLaMA3.1的优势

相较于 OpenAI 的 GPT 系列或 Google 的 PaLM 系列,LLaMA 系列模型的优势在于其高效性,即在保持较高的生成能力和理解能力的同时,资源消耗更低。LLaMA 3.1 通过对模型结构的精简和训练数据的多样化,在许多任务上能够提供接近甚至超过这些主流模型的性能。


三、LLaMA3.1部署流程

DAMODEL地址:丹摩DAMODEL|让AI开发更简单!算力租赁上丹摩!

(一)创建实例

(1)登录后点击控制台,选择GPU云实例并创建实例

(2)付费类型选择按量付费,示例配置选4 NVIDIA-L40S

(3)GPU、数据硬盘按照默认的即可

(4)镜像框架选择PyTorch 2.4.0,选择密钥对后点击立即创建

(5)实例状态变为运行中时即实例创建成功

(二)通过JupyterLab登录实例

(3)部署LLaMA3.1

使用conda 管理环境,DAMODEL示例已经默认安装了 conda 24.5.0 ,直接创建环境即可

在终端输入:

bash 复制代码
conda create -n llama3 python=3.12

效果图:

第一次在终端使用conda命令,需要先进行conda初始化,初始化完成后重新开下终端

bash 复制代码
conda init

效果图:

初始化后切换到新创建的环境

bash 复制代码
conda activate llama3

安装LLaMA3.1需要的依赖

bash 复制代码
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模型即可

bash 复制代码
wget http://file.s3/damodel-openfile/Llama3/Llama-3.1-8B-Instruct.tar

效果图:

模型下载完成后解压缩Llama-3.1-8B-Instruct.tar

bash 复制代码
tar -xf Llama-3.1-8B-Instruct.tar

(4)使用教程

Llama-3.1-8B模型下载完成后,新建llamaBot.py文件,输入以下内容:

python 复制代码
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)

在终端中运行以下命令启动 streamlit 服务,server.port 可以更换端口:

bash 复制代码
streamlit run llamaBot.py --server.address 0.0.0.0 --server.port

使用丹摩平台提供的端口映射功能,将内网端口映射到公网:

添加好后,通过示例端口的访问链接即可打开LLaMA3.1 Chatbot交互界面,可以跟该机器人进行对话


总结

本文介绍了 LLaMA 3.1 模型的特点、优势以及在 DAMODEL 平台上的部署流程。LLaMA 3.1 是 Meta 发布的最新大语言模型,具有高效的计算设计和优异的推理性能。其主要优势在于相较于 OpenAI 的 GPT 系列或 Google 的 PaLM 系列,LLaMA 3.1 在消耗较少资源的情况下依然能够提供强大的生成和理解能力。

文章还详细描述了如何通过 DAMODEL 平台部署 LLaMA 3.1 的步骤,从创建 GPU 实例,到配置环境(使用 conda 管理 Python 环境),再到安装必要的依赖和下载模型文件。最后,还展示了如何构建一个基于 Streamlit 的聊天机器人,通过 LLaMA 3.1 生成对话内容并与用户交互。

相关推荐
爱吃提升5 分钟前
python 分布式爬虫、爬虫合规与综合实战项目
分布式·爬虫·python
审小匠OpenCPAi6 分钟前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比
java·前端·人工智能·python·审计
元Y亨H1 小时前
Pandas 解析 Excel 导致的内存溢出(MemoryError)
python·excel
金銀銅鐵2 小时前
[Python] 用 turtle 来绘制瑞典国旗
python
Albert Edison2 小时前
【GUI 自动化测试】Pywinauto 常见操作
自动化测试·python·pywinauto
海兰2 小时前
【高速缓存】RedisVL为文本生成嵌入向量实践指南
人工智能·python·机器学习
2601_955760072 小时前
如何用 Claude Opus 5 API 批量扩展长尾关键词和文章选题
前端·python·搜索引擎
艾斯特_3 小时前
从模型调用到可用聊天应用:会话状态与消息协议
python·ai·aigc
Marst Code3 小时前
Python 3.9 已停止维护!从 3.9 到 3.14 全版本深度对比,生产环境该选哪个?
开发语言·python
llwszx3 小时前
【Java/Go后端手撸原生Agent(第九篇):Plan-and-Execute规划模式——从“走一步看一步“到“先谋后动“】
java·python·golang·agent开发·plan模式·规划执行模式