[大模型]MiniCPM-2B-chat WebDemo部署

news2024/11/24 2:13:31

MiniCPM-2B-chat WebDemo部署

MiniCPM-2B-chat 介绍

MiniCPM 是面壁智能与清华大学自然语言处理实验室共同开源的系列端侧大模型,主体语言模型 MiniCPM-2B 仅有 24亿(2.4B)的非词嵌入参数量。

经过 SFT 后,MiniCPM 在公开综合性评测集上,MiniCPM 与 Mistral-7B相近(中文、数学、代码能力更优),整体性能超越 Llama2-13B、MPT-30B、Falcon-40B 等模型。
经过 DPO 后,MiniCPM 在当前最接近用户体感的评测集 MTBench上,MiniCPM-2B 也超越了 Llama2-70B-Chat、Vicuna-33B、Mistral-7B-Instruct-v0.1、Zephyr-7B-alpha 等众多代表性开源大模型。
以 MiniCPM-2B 为基础构建端侧多模态大模型 MiniCPM-V,整体性能在同规模模型中实现最佳,超越基于 Phi-2 构建的现有多模态大模型,在部分评测集上达到与 9.6B Qwen-VL-Chat 相当甚至更好的性能。
经过 Int4 量化后,MiniCPM 可在手机上进行部署推理,流式输出速度略高于人类说话速度。MiniCPM-V 也直接跑通了多模态大模型在手机上的部署。
一张1080/2080可高效参数微调,一张3090/4090可全参数微调,一台机器可持续训练 MiniCPM,二次开发成本较低。

环境准备

在autodl平台中租一个单卡3090等24G显存的显卡机器,如下图所示镜像选择PyTorch–>2.1.0–>3.10(ubuntu22.04)–>12.1
接下来打开刚刚租用服务器的JupyterLab, 图像 并且打开其中的终端开始环境配置、模型下载和运行演示。
在这里插入图片描述

接下来打开刚刚租用服务器的JupyterLab,并且打开其中的终端开始环境配置、模型下载和运行demo
首先clone代码,打开autodl平台自带的学术镜像加速。学术镜像加速详细使用请看:https://www.autodl.com/docs/network_turbo/

直接在终端执行以下代码即可完成学术镜像加速、代码clone及pip换源和安装依赖包

# 因为涉及到访问github因此最好打开autodl的学术镜像加速
source /etc/network_turbo
# 升级pip
python -m pip install --upgrade pip
# 更换 pypi 源加速库的安装
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install modelscope transformers sentencepiece accelerate gradio

MAX_JOBS=8 pip install flash-attn --no-build-isolation

# clone项目代码
git clone https://github.com/OpenBMB/MiniCPM.git
# 切换到项目路径
cd MiniCPM

注意:flash-attn 安装会比较慢,大概需要十几分钟。

模型下载

使用 modelscope 中的snapshot_download函数下载模型,第一个参数为模型名称,参数cache_dir为模型的下载路径。

/root/autodl-tmp 路径下新建 download.py 文件并在其中输入以下内容,粘贴代码后记得保存文件,如下图所示。并运行 python /root/autodl-tmp/download.py执行下载,模型大小为 10 GB,下载模型大概需要 5~10 分钟

import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os
model_dir = snapshot_download('OpenBMB/MiniCPM-2B-sft-fp32', cache_dir='/root/autodl-tmp', revision='master')

Web Demo运行

进入代码目录,运行demo启动脚本,在–model_name_or_path 参数后填写下载的模型目录

# 启动Demo,model_path参数填写刚刚下载的模型目录
python demo/hf_based_demo.py --model_path "/root/autodl-tmp/OpenBMB/MiniCPM-2B-sft-fp32"

启动成功后终端显示如下:
在这里插入图片描述

设置代理访问

在Autodl容器实例页面找到自定义服务,下载对应的代理工具
在这里插入图片描述

在这里插入图片描述

启动代理工具,拷贝对应的ssh指令及密码,设置代理端口为7860,点击开始代理
在这里插入图片描述

代理成功后点击下方链接即可访问web-demo
在这里插入图片描述

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

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

相关文章

开发与产品的战争之自动播放视频

开发与产品的战争之自动播放视频 起因 产品提了个需求,对于网站上的宣传视频,进入页面就自动播放。但是基于我对chromium内核的一些浅薄了解,我当时就给拒绝了: “浏览器不允许”。(后续我们浏览器默认都是chromium内核的&#…

C盘越用越大?教你如何科学管理C盘空间

前言: 如图,左边是我多开的E5电脑,装的是LTSC2019_210707F多开封装版,C盘占用8.5GB,右边是我平常打游戏写代码的电脑,装的是Win11 22H2,C盘占用30GB。两台电脑都关闭了休眠,C盘的虚拟…

【鸿蒙开发】画布组件 Canvas

1. Canvas 提供画布组件,用于自定义绘制图形。 接口: Canvas(context?: CanvasRenderingContext2D) 参数: 参数名 参数类型 必填 默认值 参数描述 context CanvasRenderingContext2D 否 - 不支持多个Canvas共用一个CanvasRende…

GPT国内怎么用

2022年11月,OpenAI发布了ChatGPT,这标志着大型语言模型在自然语言处理领域迈出了巨大的一步。ChatGPT不仅在生成文本方面表现出了惊人的流畅度和连贯性,更为人工智能应用开启了全新的可能性。 ChatGPT的推出促进了人工智能技术在多个领域的广…

查看apk是64位32位(三种方法)

通过检查APK文件,你可以确定该APK支持的架构类型,包括它是为64位(例如arm64-v8a、x86_64)还是32位(例如armeabi-v7a、x86)架构准备的。Android应用程序可以包含多个不同的二进制文件,每个文件针…

数组和指针的联系(C语言)

数组和指针是两种不同的数据类型,数组是一种构造类型,用于存储一组相同类型的变量;而指针是一种特殊类型,专门用来存放数据的地址。数组名除了sizeof(数组名)和&数组名表示整个数组外,其他情况下都表示的是首元素的…

说说你对图的理解?相关操作有哪些?

一、是什么 在计算机科学中,图是一种抽象的数据类型,在图中的数据元素通常称为结点,V是所有顶点的集合,E是所有边的集合 如果两个顶点v,w,只能由v向w,而不能由w向v,那么我们就把这种情况叫做一…

Leetcode - 周赛393

目录 一,3114. 替换字符可以得到的最晚时间 二,3115. 素数的最大距离 三,3116. 单面值组合的第 K 小金额 四, 3117. 划分数组得到最小的值之和 一,3114. 替换字符可以得到的最晚时间 本题是一道模拟题,…

有效的括号 + 点击消除 || 匹配问题

目录 点击消除: 有效的括号: 点击消除: 点击消除_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5?tpId308&tqId40462&ru/exam/oj 如题目所述, 示例1&#xf…

顺丰同城急送API对接(附源码)

一、背景 最近公司让我对接顺丰同城急送的API,讲讲里面需要注意的几点 官方的API文档有些示例代码也不全,具体细节不多说,如果你现在也需要对接他们API,可以参考本篇博客再配合官方文档结合起来看,可以让您再开发的时…

C++面向对象程序设计-北京大学-郭炜【课程笔记(七)】

C面向对象程序设计-北京大学-郭炜【课程笔记(七)】 1、类型转换运算符2、自增、自减运算符的重载3、继承和派生的基本概念3.1、基本概念3.2、派生类对象的内存空间 4、继承关系和复合关系4.1、继承关系的使用4.2、复合关系的使用 5、派生类覆盖基类成员6…

【分治】Leetcode 数组中的第K个最大元素

题目讲解 数组中的第K个最大元素 算法讲解 堆排序:1. 寻找最后一个节点的父亲,依次向上遍历,完成小堆的建立;2. 从最后一个元素开始,和堆顶的数据做交换,此时最小的数据在对后面,然后对剩下的…

C++设计模式|创建型 4.建造者模式

1.什么是建造者模式? 建造者模式(也被成为生成器模式),是一种创建型设计模式,软件开发过程中有的时候需要创建很复杂的对象,而建造者模式的主要思想是将对象的构建过程分为多个步骤,并为每个步骤定义一个…

OpenHarmony图形处理库—pyclipper [GN编译]

简介 pyclipper是图形处理库,用于剪裁和偏移直线和多边形。 下载安装 直接在OpenHarmony-SIG仓中搜索pyclipper并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的pyclipper库代码存在以下路径:./third_party/pyclipper 修改添加依…

Java 算法篇-深入了解 BF 与 KMP 算法

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 BF 算法概述 1.1 BF 算法实际使用 2.0 KMP 算法概述 2.1 KMP 算法实际使用 2.2 相比于 BF 算法实现,KMP 算法的重要思想 2.3 为什么要这样设计&#x…

ATFX汇市:日元贬值导致进口物价走高,日央行或有二次加息计划

消息面&数据面: 日本央行行长植田和男表示,弱势日元可能影响通胀趋势,如果这样可能导致政策转变。意思是说,随着日元汇率逼近160.00,日元贬值对进口物价的影响越来越明显。如果日元继续保持贬值态势,日…

【Java】文件大小转换工具类(B,KB,MB,G,TB,PB)

说明 使用方法:FileMemoryUtil.prettyByteSize(35871),参数为字节个数 返回结果:保留一位小数的自适应结果(例如:4.1KB)。可以留意在浏览器上下载的文件,会根据文件大小展示不同的单位&#xff…

腾讯面试准备-2024.3.25

腾讯面试准备-2024.3.25 腾讯面试准备-2024.3.25自我介绍C11/14/17新特性C11新特性C14新特性C17新特性 struct和class的区别进程状态现代的流媒体通信协议栈流媒体协议详解extern "C"程序从编译到执行的过程进程、线程、协程进程线程协程 如何实现一个信号与槽系统&a…

【强化学习的数学原理-赵世钰】课程笔记(十)Actor-Critic 方法

目录 一.最简单的 actor-critic(QAC):The simplest actor-critic (QAC) 二.Advantage actor-critic (A2C) 三.Off-policy actor-critic 方法 四. Deterministic actor critic(DPG) Actor-Critic 方法把基于 value 的方法,特别…

maven3.9的settings.xml 内容学习

settings.xml 文件介绍 settings.xml 是 Maven 的配置文件,它允许你自定义 Maven 的行为,比如设置仓库、代理、认证信息等。在 Maven 3.9 中,settings.xml 的结构和内容可能与之前的版本相似,但可能会有一些小的改进或变化。下面…