昇思25天学习打卡营第18天|MindNLP ChatGLM-6B StreamChat

news2024/9/19 10:52:16

MindNLP ChatGLM-6B StreamChat

MindNLP ChatGLM-6B StreamChat是基于MindNLP框架和ChatGLM-6B模型实现的聊天应用,利用自然语言处理技术,实现与用户的自然语言交流。这样的应用可以广泛应用于智能客服、在线助理和社交聊天等场景

在当前技术环境下,AI大模型的应用不仅需要研究者具备深厚的数学基础和编程能力,还需要对特定领域的业务场景有深入的了解。通过不断优化模型结构和算法,AI大模型的应用能够不断提升模型的准确性和效率,为人类生活和工作带来更多便利。使用MindNLP框架和ChatGLM-6B模型构建一个聊天机器人应用,正是这种技术进步的具体体现。

MindNLP

MindNLP是一个功能强大的开源自然语言处理(NLP)库,基于MindSpore框架开发。作为当前技术生态中的一部分,MindNLP继承并发扬了MindSpore的多种优势,如对多种硬件平台和操作系统的支持,以及在模型训练和推理方面的速度优势。以下是MindNLP相关介绍:

  1. 框架与支持模型
    • 基于MindSpore:MindNLP是基于MindSpore开发的,这是一个为深度学习而生的框架,能够支持多种硬件平台和操作系统。
    • 大型语言模型:MindNLP支持包括Llama、GLM、RWKV等在内的业界领先的大语言模型,涵盖了预训练、微调及推理等功能。
    • 模型兼容性:MindNLP兼容Hugging Face的transformers-like API,使得60多个模型如BERT、Roberta、GPT2、T5等易于使用。
  2. 数据处理与工具集
    • 数据集加载:默认使用datasets lib作为数据集加载器,支持多种有用的数据集。
    • NLP任务覆盖:提供语言模型、机器翻译、问答系统、情感分析、序列标注、文摘生成等NLP任务。
    • 模型训练:支持灵活的模型训练,包括分布式训练和多卡并行训练,以及提供多种优化算法和正则化手段。
  3. 安装与版本
    • 安装方式:用户可以通过Pypi或Git直接安装MindNLP,支持从源代码进行安装。
    • 版本兼容性:MindNLP有多个版本,不同的版本间支持的MindSpore版本和Python版本不同。
  4. 应用场景与实际意义
    • 广泛应用:适用于智能客服、智能助手、智能推荐等多个领域,助力企业快速搭建NLP应用。
    • 社区支持:在Gitee和GitHub上拥有活跃的社区,提供丰富的资源和帮助,以及分享经验和技巧。

此外,MindNLP不仅提供了一个平台来解决自然语言处理任务,还包含了许多NLP任务中常用的方法。考虑到用户的背景和需求,MindNLP的设计兼顾了易用性和灵活性。一方面,初学者可以通过简单的脚本和示例快速开始NLP任务;另一方面,经验丰富的研究者和工程师可以根据自己的需要调整模型结构和算法,以解决更复杂的问题。

总的来说,MindNLP是一款基于MindSpore的开源NLP库,它提供了全面的数据处理、友好的模型工具集和灵活的模型训练,支持多种NLP任务和大型语言模型。凭借良好的社区支持和丰富的应用场景,它为开发者和企业提供了强大而便捷的自然语言处理能力。无论是想要构建一个聊天机器人,还是分析客户反馈,MindNLP都是一个值得考虑的选择。

ChatGLM-6B

ChatGLM-6B是一款支持中英双语的对话语言模型,拥有62亿参数,可在消费级显卡上部署。它基于General Language Model (GLM)架构,为用户提供强大的自然语言处理能力。以下将详细介绍ChatGLM-6B的各个方面:

1. 模型架构与推理流程
   - 架构基础:ChatGLM-6B基于清华大学提出的GLM架构,这是一种结合自编码和自回归预训练方式的模型。
   - 模型规模:该模型拥有62亿参数,在各种复杂任务中表现出色。
   - 推理流程:ChatGLM-6B的推理过程包括输入分词、嵌入Embedding、通过多个GLMBlock进行计算,最终生成下一个token。
2. 优势与特点
   - 中英双语支持:ChatGLM-6B不仅支持中文,还支持英文,适用于跨语言的研究和应用。
   - 高效部署:量化技术使得该模型可以在消费级显卡上运行,降低了硬件需求。
   - 易于使用:官方提供了详细的安装和使用指南,方便用户上手。
3. 应用场景与价值
   - 聊天机器人:适用于构建娱乐、教育、客服等类型的聊天机器人,提供自然、有趣的对话体验。
   - 对话生成与分析:用于生成各种风格的对话文本,并可进行对话分析,提升对话质量和效果。
   - 多领域应用:除了对话应用,还可以用于语言学习、信息检索、问答系统等多种场景。
4. 性能与优化
   - 上下文长度:ChatGLM-6B支持较长的上下文长度,能进行更多轮次的对话。
   - 量化与推理速度:通过Multi-Query Attention技术和INT4量化,降低显存占用并提高推理速度。
   - 开源与社区支持:作为开源项目,ChatGLM-6B享有广泛的社区支持,方便用户交流经验。
5. 训练数据与获取
   - 数据集来源:ChatGLM-6B的训练使用了庞大且丰富的中英文数据集,这些数据来自多种来源,如网站、书籍和公共数据库。
   - 版权与获取:数据集的版权通常归属原作者或机构,部分数据集可以公开获取,但需要遵守相应的使用协议。

总的来说,ChatGLM-6B是一个功能强大且易于使用的中英双语对话语言模型。其庞大的参数规模和高效的部署方式使其在各种自然语言处理任务中表现出色。在实际应用中,根据需求合理选择硬件配置,以获得更好的性能和体验。

StreamChat

StreamChat是一个高效、实时的聊天服务应用。以下是关于StreamChat的介绍:

  1. 实时交互性
    • 快速响应:StreamChat设计用于支持实时交互,能够快速响应用户的输入,提供及时的反馈和回答。
    • 无缝对话体验:通过优化算法,StreamChat能够流畅地处理多轮对话,使用户感觉像是在与真人交谈。
  2. 用户体验优化
    • 上下文理解:StreamChat能够理解对话的上下文,提供更加准确和相关的回复。
    • 个性化设置:用户可以根据自己的需求定制聊天体验,包括语言风格、回答长度等。
  3. 技术实现
    • 模型集成:StreamChat可能集成了诸如ChatGLM-6B这样的大型语言模型,以提供强大的自然语言处理能力。
    • 持续学习:StreamChat可以通过不断的用户交互来学习和改进,从而提升其智能水平和服务质量。
  4. 应用场景
    • 客户服务:StreamChat可以作为智能客服,帮助处理用户咨询,减轻人工客服的负担。
    • 教育辅助:在教育领域,StreamChat可以辅助教学,提供即时的问题解答和学习资源。
  5. 未来发展
    • 功能扩展:随着技术的发展,StreamChat有望引入更多功能,如语音识别、情感分析等。
    • 平台融合:StreamChat可以与其他平台和系统集成,如社交媒体、电子商务等,拓宽其应用范围。

总的来说,StreamChat是一个基于强大自然语言处理技术的实时聊天应用,它不仅能够提供流畅的对话体验,还能够根据用户的个性化需求进行定制。随着技术的不断进步,StreamChat有潜力在多个领域发挥重要作用,成为人机交互的重要工具。

实践案例

实践环境

python : Python 3.9.19

安装环境

pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore==2.2.14

pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindnlp mdtex2html

完整依赖环境

pip list
Package                        Version
------------------------------ --------------
absl-py                        2.1.0
addict                         2.4.0
aiofiles                       22.1.0
aiohttp                        3.9.5
aiosignal                      1.3.1
aiosqlite                      0.20.0
altair                         5.3.0
annotated-types                0.7.0
anyio                          4.4.0
argon2-cffi                    23.1.0
argon2-cffi-bindings           21.2.0
arrow                          1.3.0
astroid                        3.2.2
asttokens                      2.0.5
astunparse                     1.6.3
async-timeout                  4.0.3
attrs                          23.2.0
auto-tune                      0.1.0
autopep8                       1.5.5
Babel                          2.15.0
backcall                       0.2.0
beautifulsoup4                 4.12.3
black                          24.4.2
bleach                         6.1.0
certifi                        2024.6.2
cffi                           1.16.0
charset-normalizer             3.3.2
click                          8.1.7
cloudpickle                    3.0.0
colorama                       0.4.6
comm                           0.2.1
contextlib2                    21.6.0
contourpy                      1.2.1
cycler                         0.12.1
dataflow                       0.0.1
datasets                       2.20.0
debugpy                        1.6.7
decorator                      5.1.1
defusedxml                     0.7.1
dill                           0.3.8
dnspython                      2.6.1
download                       0.3.5
easydict                       1.13
email_validator                2.2.0
entrypoints                    0.4
evaluate                       0.4.2
exceptiongroup                 1.2.0
executing                      0.8.3
fastapi                        0.111.0
fastapi-cli                    0.0.4
fastjsonschema                 2.20.0
ffmpy                          0.3.2
filelock                       3.15.3
flake8                         3.8.4
fonttools                      4.53.0
fqdn                           1.5.1
frozenlist                     1.4.1
fsspec                         2024.5.0
gitdb                          4.0.11
GitPython                      3.1.43
gradio                         4.26.0
gradio_client                  0.15.1
h11                            0.14.0
hccl                           0.1.0
hccl-parser                    0.1
httpcore                       1.0.5
httptools                      0.6.1
httpx                          0.27.0
huggingface-hub                0.23.4
hypothesis                     6.105.1
idna                           3.7
importlib-metadata             7.0.1
importlib_resources            6.4.0
iniconfig                      2.0.0
ipykernel                      6.28.0
ipympl                         0.9.4
ipython                        8.15.0
ipython-genutils               0.2.0
ipywidgets                     8.1.3
isoduration                    20.11.0
isort                          5.13.2
jedi                           0.17.2
jieba                          0.42.1
Jinja2                         3.1.4
joblib                         1.4.2
json5                          0.9.25
jsonpointer                    3.0.0
jsonschema                     4.22.0
jsonschema-specifications      2023.12.1
jupyter_client                 7.4.9
jupyter_core                   5.7.2
jupyter-events                 0.10.0
jupyter-lsp                    2.2.5
jupyter-resource-usage         0.7.2
jupyter_server                 2.14.1
jupyter_server_fileid          0.9.2
jupyter-server-mathjax         0.2.6
jupyter_server_terminals       0.5.3
jupyter_server_ydoc            0.8.0
jupyter-ydoc                   0.2.5
jupyterlab                     3.6.7
jupyterlab_code_formatter      2.2.1
jupyterlab_git                 0.50.1
jupyterlab-language-pack-zh-CN 4.2.post1
jupyterlab-lsp                 4.3.0
jupyterlab_pygments            0.3.0
jupyterlab_server              2.27.2
jupyterlab-system-monitor      0.8.0
jupyterlab-topbar              0.6.1
jupyterlab_widgets             3.0.11
kiwisolver                     1.4.5
latex2mathml                   3.77.0
Markdown                       3.6
markdown-it-py                 3.0.0
MarkupSafe                     2.1.5
matplotlib                     3.9.0
matplotlib-inline              0.1.6
mccabe                         0.6.1
mdtex2html                     1.3.0
mdurl                          0.1.2
mindnlp                        0.3.1
mindspore                      2.2.14
mindvision                     0.1.0
mistune                        3.0.2
ml_collections                 0.1.1
ml-dtypes                      0.4.0
mpmath                         1.3.0
msadvisor                      1.0.0
multidict                      6.0.5
multiprocess                   0.70.16
mypy-extensions                1.0.0
nbclassic                      1.1.0
nbclient                       0.10.0
nbconvert                      7.16.4
nbdime                         4.0.1
nbformat                       5.10.4
nest-asyncio                   1.6.0
notebook                       6.5.7
notebook_shim                  0.2.4
numpy                          1.26.4
op-compile-tool                0.1.0
op-gen                         0.1
op-test-frame                  0.1
opc-tool                       0.1.0
opencv-contrib-python-headless 4.10.0.84
opencv-python                  4.10.0.84
opencv-python-headless         4.10.0.84
orjson                         3.10.5
overrides                      7.7.0
packaging                      23.2
pandas                         2.2.2
pandocfilters                  1.5.1
parso                          0.7.1
pathlib2                       2.3.7.post1
pathspec                       0.12.1
pexpect                        4.8.0
pickleshare                    0.7.5
pillow                         10.3.0
pip                            24.1
platformdirs                   4.2.2
pluggy                         1.5.0
prometheus_client              0.20.0
prompt-toolkit                 3.0.43
protobuf                       5.27.1
psutil                         5.9.0
ptyprocess                     0.7.0
pure-eval                      0.2.2
pyarrow                        16.1.0
pyarrow-hotfix                 0.6
pycodestyle                    2.6.0
pycparser                      2.22
pyctcdecode                    0.5.0
pydantic                       2.7.4
pydantic_core                  2.18.4
pydocstyle                     6.3.0
pydub                          0.25.1
pyflakes                       2.2.0
Pygments                       2.15.1
pygtrie                        2.5.0
pylint                         3.2.3
pyparsing                      3.1.2
pytest                         7.2.0
python-dateutil                2.9.0.post0
python-dotenv                  1.0.1
python-json-logger             2.0.7
python-jsonrpc-server          0.4.0
python-language-server         0.36.2
python-multipart               0.0.9
pytoolconfig                   1.3.1
pytz                           2024.1
PyYAML                         6.0.1
pyzmq                          25.1.2
referencing                    0.35.1
regex                          2024.5.15
requests                       2.32.3
rfc3339-validator              0.1.4
rfc3986-validator              0.1.1
rich                           13.7.1
rope                           1.13.0
rpds-py                        0.18.1
ruff                           0.4.10
safetensors                    0.4.3
schedule-search                0.0.1
scikit-learn                   1.5.0
scipy                          1.13.1
semantic-version               2.10.0
Send2Trash                     1.8.3
sentencepiece                  0.2.0
setuptools                     69.5.1
shellingham                    1.5.4
six                            1.16.0
smmap                          5.0.1
sniffio                        1.3.1
snowballstemmer                2.2.0
sortedcontainers               2.4.0
soupsieve                      2.5
stack-data                     0.2.0
starlette                      0.37.2
sympy                          1.12.1
synr                           0.5.0
te                             0.4.0
terminado                      0.18.1
threadpoolctl                  3.5.0
tinycss2                       1.3.0
tokenizers                     0.19.1
toml                           0.10.2
tomli                          2.0.1
tomlkit                        0.12.0
toolz                          0.12.1
tornado                        6.4.1
tqdm                           4.66.4
traitlets                      5.14.3
typer                          0.12.3
types-python-dateutil          2.9.0.20240316
typing_extensions              4.11.0
tzdata                         2024.1
ujson                          5.10.0
uri-template                   1.3.0
urllib3                        2.2.2
uvicorn                        0.30.1
uvloop                         0.19.0
watchfiles                     0.22.0
wcwidth                        0.2.5
webcolors                      24.6.0
webencodings                   0.5.1
websocket-client               1.8.0
websockets                     11.0.3
wheel                          0.43.0
widgetsnbextension             4.0.11
xxhash                         3.4.1
y-py                           0.6.2
yapf                           0.40.2
yarl                           1.9.4
ypy-websocket                  0.8.4
zipp                           3.17.0

实践代码


# 配置网络线路
export HF_ENDPOINT=https://hf-mirror.com
# 下载权重大约需要10分钟

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")

下载预训练模型文件比较耗时,注意网络别断

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

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

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

相关文章

大数据------JavaWeb------VueElement(完整知识点汇总)

Vue 定义 Vue是一套前端框架,可以免除原生JavaScript中的DOM操作,简化书写 之前所学的MyBatis框架是用来简化JDBC代码编写的;而Vue是前端框架,用来简化JavaScript代码编写的 在Axios与JSON综合案例的添加中有大量的DOM操作&#…

设备运维、教学直播...浅析远程控制在医疗专网环境下的应用

在医疗行业内,无论是高端的医疗设备,还是医疗机构使用的各种数字化系统,出于安全考虑往往都搭建在专网内网之中,无法直接与外网连接。在这种情况下,常规的远程控制变得很难接入到医疗业务中。 但另一方面,…

TP5 封装通用的微信服务类

1、安装依赖包 我们这里用的是 EasyWeChat EasyWeCha官网 https://www.easywechat.com/ 安装地址 https://github.com/easywechat/docs 相关文档 https://www.easywechat.com/docs/4.1/payment/index composer安装 $ composer require overtrue/wechat:~4.0 -vvv1、封装服务类 …

matlab R2016b安装cplex12.6,测试时cplex出现出现内部错误的解决方法

问题场景 网上搜索matlabyalmipcplex的安装教程,跟着步骤操作即可,假如都安装好了,在matlab中测试安装是否成功,出现以下问题: 1、matlab中设置路径中添加了yalmip和cplex路径,在命令窗口中输入yalmiptest…

[Flask笔记]一个完整的Flask程序

前面讲过Flask是一个轻量级Web开发框架,为什么说是轻量级的呢,因为它用短短几行代码就能运行起来,我们一起来看看最简单的flask框架。 安装Flask 在看Flask框架之前我们需要先安装flask模块,学过python的肯定都知道,…

python3读取shp数据

目录 1 介绍 1 介绍 需要tmp.shp文件和tmp.dbf文件,需要安装geopandas第三方库,python3代码如下, import geopandas as gpdshp_file_path "tmp.shp" shp_data gpd.read_file(shp_file_path) for index, row in shp_data.iterro…

久期分析与久期模型

目录 一、久期分析的理论原理 二、数据准备 三、Stata 程序代码及解释 四、代码运行结果 一、久期分析的理论原理 久期(Duration)是衡量债券价格对利率变动敏感性的重要指标。它不仅仅是一个简单的时间概念,更是反映了债券现金流回收的平均…

最新 Kubernetes 集群部署 + Contranerd容器运行时 + flannel 网络插件(保姆级教程,最新 K8S 1.28.2 版本)

资源列表 操作系统配置主机名IP所需插件CentOS 7.92C4Gk8s-master192.168.60.143flannel-cni-plugin、flannel、coredns、etcd、kube-apiserver、kube-controller-manager、kube-proxy、 kube-scheduler 、containerd、pause 、crictlCentOS 7.92C4Gk8s-node01192.168.60.144f…

BGP第三日谈

今日所用拓扑 先补充昨日没有讲到的知识点: 1.IBGP有更新源检测机制 这种机制使得BGP路由在IBGP邻居间传递时下一跳地址仍然保持不变,但是IBGP却没有去往下一跳地址的路由,所以我们需要手动将IBGP邻居间传递的BGP路由下一跳地址转成与IBGP…

星辰考古:TiDB v4.0 进化前夜

前情回顾TiDB v4 时间线TiDB v4 新特性 TiDBTiKVPDTiFlashTiCDCTiDB v4 兼容性变化 TiDBTiKVPD其他TiDB 社区互助升级活动TiDB 3.0.20 升级到 4.0.16 注意事项升级速览直观变化总结素材来源🌻 往期精彩 ▼ 前情回顾 在前面的章节中,我们共同梳理了 TiDB …

【ARM】CCI缓存一致性整理

目录 1.CCI500提供的功能 2.CCI500在SOC系统中所处的位置​编辑 3.CCI500内部结构​编辑 4.功能描述 1.CCI500提供的功能 2.CCI500在SOC系统中所处的位置 3.CCI500内部结构 Transaction Tracker(TT)是用来解决一致性和ordering问题的,它…

光伏仿真系统推荐

在全球能源转型和绿色能源发展的背景下,光伏行业作为重要的绿色能源组成部分,其智能化、数字化的发展显得尤为关键。光伏仿真系统作为提升光伏项目设计、运维效率的重要工具,在行业中扮演着不可或缺的角色。在众多光伏仿真系统中,…

构建工具webpackvite

1. webpack 使用步骤: 1.初始化项目yarn init -y(也可以是npm其他包管理工具) 2.安装依赖webpack webpack-cli:yarn add -D webpack webpack-cli(-D是只用于开发时候加) 3.在项目中创建src目录,然后编写代…

mov视频怎么改成mp4?把mov改成MP4的四个方法

mov视频怎么改成mp4?选择合适的视频格式对于确保内容质量和流通性至关重要。尽管苹果公司的mov格式因其出色的视频表现备受赞誉,但在某些情况下,它并非最佳选择,因为使用mov格式可能面临一些挑战。MP4格式在各种设备(如…

Suricata引擎二次开发之命中规则定位

二开背景 suricata是一款高性能的开源网络入侵检测防御引擎,旨在检测、预防和应对网络中的恶意活动和攻击。suricata引擎使用多线程技术,能够快速、准确地分析网络流量并识别潜在的安全威胁,是众多IDS和IPS厂商的底层规则检测模块。 前段时间…

Python精神病算法和自我认知异类数学模型

🎯要点 🎯空间不确定性和动态相互作用自我认知异类模型 | 🎯精神病神经元算法推理 | 🎯集体信念催化个人行动力数学模型 | 🎯物种基因进化关系网络算法 | 🎯电路噪声低功耗容错解码算法 📜和-…

下载设计免抠元素,就上这6个网站,免费下载!

寻找免费PNG免抠素材网站是创意设计者们探索的重要一环。这些网站提供了丰富的PNG格式素材,去除了背景,方便在不同项目中使用。精心挑选了6个免费PNG免抠素材网站,它们提供了高品质的素材资源,无论是个人设计还是商业项目&#xf…

Jetson-AGX-Orin 非docker环境源码编译安装CyberRT

Jetson-AGX-Orin 非docker环境源码编译安装CyberRT 1、安装依赖 sudo apt update sudo apt-get install g gdb gcc cmake sudo apt install libpoco-dev uuid-dev libncurses5-dev python3-dev python3-pip python3 -m pip install protobuf3.14.02、下载CyberRT源码 git cl…

从0开始的STM32HAL库学习4

对射式红外传感器计数复现 配置工程 我们直接复制oled的工程,但是要重命名。 将PB14设置为中断引脚 自定义命名为sensorcount 设置为上升沿触发 打开中断 配置NVCI 都为默认就可以了 修改代码 修改stm32f1xx_it.c 文件 找到中断函数并修改 void EXTI15_10_I…

mp3文件导入音乐乱码

在网上下载了beyond的mp3文件,发现看起来没问题,一旦加入到音乐软件就会乱码,看起来说因为音乐文件加载到元数据 思路参考了这个文章 解决Mac电脑音乐显示歌名的乱码问题_音频文件乱码-CSDN博客 不过这个只能解决名称乱码,我发…