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

2024-04-04 01:28

本文主要是介绍书生·浦语大模型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
    
  • 测试结果
    在这里插入图片描述

这篇关于书生·浦语大模型InternLM-Chat-1.8B 智能对话 Demo 第二期的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.