(笔记)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第2关---8G 显存玩转书生大模型 Demo

news2024/10/5 13:03:38

学员闯关手册:https://aicarrier.feishu.cn/wiki/ZcgkwqteZi9s4ZkYr0Gcayg1n1g?open_in_browser=true
课程视频:https://www.bilibili.com/video/BV18x4y147SU/
课程文档:
https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Demo/readme.md(详细文档)
https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Demo/easy_readme.md
关卡作业:https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Demo/task.md
开发机平台:https://studio.intern-ai.org.cn/
开发机平台介绍:https://aicarrier.feishu.cn/wiki/GQ1Qwxb3UiQuewk8BVLcuyiEnHe

(截图显示在(作业)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第2关—8G 显存玩转书生大模型 Demo)
在这里插入图片描述

使用 Cli Demo 完成 InternLM2-Chat-1.8B 模型的部署

创建开发机,cuda12.2-conda

开发机vscode终端

Cli Demo 部署

#1、配置环境
# 创建环境
conda create -n demo python=3.10 -y
# 激活环境
conda activate demo
# 安装 torch
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y
# 安装其他依赖
pip install transformers==4.38
pip install sentencepiece==0.1.99
pip install einops==0.8.0
pip install protobuf==5.27.2
pip install accelerate==0.33.0
pip install streamlit==1.37.0

2、创建文件夹和文件
mkdir -p /root/demo
touch /root/demo/cli_demo.py
#3、cli_demo.py
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM


model_name_or_path = "/root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()

system_prompt = """You are an AI assistant whose name is InternLM (书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless.
- InternLM (书生·浦语) can understand and communicate fluently in the language chosen by the user such as English and 中文.
"""

messages = [(system_prompt, '')]

print("=============Welcome to InternLM chatbot, type 'exit' to exit.=============")

while True:
    input_text = input("\nUser  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break

    length = 0
    for response, _ in model.stream_chat(tokenizer, input_text, messages):
        if response is not None:
            print(response[length:], flush=True, end="")
            length = len(response)
#4、启动demo
python /root/demo/cli_demo.py

Streamlit Web Demo 部署

开发机vscode终端

1、克隆代码
cd /root/demo
git clone https://github.com/InternLM/Tutorial.git

2、启动一个 Streamlit 服务
cd /root/demo
streamlit run /root/demo/Tutorial/tools/streamlit_demo.py --server.address 127.0.0.1 --server.port 6006

本地电脑PowerShell

#3、将端口映射到本地

ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 你的 ssh 端口号

#4、浏览器访问 http://localhost:6006 来启动我们的 Demo

使用 LMDeploy 完成 InternLM-XComposer2-VL-1.8B 的部署

开发机vscode终端

#1、激活环境并安装依赖项
conda activate demo
pip install lmdeploy[all]==0.5.1
pip install timm==1.0.7

#2、启动服务
lmdeploy serve gradio /share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-1_8b --cache-max-entry-count 0.1

#3、已经映射过端口

#4、浏览器访问 http://localhost:6006 来启动我们的 Demo

使用 LMDeploy 完成 InternVL2-2B 的部署

开发机vscode终端

conda activate demo
lmdeploy serve gradio /share/new_models/OpenGVLab/InternVL2-2B --cache-max-entry-count 0.1

#3、已经映射过端口

#4、浏览器访问 http://localhost:6006 来启动我们的 Demo

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

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

相关文章

数据结构与算法——Java实现 29.优先级队列

事缓则圆,人缓则安 —— 24.10.5 一、优先级队列 优先级队列 一端进,另一端出 按优先级出队 普通队列 一端进,另一端出 先进先出FIFO 二、无序数组实现 Type parameters…

IIOT工业物联网的标准与互操作性—SunIOT

【大家好,我是唐Sun,唐Sun的唐,唐Sun的Sun。一站式数智工厂解决方案服务商】 工业物联网(IIoT)正以惊人的速度重塑着工业领域的生产方式、运营模式和价值创造。然而,要实现工业物联网的广泛应用和充分发挥…

qt cmake自定义资源目录,手动加载资源(图片, qss文件)

1. 目录创建 因为使用非qtcreator或者自定义工程结构就没法自动加载图标,所以需要手动加载,这里使用vscode和自定义工程结构 vscode qt 环境搭建: https://blog.csdn.net/qq_51355375/article/details/140733495 qt 自定义工程结构参考(因使…

js chrome devtools 调试技巧

笔记 这一篇, 需要慢慢补充。 1. console 控制台 $0, 查看当前选中的元素getEventListener($0) 当前元素,包含的监听事件 老哥留步,支持一下。

高级I/O

目录 一、I/O概念 1.1、OS 如何得知外设中有数据可读取? 1.2、OS 如何处理从网卡中读取到的数据包? 二、五种I/O模型 2.1、阻塞I/O 2.2、非阻塞I/O 2.3、信号驱动 IO 2.4、IO 多路转接 2.5、异步 IO 三、高级I/O 3.1、同步通信 VS 异步通信 …

YOLO11改进|卷积篇|引入全维动态卷积ODConv

目录 一、【ODConv】全维动态卷积1.1【ODConv】卷积介绍1.2【ODConv】核心代码 二、添加【ODConv】卷积2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【ODConv】全维动态卷积 1.1【ODConv】卷积介绍 ODConv利用一种全新的多维注意力机…

12.1 Linux_进程间通信_管道

概述 什么是无名管道: 无名管道就是在内核中开辟了一块内存,进程1和进程2都可以访问这一块空间,从而实现通信。 当无名管道被创建时,父进程fd[0]指向管道的读端,fd[1]指向管道的写端。fork创建子进程后,…

4.人员管理模块(开始预备工作)——帝可得管理系统

目录 前言一、需求分析1.页面原型2.创建SQL 二、使用若依框架生成前后端代码1.添加目录菜单2.添加数据字典3.配置代码生成信息4.下载代码并导入项目5.快速导入方法 三、 总结 前言 提示:本篇讲解人员管理模块的开发的预备工作,包括需求分析、生成代码、…

点亮一个LED以及按键控制

目录 前言 LED 1.LED介绍 2.LED原理图 3.如何实现发光 按键 1.按键原理图 2.按键原理 按键控制LED 1.代码实现 2.软件消除抖动 软件消除抖动的原因 软件消抖如何实现 总结 前言 我们上节完成了开发环境的安装,本节我们就来实现我们的第一个程序吧(没安…

STM32的集成电路总线I2C

一、I2C简介 1.I2C总线特点 (1)两线制 I2C只需要SDA、SCL两根线来完成数据的传输和外围器件的扩展,器件地址采用软件寻址方式。 (2)多主机总线 I2C是一个真正的多主机总线,如果2个或多个主机同时初始化数据…

Day01-MySQL数据库介绍及部署

Day01-MySQL数据库介绍及部署 1、数据库服务概述介绍1.1 企业中为什么需要数据库?1.2 数据库服务作用1.3 数据库服务分类 2、数据库服务安装部署2.1 数据库版本应用2.2 数据库服务程序下载2.3 数据库软件安装方式2.3.1 二进制安装步骤 3、数据库服务初始化介绍3.1 安…

《15分钟轻松学 Python》教程目录

为什么要写这个教程呢,主要是因为即使是AI技术突起的时代,想要用好AI做开发,那肯定离不开Python,就算最轻量级的智能体都有代码块要写,所以不一定要掌握完完整整的Python,只要掌握基础就能应对大部分场景。…

react-问卷星项目(6)

实战 React常用UI组件库 Ant Design国内最常用组件库,稳定,强大Material UI国外流行TailWind UI 国外流行,收费 Ant Design 官网地址 这一章基本内容就是使用UI重构页面,也没有什么知识点,直接上代码 下载 npm ins…

git diff 查看到一行变动,但是目测无差异怎么办?

1. 目测无变化 直接用 git diff main.js 提示有一行变动,但是目测看不出来差异。 结果如图:up panel. 2. 大概是空格的问题,使用参数 --ws-error-highlightall $ git diff --ws-error-highlightall main.js结果如图: down panel.

【LeetCode: 19. 删除链表的倒数第 N 个结点 | 链表 + 快慢指针】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

大学生就业桥梁:基于Spring Boot的招聘系统

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

【操作系统】引导(Boot)电脑的奇妙开机过程

🌹😊🌹博客主页:【Hello_shuoCSDN博客】 ✨操作系统详见 【操作系统专项】 ✨C语言知识详见:【C语言专项】 目录 什么是操作系统的引导? 操作系统的引导(开机过程) Windows操作系…

JavaScript-下篇

上篇我们学习了,一些基础语法和函数,现在我们学习下篇,主要包括,对象和事件。而对象又包括,数组Arrays,String字符串,BOM,DOM等 JS对象 Arrays数组 数组是一种特殊的对象,用于存储…

【多线程】多线程(8):单例模式:阻塞队列

【阻塞队列】 阻塞队列是在普通的“先进先出”队列的基础上,做出了扩充,可以组成「生产者消费者模型」 1.线程安全性 标准库是原有的队列Queue和其子类,默认都是“线程不安全的”,而阻塞队列是“线程安全的” 2.具有阻塞特性 …

【pytorch】张量求导3

再接上文,补一下作者未补完的矩阵运算的坑。 首先贴一下原作者的图,将其转化为如下代码: import torch import torch.nn as nn import torch.optim as optim# 定义一个简单的两层神经网络 class TwoLayerNet(nn.Module):def __init__(self):super(TwoLayerNet, self).__in…