(如果这里有了卡点,直接报错发给AI解决即可,这里只是在安装一个环境工具)bash Anaconda3-2021.05-Linux-x86_64.sh -b -p /root/anaconda
rm -f Anaconda3-2021.05-Linux-x86_64.sh
conda create -n nanochat python=3.10 -y
conda activate nanochat
mkdir -p ~/projects
cd ~/projects
git clone https://github.com/karpathy/nanochat.git
cd nanochat
pip install -e .
pip install maturin
source "$HOME/.cargo/env"
maturin develop --release --manifest-path rustbpe/Cargo.toml
mkdir -p ~/.cache/nanochat
python -m nanochat.dataset -n 8
大家可能好奇这个数据集里都有什么,我打开来给大家看一下。每一行其实都很长,大概有个五六千字。我把第一行复制出来翻译了一下,大家可以看下,是一篇关于运输与物流的文本。6、等上一步执行完成后,我们继续训练tokenizer。python -m scripts.tok_train --max_chars=2000000000
python -m scripts.tok_eval
# 后台下载更多训练数据(约24GB,这会需要较长时间)python -m nanochat.dataset -n 240 &
DATASET_DOWNLOAD_PID=$!
curl -L -o eval_bundle.zip https://karpathy-public.s3.us-west-2.amazonaws.com/eval_bundle.zip
unzip -q eval_bundle.zip
mv eval_bundle ~/.cache/nanochat/
rm eval_bundle.zip
10、至此环境和数据均已准备完成,我们开始训练“模型”。python -m scripts.base_train --depth=4 --device_batch_size=32 --num_iterations=500
然后就是等待,此时你会看到命令行中不断输出。上图中的部分显示了程序正在覆盖某些默认配置参数,这些参数意思是:depth = 4: 模型的层数(深度)被设置为4。device_batch_size = 32: 每个设备(比如一张GPU卡)一次处理的数据批次大小为32。num_iterations = 500: 总共要训练500个步数。反正也是在等待,我们拿这一行举例解释一下都是什么意思:看到下图就是训练完成了,我们用了18分钟进行训练。这一步是为了教会模型理解对话格式和特殊标记(大约15-20分钟)。这步我也更改了参数,原参数跑起来太慢了。我们只需要走一遍流程就好。同样的你也可以看到训练步骤。python
-m scripts.mid_train --device_batch_size=128
如果你不在乎时间,你也可以使用原参数训练,命令是:python -m scripts.mid_train12、中间训练完成,我们就进入到了最后一步的SFT(监督微调阶段),这一阶段会让模型更好的学会我们的语言习惯和方式同样的,为了训练速度更快,我更改了训练参数,直接粘贴进去即可继续训练:python -m scripts.chat_sft --device_batch_size=16
如果你不在乎时间,你也可以使用原参数训练,命令是:python -m scripts.chat_sftGSM8K和HumanEval:0%(这个小模型在数学和编程上还不行,正常现象)这是个很小的模型,效果有限,但已经具备基本的对话能力了。python -m scripts.chat_web
现在,只需要把中间的0.0.0.0 改成你的服务器IP地址即可。那么拼接地址就是:http://12.45.748.105:8000/你现在可以与他对话,来唤醒这个刚刚问世的大模型了。你已经成功完了从零开始“炼”成一个大语言模型的完整旅程。从分词器的构建,到预训练、中间训练,再到最后的监督微调(SFT),你亲手操作了每一个环节,这短短1-2小时的实践,将原本遥不可及的AI魔法,拆解成了一步步清晰可见的代码和日志。你看到的不再是一个黑箱,而是一个由数据、算力和算法共同驱动的、可以亲手塑造的大模型。此时你应该对“大模型究竟是如何炼成的”这句话,有了远超书本的、具象化的深刻理解。如果这这个过程让你获得了成就感,请继续保持这份好奇心与成就感,继续前行。期待你能够更加深入的探索,与我们分享你更多的发现和收获。