强化学习专精模型训练-附件

TQT-s 1.0 是专门为强化学习训练过程所做的前置数据准备,又是针对前置数据准备开发的一套本地知识库积累系统。在本地知识库之上使用了自训练的强学学习模型DeepSeek-rl-Qwen2.5-0.5B作为本地知识库的专精推理模型,用于智能AI的高效回答。

对于强学学习模型的产生过程,具体可参考下面的示例:


一、本地训练 基本参数

训练数据:gsm8k-chinese

Base模型:Qwen2.5-0.5B-Instruct微调模型

配置:RTX-3090(CUDA驱动版本:12.6)

驱动版本要对应好

Conda:  Python 3.9.21, PIP依赖如下:

pip freeze > requirements.txt

absl-py==2.1.0

accelerate==1.3.0

aiohappyeyeballs==2.4.6

aiohttp==3.11.12

aiosignal==1.3.2

annotated-types==0.7.0

anyio==4.8.0

argon2-cffi==23.1.0

argon2-cffi-bindings==21.2.0

arrow==1.3.0

asttokens==3.0.0

async-lru==2.0.4

async-timeout==5.0.1

attrs==25.1.0

babel==2.17.0

beautifulsoup4==4.13.3

bleach==6.2.0

blinker==1.9.0

certifi==2025.1.31

cffi==1.17.1

charset-normalizer==3.4.1

click==8.1.8

colorama==0.4.6

comm==0.2.2

comtypes==1.4.9

contourpy==1.3.0

cycler==0.12.1

datasets==3.2.0

debugpy==1.8.12

decorator==5.1.1

defusedxml==0.7.1

dill==0.3.8

exceptiongroup==1.2.2

executing==2.2.0

fastjsonschema==2.21.1

filelock==3.17.0

Flask==3.1.0

Flask-Cors==5.0.0

fonttools==4.55.8

fqdn==1.5.1

frozenlist==1.5.0

fsspec==2024.9.0

grpcio==1.70.0

h11==0.14.0

httpcore==1.0.7

httpx==0.28.1

huggingface-hub==0.28.1

idna==3.10

importlib_metadata==8.6.1

importlib_resources==6.5.2

ipykernel==6.29.5

ipython==8.18.1

ipywidgets==8.1.5

isoduration==20.11.0

itsdangerous==2.2.0

jedi==0.19.2

Jinja2==3.1.5

json5==0.10.0

jsonpointer==3.0.0

jsonschema==4.23.0

jsonschema-specifications==2024.10.1

jupyter==1.1.1

jupyter-console==6.6.3

jupyter-events==0.12.0

jupyter-lsp==2.2.5

jupyter_client==8.6.3

jupyter_core==5.7.2

jupyter_server==2.15.0

jupyter_server_terminals==0.5.3

jupyterlab==4.3.5

jupyterlab_pygments==0.3.0

jupyterlab_server==2.27.3

jupyterlab_widgets==3.0.13

kiwisolver==1.4.7

lxml==5.3.0

Markdown==3.7

markdown-it-py==3.0.0

MarkupSafe==3.0.2

matplotlib==3.9.4

matplotlib-inline==0.1.7

mdurl==0.1.2

mistune==3.1.1

mpmath==1.3.0

multidict==6.1.0

multiprocess==0.70.16

nbclient==0.10.2

nbconvert==7.16.6

nbformat==5.10.4

nest-asyncio==1.6.0

networkx==3.2.1

notebook==7.3.2

notebook_shim==0.2.4

numpy==2.0.2

ollama==0.4.7

opencv-python==4.11.0.86

overrides==7.7.0

packaging==24.2

pandas==2.2.3

pandocfilters==1.5.1

parso==0.8.4

peft==0.14.0

pillow==11.1.0

platformdirs==4.3.6

prometheus_client==0.21.1

prompt_toolkit==3.0.50

propcache==0.2.1

protobuf==5.29.3

psutil==6.1.1

pure_eval==0.2.3

py-cpuinfo==9.0.0

pyarrow==19.0.0

PyAudio==0.2.14

pycparser==2.22

pydantic==2.10.6

pydantic_core==2.27.2

Pygments==2.19.1

PyMuPDF==1.25.3

pyparsing==3.2.1

PyPDF2==3.0.1

pypiwin32==223

python-dateutil==2.9.0.post0

python-docx==1.1.2

python-json-logger==3.2.1

pyttsx3==2.98

pytz==2025.1

pywin32==308

pywinpty==2.0.15

PyYAML==6.0.2

pyzmq==26.2.1

referencing==0.36.2

regex==2024.11.6

requests==2.32.3

rfc3339-validator==0.1.4

rfc3986-validator==0.1.1

rich==13.9.4

rpds-py==0.22.3

safetensors==0.5.2

scipy==1.13.1

seaborn==0.13.2

Send2Trash==1.8.3

six==1.17.0

sniffio==1.3.1

soupsieve==2.6

srt==3.5.3

stack-data==0.6.3

sympy==1.13.1

tensorboard==2.18.0

tensorboard-data-server==0.7.2

terminado==0.18.1

tinycss2==1.4.0

tkinterdnd2==0.4.2

tokenizers==0.21.0

tomli==2.2.1

torch==2.6.0+cu126

torchaudio==2.6.0+cu126

torchvision==0.21.0+cu126

tornado==6.4.2

tqdm==4.67.1

traitlets==5.14.3

transformers==4.48.3

trl==0.14.0

types-python-dateutil==2.9.0.20241206

typing_extensions==4.12.2

tzdata==2025.1

ultralytics==8.3.72

ultralytics-thop==2.0.14

uri-template==1.3.0

urllib3==2.3.0

vosk==0.3.45

wcwidth==0.2.13

webcolors==24.11.1

webencodings==0.5.1

websocket-client==1.8.0

websockets==14.2

Werkzeug==3.1.3

widgetsnbextension==4.0.13

xxhash==3.5.0

yarl==1.18.3

zipp==3.21.0

训练参数:下载链接文末自取

training_args = GRPOConfig(

output_dir=output_dir,

learning_rate=5e-6,

adam_beta1=0.9,

adam_beta2=0.99,

weight_decay=0.1,

warmup_ratio=0.1,

lr_scheduler_type='cosine',

logging_steps=1,

bf16=True,

per_device_train_batch_size=1,

gradient_accumulation_steps=4,

num_generations=16,

max_prompt_length=256,

max_completion_length=200,

num_train_epochs=1,

save_steps=100,

max_grad_norm=0.1,

log_on_each_node=False,

use_vllm=False,

report_to="tensorboard"

)

二、效果对比

训练8个小时,每100个epoch保存一次模型。总共10个生成模型。采用强化学习方式,效果从第200epoch以后,慢慢变差。因此测试模型采用第200个epoch的生成来做推理,主要考下面两个基本问题:

1. 树下一只猴,树上骑个猴,请问一共几只猴?

2. 如果A=3, B=4,请问A和B能不能构成一个直角三角形?第三边长是多少?

2.1 本地Ollama部署Qwen2.5:0.5B推理结果

题目1
题目2

2.2 经强化学习训练后的推理结果

题目1
题目2

对比结果来看,经过强化学习后的答案输出:

1. 开始往系统提示词<think><answer>的输出格式上靠

2. 开始对结果展现多维的思考输出,譬如:第二题不仅输出正确答案,还知道是直锐角三角形

虽然直角三角形另外两个角不是锐角那能是个啥?有点儿相当于说废话; 但对于AI而言,推理出错误答案的表现那真可谓是千奇百怪,因此输出正确答案的同时,还能保持住语境前后逻辑的一致性,这仍旧应该算是逻辑推理过程不输的结果。

总结下:0.5B的效果还是比较弱,我们可以换3B的模型试试强化学习,同时改进一下奖励函数。奖励函数的好坏直接决定强化学习模型是否足够优秀,这个也是最难的地方。因为:

1. 一开始你并没有足够的经验来确定“奖励函数”中的分值权重

2. 一开始你也并不知道奖励函数,应该囊括哪些方面,并进行约束。相互之间有多大的影响。

这可能就是DeepSeek强化学习理论中最精彩、最核心、最值得学习研究的部分吧!

三、代码及训练模型自取地址

Base模型下载地址:https://www.modelscope.cn/models/Qwen/Qwen2.5-0.5B-Instruct/files

训练数据源地址:https://hf-mirror.com/datasets/swulling/gsm8k_chinese

训练代码/模型 一键整合包下载地址:

链接:https://pan.quark.cn/s/2d72c7bdcdd5

提取码:vnUi

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容