共计 2473 个字符,预计需要花费 7 分钟才能阅读完成。
Finetuner[1] 是一个基于云端的神经搜寻后果调优平台。Finetuner 简化了工作流程,解决了云端的复杂性和基础设施要求,使得神经网络的微调变得更容易,更疾速,更高效。有了 Finetuner,你能够很容易地进步预训练模型的性能,并且无需大量标签或低廉的硬件即可投入生产。
🌟 GitHub: https://github.com/finetuner 🧑🤝🧑 寰球社区: https://slack.jina.ai 📖 官网文档:https://finetuner.jina.ai/
本次公布涵盖了 Finetuner 版本 0.7.0,包含依赖 finetuner-api 0.4.10 和 finetuner-core 0.12.3。
此版本蕴含 2 个新性能、3 个重构、3 个谬误修复和 4 个文档改良。
新性能
🆕 反对 SphereFace 损失函数 (#664)
SphereFace 损失函数最后是为计算机视觉畛域的人脸识别工作设计的,Finetuner 反对它的两种变体 ArcFaceLoss 和 CosFaceLoss。SphereFace 损失函数通过将每个样本与每个类别 embedding 的中心点估计值进行比拟,晋升网络的角度特色的判断能力,而不是传统的通过最小化正样本对之间的间隔,并最大化负样本对之间的间隔来计算。
应用 Finetuner 时,你能够间接在 fit 函数的 loss 属性中指定损失函数的名称来应用,比方应用 ArcFaceLoss:
run = finetuner.fit(
...,
loss='ArcFaceLoss',
...)
为了跟踪并改良对跨批次的类中心点的预计,SphereFace 损失在训练期间须要减少一个额定的 optimizer。默认状况下,减少的 optimizer 与模型自身应用的 optimizer 雷同,但你能够应用 loss_optimizer 参数指定不同的 optimizer。
run = finetuner.fit(…, loss=’ArcFaceLoss’,+ loss_optimizer=’Adam’,+ loss_optimizer_options={‘weight_decay’: 0.01})
🆕 反对在之前的训练后果上持续训练(#668)
model_artifact 要应用此性能,您须要通过函数的参数设置要持续训练的模型的工件 ID fit:
如果用户想要在之前运行的模型的根底上进行微调,或者你想要在新退出的数据上持续训练,试试 Finetuner,你只须要通过 fit 函数的 model_artifact 参数设置模型的 artifact id 即可:
train_data = 'path/to/another/data.csv'
new_run = finetuner.fit(
model='efficientnet_b0',
train_data=train_data,
model_artifact=previous_run.artifact_id,)
⚙️ 重构
- 移除基于 ResNet 的 CLIP 模型(#662)
因为 基于 ResNet 的 CLIP 模型使用率较低,所以在 Finetuner 0.7.1 中咱们移除了该模型。 - 增加 EfficientNet B7 模型 (#662)
对于图像到图像搜寻工作,Finetuner 0.7.1 现已反对 EfficientNet B7 作为视觉骨干模型。 -
减少 cloud.jina.ai 的 CSV 文件上传大小
对于 Web UI 用户,Finetuner 0.7.1 中将上传文件的大小从 1MB 减少到 32MB。对于 Python 客户端用户,你们始终能够上传更大的数据集,不受此次更改的影响。🐞 Bug 修复
- 解决 MLFlow 回调中的依赖问题
最新版本的 SQLAlchemy 导致 MLFlow 在某些状况下回调出错,Finetuner 0.7.1 修复了这个问题。 - 避免谬误 num_items_per_class 参数引起的谬误
在某些状况下,你可能会以与其余配置不兼容的形式设置 num_items_per_class 参数,从而导致 Finetuner 运行失败,因为一些损失函数并不需要应用该参数。当初,num_items_per_class 参数只有在理论应用时才会进行验证,不须要该参数的损失函数会间接疏忽它。 -
解决 Jupyter Notebooks 中登录性能的问题 (#672)
有时在 Jupyter notebook 中调用 finetuner.login()时尽管显示登陆胜利,但 Finetuner 可能并没有正确运行。在之前的版本中,用户必须调用 finetuner.login(force=True) 能力确保正确登录,当初能够间接应用 finetuner.login(),无需 force 就能够失常应用。📗 文档改良
- 增加损失函数和池化的文档页面 (#664)
咱们在文档中增加了一个新页面,其中更具体地解释了几个损失函数和池化选项。
新增了一个文档页面,具体阐明损失函数和池化选项。 - 增加无关 Finetuner 文章的局部 (#669)
咱们在 README 中减少了一个文章列表,这些文章介绍了对于 Finetuner 的见解,并提供了在实践中应用 Finetuner 的实战经验。 - 为示例 CSV 文件增加文件夹 (#663)
你能够在 github.com/jina-ai/finetuner 里的示例训练数据集,用咱们曾经筹备好的数据进行训练。 -
校对整个文档以修复拼写错误和损坏的链接(#661,#666)
修改 Finetuner 文档中损坏的链接和拼写错误。🤟 贡献者
咱们要感激此版本的所有贡献者!
Wang Bo (@bwanglzu)
Louis Milliken (@LMMilliken)
Michael Günther (@guenthermi)
CatStark (@CatStark)
George Mastrapas (@gmastrapas)
Scott Martens (@scott-martens)
参考资料
[1] Finetuner: https://rebrand.ly/jina-ai-fi…