原贴链接

我想要改进Llama视觉模型,以便能更好地根据截图生成基于Tailwind的HTML代码,所以我想进行一次微调。我认为这对很多经常将设计转换为HTML的程序员来说会很有帮助。结果:它并没有产生很好的结果。似乎比基础模型更差(或者一样差)。我使用了来自https://huggingface.co/datasets/HuggingFaceM4/WebSight的10000个样本进行训练。当我比较Llama基础模型和微调后的模型时,得到了以下结果:源图像:https://llminfo.image.fangd123.cn/images/k2humunqroxd1.png!/format/webp,提示:生成一个与此图像外观完全相同的网页代码。<|image|>,设置:do_sample = true,temperature = 0.7,top_p = 0.9,结果:https://preview.redd.it/9nqixw8gtoxd1.png?width = 653&format = png&auto = webp&s = 4c1c24e3a303cd56630212f5b383089715d9c571。步骤:我主要遵循了这个colab(https://colab.research.google.com/drive/16rV4yeYygdZUM5yFUSjRej6OM3pZp2s8?usp = sharing#scrollTo = ff925871)中的说明。我的导出模型在https://huggingface.co/pdufour/Llama - 3.2 - 11B - Vision - Instruct - WebSight。我的SFTrainer配置如下:num_samples = 10000,model_name = “fine - tuned - visionllama - 1”,os.environ[‘PYTORCH_CUDA_ALLOC_CONF’] = ‘max_split_size_mb:768,garbage_collection_threshold:0.8’,args = SFTConfig(…各种参数设置…),class LengthKnownIterableDataset定义(…代码内容…),dataset = LengthKnownIterableDataset(dataset, num_samples)。我的Lora配置如下:peft_config = LoraConfig(…各种参数设置…)。整个训练脚本在https://gist.github.com/pdufour/21f291e1d1e6f2fae65c9bdfe679a0ab。当我查看TS图时,它们是这样的:https://preview.redd.it/u57gcgfsioxd1.png?width = 1950&format = png&auto = webp&s = 6f49d76f21473518fc26496171bb451c538ccb7f,https://preview.redd.it/ygf4x2nuioxd1.png?width = 1948&format = png&auto = webp&s = 41409b991ebd1ccf41590c3f59276d423c42b192。关键指标:grad_norm: 0.2568,loss: 0.0791。问题:知道可能是什么问题吗?可能是:1. 11b参数模型永远不会产生好结果?2. 我的模型过拟合了?3. 我的样本不够?4. 其他原因?

讨论总结

原帖作者试图改进llama视觉模型来更好地根据截图生成基于tailwind的HTML,但微调结果不佳,分享了实验过程、结果对比、配置信息等并询问原因。评论者们从多个角度给出看法,包括模型过拟合、样本不足、LoRA配置错误等技术方面的原因,也有表达感谢、认可原帖分享价值等情感方面的回应,整体讨论氛围积极且充满建设性。

主要观点

  1. 👍 原模型微调失败可能与过拟合有关
    • 支持理由:如Quiet_Impostor指出理想数值与实际数值差距大,可能是过拟合;还有评论者提到损失曲线虽好但要检查评估损失,评估损失高可能过拟合。
    • 反对声音:无。
  2. 🔥 样本数量不足影响模型结果
    • 正方观点:Quiet_Impostor建议增加到3万或更多样本,认为样本少影响结果。
    • 反方观点:无。
  3. 💡 LoRA配置需要调整
    • 解释:Quiet_Impostor建议将lora_alpha设为128,r设为16;还有评论者提出Lora的r和alpha值较低,可以尝试提高这两个值并且针对更多层进行操作。
  4. 💡 训练耗时不正常可能是序列长度、批次大小和学习率的问题
    • 解释:Quiet_Impostor提出可检查这些方面,例如调整学习率为1e - 4,改变学习率调度器等。
  5. 💡 分享失败经验有助于共同学习
    • 解释:BuzzLightr感谢原帖分享失败的微调过程,认为这是大家共同学习的方式。

金句与有趣评论

  1. “😂 BuzzLightr:Thanks for sharing failed finetunes as well. This is how we learn together 🥰”
    • 亮点:以积极态度看待原帖分享失败经验,表达了共同学习的理念。
  2. “🤔 Quiet_Impostor: A big part of it definitely is overfitting.”
    • 亮点:直接指出模型表现不佳可能的重要原因是过拟合。
  3. “👀 Quiet_Impostor: If possible, I’d recommend increasing it to maybe 30k or more if possible.”
    • 亮点:针对样本数量不足给出具体的增加数量建议。
  4. “😎 你可以尝试增加那些(Lora的r和alpha)值。”
    • 亮点:简单直接地提出改善LoRA配置的建议。
  5. “👍 针对更多层进行Lora操作,这在我的案例中有极大改善。”
    • 亮点:分享个人经验来支持自己提出的改善模型的建议。

情感分析

总体情感倾向积极。主要分歧点较少,大家基本围绕模型微调失败的技术原因进行讨论,部分评论者表达对原帖分享行为的感激和认可。可能的原因是原帖分享的是技术相关内容,大家都在理性地探讨技术问题,同时原帖分享失败经验的行为也得到了积极的回应。

趋势与预测

  • 新兴话题:如果原帖作者按照建议调整模型后,可能会有后续关于调整后模型效果的讨论。
  • 潜在影响:对llama视觉模型的使用者在进行类似微调操作时有一定的参考价值,有助于他们避免同样的问题,提高模型微调的成功率。

详细内容:

《关于糟糕的 llama 3.2 视觉微调的热门讨论》

在 Reddit 上,有一个关于改进 llama 视觉模型以从截图生成 Tailwind 基础 HTML 的帖子引起了广泛关注。原帖作者分享了自己进行微调的经历,但结果并不理想,甚至不如基础模型。该帖获得了众多评论,大家纷纷发表看法。

讨论焦点与观点分析: 有人指出,问题很大一部分在于过拟合。过拟合意味着模型只能对训练数据做出有意义的响应,理想的损失值应在 1.5 左右,而非 0.07。而且样本数量不足也是一个关键因素,建议增加到 3 万或更多。还有人认为 LoRA 配置不太合理,比如可以将 lora_alpha 设置为 128,r 设置为 16。 有人提到,10k 样本的训练耗时 12 小时不太正常,可能需要检查序列长度和批量大小,学习率也可能过高,比如尝试调整为 1e-4。并且强调验证非常重要,要留出一部分数据集用于验证,还可以尝试将学习率调度器改为“余弦”,添加num_warmup_steps并设置为 100。 也有人认为,不能仅依赖普通损失,要查看验证损失,这对检测过拟合有极大帮助。还有人表示 10k 样本应每轮训练耗时 15 - 30 分钟。

有人提出,对于 lora 的配置,alpha = 128 和 rank = 16 可能不太合理,alpha 128 且 rank 64 可能更合适。还有人注意到原帖作者的 lora r 和 alpha 有点低,可以尝试提高,并且针对更多层使用 LoRA。

总的来说,大家对于改进这个模型提出了各种建议和分析,包括调整配置、增加样本数量、优化训练参数等。但最终如何解决问题,还需要原帖作者进一步尝试和探索。