[大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型

news2024/11/24 8:36:02
[大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型

目录

  • 一、LLama3.1
  • 二、DAMODEL云算力平台
    • 2.1 提供的服务
      • 2.1.1 AI训练
      • 2.1.2 AI推理
      • 2.1.3 高性能计算
      • 2.1.4 图像/视频渲染
      • 2.1.5 定制化部署
    • 2.2 支持的GPU
  • 三、在DAMODEL部署LLama3.1
    • 3.1 在DAMODEL创建实例(装系统部署环境)
    • 3.2 在DAMODEL部署LLama3.1 8B
      • 3.2.1 登录实例
        • 3.2.1.1 平台内置JupyterLab
        • 3.2.1.2 SSH登录
      • 3.2.2 部署LLama3.1
      • 3.3.3 在Web端使用LLama模型推理
  • 四、总结
  • 五、粉丝福利 - 丹摩低价狂欢节

大模型(LLM)狭义上指基于深度学习算法进行训练的自然语言处理(NLP)模型,主要应用于自然语言理解和生成等领域,广义上还包括机器视觉(CV)大模型、多模态大模型和科学计算大模型等。

百模大战正值火热,开源 LLM 层出不穷。如今国内外已经涌现了众多优秀开源 LLM,国外如 LLaMA、Alpaca,国内如 ChatGLM、BaiChuan、InternLM(书生·浦语)等。开源 LLM 支持用户本地部署、私域微调,每一个人都可以在开源 LLM 的基础上打造专属于自己的独特大模型。

一、LLama3.1

2024 年 7 月 23 日 Meta宣布推出迄今为止最强大的开源模型——Llama 3.1 405B,同时发布了全新升级的 Llama 3.1 70B 和 8B 模型。

Llama 3.1 405B支持上下文长度为128K Tokens,在基于15万亿个Tokens超1.6万个H100 GPU上进行训练,这也是Meta有史以来第一个以这种规模进行训练的Llama模型。

Llama 3.1 与其他模型对比:

在这里插入图片描述

由于资源限制,我们此次选择部署 LLaMA3.1 的 8B 版本,该版本至少需要GPU显存16G

本次测试环境:

ubuntu 22.04
python 3.12
cuda 12.1
pytorch 2.4.0

二、DAMODEL云算力平台

DAMODEL(丹摩智算) 是专为 AI 打造的智算云,致力于提供丰富的算力资源与基础设施助力 AI 应用的开发、训练、部署。提供CPU/GPU算力集群、CPU/GPU裸金属服务和高性能存储等3大类产品,其中,算力集群可充分满足用户弹性算力的需求;裸金属服务为用户提供了最佳的性能输出,且允许用户根据需求进行定制。平台在计算节点之间以及计算节点与存储节点之间均采用IB网络,同时,平台提供高并发、高性能的存储服务,避免了网络及存储性能瓶颈,使算力节点性能最充分发挥。

在这里插入图片描述

2.1 提供的服务

2.1.1 AI训练

提供丰富的用于AI训练的计算资源及训练软件,使得用户可以快速构建、训练和部署自己的人工智能模型。平台支持TensorFlow、PyTorch、Caffe等主流工具和框架,帮助用户构建和训练各种类型的人工智能模型,如图像识别、语音识别、自然语言处理等。

2.1.2 AI推理

基于高性能算力集群为用户AI推理服务提供强大的算力支持,为AI推理服务的部署和发布提供便利的工具支持。具有针对AIGC、图像识别、语音识别、自然语言处理等多种应用场景的解决方案。

2.1.3 高性能计算

基于高性能的CPU/GPU服务器计算集群,提供强大的计算能力、高速的网络连接和大规模的存储资源,帮助用户完成大规模的计算和数据处理任务。高性能计算服务适用于需要大量计算能力的科学研究、工程仿真、药物研发及数字媒体等领域。

2.1.4 图像/视频渲染

通过CPU/GPU集群提供针对特效制作、影视动画、建筑效果图等场景的离线算力服务;通过高性能GPU服务器提供的实时渲染服务可用于直播渲染、游戏娱乐、产品展示等场景。高性能的算力平台显著缩短了图像/视频渲染所需的时长,并基于优化的算法提供大吞吐量的高效实时渲染。

2.1.5 定制化部署

根据用户需求提供从方案设计、部署实施,到日常运维、系统优化等全流程的服务。

2.2 支持的GPU

显卡显存-GB内存-GB/卡CPU-核心/卡存储简介
RTX 4090246011100G系统盘 50G数据盘性价比配置,推荐入门用户选择,适合模型推理场景
RTX 40902412415100G系统盘 50G数据盘性价比配置,推荐入门用户与专业用户选择,适合模型推理场景
H800 SXM8025227100G系统盘 50G数据盘顶级配置,推荐专业用户选择,适合模型训练与模型推理场景
H800 PCle8012421100G系统盘 50G数据盘顶级配置,推荐专业用户选择,适合模型训练与模型推理场景
L40S4812421100G系统盘 50G数据盘专业级配置,推荐专业用户选择,适合模型训练与模型推理场景
P4024126100G系统盘 50G数据盘性价比配置,推荐入门用户选择,适合模型推理场景

三、在DAMODEL部署LLama3.1

3.1 在DAMODEL创建实例(装系统部署环境)

创建实例前需要注册账号,注册地址:DAMODEL(丹摩智算)

注册成功后进入DAMODEL控制台,点击资源-GPU云实例 –> 点击创建实例:

在这里插入图片描述

进入创建页面后,首先在实例配置中选择付费类型,一般短期需求可以选择按量付费或者包日,长期需求可以选择包月套餐;

其次选择GPU数量和需求的GPU型号,首次创建实例推荐选择:

按量付费–GPU数量1–NVIDIA-GeForc-RTX-4090,该配置为60GB内存,24GB的显存(本次测试的LLaMA3.1 8B 版本至少需要GPU显存16G)

接下来配置数据硬盘的大小,每个实例默认附带了50GB的数据硬盘,首次创建可以就选择默认大小50GB

在这里插入图片描述

继续选择安装的镜像,平台提供了一些基础镜像供快速启动,镜像中安装了对应的基础环境和框架,可通过勾选来筛选框架,这里筛选PyTorch,选择PyTorch 2.4.0。

在这里插入图片描述

为保证安全登录,创建密钥对,输入自定义的名称,然后选择自动创建并将创建好的私钥保存的自己电脑中并将后缀改为.pem,以便后续本地连接使用。

在这里插入图片描述

创建好密钥对后,选择刚刚创建好的密钥对,并点击立即创建,等待一段时间后即可启动成功!

在这里插入图片描述

3.2 在DAMODEL部署LLama3.1 8B

等待实例创建成功,在 GPU云实例 中查看实例信息:

在这里插入图片描述

3.2.1 登录实例

有多种方法登录:

3.2.1.1 平台内置JupyterLab

平台提供了在线访问实例的 JupyterLab 入口,可以直接登录实例:

在这里插入图片描述

JupyterLab 界面:

在这里插入图片描述

登录后一般会在 /root/workspace 目录下,服务器各个路径具体意义如下:

  1. /:系统盘,替换镜像,重置系统时系统盘数据都会重置。
  2. /root/workspace:数据盘,支持扩容,保存镜像时此处数据不会重置。
  3. /root/shared-storage:共享文件存储,可跨实例存储。
3.2.1.2 SSH登录

SSH只是登录方式,工具可以是系统自带终端、Xshell、MobaXterm等。

SSH登录一般需要以下 4 个信息:

  • 用户名:root
  • 远程主机域名或IP(这里使用host域名):实例页面获取
  • 端口号:实例页面获取
  • 登录密码或密钥(这里使用密钥):前面创建实例时保存到本地的密钥

在实例页面获取主机host和端口号:

在这里插入图片描述

复制结果类似如下:

ssh -p 31729 root@gpu-s277r6fyqd.ssh.damodel.com

其中,gpu-s277r6fyqd.ssh.damodel.com 即主机host,31729 为端口号。

如果在终端登录,使用如下指令:

指令格式:ssh -i <私钥文件名> -p <端口号> <用户名>@<host地址>
示例:ssh -i private_key.pem -p 31729 root@gpu-s277r6fyqd.ssh.damodel.com

如果通过其他工具连接,输入对应信息即可,以 MobaXterm 为例:

首先打开MobaXterm软件,点击左上方Session按钮创建一个新的Session,并选择通过SSH连接登录。

在这里插入图片描述

然后将刚刚记录的主机host填入 Remote host 当中,端口号填入 Port 中,

在下方的 Adavanced SSH settings 中勾选 Use private key,并将前面创建实例时保存到本地的密钥导入其中。

在这里插入图片描述

点击ok后,即可看到成功创建了session,输入刚刚记录的用户名root,回车即可连接成功。

在这里插入图片描述

显示如下界面后,即连接成功,后续就可以正常通过MobaXterm连接使用服务器了。

在这里插入图片描述

3.2.2 部署LLama3.1

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

conda create -n llama3 python=3.12

环境创建好后,使用如下命令切换到新创建的环境:

conda activate llama3

继续安装部署LLama3.1需要的依赖:

pip install modelscope==1.11.0
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 模型,新建 model_download.py 文件并在其中输入以下内容,并运行 python model_download.py 执行下载。

import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os

model_dir = snapshot_download('LLM-Research/Meta-Llama-3.1-8B-Instruct', cache_dir='/root/workspace/model', revision='master')

模型一共大约 30G,网速慢的话需要等很长时间,不过DAMODEL平台的网速还是不错的。

在这里插入图片描述

模型下载好后,准备加载模型及启动Web服务等工作,新建 llamaBot.py 文件并在其中输入以下内容:

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/model/LLM-Research/Meta-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 可以更换端口:

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

可以直接运行该指令,也可以将该指令保存在shell脚本里,运行后提示输入邮箱,可不输入直接回车:

在这里插入图片描述

回车后,结果如下,即启动成功:

在这里插入图片描述

由于云平台服务器没有浏览器,需要在本地访问。

3.3.3 在Web端使用LLama模型推理

由于服务器启动的是localhost IP,不是公网IP,所以本地无法直接访问,需要做一下转发。

使用 MobaXterm 建立ssh隧道,实现远程端到本机端的转发,打开 Tunneling,点击 New SSH tunnel

在这里插入图片描述

编辑转发信息,点击 Local port dorwarding 弹出配置页面,其中各部分信息说明如下:

在这里插入图片描述

点击 Save 保存配置如下,检查配置无误后点击这个小钥匙,加载上面保存的密钥文件。

在这里插入图片描述

然后点击启动按钮,点击后,启动按钮变灰,旁边的停止按钮变亮,表示启动成功。

在这里插入图片描述

此时在浏览器中访问 http://127.0.0.1:1024 ,即可打开LLaMA3.1 Chatbot交互界面,并与其对话:

在这里插入图片描述

四、总结

体验 DAMODEL(丹摩智算) 后,整体感觉它是一个非常强大且易用的AI开发云算力平台。对初学者非常友好,新建的实例基本不用再手动部署环境,一些常用的依赖已经帮你安装好,直接上手开发。

不仅如此,它还提供了多种不同的开发环境,可以轻松地选择最熟悉或最适合用户需求的环境来构建、训练和部署应用程序,而无需考虑配置的问题。

总的来说,和现有平台相比, DAMODEL(丹摩智算) 核心在于快速启动,便捷开发,非常适合和各个应用领域结合,快速提供相关的解决方案。

五、粉丝福利 - 丹摩低价狂欢节

点击 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 注册链接 ~~~~~~~~~~~~~~~~~~~~~~~~~~

可享受免费试用,实名认证后还可获得30元代金券。

🔥全场折扣价

全场6折起,部分GPU型号最低0.3元/卡/时。

🔥H800资源扩容

H800算力全新升级,资源扩容!保障用户使用需求,无需排队等待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【案例43】打开节点-后台任务日志优化案例

问题现象 通过SPR日志发现 打开节点-后台任务日志节点sql调用严重。 通过nmc查看&#xff0c;后台线程耗时20s &#xff0c;基本都卡在sql层面 一直在执行如下sql selectl.pk_workingtasklog frompub_workingtasklog l inner joinpub_alertregistry ron l.pkregistry r.pk_a…

Black Forest Labs 的 Flux——文本转图像模型的下一个飞跃,它比 Midjourney 更好吗?

一、前言 Black Forest Labs是开创性稳定扩散模型的团队&#xff0c;现已发布Flux——一套最先进的模型&#xff0c;有望重新定义 AI 生成图像的功能。但 Flux 是否真正代表了该领域的飞跃&#xff1f;它与 Midjourney 等行业领导者相比如何&#xff1f;让我们深入探索 Flux 的…

【Kubernetes】Service 概念与实战

Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod&#xff0c;而每个 Pod 又具有独立的 IP 地址。Service&#xff08;服务&#xff09;能够为一组功能相同的…

DI (providedIn: XXXModule)

angular版本为^17.3.0&#xff1b; 依赖注入Module 代码结构如下&#xff1a; 点击后为 demo2 works!demo2 providedIn Demo1Module depdemo2 works!demo2 providedIn Demo1Module 打包后大小为 改写为 demo2去掉 imports: [Demo1Module], 打包后大小为 结果比较&#…

DAMA学习笔记(十五)-数据管理组织与角色期望

1.引言 随着数据领域的快速发展&#xff0c;组织需要改进管理和治理数据的方式。当前&#xff0c;大多数组织正面临着越来越多的数据。这些数据格式多样、数量 庞大&#xff0c;并来源于不同的渠道。由于数据数量和种类的增加&#xff0c;加剧了数据 管理的复杂性。与此同时&am…

shiro注解不起作用:shiro进行权限校验时,@RequireRoles(“admin“)注解不起作用的解决方法

今天在写前后端分离项目时&#xff0c;用jwt加shiro进行登录权限校验时&#xff0c;RequireRoles("admin")注解不起作用&#xff0c;记录一下。 前提&#xff1a;数据库里面的user_type代表用户类型 &#xff1a;0普通用户 &#xff1b;1&#xff1a;专家&#xff1…

Introduction to Snapdragon Profiler (Snapdragon 分析器)

Introduction to Snapdragon Profiler {Snapdragon 分析器} 1. Snapdragon Profiler2. Release Notes3. Tools and resourcesReferences Snapdragon Profiler (骁龙分析器) https://www.qualcomm.com/developer/software/snapdragon-profiler Snapdragon Profiler Documentati…

HAProxy基本配置及参数实操

目录 ​编辑什么是负载均衡 为什么用负载均衡 四层和七层的区别 实验环境 实验步骤 webserver上安装nginx 启动nginx 安装haproxy 编辑配置文件 多进程 多线程 SORRY SERVER 访问重定向 maxconne最大可承受连接 socat 工具 常用示例 ha p r ox y 的 算 法 静 …

思科静态路由配置1

#路由协议实现# #任务一静态路由配置1# #1配置Switch-A的名称及其接口IP地址 Switch>enable Switch(config)#hostname Switch-A Switch-A(config)#ip routing Switch-A(config)#int f0/1 Switch-A(config-if)#no switchport Switch-A(config-if)#ip add 192.168.10…

leetcode日记(72)最大矩形

依旧是看了答案才知道大概方法…太难想到了 和上一道题思路相似&#xff01;可以直接调用上题的函数&#xff0c;只不过调用前的准备非常难想到&#xff0c;就是建造形状相同的矩阵&#xff0c;第i行j列的元素是i行中j列前相邻的“1”的个数。 class Solution { public:int m…

RS®ZN-Z8x 开关矩阵

R&SZN-Z8x 开关矩阵 专为多端口矢量网络分析仪测量而设计 R&SZN-Z8x 开关矩阵经过优化设计&#xff0c;专门用于罗德与施瓦茨的矢量网络分析仪。这款经济高效的多方位解决方案可用于多端口设备或多个设备的简单和复杂的测量任务。开关矩阵支持宽频率范围&#xff0…

北斗科技助力运动健身:开启智能健身新篇章

近年来&#xff0c;随着科技的迅猛发展&#xff0c;智能化设备已逐渐渗透到健身领域&#xff0c;为运动健身爱好者带来了无尽的利好。作为中国自主研发的全球卫星导航系统&#xff0c;北斗定位技术凭借其高精度和可靠性&#xff0c;正在成为运动健身领域的新宠。本文将深入探讨…

Git相关教程

版本控制 学习目标 理解版本控制的必要性了解常用的版本控制方式熟悉 Git 的使用方法 什么是版本控制 可以把一个版本控制系统理解为一个“数据库”&#xff0c;在需要的时候&#xff0c;它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照&#xff08;称之为…

Vue3 el-table里input设置为必填

Vue3 el-table里input设置为必填 Vue3 el-table里input设置为必填页面效果实现代码 Vue3 el-table里input设置为必填 页面效果 实现代码 <template><el-form :model"tableData" ref"formRef"><el-table :data"tableData" style…

MPU6050详细介绍

一、MPU6050介绍 MPU6050是由三个陀螺仪和三个加速度传感器组成的6轴运动处理组件 内部主要结构&#xff1a;陀螺仪、加速度计、数字运动处理器DMP&#xff08;Digital Motion Processor&#xff09; MPU6050有两个IIC接口&#xff0c;第一IIC接口可作为主接口给单片机传输数…

对信/ 对信开源系统+后台+PC+H5 (多圈)

系统商标名称&#xff1a;对信 核心&#xff1a;PHP8.0 CodeIgniter4框架 后台管理&#xff1a;PHP&#xff0c;html&#xff0c;jquery&#xff0c;迅锐&#xff0c;css3 PAI接口&#xff1a;php生成json格式 电脑PC端&#xff1a;html&#xff0c;jquery&#xff0c;css…

数据结构 之 常见的树

文章目录 树的概念术语&#xff08;以二叉树举例&#xff09; 二叉树遍历满二叉树完全二叉树二叉搜索树&#xff08;有序二叉树&#xff09; 哈夫曼树术语补充WPL的比较&#xff08;直接上图&#xff09;哈夫曼树的构建过程哈夫曼编码 非平衡树 & 平衡树(avl树)非平衡树转平…

无人机之飞行过程天气影响篇

在无人机飞行中&#xff0c;风速、雨雪等天气条件是飞手必须考虑的重要因素。这些天气条件不仅会影响飞行的稳定性&#xff0c;还可能带来安全隐患。以下是风速及雨雪对无人机飞行的影响&#xff0c;以及飞行中的注意事项&#xff1a; 一、风速对无人机飞行的影响 风力较大时&…

写歌准备:设计歌曲的段落结构的方法,记录和分享一些想法与感悟

我们都知道歌曲的三大元素&#xff1a;旋律、和声、节奏。但若要正式完成一首完整的作品&#xff0c;还要加上有计划的编曲。就像画画一样&#xff0c;除了有创造主题&#xff0c;还要懂得构图。 编曲其中一个重要步骤就是规划歌曲的「段落」。职业编曲/作曲人甚至会基于商业考…

基于NXP IMX8M + FPGA体外诊断POCT设备

体外诊断POCT设备 随着人口老龄化和对健康的重视程度不断提高&#xff0c;POCT&#xff08;即时检验&#xff09;作为IVD&#xff08;体外诊断&#xff09;的细分领域&#xff0c;市场规模持续增加。POCT&#xff08;point-of-care testing&#xff09;即时检验&#xff0c;指…