基于tiny-llama2训练

数据集选择

这里以广告文案生成数据为例,数据集链接:AdvertiseGen

下载数据集

针对数据集训练词表

使用SentencePieceTokenizer,llama2原来的Tokenizer对中文支持不好,不能直接使用。这里需要针对数据集训练出自己的词表。

下载编译SentencePiece

git clone https://github.com/google/sentencepiece.git 
cd sentencepiece
mkdir build
cd build
cmake ..
make -j 8
cd src
ls

整理训练数据

将数据集的csv数据文件按行整理

python advertise.py build_train

训练分词模型

./spm_train --input=../../../llama2.c/advertise_train.txt --model_prefix=./advertise --vocab_size=32000 --character_coverage=0.9995 --model_type=bpe --unk_id 0 --bos_id 1 --eos_id 2 --pad_id 3

模型训练

pre-train

stf

reward

训练数据中包含:question, response_chosen, response_rejected

  • 将 question + response_chosen 拼接为 chonsen_input
  • 将 question + response_rejected 拼接为 rejected_input

将两个输入分别放进模型推理,得到的输出作差,然后取-sigmoid作为loss




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Google Stitch 体验:解决 CC 写 UI 的痛
  • MNN 任务实测:七个模型,三个梯队
  • MiMo-V2-Pro 测评:同一模型,两种结局
  • 如何设计端侧高性能 Tokenizer?MNN 重构实践与思考
  • MiniMax-M2.7 实测:离 Claude 还有多远?