丹摩征文活动|Llama3.1的部署与使用指南

在这里插入图片描述

📝个人主页🌹:Eternity._
🌹🌹期待您的关注 🌹🌹

在这里插入图片描述
在这里插入图片描述

❀ 丹摩征文

  • 1. 初识Llama3.1
  • 2. 部署流程
    • 创建实例
    • 登录实例
    • 部署LLama3.1
  • 3. 实践使用教程
  • 4. 实践感想

前言:人工智能(AI)技术正以前所未有的速度改变着我们的生活和工作方式。大型语言模型(LLM)作为AI领域的重要分支,以其卓越的自然语言处理能力、强大的知识推理能力和广泛的应用场景,成为了众多企业和开发者关注的焦点。而Llama3.1,作为这一领域的佼佼者,更是以其高效、智能和可扩展的特性,赢得了广泛的赞誉。

丹摩平台,作为AI技术应用的领先者,一直致力于为用户提供高效、稳定、安全的AI服务。在这个平台上,用户可以轻松部署各种先进的AI模型,并快速应用到实际场景中。今天,我们将一起探索在丹摩平台上部署与使用Llama3.1的奥秘,揭开其神秘的面纱,感受它带来的智能魅力。

1. 初识Llama3.1


Llama 3.1是由Meta公司推出的一款多功能、开源的AI模型系列,Llama 3.1于2024年7月由Meta公司正式发布。该模型的发布标志着开源AI模型在性能和能力上取得了重大突破,首次击败了闭源最强SOTA模型,为AI领域带来了新的活力和创新。

Llama 3.1 与其他模型对比:
在这里插入图片描述
模型规格与特点:

  • 参数规模:Llama 3.1系列包括80亿(8B)、700亿(70B)和4050亿(405B)参数版本,满足了不同场景和需求下的使用。
  • 多语言支持:原生支持8种语言,包括英语、法语、德语、印地语、意大利语、葡萄牙语、西班牙语和泰语,增强了模型的跨语言处理能力。
  • 上下文长度:最长上下文窗口达到128K,能够处理更复杂的对话和文本生成任务。
    模型架构:采用标准的仅解码器Transformer模型结构,并进行小幅改动以最大化训练稳定性。

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

测试环境ubuntu 22.04 python 3.12 cuda 12.1 pytorch 2.4.0

2. 部署流程


创建实例


进入控制台-GPU云实例,点击创建实例:
在这里插入图片描述

我们这里只是短期需求,可以选择按量付费,其次选择GPU数量和需求的GPU型号。

创建实例推荐选择:
按量付费–GPU数量1–NVIDIA-GeForc-RTX-4090,该配置为60GB内存,24GB的显存(本次测试的LLaMA3.1 8B 版本至少需要GPU显存16G),首次创建可以就选择默认大小50GB

在这里插入图片描述
数据盘我选择60G
在这里插入图片描述

在这里插入图片描述

注意: 如果您通过官方预制方式下载模型,建议扩容至60GB

继续选择安装的镜像,这里筛选PyTorch,选择PyTorch 2.4.0。

创建密钥,输入自定义的名称,然后选择自动创建并将创建好的私钥保存的自己电脑中并将后缀改为.pem,以便后续本地连接使用。
在这里插入图片描述

创建好密钥对后,选择刚刚创建好的密钥对,并点击立即创建,等待一段时间后即可启动成功!
在这里插入图片描述

登录实例


等待实例创建成功,就可以进行登录了,在 GPU云实例 中查看实例信息:

登陆方式一:JupyterLab

平台提供了在线访问实例的 JupyterLab 入口,可以直接登录实例:
在这里插入图片描述

JupyterLab 界面:
在这里插入图片描述

登录后一般会在 /root/workspace 目录下,

  • /root/workspace:数据盘,支持扩容,保存镜像时此处数据不会重置。

登陆方式二:SSH

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

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

在实例页面获取主机host和端口号:
在这里插入图片描述

ssh -p 端口号 root@主机host

部署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

3. 实践使用教程


在完成上述的工作后,我们可以新建 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():# 从预训练的模型中获取tokenizertokenizer = 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交互界面,并与其对话:
在这里插入图片描述

4. 实践感想


随着我在丹摩平台上对Llama3.1的深入部署与使用,这段充满挑战与收获的旅程已悄然接近尾声。从初次接触Llama3.1的震撼,到在丹摩平台上一步步实现其部署的喜悦,再到实际运用中对其强大功能的深刻体会,每一步都凝聚着我对AI技术的热爱与追求。

在丹摩平台的助力下,Llama3.1展现出了前所未有的智能魅力。它不仅在自然语言处理、代码生成等核心任务上表现出色,更在跨语言处理、长上下文理解等复杂场景中展现出了卓越的能力。

我相信,在丹摩平台这样的优秀平台上,Llama3.1等开源AI模型将发挥更大的作用,为更多领域带来智能化的变革。而我,也将作为这场变革的见证者和参与者,不断前行,迎接更加美好的明天。

在这里插入图片描述

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

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

相关文章

柔性鞋材振动刀智能视觉裁切机市场报告:未来几年年复合增长率CAGR为5.4%

震动刀切割设备是一种利用振动刀片在各种非金属材料表面上切割的设备,振动刀切割机利用刀片高频振动和360度旋转,能保证每分钟上万次的振动频率,可在平面进行垂直切割,锋利裁剪。震动刀切割设备切割速度快,可以单层切割…

全面盘点多模态融合算法及应用场景

一、引言 多模态融合的定义 多模态融合(Multimodal Fusion)是指结合来自不同模态(如视觉、听觉、文本等)的数据,以提升信息处理和理解能力的技术方法。多模态数据通常具有不同的物理性质和信息特征,通过融…

双十一当天有哪些数码好物值得购买,双十一爆款数码好物大盘点

在数字化时代,数码产品已成为我们生活中不可或缺的一部分。无论是提升工作效率的笔记本电脑,还是丰富娱乐生活的智能设备,或是健康监测的智能穿戴,每一款产品都在以不同的方式改善着我们的生活质量。 双十一,作为一年中…

.wslconfig:6 中的未知密钥 ‘boot.systemd‘ 问题解决

我的环境 wsl 2 centos 9 部分博客通过修改 windows上 .wslconfig, 添加如下配置 来启动 systemd [boot] systemdtrue完全误人子弟, 倘若如此配置, 启动 wsl 时会遇到如下错误: C:\Users\2024>wsl wsl: C:\Users\2024\.wslconfig:6 中的未知密钥 boot.systemd正确启用…

独家|京东上线自营秒送,拿出二十年底牌和美团竞争

京东自营秒送开启招商,即时零售也要全托管? 作者|王迟 编辑|杨舟 据「市象」独家获悉,京东将在近期上线自营秒送业务,目前已经开始邀约制招商。「市象」获得的招商资料显示,和5月刚升级上线的京东秒送以POP模式不同&…

使用微信云开发,实现链接激活微信小程序(微信内部和外部H5访问)

首先小程序项目开发,需得支持云开发如何开通云开发?(网上教程很多,也很全面,这里仅带过) 配置云函数在项目根目录找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本…

【ComfyUI +LaMa】图像修复(根据mask移除目标)——comfyui-lama-remover

相关资源下载:https://pan.baidu.com/s/18IL23I-NuXeQMp0W3F6kdA?pwd1111 comfyui-lama-remover (手动涂mask或者上传mask) https://github.com/Layer-norm/comfyui-lama-remover 原始项目链接 https://github.com/advimman/lama 方法1…

什么是 WPF 中的转换器?如何自定义一个值转换器?

WPF(Windows Presentation Foundation)中的“转换器”(Converter)是用来在绑定过程中,将源数据转换为目标数据格式的工具。它常常用于将数据模型中的值转换为视图需要的格式,或反向转换。转换器通常实现IVa…

网络安全之命令注入漏洞解析

漏洞简介 Atlassian Bitbucket Server 和 Data Center 是 Atlassian 推出的一款现代化代码协作平台,支持代码审查、分支权限管理、CICD 等功能。 受影响的Bitbucket Server 和 Data Center版本存在使用环境变量的命令注入漏洞,具有控制其用户名权限的攻…

关于我重生到21世纪学C语言这件事——函数详解

与诸君共进步!!! 文章目录 1. 函数是什么2. 库函数3. 自定义函数4. 函数参数5. 函数调用6. 函数的嵌套调用和链式访问7. 函数的声明和定义8. 函数递归8.1 什么是递归8.2 递归的限制条件8.3 递归的举例8.4 递归与迭代 1. 函数是什么 数学中我们…

想要监控办公电脑,好用的监控软件怎么选择

在现代办公环境中,监控办公电脑不仅能帮助企业确保员工的工作效率,还能够提高数据安全性,防止信息泄露。随着技术的不断发展,市面上涌现了各种监控软件,其中不乏功能强大、使用便捷的工具。今天,我们就来探…

2024-2025第九届华为ICT大赛中国创新赛问题解答

华为ICT大赛2024-2025中国赛区创新赛正火热报名中,吸引了众多高校学生积极报名参赛。创新赛主要考察参赛者对AI技术与其他ICT技术的综合应用和创新能力,参赛者需从行业场景或生活中的真实需求出发,运用华为人工智能技术,或人工智能…

网页设计平台:6个技术亮点

想要创建个人或商业网站来分享知识或推广商品吗?这篇文章将为你介绍6个免费的网页制作平台,帮助你即使没有编程基础也能快速、轻松地搭建出专业且引人注目的网站。让我们一起探索这些平台,发现它们的特色和优势。 即时设计 即时设计是一个云…

您知道康复科是干什么的吗?

康复医学对于医院是一个重要的朝阳科室,正不断向多元化方向发展,并深入临床各学科,成为现代医学不可或缺的一环。 目前,康复范围日益广泛,涵盖骨科康复、神经康复、疼痛康复、儿童康复、产后康复、心肺康复及老年康复等…

Docker 镜像和容器的导入导出及常用命令

Docker 镜像和容器的导入导出 1.1 镜像的导入导出 1.1.1 镜像的保存 通过镜像ID保存 方式一: docker save image_id > image-save.tar例如: rootUbuntu:/usr/local/docker/nginx# docker imagesREPOSITORY TAG IMAGE ID …

202409电子学会青少年机器人技术等级考试(四级)理论综合真题

青少年机器人技术等级考试理论综合试卷(四级) 分数:100 题数:30 一、单选题(共20题,共80分) 1. Arduino C程序如下,当变量score的值为100时,该段程序运行后,串口监视器输出结果是…

鸿蒙开发,arkts 如何读取普通文件

ArkTS提供了渲染控制的能力,包括条件渲染、循环渲染和数据懒加载等。这些渲染控制语句可以辅助UI的构建,提高应用的性能和用户体验。今天给大家分享arkts 如何读取普通文件知识,如果有所帮助,大家点点关注支持一下,也可…

显卡驱动版本过低怎么办?显卡驱动升级的方法

显卡驱动程序是计算机与显卡之间沟通的桥梁,它负责将操作系统发出的指令翻译成显卡可以理解的语言,从而确保图形显示的流畅与高效。当您遇到显卡驱动版本过低的问题时,升级驱动程序不仅能够提升电脑的图形处理能力,还能解决兼容性…

find 命令是 Linux 系统中用于在文件系统中查找文件和目录的强大工具

功能概述 find 命令用于在指定目录及其子目录下查找符合特定条件的文件和目录。这些条件可以基于文件名、文件类型、文件大小、文件权限、文件修改时间等多种属性来设定。 按文件名查找 -name:精确匹配文件名。 示例:在当前目录及其子目录中查找名为tes…

【专题】2024年数字贸易新图景:把握出海红利报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38218 近年来全球数字贸易规模持续攀升,其中亚太地区更是成为增长最为迅猛的区域之一。在这片充满机遇的数字贸易海洋中,电子商务、移动支付等领域呈现出一片繁荣景象,出海也成为众多企业谋求发展…