读前须知:
入门内容,但是你需要自己安装python, torch, jupyterlab, transformers 等... 网上教程有很多。
是的,可以本地部署,可以聊天,但是目前公开的模型(这篇将使用ChatYuan-large-v1)很小很蠢,但也值得试试。
开始之前:
- ChatGPT 作为一个LLM(大型语言模型)是如何“记忆”聊天内容以达到理解上下文的?
答案是,至少目前不行,约3000词(4000 tokens)限制的当前会话内容看起来是一股脑输入到模型中的。
- 超过3000词呢?
不明确,可能之前的内容会直接被忽略,也可能由模型自己概括。
准备工作:
我之前有尝试过一些LLM如Bloom,但它们训练的主要目的就是接龙,可以以对话形式(如“A:xxxxx. B:”)输入来要求模型接龙,然而模型本身并不知道什么时候停止,就会出现一些很尴尬的情况,如模型完成它应有的输出后又顺路完成了用户的输入,甚至干脆一口气生成几轮会话等。
加之一些模型对多语言环境并不友好,对中文支持能力很差,所以我们需要一个针对会话和中文内容调整训练过的模型。 正好最近发现 Hugging Face 上的 ClueAI/ChatYuan-large-v1 这个模型很有意思,所以决定试试看。
下载模型:
可以直接用模型下方提供的代码,这样子模型将会直接下载到你C盘用户\用户名\.cache(Windows 用户)文件夹下:
也可以直接 git clone https://huggingface.co/ClueAI/ChatYuan-large-v1 到你的目录里, 然后加载:
复制一些官方在模型下面提供的函数:
到这里已经可以使用answer()函数实现接龙功能了:
实现一个很简单的聊天功能:
效果:
结论:
作为一个2.91GB的模型,对于它的任务而言它的尺寸实际上称不上Large,也不是很聪明的样子,处于一个基本不可用的状态。但是过程很有趣,本地部署起来很流畅,单次推理的时间也很短,可以回答一些很简单的问题,有一定的上下文理解能力,但极其有限。
不知道如果模型的体积增加一倍,再继续针对会话训练的话会是什么样子...