国家超算互联网平台:模型服务体验与本地部署推理实践

目录

  • 前言
  • 一、平台显卡选用
    • 1、显卡选择
    • 2、镜像选择
    • 3、实例列表
    • 4、登录服务器
  • 二、平台模型服务【Stable Diffusion WebUI】体验
    • 1、模型运行
    • 2、端口映射配置
    • 3、体验测试
  • 三、本地模型【Qwen1.5-7B-Chat】推理体验
    • 1、安装依赖
    • 2、加载模型
    • 3、定义提示消息
    • 4、获取model_inputs
    • 5、生成模型输出
    • 6、获取生成结果
  • 结语


前言

在当今快速发展的人工智能领域,高性能计算平台的重要性不言而喻。国家超算互联网平台作为其中的重要一环,不仅提供了强大的计算资源,还通过其丰富的模型服务和便捷的操作体验,吸引了众多技术爱好者和专业人士的关注。本文将深入探讨该平台的显卡选用、模型服务体验以及本地模型推理体验,带您全方位了解这一前沿技术平台。
在这里插入图片描述

一、平台显卡选用

在进行深度学习和大规模数据处理时,显卡的选择至关重要。国家超算互联网平台提供了多种显卡选项,以满足不同用户的需求。
地址:https://www.scnet.cn/ui/mall/search/goods?common1=RESOURCE&common2=RESOURCE-AI

1、显卡选择

由于1分钱的显卡被抢占完了,我们选择了“NVIDIA L20 显存48GB PCIE”,这款显卡以其强大的计算能力和充足的显存,能够轻松应对复杂的模型训练和数据处理任务。(由于显卡是按小时收费,非常方便,不用的时候关机即可)
在这里插入图片描述

2、镜像选择

在显卡选择完成后,用户可以根据自己的需求选择基础镜像或平台提供的免费模型镜像。本次体验中,我们选择了“jupyterlab-stable-diffusion-normal-webui”镜像,它为用户带来了便捷的模型部署和运行体验。
在这里插入图片描述

3、实例列表

选择完服务器和镜像后,选择完服务器和镜像后,用户将被引导至实例列表,这里可以查看和管理所有创建的实例。
在这里插入图片描述

4、登录服务器

通过点击服务列表中的“JupyterLab”,用户可以自动登录服务器,开始模型的部署和运行。
在这里插入图片描述

二、平台模型服务【Stable Diffusion WebUI】体验

登录服务器后,会自动打开run.ipynb文件;可进行Stable Diffusion WebUI 快速体验

1、模型运行

在JupyterLab中,用户可以直接执行以下代码来启动Stable Diffusion WebUI:

#启动
!python StableDiffusionWebui/launch.py --enable-insecure-extension-access --port 1115  --server-name '0.0.0.0'

代码执行如下:
在这里插入图片描述

执行后,本地访问地址为:http://0.0.0.0:1115,用户可以通过此地址访问和体验模型。

2、端口映射配置

通过实例列表中的“访问自定义服务”设置端口映射,填入端口1115,用户便可以访问模型的Web界面。
在这里插入图片描述
配置映射端口
在这里插入图片描述

3、体验测试

模型运行后UI界面访问如下:
在这里插入图片描述

1)平台提供的模型镜像,整个启动运行过程快、非常便捷,几分钟内就能体验模型效果
2)模型运行效果很快,基本上都在2秒左右就能生成结果
3)模型效果测试也还不错,除了画质不是很好,生成的结果和提示词预期基本相符

三、本地模型【Qwen1.5-7B-Chat】推理体验

国家超算互联网平台不仅提供了模型镜像服务,还支持本地模型的推理体验。用户可以直接使用平台公共区域已经下载好的模型;或者自行下载模型,进行本地推理;平台公共区域“/root/public_data/llm_model”提供有多个开源模型。
在这里插入图片描述

1、安装依赖

首先,用户需要安装必要的依赖库,如modelscope:

#安装modelscope
!pip install modelscope

2、加载模型

接下来,加载本地的语言模型和分词器:

# 导入所需的库和模块
from modelscope import AutoModelForCausalLM, AutoTokenizer
# 设置设备为GPU(如果有的话)
device = "cuda" # the device to load the model onto# 从预训练模型中加载大型语言模型
model = AutoModelForCausalLM.from_pretrained("/root/public_data/llm_model/Qwen1.5-7B-Chat",device_map="auto"
)# 从预训练模型中加载相应的分词器
tokenizer = AutoTokenizer.from_pretrained("/root/public_data/llm_model/Qwen1.5-7B-Chat")

需要注意的是,如果遇到模型加载报错如下,可能需要升级Transformer版本:

---------------------------------------------------------------------------KeyError                                  Traceback (most recent call last)
Cell In[5], line 4      1 from modelscope import AutoModelForCausalLM, AutoTokenizer      2 device = "cuda" # the device to load the model onto----> 4 model = AutoModelForCausalLM.from_pretrained(      5     "/root/public_data/llm_model/Qwen1.5-7B-Chat",      6     device_map="auto"      7 )      8 tokenizer = AutoTokenizer.from_pretrained("/root/public_data/llm_model/Qwen1.5-7B-Chat")File /opt/conda/lib/python3.10/site-packages/modelscope/utils/hf_util.py:113, in get_wrapped_class.<locals>.ClassWrapper.from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)    110 else:    111     model_dir = pretrained_model_name_or_path--> 113 module_obj = module_class.from_pretrained(model_dir, *model_args,    114                                           **kwargs)    116 if module_class.__name__.startswith('AutoModel'):    117     module_obj.model_dir = model_dirFile /opt/conda/lib/python3.10/site-packages/transformers/models/auto/auto_factory.py:456, in _BaseAutoModelClass.from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)    453 if kwargs.get("torch_dtype", None) == "auto":    454     _ = kwargs.pop("torch_dtype")--> 456 config, kwargs = AutoConfig.from_pretrained(    457     pretrained_model_name_or_path,    458     return_unused_kwargs=True,    459     trust_remote_code=trust_remote_code,    460     **hub_kwargs,    461     **kwargs,    462 )    464 # if torch_dtype=auto was passed here, ensure to pass it on    465 if kwargs_orig.get("torch_dtype", None) == "auto":File /opt/conda/lib/python3.10/site-packages/transformers/models/auto/configuration_auto.py:957, in AutoConfig.from_pretrained(cls, pretrained_model_name_or_path, **kwargs)    955     return config_class.from_pretrained(pretrained_model_name_or_path, **kwargs)    956 elif "model_type" in config_dict:--> 957     config_class = CONFIG_MAPPING[config_dict["model_type"]]    958     return config_class.from_dict(config_dict, **unused_kwargs)    959 else:    960     # Fallback: use pattern matching on the string.    961     # We go from longer names to shorter names to catch roberta before bert (for instance)File /opt/conda/lib/python3.10/site-packages/transformers/models/auto/configuration_auto.py:671, in _LazyConfigMapping.__getitem__(self, key)    669     return self._extra_content[key]    670 if key not in self._mapping:--> 671     raise KeyError(key)    672 value = self._mapping[key]    673 module_name = model_type_to_module_name(key)
KeyError: 'qwen2'

主要是Transformer版本过低,需要升级版本

!pip install -U transformers

重新加载模型,加载成功效果如下:

在这里插入图片描述

3、定义提示消息

定义一个简短的介绍大型语言模型的提示,并构建消息列表:

# 定义一个简短的介绍大型语言模型的提示
prompt = "Give me a short introduction to large language model."# 构建消息列表,包括系统角色和用户角色的内容
messages = [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": prompt}
]

4、获取model_inputs

使用分词器将消息列表转换为model_inputs:

# 使用分词器将消息列表转换为适合模型输入的格式
text = tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True
)# 将文本转换为模型输入张量并移动到指定设备上
model_inputs = tokenizer([text], return_tensors="pt").to(device)model_inputs

输出:
在这里插入图片描述

5、生成模型输出

根据模型输入的inputs生成模型输出的generated_ids

# 生成模型输出
generated_ids = model.generate(model_inputs.input_ids,max_new_tokens=512
)
# 提取生成的ID,去除输入部分
generated_ids = [output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]generated_ids

输出:
在这里插入图片描述

6、获取生成结果

对生成的generated_ids,进行解码获取响应结果

# 解码生成的ID为文本,并跳过特殊标记
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
# 打印生成的响应
print(response)

输出:

大语言模型(Large Language Model,LLM)是一种人工智能技术,它是一种能够理解和生成人类语言的复杂系统。这种模型通常基于深度学习,特别是基于Transformer架构的神经网络,通过大量的文本数据进行训练,学习语言的语法、词汇、句法和语义规律。在训练过程中,大语言模型会接收各种类型的文本输入,如书籍、新闻、网页、社交媒体帖子等,然后通过学习这些文本中的模式和上下文关系来理解语言结构。训练的目标是让模型能够生成连贯、准确、具有逻辑性的文本,无论是回答问题、创作故事、撰写代码还是进行对话等。大语言模型可以分为两类:预训练模型和任务特定模型。预训练模型是在大规模无标签文本上进行训练的通用模型,例如Google的通义千问、OpenAI的GPT-3等,这类模型通常具有较高的泛化能力和语言理解能力,可以适应多种下游任务。任务特定模型则是针对特定任务进行微调的,比如BERT(Bidirectional Encoder Representations from Transformers)和T5(Text-to-Text Transfer Transformer),它们在经过特定领域的数据训练后,可以更好地服务于某个特定领域的问题解答或文本生成。大语言模型的发展对于自然语言处理、人工智能、机器翻译等领域有着深远的影响,它正在逐步改变我们与计算机交互的方式,并且在不断推动技术进步。然而,也需要注意的是,虽然大语言模型在很多方面表现出色,但它并不完美,有时可能会出现偏见或误解,需要持续优化和完善。

结语

国家超算互联网平台以其高效计算能力和用户友好的操作体验,为人工智能领域的研究和应用提供了强有力的支持。通过本文的体验和技术解析,我们见证了该平台如何简化模型部署和推理过程,加速了从理论到实践的转变。随着技术的不断进步,该平台有望进一步推动科研创新和产业发展,为人工智能的未来探索提供更多可能性。同时,我们也期待平台能够持续优化,满足日益增长的计算需求,助力构建一个更加智能化的世界。

在这里插入图片描述

🎯🔖更多专栏系列文章:AI大模型提示工程完全指南AI大模型探索之路(零基础入门)AI大模型预训练微调进阶AI大模型开源精选实践AI大模型RAG应用探索实践🔥🔥🔥 其他专栏可以查看博客主页📑

😎 作者介绍:我是寻道AI小兵,资深程序老猿,从业10年+、互联网系统架构师,目前专注于AIGC的探索。
📖 技术交流:欢迎关注【小兵的AI视界】公众号或扫描下方👇二维码,加入技术交流群,开启编程探索之旅。
💘精心准备📚500本编程经典书籍、💎AI专业教程,以及高效AI工具。等你加入,与我们一同成长,共铸辉煌未来。
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!

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

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

相关文章

前端-如何通过docker打包Vue服务成镜像并在本地运行(本地可以通过http://localhost:8080/访问前端服务)

1、下载安装docker&#xff0c;最好在vs code里安装docker的插件。 下载链接&#xff1a;https://www.docker.com/products/docker-desktop &#x1f389; Docker 简介和安装 - Docker 快速入门 - 易文档 (easydoc.net) 2、准备配置文件-dockerfile文件和nginx.conf文件 do…

【Redis 初阶】Redis 常见数据类型(Set、Zset、渐进式遍历、数据库管理)

一、Set 集合 集合类型也是保存多个字符串类型的元素的&#xff08;可以使用 json 格式让 string 也能存储结构化数据&#xff09;&#xff0c;但和列表类型不同的是&#xff0c;集合中&#xff1a; 元素之间是无序的。&#xff08;此处的 “无序” 是和 list 的有序相对应的…

Camera Raw:五阶段修图流程

在使用 Camera Raw 修图时&#xff0c;如果按照一定的流程来进行&#xff0c;可以大大提高工作效率。这里提出的五阶段修图流程&#xff0c;简单来说就是&#xff1a; 1、调亮度&#xff0c;定影调 2、还原校正修复 3、局部调整优化 4、调颜色&#xff0c;定色调 5、存储、输出…

【C语言】qsort详解——能给万物排序的神奇函数

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html ⚙️操作环境:Visual Studio 2022 目录 一、引言 二、qsort函数介绍 1.函数原型 2.参数说明 2.1比较函数 3.使用示例 3.1对一维数组进…

【Canvas与艺术】五色五角大楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>五L莫比乌斯五角大楼</title><style type"text/css&qu…

芋道以开源之名行下作之事 恬不知耻 标榜自己开源 公开源码+sql 不用再加入知识星球

资源 链接: https://pan.baidu.com/s/1TeuxbAUfLQ5_BqMBF1kniQ?pwdcqud 提 取码: cqud 依次为后端、补充版的sql、前端 此文档内安装部署等一应俱全

科普文:深入理解ElasticSearch体系结构

概叙 Elasticsearch是什么&#xff1f; Elasticsearch&#xff08;简称ES&#xff09;是一个分布式、可扩展、实时的搜索与数据分析引擎。ES不仅仅只是全文搜索&#xff0c;还支持结构化搜索、数据分析、复杂的语言处理、地理位置和对象间关联关系等。 官网地址&#xff1a;…

MSA+抑郁症模型总结(一)(论文复现)

MSA抑郁症模型总结&#xff08;一&#xff09;&#xff08;论文复现&#xff09; 本文所涉及所有资源均在传知代码平台可获取 文章目录 MSA抑郁症模型总结&#xff08;一&#xff09;&#xff08;论文复现&#xff09;情感分析在多场景的应用一、概述二、论文地址三、研究背景四…

PyTorch 2.0中图像增强方法详解

【图书推荐】《PyTorch深度学习与计算机视觉实践》-CSDN博客 基于Vision Transformer的mini_ImageNet图片分类实战_imagenet数据集-CSDN博客 Vision Transformer模型是目前图形识别领域最为前沿的和性能最好的图形分类模型&#xff0c;它能够对目标图像做出准确度最高的判断。…

《动手做科研 》| 05. 如何开展和记录实验

地址链接:《动手做科研》05. 如何开展和记录实验 导读: 当我们开始训练多个具有不同超参数的模型&#xff0c;我们就需要对实验开始进行管理。我们将其分为三个部分&#xff1a;实验追踪、超参数搜索和配置设置。我们将使用 Weights & Biases 来演示实验记录和追踪&#xf…

支持AI的好用的编辑器aieditor

一、工具概述 AiEditor 是一个面向 AI 的下一代富文本编辑器&#xff0c;她基于 Web Component&#xff0c;因此支持 Layui、Vue、React、Angular 等几乎任何前端框架。她适配了 PC Web 端和手机端&#xff0c;并提供了 亮色 和 暗色 两个主题。除此之外&#xff0c;她还提供了…

【源码+文档+调试讲解】乡镇篮球队管理系统设计与实现

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本乡镇篮球队管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信…

基础篇| 全网最全详解12个大模型推理框架

01 什么是框架? 开始介绍之前, 我们先了解一下什么是框架?xx框架-IT人经常听到的名词。但是又有多少人知道框架的意思? 框架&#xff08;framework&#xff09;是一个框子:指其约束性&#xff0c;也是一个架子——指其支撑性。是一个基本概念上的结构&#xff0c;用于去解…

新作品,一个通用的 Cloudflare Workers HTTP 反向代理

本文介绍我最近写的新作品&#xff1a;使用 Cloudflare Workers/Pages 搭建 HTTP 反向代理&#xff0c;代码已经全部开源在 GitHub&#xff0c;按照 README 里面的脚本搭建就可以了&#xff0c;非常简单。 GitHub&#xff1a;https://github.com/jonssonyan/cf-workers-proxy …

数字图像处理 第三章 灰度变换和空间滤波(上)

文章目录 本章简介一、背景知识 P62 - P641.1 灰度变换和空间滤波基础 P62 - P63二、一些基本的灰度变换函数 P64 - P712.1 图像反转 P642.2 对数变换 P64 - P662.3 幂律(伽马变换 P66 - P682.4 分段线性变换函数 P68 - P71本章知识点总结本章简介 本章讨论在空间域中的图像增强…

【C/C++】关于 extern “C“ 的理解

详细解释 #ifdef __cplusplus extern "C" 在C中&#xff0c;#ifdef __cplusplus 和 extern "C" 是用于处理C和C混合编程中的名称修饰&#xff08;name mangling&#xff09;问题的预处理器指令和关键字。 #ifdef __cplusplus __cplusplus 是一个预处理器…

人工智能大模型发展带来的风险挑战和对策

经过近70年的发展&#xff0c;人工智能技术发展经历了三次起伏&#xff0c;2022年以来&#xff0c;以ChatGPT、Sora等为代表的预训练大模型持续取得突破&#xff0c;推动着人工智能技术从感知向认识&#xff0c;从分析判断式向生成式&#xff0c;从专用向通用进入快速发展的新阶…

PythonDjangoMysql外卖app系统32762-计算机毕业设计项目选题推荐(附源码)

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;餐饮外卖当然也不例外。 外卖app系统主要功能模块包括后台首页&#xff0c;轮播图&#xff0c;资源管理&#xff08;餐饮…

【CTFWP】ctfshow-web40

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 题目介绍&#xff1a;题目分析&#xff1a;payload&#xff1a;payload解释&#xff1a;payload2&#xff1a;payload2解释&#xff1a;flag 题目介绍&#xff1a; …

高等数学 第七讲 一元函数积分学的概念和性质_不定积分_定积分_变限积分_反常积分

1.不定积分 文章目录 1.不定积分1.1 原函数1.1.1 原函数与不定积分的定义1.1.2 原函数存在定理 2.定积分2.1 定积分的定义2.2 定积分的精确定义2.3 定积分的几何意义2.4 定积分的存在定理2.5 定积分的性质 3.变限积分3.1 变限积分的定理3.2 变限积分的性质 4.反常积分(待更新) …