ChatGLM3微调实践:PTuning_v2与LoRA效果对比及参数解析
微调过程中的参数设置问题
在ChatGLM3项目中进行PTuning_v2微调后,使用inference_hf.py进行推理时会出现一个关于max_new_tokens和max_length参数的警告信息。这个警告表明在文本生成过程中同时设置了max_new_tokens(默认512)和max_length(默认8192)两个参数,系统会优先采用max_new_tokens的设置。
实际上,这个警告对生成结果没有实质性影响,它只是提醒开发者注意参数设置的优先级。在大多数情况下,512个token的生成长度已经足够满足需求,如果确实需要更长的生成结果,可以显式地在推理脚本中调整max_new_tokens参数。
predict_with_generate参数详解
在微调配置文件中,predict_with_generate是一个关键参数,它决定了模型在预测时的行为模式:
-
当设置为true时,模型会使用生成模式进行预测,即像正常对话一样逐步生成文本输出,这种方式可以与微调数据集中的标签(label)进行对比评估。
-
当设置为false时,模型不会生成完整输出,而是直接计算预测结果与标签的差异。
这个参数主要影响评估阶段的行为,对于实际推理应用影响不大。在大多数微调场景下,建议保持默认设置(true),这样可以更直观地观察模型的生成效果。
PTuning_v2与LoRA微调效果对比
实践表明,在相同训练步数的情况下,LoRA微调方法往往比PTuning_v2获得更好的效果。这种现象在实际应用中很常见,主要原因包括:
-
参数更新方式不同:LoRA通过低秩适配器更新模型参数,保留了原始模型的大部分知识;而PTuning_v2主要依靠提示调优。
-
计算资源需求:PTuning_v2通常需要更少的计算资源,但可能牺牲一些性能。
-
任务适应性:对于某些特定任务,LoRA可能更容易捕捉到关键特征。
对于初学者来说,如果计算资源允许,可以优先尝试LoRA微调方法,它通常能更快地获得较好的效果。PTuning_v2则更适合资源受限或对模型改动要求较小的场景。
微调实践建议
-
参数调优:除了predict_with_generate外,还应关注learning_rate、batch_size等关键参数。
-
评估指标:不要只看损失值,还要人工检查生成结果的质量。
-
数据质量:确保微调数据集的质量和多样性,这对最终效果影响很大。
-
逐步尝试:可以先用小规模数据测试不同微调方法的效果,再决定最终方案。
通过理解这些关键参数和微调方法的差异,开发者可以更有效地使用ChatGLM3进行模型定制,获得更好的应用效果。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C083
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python056
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0135
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00