当前位置:   article > 正文

ChatGLM2-6B 部署与微调_chatglm2-6b微调

chatglm2-6b微调

一、ChatGLM-6B

《LLMs模型速览(GPTs、LaMDA、GLM/ChatGLM、PaLM/Flan-PaLM、BLOOM、LLaMA、Alpaca)》

  • GLM:一种基于Transformer架构进行改进的通用预训练框架,GLM将不同任务的预训练目标统一为自回归填空任务(Autoregressive Blank Infilling),使得模型在自然语言理解和文本生成方面性能都有所改善。
    在这里插入图片描述

  • GLM-130B:于2022年8月由清华智谱AI开源放出。该大语言模型基于之前提出的GLM(General Language Model),在Norm处理、激活函数、Mask机制等方面进行了调整,目的是训练出开源开放的高精度千亿中英双语稠密模型,能够让更多研发者用上千亿模型。

  • ChatGLM: 基于GLM-130B,引入面向对话的用户反馈,进行指令微调后得到的对话机器人。ChatGLM解决了大基座模型在复杂问题、动态知识、人类对齐场景的不足。ChatGLM于2023年3月开启申请内测,目前暂停了公开申请。

  • ChatGLM-6B:由于ChatGLM千亿参数版本暂未公开,为了与社区一起更好地推动大模型技术的发展,清华团队于2023.3开源了62亿参数版本的ChatGLM-6B。结合模型量化技术,用户可以在消费级的显卡上进行本地部署。

该版本具有以下特点:

  • 充分的中英双语预训练: ChatGLM-6B 在 1:1 比例的中英语料上训练了 1T 的 token 量,兼具双语能力。
  • 优化的模型架构和大小: 吸取 GLM-130B 训练经验,修正了二维 RoPE 位置编码实现,使用传统FFN结构。6B(62亿)的参数大小,也使得研究者和个人开发者自己微调和部署 ChatGLM-6B 成为可能。
  • 较低的部署门槛: FP16 半精度下,ChatGLM-6B 需要至少 13GB 的显存进行推理,结合模型量化技术,这一需求可以进一步降低到 10GB(INT8) 和 6GB(INT4), 使得 ChatGLM-6B 可以部署在消费级显卡上。
  • 更长的序列长度: 相比 GLM-10B(序列长度1024),ChatGLM-6B 序列长度达 2048,支持更长对话和应用。
  • 人类意图对齐训练: 使用了监督微调(Supervised Fine-Tuning)、反馈自助(Feedback Bootstrap)、人类反馈强化学习(Reinforcement Learning from Human Feedback) 等方式,使模型初具理解人类指令意图的能力。输出格式为 markdown,方便展示。

在这里插入图片描述
有关GLM、GLM130B、ChatGLM模型原理、结构、效果的更详细介绍,请参考《LLMs模型速览(GPTs、LaMDA、GLM/ChatGLM、PaLM/Flan-PaLM、BLOOM、LLaMA、Alpaca)》第三章。

二、ChatGLM2-6B

参考:《ChatGLM2-6B:性能大幅提升,8-32k上下文,推理提速42%》

清华KEG和数据挖掘小组(THUDM)在2023.06.25发布了中英双语对话模型ChatGLM2-6B,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B 引入了如下新特性:

  • 基座模型升级,性能更强大。相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
  • 支持8K-32k的上下文。模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。
  • 推理性能提升了42%。基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
  • 更开放的协议:ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。
    在这里插入图片描述

三、本地部署ChatGLM2-6B

3.1 命令行模式

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt
python cli_demo.py
  • 1
  • 2
  • 3
  • 4

本地部署后运行 cli_demo.py,就会看到下面的原始界面
在这里插入图片描述

3.2 网页版部署

可以通过以下命令启动基于 Gradio 的网页版 demo:

python web_demo.py
  • 1

在这里插入图片描述
也可以通过以下命令启动基于 Streamlit 的网页版 demo:

streamlit run web_demo2.py
  • 1

推理参数设置:
在这里插入图片描述

3.3 本地加载模型权重

默认情况下,会从huggingface自动下载模型权重,例如:

>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True, device='cuda')
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/81483
推荐阅读
相关标签