{"id":19001302,"url":"https://github.com/oneflow-inc/oneflow-mlu-models","last_synced_at":"2026-06-19T12:32:32.605Z","repository":{"id":161512244,"uuid":"621111093","full_name":"Oneflow-Inc/oneflow-mlu-models","owner":"Oneflow-Inc","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-12T11:18:19.000Z","size":63,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-02-21T13:26:01.882Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oneflow-Inc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-30T02:30:30.000Z","updated_at":"2023-05-11T13:59:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"399d6235-2a29-4334-bd7f-52ffbd5a4353","html_url":"https://github.com/Oneflow-Inc/oneflow-mlu-models","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Oneflow-Inc/oneflow-mlu-models","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oneflow-Inc%2Foneflow-mlu-models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oneflow-Inc%2Foneflow-mlu-models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oneflow-Inc%2Foneflow-mlu-models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oneflow-Inc%2Foneflow-mlu-models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oneflow-Inc","download_url":"https://codeload.github.com/Oneflow-Inc/oneflow-mlu-models/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oneflow-Inc%2Foneflow-mlu-models/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34532253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T18:10:41.477Z","updated_at":"2026-06-19T12:32:32.580Z","avatar_url":"https://github.com/Oneflow-Inc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oneflow-mlu-models\n\n## 下载代码并安装\n\n```shell\ngit clone --recursive https://github.com/Oneflow-Inc/oneflow-mlu-models.git\ncd oneflow-mlu-models/libai\npip install pybind11\npip install -e .\n```\n\n\n\n## 模型列表\n\n* \u003ca href=\"#resnet50\"\u003eResNet50\u003c/a\u003e：在 MLU 370 上训练和评估ResNet50模型。\n\n* \u003ca href=\"#libai_gpt2\"\u003eLibai-GPT2\u003c/a\u003e ：在 MLU 370 上使用 GPT2 微调以及推理 StableDiffusion 的咒语。\n\n  \n\n## \u003ca id=\"resnet50\"\u003eResNet50\u003c/a\u003e\n\n切换路径到 oneflow-mlu-models/resnet50/。\n\n#### 准备数据集\n\n从 ImageNet 官网下载数据集，解压后存放在 /ssd/dataset/ImageNet/extract 目录下，如果您的 ImageNet 数据集在其他路径中存放，请在脚本后面指定数据集路径，详情见下方**其他选项**中描述。\n\n#### 训练\n\n训练默认使用 ImageNet 数据集，和 ResNet50 网络。\n\n- 单卡训练\n\n  ```shell\n  python3 main.py --channels-last\n  ```\n\n- 4卡 DDP 训练\n\n  ```shell\n  python3 -m oneflow.distributed.launch --nproc_per_node 4 main.py --multiprocessing-distributed --channels-last\n  ```\n\n#### 评估\n\n评估只需要在训练命令的基础上加上 `-e` 选项即可，此时会在 imagenet 的集上对模型进行评估。\n\n- 单卡评估\n\n  ```shell\n  python3 main.py --channels-last -e\n  ```\n\n- 4卡 DDP 评估\n\n  ```shell\n  python3 -m oneflow.distributed.launch --nproc_per_node 4 main.py --multiprocessing-distributed --channels-last -e\n  ```\n\n#### 推理benchmark\n\nbenchmark 模式下，模型会使用固定的数据只进行前向推理，该模式的目的是测试显卡的FLOPS。\n```shell\npython3 main.py --channels-last --benchmark\n```\n\n#### 其他选项\n- 如果需要更改网络，可以使用 `-a` 选项。例如要训练 ResNet18，则可以运行如下命令。可以支持 flowvision.models 中的网络。\n\n  ```shell\n  python3 main.py -a resnet18 --channels-last\n  ```\n\n- 如果 ImageNet 数据集没有放在 /ssd/dataset/ImageNet/extract 下，可以手动指定位置，例如\n\n  ```shell\n  python3 main.py /path/to/your/dataset/extract --channels-last\n  ```\n- 如果没有 ImageNet 数据集，可以使用 `--dummy` 来生成随机数据作为训练数据。\n\n  ```shell\n  python3 main.py -a resnet50 --channels-last --dummy\n  ```\n- 其他常用选项有：`-b` 设置 batch size，`-p` 设置多少 iter 输出一次日志，`--lr` 设置学习率等。详细操作可以阅读[文档](resnet50-imagenet/README.md)\n\n---\n\n## \u003ca id=\"libai_gpt2\"\u003eLibai-GPT2\u003c/a\u003e\n\n切换路径到 oneflow-mlu-models/libai/。\n\n#### 推理\n\nlibai的gpt2推理实现是在projects/MagicPrompt文件夹中，这个Magicprompt是我们自己用gpt2预训练后做推理的项目，用于将一个简单的句子转换成stable diffusion的咒语。\n\n下载模型和数据（ `wget https://oneflow-static.oss-cn-beijing.aliyuncs.com/oneflow-model.zip` ），并解压到当前目录，之后我们就可以用gpt2来生成咒语了。\n\n- 单卡推理\n\n  ```shell\n  python3 -m oneflow.distributed.launch projects/MagicPrompt/pipeline.py 1\n  ```\n\n- 4卡模型并行+流水并行推理\n\n  修改文件`libai/projects/MagicPrompt/pipeline.py`，将tensor_parallel和pipeline_parallel都设置为2，\n\n  ```python\n  data_parallel=1,\n  tensor_parallel=2,\n  pipeline_parallel=2,\n  ```\n\n  之后运行命令如下进行推理，\n\n  ```shell\n  python3 -m oneflow.distributed.launch --nproc_per_node 4 projects/MagicPrompt/pipeline.py\n  ```\n\n#### 训练微调\n\n下载数据集（`wget http://oneflow-public.oss-cn-beijing.aliyuncs.com/datasets/libai/magicprompt/magicprompt.zip`），并解压到当前目录。\n\n- 单卡训练\n\n  ```shell\n  bash tools/train.sh tools/train_net.py projects/MagicPrompt/configs/gpt2_training.py 1\n  ```\n\n- 4卡数据并行训练\n\n  修改文件`libai/projects/MagicPrompt/configs/gpt2_training.py`，将data_parallel_size设置为4。\n\n  ```python\n  data_parallel_size=4,\n  tensor_parallel_size=1,\n  pipeline_parallel_size=1,\n  ```\n\n  然后使用如下的命令进行训练：\n\n  ```shell\n  bash tools/train.sh tools/train_net.py projects/MagicPrompt/configs/gpt2_training.py 4\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foneflow-inc%2Foneflow-mlu-models","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foneflow-inc%2Foneflow-mlu-models","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foneflow-inc%2Foneflow-mlu-models/lists"}