en1ak/ygo-lua-coder
0
数据构建
获取原始数据
- 下载中/日文卡片数据库:
cd ./cdb_cn
wget -O cards.cdb https://cdn02.moecube.com:444/ygopro-database/zh-CN/cards.cdb
cd ./cdb_jp
wget -O cards.cdb https://cdn02.moecube.com:444/ygopro-database/ja_JP/cards.cdb- 下载lua脚本:
git clone https://github.com/mycard/ygopro-scripts.git数据处理与格式
- 运行数据构造脚本:
python all_in_one.py- 最终生成的训练数据格式如下(JSONL,每行为一条训练样本):
instruction:
下面是卡片的信息,请根据这些信息生成lua脚本:{name},{desc},{tag},卡密为{id}output:
{code}训练集token总数约为20m,平均每条1k,最大token数3019
这里也提供可以直接使用的数据集:https://huggingface.co/datasets/en1ak/ygo_lua
模型微调
训练环境
- 基座模型: deepseek-coder-1.3b-instruct
- 训练脚本:官方
finetune_deepseekcoder.py - GPU:NVIDIA RTX 5090
训练参数
deepspeed finetune.py \
--model_name_or_path $MODEL_PATH \
--data_path $DATA_PATH \
--output_dir $OUTPUT_PATH \
--num_train_epochs 3 \
--model_max_length 4096 \
--per_device_train_batch_size 8 \
--per_device_eval_batch_size 1 \
--gradient_accumulation_steps 4 \
--evaluation_strategy "no" \
--save_strategy "epoch" \
--save_total_limit 5 \
--learning_rate 2e-5 \
--warmup_steps 10 \
--logging_steps 100 \
--lr_scheduler_type "cosine" \
--gradient_checkpointing True \
--report_to "tensorboard" \
--deepspeed configs/ds_config_zero3.json \
--bf16 True