虽然最近的一年多通用大模型吸引了大部分人的注意力,但是相信很多人已经意识到任务导向的模型在现阶段仍有其不可替代的一面,而且这些模型在处理某些特定任务时具有更好的可靠性和更高的效率,特别是这些模型可以实现一些Agent/Tools来与LLM进行配合。虽然最近的一年多通用大模型吸引了大部分人的注意力,但是相信很多人已经意识到任务导向的模型在现阶段仍有其不可替代的一面,而且这些模型在处理某些特定任务时具有更好的可靠性和更高的效率,特别是这些模型可以实现一些Agent来与LLM进行配合。
任务导向的模型开发实际上不像LLM一样可以"一招鲜吃遍天",而是每个任务的模型都需要针对性的开发,而在工作中我们经常需要对深度神经网络模型进行快速实验,搜索最优结构和参数,并将最优模型进行部署,有时还需要做出demo进行验证.
首先是不同任务的开发实际上有很大一部分是重复的,而同一个任务的训练、预测、部署和demo这几个步骤的核心代码也是一致的,但是在实现上都需要一定的的改动,如果每个步骤都独立开发的话,会使得整个过程非常割裂,而这造成的代码冗余对于长期的代码维护是灾难性的。 DLK是一个使用lightning为Trainer,intc 为config管理系统的集模型训练、参数(架构)搜索、模型预测、模型部署和demo为一身,对于同一个模型实现这些功能只需要依赖一份代码,大大降低开发和维护成本.
Lightning +DLK使得你几乎不需要考虑设备和并行的问题,降低开发代码量
Intc+DLK为你提供了非常智能的config编辑体验,你可以像编写python代码一样的编写config文件。
同时DLK作为一个通用的训练框架,我们的各种训练技巧和增强方法也可以非常方便的用于不同的模型, 为此DLK内置了很多有用的组件。
除了基础组件之外,DLK还为主要的任务提供了丰富的示例,更多的示例会慢慢添加进来
下面是几个示例
快速超参数搜索
DLK提供非常方便的配置可以实现快速的超参数搜索,通过tensorboard方便的探索哪种参数组合具有更好的前景
这里展示的只是最简单的超参数搜索,实际上DLK还支持简单的架构搜索能力
Train、Predict、Server、Demo一次开发
通过DLK进行开发的模型可以同时完成训练、预测、API Server、Demo等多种功能,降低维护成本
Demo
DLK除了可以快速开发之外,还实现了非常多常见的任务,下面是用dlk的demo能力对其中的一些进行展示
More
更详细的文档请参考DLK Github 上的项目文档,有问题也欢迎提Issue 本项目花费好多个周末的时间,如果有帮助希望能帮忙点一个Star