Replies: 6 comments 1 reply
-
onnx-explorer |
Beta Was this translation helpful? Give feedback.
-
已提取模型结构信息示例(以vgg16为例) |
Beta Was this translation helpful? Give feedback.
-
已经处理完的模型信息都在这里:https://github.com/isLinXu/house-of-model-cards/tree/main/model_cards 已经包含了detectron2、timm、torchvision、mmyolo、mmdet等全部模型信息,每一个模型都是通过pt权重转换成onnx文件,再通过onnx-explorer提取出来的; 后续应该还会持续将openmmlab全系列的模型,以及huggingface上的模型做一个类似的工作 同时已经导出的onnx文件已经全部上传至腾讯微云和百度网盘,这些onnx权重文件是可以直接拿去做模型推理和模型转换的; 另外针对openmmlab全系列模型的推理演示效果,已经跟mmlab合作,openxlab上构建了相应的webui-gradio,可以直接传入图片进行推理验证,这将有助于更多开发者和研究者,针对自己的需求进行模型选型,对应开源在这个repo:https://github.com/isLinXu/vision-process-webui 这是其中一个实例: |
Beta Was this translation helpful? Give feedback.
-
项目背景:
随着深度学习的发展,模型结构变得越来越多,且日益复杂,那么能不能借助一些工具,来将这些模型权重和信息提取出来,从而进一步进行模型结构优化与分析的相关工作呢,这个就是我们希望实现的。
在此项目中,我们将使用包含模型结构信息的JSON作为知识库,存储模型的信息。然后,我们将使用大语言模型来分析和设计模型结构。这个过程借鉴了神经结构搜索(NAS)的思想,自动化地搜索最优的神经网络结构。这将使我们能够更有效地理解和修改模型,同时也使模型能够更好地适应不同的应用场景。
功能设计:
基础:
进阶:
实现方案
利用大语言模型(LLM)实现神经网络结构搜索(NAS)可以分为以下几个步骤:
1、准备数据和任务:首先,需要为LLM提供一个具体的任务和相应的训练数据。这个任务可以是图像分类、语义分割或者文本生成等。确保训练数据具有足够的多样性和质量,以便LLM能够学习到有效的模式。
2、设计搜索空间:为了让LLM能够搜索神经网络结构,你需要定义一个搜索空间。搜索空间包括可选的网络层(如卷积层、全连接层、循环层等)、激活函数(如ReLU、tanh、sigmoid等)和其他超参数(如学习率、优化器等)。确保搜索空间足够丰富,以便LLM能够找到有效的组合。
3、编码和解码神经网络结构:将神经网络结构编码为LLM能够理解和生成的文本格式。这可以通过将网络结构表示为JSON、XML或其他结构化文本格式来实现。同时,需要实现一个解码器,将LLM生成的文本解码为实际的神经网络结构。
4、微调LLM:使用训练数据和任务,对LLM进行微调,使其能够理解如何生成有效的神经网络结构。在微调过程中,可以使用强化学习或其他优化方法来指导LLM生成更好的结构。
5、生成和评估候选结构:使用微调后的LLM生成一系列候选神经网络结构。然后,使用验证数据集对这些结构进行评估,以确定它们的性能。
6、选择最佳结构:根据评估结果,选择性能最好的神经网络结构。你可以通过多次迭代来优化结构,或者设置一个停止条件来确定最终结构。
7、训练和部署最佳结构:使用所选的最佳神经网络结构,使用全部训练数据进行训练,然后将训练好的模型部署到实际应用中。
通过这种方法,LLM可以实现神经网络结构搜索(NAS),帮助你找到针对特定任务的最优神经网络结构。
进度
现已完成工作:
(该工具详细可见以上链接,目前仍在优化迭代中,暂未进行推广)
进行中:
(由onnx-explorer转化生成的模型结构信息,后期会整理成知识库或数据集格式;
将众多模型的信息以model card的方式进行存储,并且使用纸牌元素进行排序与分类;
其中sota模型是joker,依次类推)
计划
由于模型纸牌屋中已处理完成一部分模型,如timm、torchvision、detectron2、mmyolo等,本次项目预计先整理成知识库,实现模型结构的问题及针对性优化建议;
说明
本项目仍在预研阶段,欢迎大家一起参与及讨论👏
可以在下方进行讨论👇
Beta Was this translation helpful? Give feedback.
All reactions