From 4ee2ffac2b27f47e8095a24536b506073c2bbc34 Mon Sep 17 00:00:00 2001 From: chenlong Date: Mon, 27 Feb 2023 14:34:04 +0800 Subject: [PATCH] add readme.md --- README.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ rwkv_command.txt | 25 ----------------------- 2 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 README.md delete mode 100644 rwkv_command.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..d02b1ca --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ + +## chatCSDN +源码来源于https://github.com/BlinkDL/RWKV-LM/tree/main/RWKV-v4neo +主要是在作者提供的1.5B参数的基础之上,使用CSDN的问答数据和博客数据进行再次训练,经过prompt和Instruction Tuning,以及RLHF等微调之后得到拥有IT行业知识体系的chatCSDN。 +原始模型参数地址:https://huggingface.co/BlinkDL/rwkv-4-pile-1b5 + +## 预处理数据 +使用项目 https://github.com/EleutherAI/gpt-neox 提供的数据转换工具讲.jsonl文件转换为.bin和.idx文件,目前已经将代码全部移植过来,放在tools文件夹中。词典使用的是20B_tokenizer.json。 +jsonl文件格式示例: +``` +{"meta": {"ID": 101}, "text": "This is the first document."} +{"meta": {"ID": 102}, "text": "Hello\nWorld"} +{"meta": {"ID": 103}, "text": "1+1=2\n1+2=3\n2+2=4"} +``` +使用clean_data.py中的clean_ask_data和clean_blog_data方法可以将从odps中拉取的数据转换成jsonl文件。 +进入tools文件夹下使用如下命令进行转换: +``` +python preprocess_data.py \ + --input ../data/data.txt \ + --output-prefix ../data/blog \ + --vocab ../20B_tokenizer.json \ + --dataset-impl mmap \ + --tokenizer-type HFTokenizer \ + --append-eod + +python preprocess_data.py \ + --input ../data/ask.json \ + --output-prefix ../data/ask \ + --vocab ../20B_tokenizer.json \ + --dataset-impl mmap \ + --tokenizer-type HFTokenizer \ + --append-eod +``` + +## 训练示例 + +``` +python train.py --load_model "rwkv-80.pth" --wandb "" --proj_dir "out" \ +--data_file "data/blog_text_document" --data_type "binidx" --vocab_size 50277 \ +--ctx_len 1024 --epoch_steps 200 --epoch_count 1000 --epoch_begin 0 --epoch_save 10 \ +--micro_bsz 8 --n_layer 24 --n_embd 2048 --pre_ffn 0 --head_qk 0 \ +--lr_init 1e-5 --lr_final 1e-5 --warmup_steps 0 --beta1 0.9 --beta2 0.999 --adam_eps 1e-8 \ +--accelerator gpu --devices 1 --precision bf16 --strategy deepspeed_stage_2_offload --grad_cp 1 +``` + +## TODO + +### 接入Instruction Tuning + +### 接入RLHF(Reinforcement Learning with Human Feedback) + + diff --git a/rwkv_command.txt b/rwkv_command.txt deleted file mode 100644 index 919220f..0000000 --- a/rwkv_command.txt +++ /dev/null @@ -1,25 +0,0 @@ -python train.py --load_model "RWKV-4-Pile-1B5-EngChn-test4-20230115.pth" --wandb "" --proj_dir "out" \ ---data_file "data/ask_text_document" --data_type "binidx" --vocab_size 50277 \ ---ctx_len 1024 --epoch_steps 200 --epoch_count 1000 --epoch_begin 0 --epoch_save 10 \ ---micro_bsz 8 --n_layer 24 --n_embd 2048 --pre_ffn 0 --head_qk 0 \ ---lr_init 1e-5 --lr_final 1e-5 --warmup_steps 0 --beta1 0.9 --beta2 0.999 --adam_eps 1e-8 \ ---accelerator gpu --devices 1 --precision bf16 --strategy deepspeed_stage_2_offload --grad_cp 1 - - - -python preprocess_data.py \ - --input ../data/data.txt \ - --output-prefix ../data/blog \ - --vocab ../20B_tokenizer.json \ - --dataset-impl mmap \ - --tokenizer-type HFTokenizer \ - --append-eod - - -python preprocess_data.py \ - --input ../data/ask.json \ - --output-prefix ../data/ask \ - --vocab ../20B_tokenizer.json \ - --dataset-impl mmap \ - --tokenizer-type HFTokenizer \ - --append-eod \ No newline at end of file -- GitLab