昇思MindSpore学习笔记2-05LLM原理和实践--MindNLP ChatGLM-6B StreamChat

摘要:

        记录基于MindNLP和ChatGLM-6B实现聊天应用实验的过程和步骤。

一、环境配置

安装要用的包和模块mindspore mindnlp mdtex2html

%%capture captured_output
# 实验环境已经预装了mindspore==2.2.14,如需更换mindspore版本,可更改下面mindspore的版本号
!pip uninstall mindspore -y
!pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14
!export HF_ENDPOINT=https://hf-mirror.com
!pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindnlp mdtex2html

输出:

Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple
Requirement already satisfied: mindnlp in /home/nginx/miniconda/envs/jupyter/lib/python3.9/site-packages (0.3.1)
Collecting mdtex2html
  Downloading https://mirrors.bfsu.edu.cn/pypi/web/packages/ff/e8/c5fab9aa5d9254ad7c7e37d33a3c32fd49d82b4c6b54da337bbca378eb5c/mdtex2html-1.3.0-py3-none-any.whl (13 kB)
Requirement already satisfied: mindspore in /home/nginx/miniconda/envs/jupyter/lib/python3.9/site-packages (from mindnlp) (2.2.14)
Requirement already satisfied: tqdm in /home/nginx/miniconda/envs/jupyter/lib/python3.9/site-packages (from mindnlp) (4.66.4)
......
Collecting markdown (from mdtex2html)
  Downloading https://mirrors.bfsu.edu.cn/pypi/web/packages/fc/b3/0c0c994fe49cd661084f8d5dc06562af53818cc0abefaca35bdc894577c3/Markdown-3.6-py3-none-any.whl (105 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 105.4/105.4 kB 11.4 MB/s eta 0:00:00
Collecting latex2mathml (from mdtex2html)
  Downloading https://mirrors.bfsu.edu.cn/pypi/web/packages/f2/0a/181ed55562ce90179aedf33b09fcd79db31c868a5d480f3cb71a31d19692/latex2mathml-3.77.0-py3-none-any.whl (73 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.7/73.7 kB 24.0 MB/s eta 0:00:00
Requirement already satisfied: filelock in /home/nginx/miniconda/envs/jupyter/lib/python3.9/site-packages (from datasets->mindnlp) (3.15.3)
......
Requirement already satisfied: tzdata>=2022.7 in /home/nginx/miniconda/envs/jupyter/lib/python3.9/site-packages (from pandas->datasets->mindnlp) (2024.1)
Installing collected packages: latex2mathml, markdown, mdtex2html
Successfully installed latex2mathml-3.77.0 markdown-3.6 mdtex2html-1.3.0
[notice] A new release of pip is available: 24.1 -> 24.1.2[notice] To update, run: python -m pip install --upgrade pip
Note: you may need to restart the kernel to use updated packages.

二、配置网络

1.下载权重模型

from mindnlp.transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import gradio as gr
import mdtex2html
​
model = AutoModelForSeq2SeqLM.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope").half()
model.set_train(False)
tokenizer = AutoTokenizer.from_pretrained('ZhipuAI/ChatGLM-6B', mirror="modelscope")

输出:

100%━━━━━━━━━━ 773/773 [00:00<00:00, 51.7kB/s]
100%━━━━━━━━━━ 32.6k/32.6k [00:00<00:00, 2.75MB/s]
Downloading shards: 100%
 8/8 [16:38<00:00, 106.84s/it]
100%━━━━━━━━━━ 1.62G/1.62G [02:09<00:00, 13.6MB/s]
100%━━━━━━━━━━ 1.75G/1.75G [02:25<00:00, 7.59MB/s]
100%━━━━━━━━━━ 1.84G/1.84G [02:26<00:00, 16.6MB/s]
100%━━━━━━━━━━ 1.78G/1.78G [02:20<00:00, 15.5MB/s]
100%━━━━━━━━━━ 1.75G/1.75G [02:20<00:00, 10.8MB/s]
100%━━━━━━━━━━ 1.75G/1.75G [02:18<00:00, 12.0MB/s]
100%━━━━━━━━━━ 1.00G/1.00G [01:18<00:00, 21.7MB/s]
100%━━━━━━━━━━ 1.00G/1.00G [01:17<00:00, 14.1MB/s]
Loading checkpoint shards: 100%
 8/8 [00:46<00:00,  5.13s/it]
100%━━━━━━━━━━ 441/441 [00:00<00:00, 21.6kB/s]
100%━━━━━━━━━━ 2.58M/2.58M [00:00<00:00, 21.2MB/s]

2.体验模型

prompt = '你好'
history = []
response, _ = model.chat(tokenizer, prompt, history=history, max_length=20)
response

输出:

'你好👋!我是人工智能助手 ChatGLM-6B'

3.修改参数

prompt = 'mindSpore知识要点 分类、生成、文本、图像、音视频模型种类列表 步骤总结'
history = []
response, _ = model.chat(tokenizer, prompt, history=history, max_length=2000)
response

输出:

|
'MindSpore是一款基于深度学习的人工智能框架,主要涉及以下几个方面的知识:\n\n1. 分类模型:\n\n- 卷积神经网络(CNN):CNN是MindSpore中最常用的分类模型之一,其基本思想是将输入数据经过卷积、池化和全连接层进行处理,最终输出分类结果。\n- 长短时记忆网络(LSTM):LSTM是一种特殊的CNN,能够更好地处理长序列数据,常用于分类、语音识别等领域。\n- 递归神经网络(RNN):RNN是一种特殊的CNN,能够更好地处理变长的序列数据,常用于语言模型、时间序列预测等领域。\n\n2. 生成模型:\n\n- 生成对抗网络(GAN):GAN是一种由生成器和判别器组成的模型,通过训练生成器生成逼真的样本,并通过判别器判断真实样本和生成样本之间的差异。GAN常用于图像生成、视频生成等领域。\n- 变分自编码器(VAE):VAE是一种无监督学习模型,通过将数据映射到高维空间,实现对数据的表示生成。VAE常用于图像生成、视频生成等领域。\n- 自编码器(VAE):自编码器是一种一种特殊的GAN,将输入数据映射到低维空间,并通过正则化实现数据的压缩和表示生成。自编码器常用于文本生成、图像生成等领域。\n\n3. 文本模型:\n\n- 词向量模型(TF-IDF):TF-IDF是一种基于词频和重要性的模型,通过计算每个单词在文本中出现的频率和该单词的重要性,从而生成文本分类结果。\n- 递归神经网络(LSTM):LSTM是一种特殊的TF-IDF模型,能够更好地处理变长的文本数据,常用于文本分类、情感分析等领域。\n- 长短期记忆网络(LSTM-CRF):LSTM-CRF是一种特殊的TF-IDF模型,除了能够更好地处理变长的文本数据外,还能够进行文本分类和降维。\n\n4. 图像模型:\n\n- 卷积神经网络(CNN):CNN是MindSpore中最常用的图像模型之一,其基本思想是将输入数据经过卷积、池化和全连接层进行处理,最终输出图像分类结果。\n- 递归神经网络(RNN):RNN是一种特殊的CNN,能够更好地处理变长的序列数据,常用于图像生成、视频生成等领域。\n- 生成对抗网络(GAN):GAN是一种由生成器和判别器组成的模型,通过训练生成器生成逼真的样本,并通过判别器判断真实样本和生成样本之间的差异。GAN常用于图像生成、视频生成等领域。\n\n5. 音频模型:\n\n- 循环神经网络(RNN):RNN是一种特殊的音频模型,能够更好地处理变长的音频数据,常用于语音识别、音频分类等领域。\n- 变分自编码器(VAE):VAE是一种无监督学习模型,通过将音频数据映射到高维空间,实现对音频的表示生成。'

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:18:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:18:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:18:03       57 阅读
  4. Python语言-面向对象

    2024-07-12 13:18:03       68 阅读

热门阅读

  1. netstat 和ss命令

    2024-07-12 13:18:03       20 阅读
  2. 标准盒模型和怪异盒子模型的区别

    2024-07-12 13:18:03       21 阅读
  3. flink 配置表

    2024-07-12 13:18:03       29 阅读
  4. 无障碍快捷方式图标

    2024-07-12 13:18:03       25 阅读
  5. 每天一个数据分析题(四百二十三)- 置信区间

    2024-07-12 13:18:03       18 阅读
  6. 原来没分库分表,后期如何分库分表?

    2024-07-12 13:18:03       21 阅读
  7. js 移动数组元素的几个方法

    2024-07-12 13:18:03       17 阅读