mirror of
https://github.com/datawhalechina/llms-from-scratch-cn.git
synced 2026-01-14 01:07:34 +08:00
| .. | ||
| img | ||
| configuration_chatglm_full.py | ||
| glm.py | ||
| quantization.py | ||
| README.md | ||
| tokenization_chatglm.py | ||
| tokenizer_config.json | ||
| tokenizer.model | ||
| 加载模型权重.ipynb | ||
动手实现 ChatGLM3-6B
这篇教程是对ChatGLM3-6B的动手实现版本,目前已脱离transformers依赖work了,对模型架构的讲解估计要咕很久才能写明白。
0、模型架构讲解
连载中
1、下载模型权重
在实现模型之前,请先下载原始的模型权重,咱们只需要模型仓库里的safetensors文件,只有这部分是真正使用到的权重。

另外还有一个模型是tokenizer模型(tokenizer.model),这个俺已经放本仓库里了,不用过去下载了。
就在这目录上运行以下命令,将权重下载到weights目录下,后续咱们就可以直接加载了。
pip install -U "huggingface_hub[cli]"
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download THUDM/chatglm3-6b --include "*.safetensors" --local-dir weights
上述指令的第二行是使用hf-mirror镜像加速下载,针对国内用户,如果你的网络可以直接访问huggingface则可以跳过。
如果是windows用户,这第二行就按shell的类型修改下
# 针对powershell
$env:HF_ENDPOINT = "https://hf-mirror.com"
# 针对cmd
set HF_ENDPOINT = "https://hf-mirror.com"
2、加载模型权重 & 推理
3、实现各种采样策略
连载中
4、实现多轮对话(Chat Format)
连载中