From e19692dd4c216aace3bbc8f72c5e350d302a66f0 Mon Sep 17 00:00:00 2001 From: kamieyy Date: Mon, 28 Jul 2025 23:04:24 +0700 Subject: [PATCH 01/13] Added support for Whisper external model download --- script/get-ml-model-whisper/run.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 script/get-ml-model-whisper/run.sh diff --git a/script/get-ml-model-whisper/run.sh b/script/get-ml-model-whisper/run.sh new file mode 100644 index 000000000..f0e290b83 --- /dev/null +++ b/script/get-ml-model-whisper/run.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# Default checkpoint path +CHECKPOINT_PATH=${MLC_ML_MODEL_WHISPER_PATH:-whisper-large-v3} + +git lfs install + +if [ ! -d "$CHECKPOINT_PATH" ]; then + git clone https://huggingface.co/openai/whisper-large-v3 "$CHECKPOINT_PATH" +fi + +cd "${CHECKPOINT_PATH}" +git checkout 06f233fe06e710322aca913c1bc4249a0d71fce1 From d7119a227fc621462eb04b2b33b337926a89dfbc Mon Sep 17 00:00:00 2001 From: kamieyy Date: Tue, 29 Jul 2025 10:11:37 +0700 Subject: [PATCH 02/13] Updated meta.yaml to align with repo structure and automation --- script/get-ml-model-whisper/meta.yaml | 116 ++++++++++++++------------ 1 file changed, 61 insertions(+), 55 deletions(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index bd7f4eaef..7ab434198 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -2,23 +2,78 @@ alias: get-ml-model-whisper automation_alias: script automation_uid: 5b4e0237da074764 cache: true +category: AI/ML models +env: + MLC_ML_MODEL_WEIGHT_TRANSFORMATIONS: 'no' + MLC_ML_MODEL_DATASET: whisper +input_mapping: + checkpoint: WHISPER_CHECKPOINT_PATH new_env_keys: -- MLC_ML_MODEL_WHISPER_PATH -- MLC_ML_MODEL_FILE_WITH_PATH +- MLC_ML_MODEL_* +- WHISPER_CHECKPOINT_PATH +- MLC_WHISPER_FINAL_SAFE_TENSORS_PATH print_env_at_the_end: - MLC_ML_MODEL_WHISPER_PATH: Whisper checkpoint path + WHISPER_CHECKPOINT_PATH: Whisper checkpoint path tags: - get-ml-model-whisper - get - ml-model - whisper +- speech-recognition tests: run_inputs: - variations_list: - - rclone,mlc,dry-run - - r2_downloader,mlc,dry-run + - huggingface,dry-run uid: 3bea2356e97f47b1 + +prehook_deps: +- enable_if_env: + MLC_TMP_REQUIRE_DOWNLOAD: + - 'yes' + MLC_DOWNLOAD_SRC: + - 'huggingface' + env: {} + extra_cache_tags: whisper + force_env_keys: + - MLC_GIT_CHECKOUT_FOLDER + names: + - hf-zoo + tags: get,ml-model,huggingface,zoo,_clone-repo + force_env_keys: + - MLC_OUTDIRNAME + variations: + fp32: + default: true + env: + MLC_ML_MODEL_INPUT_DATA_TYPES: fp32 + MLC_ML_MODEL_PRECISION: fp32 + MLC_ML_MODEL_WEIGHT_DATA_TYPES: fp32 + group: precision + + huggingface: + group: download-source + env: + MLC_DOWNLOAD_SRC: huggingface + + large-v3: + env: + MLC_GIT_CHECKOUT_FOLDER: whisper-large-v3 + group: model-size + default: true + default_variations: + huggingface-stub: openai/whisper-large-v3 + + openai/whisper-large-v3: + base: + - large-v3 + adr: + hf-zoo: + tags: _model-stub.openai/whisper-large-v3 + env: + MLC_MODEL_ZOO_ENV_KEY: WHISPER + group: huggingface-stub + dry-run: env: MLC_DOWNLOAD_MODE: dry @@ -28,53 +83,4 @@ variations: MLC_DOWNLOAD_EXTRA_OPTIONS: --dry-run dry-run,r2_downloader: env: - MLC_DOWNLOAD_EXTRA_OPTIONS: -x - mlc: - default: true - env: - MLC_DOWNLOAD_SRC: mlcommons - group: download-src - prehook_deps: - - enable_if_env: - MLC_TMP_REQUIRE_DOWNLOAD: - - 'yes' - env: - MLC_DOWNLOAD_FINAL_ENV_NAME: MLC_ML_MODEL_WHISPER_PATH - MLC_EXTRACT_FINAL_ENV_NAME: MLC_ML_MODEL_WHISPER_PATH - extra_cache_tags: ml,model,whisper - force_cache: true - force_env_keys: - - MLC_OUTDIRNAME - names: - - dae - tags: download-and-extract - update_tags_from_env_with_prefix: - _url.: - - MLC_DOWNLOAD_URL - rclone: - add_deps_recursive: - dae: - tags: _rclone - env: - MLC_DOWNLOAD_URL: 'mlc-inference:mlcommons-inference-wg-public/Whisper/model/' - prehook_deps: - - enable_if_env: - MLC_TMP_REQUIRE_DOWNLOAD: - - true - tags: get,rclone - - enable_if_env: - MLC_TMP_REQUIRE_DOWNLOAD: - - true - env: - MLC_RCLONE_DRIVE_FOLDER_ID: 17CpM5eU8tjrxh_LpH_BTNTeT37PhzcnC - force_cache: true - tags: get,rclone-config,_mlc-inference - default: true - group: download-tool - r2_downloader: - add_deps_recursive: - dae: - tags: _r2_downloader - env: - MLC_DOWNLOAD_URL: 'https://inference.mlcommons-storage.org/metadata/whisper-model.uri' - group: download-tool \ No newline at end of file + MLC_DOWNLOAD_EXTRA_OPTIONS: -x \ No newline at end of file From 3d79cb88f364c0a335bcab0557c319b699d79c9a Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Tue, 29 Jul 2025 23:20:36 +0700 Subject: [PATCH 03/13] Updated meta.yaml with requested changes --- script/get-ml-model-whisper/meta.yaml | 64 ++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index c83079ae7..3c15391fe 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -7,13 +7,12 @@ env: MLC_ML_MODEL_WEIGHT_TRANSFORMATIONS: 'no' MLC_ML_MODEL_DATASET: whisper input_mapping: - checkpoint: WHISPER_CHECKPOINT_PATH + checkpoint: MLC_ML_MODEL_WHISPER_PATH new_env_keys: -- MLC_ML_MODEL_* -- WHISPER_CHECKPOINT_PATH -- MLC_WHISPER_FINAL_SAFE_TENSORS_PATH +- MLC_ML_MODEL_WHISPER_PATH +- MLC_ML_MODEL_FILE_WITH_PATH print_env_at_the_end: - WHISPER_CHECKPOINT_PATH: Whisper checkpoint path + MLC_ML_MODEL_WHISPER_PATH: Whisper checkpoint path tags: - get-ml-model-whisper - get @@ -23,7 +22,9 @@ tags: tests: run_inputs: - variations_list: - - huggingface,dry-run + - rclone,mlc,dry-run + - r2-downloader,mlc,dry-run + - huggingface uid: 3bea2356e97f47b1 @@ -84,4 +85,53 @@ variations: MLC_DOWNLOAD_EXTRA_OPTIONS: --dry-run dry-run,r2-downloader: env: - MLC_DOWNLOAD_EXTRA_OPTIONS: -x \ No newline at end of file + MLC_DOWNLOAD_EXTRA_OPTIONS: -x + mlc: + default: true + env: + MLC_DOWNLOAD_SRC: mlcommons + group: download-src + prehook_deps: + - enable_if_env: + MLC_TMP_REQUIRE_DOWNLOAD: + - 'yes' + env: + MLC_DOWNLOAD_FINAL_ENV_NAME: MLC_ML_MODEL_WHISPER_PATH + MLC_EXTRACT_FINAL_ENV_NAME: MLC_ML_MODEL_WHISPER_PATH + extra_cache_tags: ml,model,whisper + force_cache: true + force_env_keys: + - MLC_OUTDIRNAME + names: + - whisper-model-dae + tags: download-and-extract + update_tags_from_env_with_prefix: + _url.: + - MLC_DOWNLOAD_URL + rclone: + adr: + whisper-model-dae: + tags: _rclone + env: + MLC_DOWNLOAD_URL: 'mlc-inference:mlcommons-inference-wg-public/Whisper/model/' + prehook_deps: + - enable_if_env: + MLC_TMP_REQUIRE_DOWNLOAD: + - true + tags: get,rclone + - enable_if_env: + MLC_TMP_REQUIRE_DOWNLOAD: + - true + env: + MLC_RCLONE_DRIVE_FOLDER_ID: 17CpM5eU8tjrxh_LpH_BTNTeT37PhzcnC + force_cache: true + tags: get,rclone-config,_mlc-inference + default: true + group: download-tool + r2-downloader: + adr: + whisper-model-dae: + tags: _r2-downloader + env: + MLC_DOWNLOAD_URL: 'https://inference.mlcommons-storage.org/metadata/whisper-model.uri' + group: download-tool From 179aaa0139759e63e13545c9525125903415bfc4 Mon Sep 17 00:00:00 2001 From: kamieyy Date: Tue, 29 Jul 2025 23:28:54 +0700 Subject: [PATCH 04/13] removed run.sh script --- script/get-ml-model-whisper/run.sh | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 script/get-ml-model-whisper/run.sh diff --git a/script/get-ml-model-whisper/run.sh b/script/get-ml-model-whisper/run.sh deleted file mode 100644 index f0e290b83..000000000 --- a/script/get-ml-model-whisper/run.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -e - -# Default checkpoint path -CHECKPOINT_PATH=${MLC_ML_MODEL_WHISPER_PATH:-whisper-large-v3} - -git lfs install - -if [ ! -d "$CHECKPOINT_PATH" ]; then - git clone https://huggingface.co/openai/whisper-large-v3 "$CHECKPOINT_PATH" -fi - -cd "${CHECKPOINT_PATH}" -git checkout 06f233fe06e710322aca913c1bc4249a0d71fce1 From 8b01f4c4efbcfff109d014621e42d878062f254a Mon Sep 17 00:00:00 2001 From: kamieyy Date: Tue, 29 Jul 2025 23:41:54 +0700 Subject: [PATCH 05/13] added validation for MLC_ML_MODEL_WHISPER_PATH in customize.py --- script/get-ml-model-whisper/customize.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/script/get-ml-model-whisper/customize.py b/script/get-ml-model-whisper/customize.py index 1a1ef7555..a0f46ab85 100644 --- a/script/get-ml-model-whisper/customize.py +++ b/script/get-ml-model-whisper/customize.py @@ -12,8 +12,26 @@ def preprocess(i): if os_info['platform'] == "windows": return {'return': 1, 'error': 'Script not supported in windows yet!'} - if env.get('MLC_ML_MODEL_WHISPER_PATH', '') == '': + checkpoint_path = env.get('MLC_ML_MODEL_WHISPER_PATH', '').strip() + + if checkpoint_path == '': env['MLC_TMP_REQUIRE_DOWNLOAD'] = "yes" + else: + # Normalize and expand the path + checkpoint_path = os.path.abspath(os.path.expanduser(checkpoint_path)) + env['MLC_ML_MODEL_WHISPER_PATH'] = checkpoint_path + + if not os.path.exists(checkpoint_path): + return { + 'return': 1, + 'error': f"Provided Whisper model path '{checkpoint_path}' does not exist." + } + + if not os.path.isdir(checkpoint_path): + return { + 'return': 1, + 'error': f"Provided Whisper model path '{checkpoint_path}' is not a directory." + } return {'return': 0} From 4934283ddfa8a798b41fcb075c301f5ebe6e2db9 Mon Sep 17 00:00:00 2001 From: kamieyy Date: Tue, 29 Jul 2025 23:42:12 +0700 Subject: [PATCH 06/13] fixed indentation issues --- script/get-ml-model-whisper/meta.yaml | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index 3c15391fe..cf48cbb9e 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -41,8 +41,8 @@ prehook_deps: names: - hf-zoo tags: get,ml-model,huggingface,zoo,_clone-repo - force_env_keys: - - MLC_OUTDIRNAME +- force_env_keys: + - MLC_OUTDIRNAME variations: fp32: @@ -54,7 +54,7 @@ variations: group: precision huggingface: - group: download-source + group: download-src env: MLC_DOWNLOAD_SRC: huggingface @@ -115,17 +115,17 @@ variations: env: MLC_DOWNLOAD_URL: 'mlc-inference:mlcommons-inference-wg-public/Whisper/model/' prehook_deps: - - enable_if_env: - MLC_TMP_REQUIRE_DOWNLOAD: - - true - tags: get,rclone - - enable_if_env: - MLC_TMP_REQUIRE_DOWNLOAD: - - true - env: - MLC_RCLONE_DRIVE_FOLDER_ID: 17CpM5eU8tjrxh_LpH_BTNTeT37PhzcnC - force_cache: true - tags: get,rclone-config,_mlc-inference + - enable_if_env: + MLC_TMP_REQUIRE_DOWNLOAD: + - true + tags: get,rclone + - enable_if_env: + MLC_TMP_REQUIRE_DOWNLOAD: + - true + env: + MLC_RCLONE_DRIVE_FOLDER_ID: 17CpM5eU8tjrxh_LpH_BTNTeT37PhzcnC + force_cache: true + tags: get,rclone-config,_mlc-inference default: true group: download-tool r2-downloader: From 943f23a50bd8448b4427be5ec5615ad5b1897bc0 Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Wed, 30 Jul 2025 12:04:56 +0700 Subject: [PATCH 07/13] added missing tags field to prehook_deps entry The automation framework automation/script/module.py dep_tags_list = dep.get('tags').split(",") expects every dependency to have a tags string, otherwise it throws an error. --- script/get-ml-model-whisper/meta.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index cf48cbb9e..b4f128bcd 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -43,7 +43,11 @@ prehook_deps: tags: get,ml-model,huggingface,zoo,_clone-repo - force_env_keys: - MLC_OUTDIRNAME + names: + - whisper-outdir-setup + tags: setup,ml-model + variations: fp32: default: true From 9c15ba7dcfb5d952f2fffd01f97fa063f5625466 Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Tue, 5 Aug 2025 11:06:40 +0700 Subject: [PATCH 08/13] Update meta.yaml removed - MLC_OUTDIRNAME names: - whisper-outdir-setup tags: setup,ml-model --- script/get-ml-model-whisper/meta.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index b4f128bcd..402b1908d 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -41,12 +41,6 @@ prehook_deps: names: - hf-zoo tags: get,ml-model,huggingface,zoo,_clone-repo -- force_env_keys: - - MLC_OUTDIRNAME - names: - - whisper-outdir-setup - tags: setup,ml-model - variations: fp32: From 417c23dac17937329c5fe3d2ea62d018ee30257f Mon Sep 17 00:00:00 2001 From: kamieyy Date: Tue, 5 Aug 2025 13:10:40 +0700 Subject: [PATCH 09/13] download models changed back to 'dae', cleaned prehook_deps and multiple defaults --- script/get-ml-model-whisper/meta.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index 402b1908d..3c1882575 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -41,7 +41,7 @@ prehook_deps: names: - hf-zoo tags: get,ml-model,huggingface,zoo,_clone-repo - + variations: fp32: default: true @@ -85,7 +85,6 @@ variations: env: MLC_DOWNLOAD_EXTRA_OPTIONS: -x mlc: - default: true env: MLC_DOWNLOAD_SRC: mlcommons group: download-src @@ -101,14 +100,14 @@ variations: force_env_keys: - MLC_OUTDIRNAME names: - - whisper-model-dae + - dae tags: download-and-extract update_tags_from_env_with_prefix: _url.: - MLC_DOWNLOAD_URL rclone: adr: - whisper-model-dae: + dae: tags: _rclone env: MLC_DOWNLOAD_URL: 'mlc-inference:mlcommons-inference-wg-public/Whisper/model/' @@ -128,7 +127,7 @@ variations: group: download-tool r2-downloader: adr: - whisper-model-dae: + dae: tags: _r2-downloader env: MLC_DOWNLOAD_URL: 'https://inference.mlcommons-storage.org/metadata/whisper-model.uri' From 53a5b047b1a84436a61b304ee7b1f95e2b0e1aa7 Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Wed, 6 Aug 2025 03:27:41 +0700 Subject: [PATCH 10/13] changed dependency name 'dae' to 'whisper-model-dae' for rclone and r2-downloader adr --- script/get-ml-model-whisper/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index 3c1882575..c8aef2f99 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -107,7 +107,7 @@ variations: - MLC_DOWNLOAD_URL rclone: adr: - dae: + whisper-model-dae: tags: _rclone env: MLC_DOWNLOAD_URL: 'mlc-inference:mlcommons-inference-wg-public/Whisper/model/' @@ -127,7 +127,7 @@ variations: group: download-tool r2-downloader: adr: - dae: + whisper-model-dae: tags: _r2-downloader env: MLC_DOWNLOAD_URL: 'https://inference.mlcommons-storage.org/metadata/whisper-model.uri' From 0de447d71598fe39d90c9a14cfef095776e69138 Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:52:17 +0700 Subject: [PATCH 11/13] set mlc as default download-src --- script/get-ml-model-whisper/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index c8aef2f99..075f1defe 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -85,6 +85,7 @@ variations: env: MLC_DOWNLOAD_EXTRA_OPTIONS: -x mlc: + default: true env: MLC_DOWNLOAD_SRC: mlcommons group: download-src From 5647b645a6045fc83324398a576a2632eec2fc34 Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:58:42 +0700 Subject: [PATCH 12/13] changed mlc dependency name to 'whisper-model-dae' --- script/get-ml-model-whisper/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index 075f1defe..7eabd926a 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -101,7 +101,7 @@ variations: force_env_keys: - MLC_OUTDIRNAME names: - - dae + - whisper-model-dae tags: download-and-extract update_tags_from_env_with_prefix: _url.: From 2f6e9d9f6fee112825b254b338989561f0f81485 Mon Sep 17 00:00:00 2001 From: Thaw Zin Htoo <112410262+kamieyy@users.noreply.github.com> Date: Wed, 6 Aug 2025 17:09:19 +0700 Subject: [PATCH 13/13] comment out - huggingface --- script/get-ml-model-whisper/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/get-ml-model-whisper/meta.yaml b/script/get-ml-model-whisper/meta.yaml index 7eabd926a..c5cc34084 100644 --- a/script/get-ml-model-whisper/meta.yaml +++ b/script/get-ml-model-whisper/meta.yaml @@ -24,7 +24,7 @@ tests: - variations_list: - rclone,mlc,dry-run - r2-downloader,mlc,dry-run - - huggingface + # - huggingface uid: 3bea2356e97f47b1