书生·浦语大模型InternLM-Chat-1.8B 智能对话 Demo 第二期

文章目录

  • InternLM-Chat-1.8B 智能对话 Demo
    • 环境准备
    • 下载模型
    • 运行 InternLM-Chat-1.8B
  • web 运行八戒 demo
    • 下载模型
    • 执行Demo

InternLM-Chat-1.8B 智能对话 Demo

环境准备

  • 在InternStudio平台中选择 10% A100(1/4) 的配置(平台资源有限),如下图所示镜像选择 Cuda11.7-conda,如下图所示:
    在这里插入图片描述

  • 打开刚刚租用服务器的进入开发机,进入开发机后,在页面的左上角可以切换 JupyterLab、终端和 VScode
    在这里插入图片描述

在这里插入图片描述

  • 配置开发环境
    • 创建python=3.10.13,pytorch=2.0.1虚拟环境

      studio-conda -o internlm-base -t demo
      # 与 studio-conda 等效的配置方案
      # conda create -n demo python==3.10 -y
      # conda activate demo
      # conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia# 或者直接克隆一个pytorch=2.0.1的环境
      # conda create --name demo --clone=/root/share/conda_envs/internlm-base
      
    • 激活internlm-demo环境

      conda activate demo
      
    • 安装demo需要的依赖包

      # 升级pip
      python -m pip install --upgrade pippip install huggingface-hub==0.17.3
      pip install transformers==4.34 
      pip install psutil==5.9.8
      pip install accelerate==0.24.1
      pip install streamlit==1.32.2 
      pip install matplotlib==3.8.3 
      pip install modelscope==1.9.5
      pip install sentencepiece==0.1.99
      

下载模型

  • 按路径创建文件夹,并进入到对应文件目录中:

    mkdir -p /root/demo  # 在root文件夹下创建demo文件夹
    touch /root/demo/cli_demo.py  # 在demo文件夹下创建cli_demo.py文件
    touch /root/demo/download_mini.py  # 在demo文件夹下创建download_mini.py文件
    cd /root/demo  # 进入到demo文件夹下
    
  • 通过左侧文件夹栏目,双击进入 demo 文件夹
    在这里插入图片描述

  • 双击打开 /root/demo/download_mini.py 文件,复制以下代码:

    import os
    from modelscope.hub.snapshot_download import snapshot_download# 创建保存模型目录
    os.system("mkdir /root/models")# save_dir是模型保存到本地的目录
    save_dir="/root/models"snapshot_download("Shanghai_AI_Laboratory/internlm2-chat-1_8b", cache_dir=save_dir, revision='v1.1.0')
  • 执行命令,下载模型参数文件:

    python /root/demo/download_mini.py
    

运行 InternLM-Chat-1.8B

  • 双击打开 /root/demo/cli_demo.py 文件,复制以下代码:

    import torch
    from transformers import AutoTokenizer, AutoModelForCausalLMmodel_name_or_path = "/root/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":breaklength = 0for response, _ in model.stream_chat(tokenizer, input_text, messages):if response is not None:print(response[length:], flush=True, end="")length = len(response)
  • 输入命令,执行 Demo 程序:

    conda activate demo
    python /root/demo/cli_demo.py
    
  • 运行效果
    在这里插入图片描述

web 运行八戒 demo

下载模型

  • 使用 git 命令来获得仓库内的 Demo 文件

    conda activate demo
    cd /root/
    git clone https://gitee.com/InternLM/Tutorial -b camp2
    # git clone https://github.com/InternLM/Tutorial -b camp2
    cd /root/Tutorial
    
  • 在Terminal中执行 bajie_download.py,下载模型

    python /root/Tutorial/helloworld/bajie_download.py
    

执行Demo

  • 端口映射到本地,在本地浏览器才可浏览

    • 在本地打开Power Shell终端,SSH公钥默认存储在 ~/.ssh/id_rsa.pub,可以通过系统自带的 cat 工具查看文件内容
      在这里插入图片描述

    • 将公钥复制到剪贴板中,然后回到 InternStudio 控制台,点击配置 SSH Key
      在这里插入图片描述

    • 将刚刚复制的公钥添加进入即可
      在这里插入图片描述

    • 在本地终端输入以下指令 .6006 是在服务器中打开的端口,而 33090 是根据开发机的端口进行更改

      ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 33854
      

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

      这样就映射成功了
      在这里插入图片描述

  • 在InternStudio终端运行以下代码:

    bash
    conda activate demo  # 首次进入 vscode 会默认是 base 环境,所以首先切换环境
    streamlit run /root/Tutorial/helloworld/bajie_chat.py --server.address 127.0.0.1 --server.port 6006
    
  • 测试结果
    在这里插入图片描述

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

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

相关文章

【c语言】自定义类型:联合体(公用体)【详解】

联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共用体。 给联合体其中⼀个成…

2024阿里云域名优惠口令免费领取,COM、CN和xin域名口令

2024年阿里云域名优惠口令,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,cn域名注册优惠口令“互联网上的中国标识”,阿里云优惠口令是域名专属的优惠码,可用于域名注册、续…

【QT入门】 自定义标题栏界面qss美化+按钮功能实现

往期回顾: 【QT入门】 鼠标按下和移动事件实现无边框窗口拖动-CSDN博客【QT入门】 设计实现无边框窗口拉伸的公用类-CSDN博客【QT入门】对无边框窗口自定义标题栏并实现拖动和拉伸效果-CSDN博客 【QT入门】 自定义标题栏界面qss美化按钮功能实现 一、最终效果 二、…

【JAVASE】学习类与对象的创建和实例化

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 目标: 1. 掌握类的定义方式以及对象的实例化 2. …

MVCC的实现原理

简介 MVCC(Multi-Version Concurrency Control)即多版本并发控制。 MVCC的实现原理 我们在了解MVCC之前,首先先了解一下几个比较常见的锁。 **读锁:**也叫共享锁、S锁,若事务T对数据对象A加上S锁,则事务…

一维卷积神经网络的特征可视化

随着以深度学习为代表的人工智能技术的不断发展,许多具有重要意义的深度学习模型和算法被开发出来,应用于计算机视觉、自然语言处理、语音处理、生物医疗、金融应用等众多行业领域。深度学习先进的数据挖掘、训练和分析能力来源于深度神经网络的海量模型…

使用OpenCV4.9的随机生成器和文本

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV 4.9基本绘图 下一篇:OpenCV系列文章目录(持续更新中......) 目标 在本教程中,您将学习如何: 使用随机数生…

软件架构风格_2.调用/返回体系结构风格

调用/返回风格是指在系统中采用了调用与返回机制。利用调用-返回实际上是一种分而治之的策略,其主要思想是将一个复杂的大系统分解为若干子系统,以便降低复杂度,并且增加可修改性。程序从其执行起点开始执行该构件的代码,程序执行…

分发饼干(力扣455)

文章目录 题目贪心算法思想概述关键要素解题步骤优缺点优点缺点 应用领域 题解一、思路二、解题方法三、Code 总结 题目 Problem: 455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i&am…

2024 ccfcsp认证打卡 2023 05 01 重复局面

2023 05 01 重复局面 题目题解1题解2区别:数据存储方式:时间复杂度:空间复杂度: 总结: 题目 题解1 import java.util.*;public class Main {public static void main(String[] args) {Scanner input new Scanner(Sys…

Stream 流和 Lambda 组装复杂父子树形结构

在最近的开发中,遇到了两个类似的需求:都是基于 Stream 的父子树形结构操作,返回 List 集合对象给前端。于是在经过需求分析和探索实践后有了新的认识,现在拿出来和大家作分享交流。 一般来说完成这样的需求大多数人会想到递归&a…

面试题 之 vue

1.vue里怎样实现双向数据绑定? Viewmodel 中的Domlisteners 工具会帮我们检测页面上Dom元素的变化,如果有变化,则更改Model中的数据,更新model中的数据时,数据事件绑定工具会帮我们更新页面中的Dom元素 2.Vue的响应式原…

3d代理模型怎么转换成标准模型---模大狮模型网

在当今的虚拟世界中,3D建模技术被广泛运用于游戏开发、电影制作、工业设计等领域。在3D建模过程中,有时会遇到需要将代理模型转换成标准模型的情况。模大狮将从理论和实践两方面,介绍如何将3D代理模型转换成标准模型,以帮助读者更…

【MySQL】事务是什么?事务的特性又是什么?

文章目录 ✍事务是什么?✍事务的特性(四个)✍事务并发时出现的问题✍事务的隔离性 ✍事务是什么? 事务是由一个或多个SQL语句构成的,在事务中,这些的SQL不可分割,是一个整体,整个事…

C++万物起源:类与对象(三)拷贝构造、赋值重载

目录 一、拷贝构造函数 1.1拷贝构造函数的概念与特征 1.2拷贝构造的实现 1.3默认构造函数 1.4拷贝构造函数典型调用场景 二、赋值运算符重载 2.1赋值运算符重载的格式 一、拷贝构造函数 1.1拷贝构造函数的概念与特征 在c语言语法中,我们可以将一个变量赋值给…

vue实现导出列表为xlsx文件

1.安装依赖 npm install --save xlsx file-saver 2.引入依赖 import FileSaver from file-saver; import * as XLSX from xlsx; 3.代码实现 <el-button type"primary" click"exportData">导出数据</el-button><el-tableid"table_ex…

怎样在Linux搭建NTP服务器

搭建 NTP&#xff08;Network Time Protocol&#xff09;服务器可以帮助你在局域网内提供时间同步服务&#xff0c;让网络中的设备都使用统一的时间。以下是在 Linux 系统上搭建 NTP 服务器的基本步骤&#xff1a; 安装 NTP 服务器软件&#xff1a; 在终端中执行以下命令安装 N…

JavaSE阶段十组易混淆概念总结

目录 &#x1f4cc; & 与 && &#x1f4cc; this 与 super &#x1f4cc; 方法重载与重写 &#x1f4cc; 抽象类与接口 &#x1f4cc; "" 与 equals &#x1f4cc; String 与 StringBuffer &#x1f4cc; HashSet 与 HashMap &#x1f4cc; Coll…

【CANN训练营笔记】Atlas 200I DK A2体验手写数字识别模型训练推理

环境介绍 开发板&#xff1a;Huawei Atals 200I DK A2 内存&#xff1a;4G NPU&#xff1a;Ascend 310B4 CANN&#xff1a;7.0 准备环境 下载编译好的torch_npu wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/wanzutao/torch_npu-2.1.0rc1-cp39-cp39-linux_aarch…

烂笔头笔记:Windows 11下照片查看器显示偏色问题修复

本文出处&#xff1a;http://blog.csdn.net/chaijunkun/article/details/137278931&#xff0c;转载请注明。由于本人不定期会整理相关博文&#xff0c;会对相应内容作出完善。因此强烈建议在原始出处查看此文。 最近在研究HDR视频的截图算法&#xff0c;目的就是生成色彩正确…