fix: typo
This commit is contained in:
@@ -449,7 +449,7 @@ GLM 最初是由清华计算机系推出的一种通用语言模型基座,其
|
||||
|
||||
2. 使用单个线性层实现最终 token 的预测,而不是使用 MLP;这样的结构更加简单也更加鲁棒,即减少了最终输出的参数量,将更大的参数量放在了模型本身;
|
||||
|
||||
3. 激活函数从 ReLU 换成了 GeLUS。ReLU 是传统的激活函数,其核心计算逻辑为去除小于 0的传播,保留大于 0的传播;GeLUS 核心是对接近于 0的正向传播,做了一个非线性映射,保证了激活函数后的非线性输出,具有一定的连续性。
|
||||
3. 激活函数从 ReLU 换成了 GeLUs。ReLU 是传统的激活函数,其核心计算逻辑为去除小于 0的传播,保留大于 0的传播;GeLUs 核心是对接近于 0的正向传播,做了一个非线性映射,保证了激活函数后的非线性输出,具有一定的连续性。
|
||||
|
||||
#### (2)预训练任务-GLM
|
||||
|
||||
|
||||
@@ -2210,7 +2210,7 @@ Sample 2:
|
||||
--------------------
|
||||
```
|
||||
|
||||
到这里,我们的模型就训绽完成了,恭喜你训练了一个属于你自己的大模型。
|
||||
到这里,我们的模型就训练完成了,恭喜你训练了一个属于你自己的大模型。
|
||||
|
||||
> 大家在训练的时候可以将 batch 调的低一些,这样可以减少显存的占用,避免显存不足的问题。当然这样会增加训练时间,可以根据自己的显卡显存大小来调整 batch 的大小。实测 Pretrain batch 为 4 的情况下只需要 7G 显存,训练时长预计 533 小时。作者是在 8卡4090 上进行训练的,预训练一共耗时 46 小时,SFT 阶段在 BelleGroup 350万条中文指令训练 24 小时。
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ model = AutoModelForCausalLM.from_pretrained(model_name_or_path,trust_remote_cod
|
||||
|
||||
类似的,直接使用 from_pretrained 方法加载即可,此处的 model_name_or_path 即为下载好的参数的本地路径。
|
||||
|
||||
我们还需要初始化一个 tokenizer。此处,我们直接使用 Qwen-2.5-1.5B 对应的 tokenzier 参数即可:
|
||||
我们还需要初始化一个 tokenizer。此处,我们直接使用 Qwen-2.5-1.5B 对应的 tokenizer 参数即可:
|
||||
|
||||
```python
|
||||
# 加载一个预训练好的 tokenizer
|
||||
@@ -250,7 +250,7 @@ trainer = Trainer(
|
||||
trainer.train()
|
||||
```
|
||||
|
||||
> 注:上述代码存放于 `./code/pretrian.ipynb` 文件中。
|
||||
> 注:上述代码存放于 `./code/pretrain.ipynb` 文件中。
|
||||
|
||||
### 6.1.5 使用 DeepSpeed 实现分布式训练
|
||||
|
||||
@@ -741,7 +741,7 @@ logger.info(f"继承一个预训练模型 - Total size={n_params/2**20:.2f}M par
|
||||
|
||||
# 初始化 Tokenizer
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_args.model_name_or_path)
|
||||
logger.info("完成 tokenzier 加载")
|
||||
logger.info("完成 tokenizer 加载")
|
||||
|
||||
# 加载微调数据
|
||||
with open(data_args.train_files) as f:
|
||||
|
||||
Reference in New Issue
Block a user