丹摩征文活动 | 智谱清影 CogVideoX-2b:高效部署与实战应用全攻略
简介
DAMODEL(丹摩智算)是一款专为满足高性能计算需求而设计的云端解决方案,致力于提供丰富的算力资源与基础设施,助力AI应用的开发、训练、部署。
平台优势
AI开发平台优势概述
一、超友好体验
我们深知AI开发的复杂性,因此特别注重用户体验的友好性。平台配备了顶级的124GB高速大内存与100GB宽敞系统盘,确保用户能够享受到极致的便捷。一键部署功能让AI开发环境的启动变得异常简单,只需三秒,您就能迅速进入开发状态。这一创新设计极大地降低了AI项目搭建的门槛,使得即便是初学者也能轻松上手,迈入智能科技的新纪元。
二、丰富的算力资源
为了满足用户在不同场景下的算力需求,我们提供了多样化的算力资源。无论是CPU/GPU算力集群、CPU/GPU裸金属服务,还是高性能存储,我们都一应俱全。从入门级到专业级GPU的全覆盖,确保了无论是初级开发者还是高阶应用者,都能在我们的平台上找到最适合自己的资源配置。这种灵活多样的算力选择,让用户的开发过程更加高效、顺畅。
三、高性能计算服务
在高性能计算方面,我们采用了最新一代的NVIDIA GPU,支持大规模并行计算,从而大幅提升了AI模型的训练速度。同时,我们在计算节点之间以及计算节点与存储节点之间均采用了IB网络,这种高性能的网络连接确保了数据传输的迅速和稳定,避免了网络及存储性能瓶颈的出现。此外,我们还自建了IDC,并配备了全新的GPU,确保每一位开发者都能体验到顶级的计算性能和专属服务。这种大平台的实力和信誉,让您在开发过程中更加安心、放心。
四、多样化的开发环境
我们深知开发者对于工具和框架的多样性需求,因此特别支持TensorFlow、PyTorch、Caffe等主流工具和框架。这些工具和框架能够帮助用户构建和训练各种类型的人工智能模型,如图像识别、语音识别、自然语言处理等。同时,我们也提供了一键部署、三秒启动的便捷服务,让AI开发变得更加简单高效。这种多样化的开发环境选择,让您的开发过程更加灵活、自由。
五、高性价比
我们深知用户在选择AI开发平台时对于价格的关注。因此,我们特别提供了超低价格的优质算力服务,并设置了丰富的优惠活动。注册即送优惠券,还有各类社区优惠活动等待您的参与。这些优惠活动旨在降低用户的成本,让您在享受高质量服务的同时,也能获得更多的实惠。
综上所述,我们的AI开发平台在超友好体验、丰富的算力资源、高性能计算服务、多样化的开发环境以及高性价比等方面均表现出色。我们致力于为用户提供最优质的AI开发服务,助力您在智能科技的道路上不断前行。
Llama3.1-部署与使用
大模型(LLM)概述及其在开源领域的发展
大模型(Large Language Model,简称LLM)在自然语言处理(NLP)领域扮演着至关重要的角色。从狭义上看,LLM是基于深度学习算法进行训练的自然语言处理模型,主要应用于自然语言的理解和生成。这些模型能够理解和生成接近人类水平的文本,极大地推动了人工智能在对话系统、文本生成、语言翻译等方面的应用。
然而,LLM的定义并不仅限于此。在广义上,LLM还涵盖了机器视觉(CV)大模型、多模态大模型和科学计算大模型等。这些模型将自然语言处理与其他领域的先进技术相结合,进一步拓展了人工智能的应用场景。例如,机器视觉大模型能够处理和理解图像和视频信息,而多模态大模型则能够同时处理文本、图像、音频等多种类型的数据。
当前,开源LLM正成为推动人工智能发展的重要力量。国内外已经涌现了众多优秀的开源LLM,如国外的LLaMA、Alpaca,以及国内的ChatGLM、BaiChuan、InternLM(书生·浦语)等。这些开源LLM不仅为用户提供了丰富的模型资源,还支持本地部署和私域微调,使得每一个人都可以在开源LLM的基础上打造专属于自己的独特大模型。
开源LLM的出现,极大地降低了大模型的研发和部署门槛。用户可以根据自己的需求,选择合适的开源LLM进行本地部署和微调,从而构建出更加符合自己应用场景的模型。这种灵活性和可定制性,使得开源LLM在学术界和工业界都受到了广泛的关注和应用。
随着“百模大战”的愈演愈烈,开源LLM的发展也呈现出蓬勃的态势。未来,我们可以期待更多优秀的开源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。
部署流程
创建实例
进入控制台-GPU云实例,点击创建实例:
进入创建页面后,首先在实例配置中选择付费类型,一般短期需求可以选择按量付费或者包日,长期需求可以选择包月套餐;
其次选择GPU数量和需求的GPU型号,首次创建实例推荐选择:
按量付费–GPU数量1–NVIDIA-GeForc-RTX-4090,该配置为60GB内存,24GB的显存(本次测试的LLaMA3.1 8B 版本至少需要GPU显存16G)
接下来配置数据硬盘的大小,每个实例默认附带了50GB的数据硬盘,首次创建可以就选择默认大小50GB
值得注意的是:
如果您通过官方预制方式下载模型,建议扩容至60GB
继续选择安装的镜像,平台提供了一些基础镜像供快速启动,镜像中安装了对应的基础环境和框架,可通过勾选来筛选框架,这里筛选PyTorch,选择PyTorch 2.4.0。
为保证安全登录,创建密钥对,输入自定义的名称,然后选择自动创建并将创建好的私钥保存的自己电脑中并将后缀改为.pem,以便后续本地连接使用。
创建好密钥对后,选择刚刚创建好的密钥对,并点击立即创建,等待一段时间后即可启动成功!
登录实例
等待实例创建成功,在 GPU云实例 中查看实例信息:
有多种方法登录:
JupyterLab
平台提供了在线访问实例的 JupyterLab 入口,可以直接登录实例.
JupyterLab 界面:
登录后一般会在 /root/workspace 目录下,服务器各个路径具体意义如下:
- /:系统盘,替换镜像,重置系统时系统盘数据都会重置。
- /root/workspace:数据盘,支持扩容,保存镜像时此处数据不会重置。
- /root/shared-storage:共享文件存储,可跨实例存储。
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登录与密钥对。
部署LLama3.1
我们使用 conda 管理环境,DAMODEL示例已经默认安装了 conda 24.5.0 ,直接创建环境即可:
conda create -n llama3 python=3.12
环境创建好后,使用如下命令切换到新创建的环境:
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
使用教程
模型下载好后,准备加载模型及启动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/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 0.0.0.0 --server.port 1024
注意:
需注意服务地址务必指定位0.0.0.0,否则无法通过浏览器访问
接下来我们需要通过丹摩平台提供的端口映射能力,把内网端口映射到公网;
-
进入GPU 云实例页面,点击操作-更多-访问控制
-
点击添加端口,添加streamlit服务对应端口
添加成功后,通过访问链接即即可打开LLaMA3.1 Chatbot交互界面,并与其对话:
原文地址:https://blog.csdn.net/2301_77509762/article/details/143822482
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!