赞
踩
baichuan-7B 是由百川智能开发的一个开源可商用的大规模预训练语言模型。基于 Transformer 结构,在大约1.2万亿 tokens 上训练的70亿参数模型,支持中英双语,上下文窗口长度为4096。在标准的中文和英文权威 benchmark(C-EVAL/MMLU)上均取得同尺寸最好的效果。
C-Eval
Gaokao
1、拉取docker镜像
docker pull nvcr.io/nvidia/pytorch:21.08-py3
【】需要 cuda 11.1 及以上版本
2、创建docker
nvidia-docker run -it -d \
--name baichuan_llm \
-v /llm:/notebooks \
-e TZ='Asia/Shanghai' \
--shm-size 16G \
nvcr.io/nvidia/pytorch:21.08-py3
进入容器内:
docker exec -it baichuan_llm env LANG=C.UTF-8 /bin/bash
3、下载代码
cd /notebooks/
git clone https://github.com/baichuan-inc/baichuan-7B.git
4、下载模型权重文件
cd baichuan-7B/
git clone https://huggingface.co/baichuan-inc/baichuan-7B
5、按照依赖库
pip install -r requirements.txt
6、推理
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("baichuan-7B", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("baichuan-7B", device_map="auto", trust_remote_code=True)
inputs = tokenizer('登鹳雀楼->王之涣\n夜雨寄北->', return_tensors='pt')
inputs = inputs.to('cuda:0')
pred = model.generate(**inputs, max_new_tokens=64,repetition_penalty=1.1)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
输出
7、训练
准备数据
用户将训练语料按总rank数的倍数均匀切分成多个 UTF-8 文本文件,放置在语料目录(默认为 data_dir )下。各个rank进程将会读取语料目录下的不同文件,全部加载到内存后,开始后续训练过程。以上是简化的示范流程,建议用户在正式训练任务中,根据需求调整数据生产逻辑。
配置 DeepSpeed
修改 config/hostfile ,如果是多机多卡,需要修改 ssh 中各个节点的 IP 配置。
训练
sh scripts/train.sh
https://huggingface.co/baichuan-inc/baichuan-7B/tree/main
https://github.com/baichuan-inc/baichuan-7B
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。