From 599b80221705fd059edce81efcc8446e97c0187b Mon Sep 17 00:00:00 2001 From: Mateusz Sluszniak Date: Mon, 9 Jun 2025 19:01:47 +0200 Subject: [PATCH 1/6] Refactor model URL constants --- .cspell-wordlist.txt | 2 + .../src/constants/modelUrls.ts | 295 ++++++++---------- 2 files changed, 131 insertions(+), 166 deletions(-) diff --git a/.cspell-wordlist.txt b/.cspell-wordlist.txt index 6507c48c27..e6e7daf98b 100644 --- a/.cspell-wordlist.txt +++ b/.cspell-wordlist.txt @@ -52,3 +52,5 @@ MPNET QINT FNUZ wordlist +coreml +mobilenetv diff --git a/packages/react-native-executorch/src/constants/modelUrls.ts b/packages/react-native-executorch/src/constants/modelUrls.ts index b7e83f4798..bc6c33d523 100644 --- a/packages/react-native-executorch/src/constants/modelUrls.ts +++ b/packages/react-native-executorch/src/constants/modelUrls.ts @@ -1,196 +1,159 @@ import { Platform } from 'react-native'; -// LLM's - -// LLAMA 3.2 -export const LLAMA3_2_3B = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/llama-3.2-3B/original/llama3_2_3B_bf16.pte'; -export const LLAMA3_2_3B_QLORA = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/llama-3.2-3B/QLoRA/llama3_2-3B_qat_lora.pte'; -export const LLAMA3_2_3B_SPINQUANT = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/llama-3.2-3B/spinquant/llama3_2_3B_spinquant.pte'; -export const LLAMA3_2_1B = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/llama-3.2-1B/original/llama3_2_bf16.pte'; -export const LLAMA3_2_1B_QLORA = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/llama-3.2-1B/QLoRA/llama3_2_qat_lora.pte'; -export const LLAMA3_2_1B_SPINQUANT = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/llama-3.2-1B/spinquant/llama3_2_spinquant.pte'; -export const LLAMA3_2_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/tokenizer.json'; -export const LLAMA3_2_TOKENIZER_CONFIG = - 'https://huggingface.co/software-mansion/react-native-executorch-llama-3.2/resolve/v0.4.0/tokenizer_config.json'; - -// QWEN 3 -export const QWEN3_0_6B = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/qwen-3-0.6B/original/qwen3_0_6b_bf16.pte'; -export const QWEN3_0_6B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/qwen-3-0.6B/quantized/qwen3_0_6b_8da4w.pte'; -export const QWEN3_1_7B = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/qwen-3-1.7B/original/qwen3_1_7b_bf16.pte'; -export const QWEN3_1_7B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/qwen-3-1.7B/quantized/qwen3_1_7b_8da4w.pte'; -export const QWEN3_4B = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/qwen-3-4B/original/qwen3_4b_bf16.pte'; -export const QWEN3_4B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/qwen-3-4B/quantized/qwen3_4b_8da4w.pte'; -export const QWEN3_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/tokenizer.json'; -export const QWEN3_TOKENIZER_CONFIG = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-3/resolve/v0.4.0/tokenizer_config.json'; - -// HAMMER 2.1 -export const HAMMER2_1_0_5B = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/hammer-2.1-0.5B/original/hammer2_1_0_5B_bf16.pte'; -export const HAMMER2_1_0_5B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/hammer-2.1-0.5B/quantized/hammer2_1_0_5B_8da4w.pte'; -export const HAMMER2_1_1_5B = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/hammer-2.1-1.5B/original/hammer2_1_1_5B_bf16.pte'; -export const HAMMER2_1_1_5B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/hammer-2.1-1.5B/quantized/hammer2_1_1_5B_8da4w.pte'; -export const HAMMER2_1_3B = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/hammer-2.1-3B/original/hammer2_1_3B_bf16.pte'; -export const HAMMER2_1_3B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/hammer-2.1-3B/quantized/hammer2_1_3B_8da4w.pte'; -export const HAMMER2_1_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/tokenizer.json'; -export const HAMMER2_1_TOKENIZER_CONFIG = - 'https://huggingface.co/software-mansion/react-native-executorch-hammer-2.1/resolve/v0.4.0/tokenizer_config.json'; - -// SMOLLM2 -export const SMOLLM2_1_135M = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/smolLm-2-135M/original/smolLm2_135M_bf16.pte'; -export const SMOLLM2_1_135M_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte'; -export const SMOLLM2_1_360M = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/smolLm-2-360M/original/smolLm2_360M_bf16.pte'; -export const SMOLLM2_1_360M_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/smolLm-2-360M/quantized/smolLm2_360M_8da4w.pte'; -export const SMOLLM2_1_1_7B = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/smolLm-2-1.7B/original/smolLm2_1_7B_bf16.pte'; -export const SMOLLM2_1_1_7B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/smolLm-2-1.7B/quantized/smolLm2_1_7B_8da4w.pte'; -export const SMOLLM2_1_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/tokenizer.json'; -export const SMOLLM2_1_TOKENIZER_CONFIG = - 'https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.4.0/tokenizer_config.json'; - -// QWEN 2.5 -export const QWEN2_5_0_5B = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/qwen-2.5-0.5B/original/qwen2_5_0_5b_bf16.pte'; -export const QWEN2_5_0_5B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/qwen-2.5-0.5B/quantized/qwen2_5_0_5b_8da4w.pte'; -export const QWEN2_5_1_5B = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/qwen-2.5-1.5B/original/qwen2_5_1_5b_bf16.pte'; -export const QWEN2_5_1_5B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/qwen-2.5-1.5B/quantized/qwen2_5_1_5b_8da4w.pte'; -export const QWEN2_5_3B = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/qwen-2.5-3B/original/qwen2_5_3b_bf16.pte'; -export const QWEN2_5_3B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/qwen-2.5-3B/quantized/qwen2_5_3b_8da4w.pte'; -export const QWEN2_5_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/tokenizer.json'; -export const QWEN2_5_TOKENIZER_CONFIG = - 'https://huggingface.co/software-mansion/react-native-executorch-qwen-2.5/resolve/v0.4.0/tokenizer_config.json'; - -// PHI 4 -export const PHI_4_MINI_4B = - 'https://huggingface.co/software-mansion/react-native-executorch-phi-4-mini/resolve/v0.4.0/original/phi-4-mini_bf16.pte'; -export const PHI_4_MINI_4B_QUANTIZED = - 'https://huggingface.co/software-mansion/react-native-executorch-phi-4-mini/resolve/v0.4.0/quantized/phi-4-mini_8da4w.pte'; -export const PHI_4_MINI_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-phi-4-mini/resolve/v0.4.0/tokenizer.json'; -export const PHI_4_MINI_TOKENIZER_CONFIG = - 'https://huggingface.co/software-mansion/react-native-executorch-phi-4-mini/resolve/v0.4.0/tokenizer_config.json'; +const BASE_URL_PREFIX = + 'https://huggingface.co/software-mansion/react-native-executorch'; +const VERSION_TAG = 'resolve/v0.4.0'; +const NEXT_DEV_VERSION_TAG = 'resolve/v0.5.0'; + +const isIOS = Platform.OS === `ios`; + +// LLM`s + +const LLAMA3_2_MODEL_NAME = 'llama-3.2'; +export const LLAMA3_2_3B = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/original/llama3_2_3B_bf16.pte`; +export const LLAMA3_2_3B_QLORA = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/QLoRA/llama3_2-3B_qat_lora.pte`; +export const LLAMA3_2_3B_SPINQUANT = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/spinquant/llama3_2_3B_spinquant.pte`; +export const LLAMA3_2_1B = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/original/llama3_2_bf16.pte`; +export const LLAMA3_2_1B_QLORA = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/QLoRA/llama3_2_qat_lora.pte`; +export const LLAMA3_2_1B_SPINQUANT = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/spinquant/llama3_2_spinquant.pte`; +export const LLAMA3_2_TOKENIZER = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +export const LLAMA3_2_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +const QWEN3_MODEL_NAME = 'qwen-3'; +export const QWEN3_0_6B = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-0.6B/original/qwen3_0_6b_bf16.pte`; +export const QWEN3_0_6B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-0.6B/quantized/qwen3_0_6b_8da4w.pte`; +export const QWEN3_1_7B = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-1.7B/original/qwen3_1_7b_bf16.pte`; +export const QWEN3_1_7B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-1.7B/quantized/qwen3_1_7b_8da4w.pte`; +export const QWEN3_4B = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-4B/original/qwen3_4b_bf16.pte`; +export const QWEN3_4B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-4B/quantized/qwen3_4b_8da4w.pte`; +export const QWEN3_TOKENIZER = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +export const QWEN3_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +const HAMMER2_1_MODEL_NAME = 'hammer-2.1'; +export const HAMMER2_1_0_5B = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-0.5B/original/hammer2_1_0_5B_bf16.pte`; +export const HAMMER2_1_0_5B_QUANTIZED = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-0.5B/quantized/hammer2_1_0_5B_8da4w.pte`; +export const HAMMER2_1_1_5B = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-1.5B/original/hammer2_1_1_5B_bf16.pte`; +export const HAMMER2_1_1_5B_QUANTIZED = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-1.5B/quantized/hammer2_1_1_5B_8da4w.pte`; +export const HAMMER2_1_3B = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-3B/original/hammer2_1_3B_bf16.pte`; +export const HAMMER2_1_3B_QUANTIZED = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-3B/quantized/hammer2_1_3B_8da4w.pte`; +export const HAMMER2_1_TOKENIZER = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +export const HAMMER2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +const SMOLLM2_MODEL_NAME = 'smolLm-2'; +export const SMOLLM2_1_135M = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-135M/original/smolLm2_135M_bf16.pte`; +export const SMOLLM2_1_135M_QUANTIZED = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte`; +export const SMOLLM2_1_360M = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-360M/original/smolLm2_360M_bf16.pte`; +export const SMOLLM2_1_360M_QUANTIZED = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-360M/quantized/smolLm2_360M_8da4w.pte`; +export const SMOLLM2_1_1_7B = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-1.7B/original/smolLm2_1_7B_bf16.pte`; +export const SMOLLM2_1_1_7B_QUANTIZED = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-1.7B/quantized/smolLm2_1_7B_8da4w.pte`; +export const SMOLLM2_1_TOKENIZER = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +export const SMOLLM2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +const QWEN2_5_MODEL_NAME = 'qwen-2.5'; +export const QWEN2_5_0_5B = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-0.5B/original/qwen2_5_0_5b_bf16.pte`; +export const QWEN2_5_0_5B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-0.5B/quantized/qwen2_5_0_5b_8da4w.pte`; +export const QWEN2_5_1_5B = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-1.5B/original/qwen2_5_1_5b_bf16.pte`; +export const QWEN2_5_1_5B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-1.5B/quantized/qwen2_5_1_5b_8da4w.pte`; +export const QWEN2_5_3B = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-3B/original/qwen2_5_3b_bf16.pte`; +export const QWEN2_5_3B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-3B/quantized/qwen2_5_3b_8da4w.pte`; +export const QWEN2_5_TOKENIZER = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +export const QWEN2_5_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +const PHI_4_MINI_MODEL_NAME = 'phi-4-mini'; +export const PHI_4_MINI_4B = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/original/phi-4-mini_bf16.pte`; +export const PHI_4_MINI_4B_QUANTIZED = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/quantized/phi-4-mini_8da4w.pte`; +export const PHI_4_MINI_TOKENIZER = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +export const PHI_4_MINI_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; // Classification +const EFFICIENTNET_V2_S_MODEL_NAME = 'efficientnet-v2-s'; export const EFFICIENTNET_V2_S = - Platform.OS === 'ios' - ? 'https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.4.0/coreml/efficientnet_v2_s_coreml_all.pte' - : 'https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.4.0/xnnpack/efficientnet_v2_s_xnnpack.pte'; + isIOS + ? `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/coreml/efficientnet_v2_s_coreml_all.pte` + : `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/xnnpack/efficientnet_v2_s_xnnpack.pte`; // Object detection -export const SSDLITE_320_MOBILENET_V3_LARGE = - 'https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.4.0/ssdlite320-mobilenetv3-large.pte'; +const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = 'ssdlite320-mobilenet-v3-large'; +export const SSDLITE_320_MOBILENET_V3_LARGE = `${BASE_URL_PREFIX}-${SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME}/${VERSION_TAG}/ssdlite320-mobilenetv3-large.pte`; // Style transfer +const STYLE_TRANSFER_CANDY_MODEL_NAME = 'style-transfer-candy'; export const STYLE_TRANSFER_CANDY = - Platform.OS === 'ios' - ? 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/v0.4.0/coreml/style_transfer_candy_coreml.pte' - : 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/v0.4.0/xnnpack/style_transfer_candy_xnnpack.pte'; + isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_CANDY_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_candy_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_CANDY_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_candy_xnnpack.pte`; + +const STYLE_TRANSFER_MOSAIC_MODEL_NAME = 'style-transfer-mosaic'; export const STYLE_TRANSFER_MOSAIC = - Platform.OS === 'ios' - ? 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-mosaic/resolve/v0.4.0/coreml/style_transfer_mosaic_coreml.pte' - : 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-mosaic/resolve/v0.4.0/xnnpack/style_transfer_mosaic_xnnpack.pte'; + isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_MOSAIC_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_mosaic_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_MOSAIC_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_mosaic_xnnpack.pte`; + +const STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME = 'style-transfer-rain-princess'; export const STYLE_TRANSFER_RAIN_PRINCESS = - Platform.OS === 'ios' - ? 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-rain-princess/resolve/v0.4.0/coreml/style_transfer_rain_princess_coreml.pte' - : 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-rain-princess/resolve/v0.4.0/xnnpack/style_transfer_rain_princess_xnnpack.pte'; + isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_rain_princess_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_rain_princess_xnnpack.pte`; + +const STYLE_TRANSFER_UDNIE_MODEL_NAME = 'style-transfer-udnie'; export const STYLE_TRANSFER_UDNIE = - Platform.OS === 'ios' - ? 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-udnie/resolve/v0.4.0/coreml/style_transfer_udnie_coreml.pte' - : 'https://huggingface.co/software-mansion/react-native-executorch-style-transfer-udnie/resolve/v0.4.0/xnnpack/style_transfer_udnie_xnnpack.pte'; + isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_UDNIE_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_udnie_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_UDNIE_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_udnie_xnnpack.pte`; // S2T -export const MOONSHINE_TINY_DECODER = - 'https://huggingface.co/software-mansion/react-native-executorch-moonshine-tiny/resolve/v0.4.0/xnnpack/moonshine_tiny_xnnpack_decoder.pte'; -export const MOONSHINE_TINY_ENCODER = - 'https://huggingface.co/software-mansion/react-native-executorch-moonshine-tiny/resolve/v0.4.0/xnnpack/moonshine_tiny_xnnpack_encoder.pte'; -export const MOONSHINE_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-moonshine-tiny/resolve/v0.4.0/moonshine_tiny_tokenizer.json'; -export const WHISPER_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.4.0/whisper_tokenizer.json'; -export const WHISPER_TINY_DECODER = - 'https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.4.0/xnnpack/whisper_tiny_en_xnnpack_decoder.pte'; -export const WHISPER_TINY_ENCODER = - 'https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.4.0/xnnpack/whisper_tiny_en_xnnpack_encoder.pte'; -export const WHISPER_TINY_MULTILINGUAL_ENCODER = - 'https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny/resolve/v0.4.0/xnnpack/xnnpack_whisper_encoder.pte'; -export const WHISPER_TINY_MULTILINGUAL_DECODER = - 'https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny/resolve/v0.4.0/xnnpack/xnnpack_whisper_decoder.pte'; -export const WHISPER_TINY_MULTILINGUAL_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny/resolve/v0.4.0/tokenizer.json'; +const MOONSHINE_TINY_MODEL_NAME = 'moonshine-tiny'; +export const MOONSHINE_TINY_ENCODER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/moonshine_tiny_xnnpack_encoder.pte`; +export const MOONSHINE_TINY_DECODER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/moonshine_tiny_xnnpack_decoder.pte`; +export const MOONSHINE_TOKENIZER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/moonshine_tiny_tokenizer.json`; + +const WHISPER_TINY_MODEL_NAME = 'whisper-tiny.en'; +export const WHISPER_TINY_ENCODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/whisper_tiny_en_xnnpack_encoder.pte`; +export const WHISPER_TINY_DECODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/whisper_tiny_en_xnnpack_decoder.pte`; +export const WHISPER_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/whisper_tokenizer.json`; + +const WHISPER_TINY_MULTILINGUAL_MODEL_NAME = 'whisper-tiny'; +export const WHISPER_TINY_MULTILINGUAL_ENCODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_whisper_encoder.pte`; +export const WHISPER_TINY_MULTILINGUAL_DECODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_whisper_decoder.pte`; +export const WHISPER_TINY_MULTILINGUAL_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; // OCR -export const DETECTOR_CRAFT_1280 = - 'https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.4.0/xnnpack/xnnpack_craft_1280.pte'; -export const DETECTOR_CRAFT_800 = - 'https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.4.0/xnnpack/xnnpack_craft_800.pte'; -export const DETECTOR_CRAFT_320 = - 'https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.4.0/xnnpack/xnnpack_craft_320.pte'; +const DETECTOR_CRAFT_MODEL_NAME = 'detector-craft'; +export const DETECTOR_CRAFT_1280 = `${BASE_URL_PREFIX}-${DETECTOR_CRAFT_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_craft_1280.pte`; +export const DETECTOR_CRAFT_800 = `${BASE_URL_PREFIX}-${DETECTOR_CRAFT_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_craft_800.pte`; +export const DETECTOR_CRAFT_320 = `${BASE_URL_PREFIX}-${DETECTOR_CRAFT_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_craft_320.pte`; // Image segmentation -export const DEEPLAB_V3_RESNET50 = - 'https://huggingface.co/software-mansion/react-native-executorch-deeplab-v3/resolve/v0.4.0/xnnpack/deeplabV3_xnnpack_fp32.pte'; +const DEEPLAB_V3_MODEL_NAME = 'deeplab-v3'; +export const DEEPLAB_V3_RESNET50 = `${BASE_URL_PREFIX}-${DEEPLAB_V3_MODEL_NAME}/${VERSION_TAG}/xnnpack/deeplabV3_xnnpack_fp32.pte`; // Image Embeddings +const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-image-encoder'; export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = - 'https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32-image-encoder/resolve/v0.5.0/clip-vit-base-patch32-image-encoder-float32.pte'; + `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; // Text Embeddings -export const ALL_MINILM_L6_V2 = - 'https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.4.0/all-MiniLM-L6-v2_xnnpack.pte'; -export const ALL_MINILM_L6_V2_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.4.0/tokenizer.json'; - -export const ALL_MPNET_BASE_V2 = - 'https://huggingface.co/software-mansion/react-native-executorch-all-mpnet-base-v2/resolve/v0.4.0/all-mpnet-base-v2_xnnpack.pte'; -export const ALL_MPNET_BASE_V2_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-all-mpnet-base-v2/resolve/v0.4.0/tokenizer.json'; - -export const MULTI_QA_MINILM_L6_COS_V1 = - 'https://huggingface.co/software-mansion/react-native-executorch-multi-qa-MiniLM-L6-cos-v1/resolve/v0.4.0/multi-qa-MiniLM-L6-cos-v1_xnnpack.pte'; -export const MULTI_QA_MINILM_L6_COS_V1_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-multi-qa-MiniLM-L6-cos-v1/resolve/v0.4.0/tokenizer.json'; - -export const MULTI_QA_MPNET_BASE_DOT_V1 = - 'https://huggingface.co/software-mansion/react-native-executorch-multi-qa-mpnet-base-dot-v1/resolve/v0.4.0/multi-qa-mpnet-base-dot-v1_xnnpack.pte'; -export const MULTI_QA_MPNET_BASE_DOT_V1_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-multi-qa-mpnet-base-dot-v1/resolve/v0.4.0/tokenizer.json'; +const ALL_MINILM_L6_V2_MODEL_NAME = 'all-MiniLM-L6-v2'; +export const ALL_MINILM_L6_V2 = `${BASE_URL_PREFIX}-${ALL_MINILM_L6_V2_MODEL_NAME}/${VERSION_TAG}/all-MiniLM-L6-v2_xnnpack.pte`; +export const ALL_MINILM_L6_V2_TOKENIZER = `${BASE_URL_PREFIX}-${ALL_MINILM_L6_V2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +const ALL_MPNET_BASE_V2_MODEL_NAME = 'all-mpnet-base-v2'; +export const ALL_MPNET_BASE_V2 = `${BASE_URL_PREFIX}-${ALL_MPNET_BASE_V2_MODEL_NAME}/${VERSION_TAG}/all-mpnet-base-v2_xnnpack.pte`; +export const ALL_MPNET_BASE_V2_TOKENIZER = `${BASE_URL_PREFIX}-${ALL_MPNET_BASE_V2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +const MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME = 'multi-qa-MiniLM-L6-cos-v1'; +export const MULTI_QA_MINILM_L6_COS_V1 = `${BASE_URL_PREFIX}-${MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-MiniLM-L6-cos-v1_xnnpack.pte`; +export const MULTI_QA_MINILM_L6_COS_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +const MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME = 'multi-qa-mpnet-base-dot-v1'; +export const MULTI_QA_MPNET_BASE_DOT_V1 = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-mpnet-base-dot-v1_xnnpack.pte`; +export const MULTI_QA_MPNET_BASE_DOT_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-text-encoder'; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = - 'https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32-text-encoder/resolve/v0.5.0/clip-vit-base-patch32-text-encoder-float32.pte'; + `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = - 'https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32-text-encoder/resolve/v0.5.0/tokenizer.json'; + `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER = { modelSource: CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL, From 09a754c20897006bae15fb4cf3d0c91483c883b5 Mon Sep 17 00:00:00 2001 From: Mateusz Sluszniak Date: Tue, 1 Jul 2025 19:51:44 +0200 Subject: [PATCH 2/6] Reformat file --- .../src/constants/modelUrls.ts | 53 +++++++++---------- 1 file changed, 24 insertions(+), 29 deletions(-) diff --git a/packages/react-native-executorch/src/constants/modelUrls.ts b/packages/react-native-executorch/src/constants/modelUrls.ts index bc6c33d523..cc36fa1bdd 100644 --- a/packages/react-native-executorch/src/constants/modelUrls.ts +++ b/packages/react-native-executorch/src/constants/modelUrls.ts @@ -67,39 +67,35 @@ export const PHI_4_MINI_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODE // Classification const EFFICIENTNET_V2_S_MODEL_NAME = 'efficientnet-v2-s'; -export const EFFICIENTNET_V2_S = - isIOS - ? `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/coreml/efficientnet_v2_s_coreml_all.pte` - : `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/xnnpack/efficientnet_v2_s_xnnpack.pte`; +export const EFFICIENTNET_V2_S = isIOS + ? `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/coreml/efficientnet_v2_s_coreml_all.pte` + : `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/xnnpack/efficientnet_v2_s_xnnpack.pte`; // Object detection -const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = 'ssdlite320-mobilenet-v3-large'; +const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = + 'ssdlite320-mobilenet-v3-large'; export const SSDLITE_320_MOBILENET_V3_LARGE = `${BASE_URL_PREFIX}-${SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME}/${VERSION_TAG}/ssdlite320-mobilenetv3-large.pte`; // Style transfer const STYLE_TRANSFER_CANDY_MODEL_NAME = 'style-transfer-candy'; -export const STYLE_TRANSFER_CANDY = - isIOS - ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_CANDY_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_candy_coreml.pte` - : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_CANDY_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_candy_xnnpack.pte`; +export const STYLE_TRANSFER_CANDY = isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_CANDY_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_candy_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_CANDY_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_candy_xnnpack.pte`; const STYLE_TRANSFER_MOSAIC_MODEL_NAME = 'style-transfer-mosaic'; -export const STYLE_TRANSFER_MOSAIC = - isIOS - ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_MOSAIC_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_mosaic_coreml.pte` - : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_MOSAIC_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_mosaic_xnnpack.pte`; +export const STYLE_TRANSFER_MOSAIC = isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_MOSAIC_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_mosaic_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_MOSAIC_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_mosaic_xnnpack.pte`; const STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME = 'style-transfer-rain-princess'; -export const STYLE_TRANSFER_RAIN_PRINCESS = - isIOS - ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_rain_princess_coreml.pte` - : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_rain_princess_xnnpack.pte`; +export const STYLE_TRANSFER_RAIN_PRINCESS = isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_rain_princess_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_RAIN_PRINCESS_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_rain_princess_xnnpack.pte`; const STYLE_TRANSFER_UDNIE_MODEL_NAME = 'style-transfer-udnie'; -export const STYLE_TRANSFER_UDNIE = - isIOS - ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_UDNIE_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_udnie_coreml.pte` - : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_UDNIE_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_udnie_xnnpack.pte`; +export const STYLE_TRANSFER_UDNIE = isIOS + ? `${BASE_URL_PREFIX}-${STYLE_TRANSFER_UDNIE_MODEL_NAME}/${VERSION_TAG}/coreml/style_transfer_udnie_coreml.pte` + : `${BASE_URL_PREFIX}-${STYLE_TRANSFER_UDNIE_MODEL_NAME}/${VERSION_TAG}/xnnpack/style_transfer_udnie_xnnpack.pte`; // S2T const MOONSHINE_TINY_MODEL_NAME = 'moonshine-tiny'; @@ -128,9 +124,9 @@ const DEEPLAB_V3_MODEL_NAME = 'deeplab-v3'; export const DEEPLAB_V3_RESNET50 = `${BASE_URL_PREFIX}-${DEEPLAB_V3_MODEL_NAME}/${VERSION_TAG}/xnnpack/deeplabV3_xnnpack_fp32.pte`; // Image Embeddings -const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-image-encoder'; -export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = - `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; +const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = + 'clip-vit-base-patch32-image-encoder'; +export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; // Text Embeddings const ALL_MINILM_L6_V2_MODEL_NAME = 'all-MiniLM-L6-v2'; @@ -149,11 +145,10 @@ const MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME = 'multi-qa-mpnet-base-dot-v1'; export const MULTI_QA_MPNET_BASE_DOT_V1 = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-mpnet-base-dot-v1_xnnpack.pte`; export const MULTI_QA_MPNET_BASE_DOT_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-text-encoder'; -export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = - `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; -export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = - `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = + 'clip-vit-base-patch32-text-encoder'; +export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; +export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER = { modelSource: CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL, From 3e6b0b9aff2857d88f6a1be40c28a01e878a6990 Mon Sep 17 00:00:00 2001 From: Mateusz Sluszniak <56299341+msluszniak@users.noreply.github.com> Date: Wed, 2 Jul 2025 16:29:54 +0200 Subject: [PATCH 3/6] Update modelUrls.ts --- .../src/constants/modelUrls.ts | 374 ++++++++++++++---- 1 file changed, 304 insertions(+), 70 deletions(-) diff --git a/packages/react-native-executorch/src/constants/modelUrls.ts b/packages/react-native-executorch/src/constants/modelUrls.ts index cc36fa1bdd..fbd058a85e 100644 --- a/packages/react-native-executorch/src/constants/modelUrls.ts +++ b/packages/react-native-executorch/src/constants/modelUrls.ts @@ -10,60 +10,252 @@ const isIOS = Platform.OS === `ios`; // LLM`s const LLAMA3_2_MODEL_NAME = 'llama-3.2'; -export const LLAMA3_2_3B = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/original/llama3_2_3B_bf16.pte`; -export const LLAMA3_2_3B_QLORA = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/QLoRA/llama3_2-3B_qat_lora.pte`; -export const LLAMA3_2_3B_SPINQUANT = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/spinquant/llama3_2_3B_spinquant.pte`; -export const LLAMA3_2_1B = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/original/llama3_2_bf16.pte`; -export const LLAMA3_2_1B_QLORA = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/QLoRA/llama3_2_qat_lora.pte`; -export const LLAMA3_2_1B_SPINQUANT = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/spinquant/llama3_2_spinquant.pte`; -export const LLAMA3_2_TOKENIZER = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -export const LLAMA3_2_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; +const LLAMA3_2_3B_MODEL = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/original/llama3_2_3B_bf16.pte`; +const LLAMA3_2_3B_QLORA_MODEL = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/QLoRA/llama3_2-3B_qat_lora.pte`; +const LLAMA3_2_3B_SPINQUANT_MODEL = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-3B/spinquant/llama3_2_3B_spinquant.pte`; +const LLAMA3_2_1B_MODEL = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/original/llama3_2_bf16.pte`; +const LLAMA3_2_1B_QLORA_MODEL = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/QLoRA/llama3_2_qat_lora.pte`; +const LLAMA3_2_1B_SPINQUANT_MODEL = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/llama-3.2-1B/spinquant/llama3_2_spinquant.pte`; +const LLAMA3_2_TOKENIZER = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const LLAMA3_2_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +export const LLAMA3_2_3B = { + modelSource: LLAMA3_2_3B_MODEL, + tokenizer: LLAMA3_2_TOKENIZER, + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG +}; + +export const LLAMA3_2_3B_QLORA = { + modelSource: LLAMA3_2_3B_QLORA_MODEL, + tokenizer: LLAMA3_2_TOKENIZER, + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG +}; + +export const LLAMA3_2_3B_SPINQUANT = { + modelSource: LLAMA3_2_3B_SPINQUANT_MODEL, + tokenizer: LLAMA3_2_TOKENIZER, + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG +}; + +export const LLAMA3_2_1B = { + modelSource: LLAMA3_2_1B_MODEL, + tokenizer: LLAMA3_2_TOKENIZER, + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG +}; + +export const LLAMA3_2_1B_QLORA = { + modelSource: LLAMA3_2_1B_QLORA_MODEL, + tokenizer: LLAMA3_2_TOKENIZER, + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG +}; + +export const LLAMA3_2_1B_SPINQUANT = { + modelSource: LLAMA3_2_1B_SPINQUANT_MODEL, + tokenizer: LLAMA3_2_TOKENIZER, + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG +}; const QWEN3_MODEL_NAME = 'qwen-3'; -export const QWEN3_0_6B = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-0.6B/original/qwen3_0_6b_bf16.pte`; -export const QWEN3_0_6B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-0.6B/quantized/qwen3_0_6b_8da4w.pte`; -export const QWEN3_1_7B = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-1.7B/original/qwen3_1_7b_bf16.pte`; -export const QWEN3_1_7B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-1.7B/quantized/qwen3_1_7b_8da4w.pte`; -export const QWEN3_4B = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-4B/original/qwen3_4b_bf16.pte`; -export const QWEN3_4B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-4B/quantized/qwen3_4b_8da4w.pte`; -export const QWEN3_TOKENIZER = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -export const QWEN3_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; +const QWEN3_0_6B_MODEL = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-0.6B/original/qwen3_0_6b_bf16.pte`; +const QWEN3_0_6B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-0.6B/quantized/qwen3_0_6b_8da4w.pte`; +const QWEN3_1_7B_MODEL = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-1.7B/original/qwen3_1_7b_bf16.pte`; +const QWEN3_1_7B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-1.7B/quantized/qwen3_1_7b_8da4w.pte`; +const QWEN3_4B_MODEL = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-4B/original/qwen3_4b_bf16.pte`; +const QWEN3_4B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/qwen-3-4B/quantized/qwen3_4b_8da4w.pte`; +const QWEN3_TOKENIZER = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const QWEN3_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +export const QWEN3_0_6B = { + modelSource: QWEN3_0_6B_MODEL, + tokenizer: QWEN3_TOKENIZER, + tokenizerConfig: QWEN3_TOKENIZER_CONFIG +}; + +export const QWEN3_0_6B_QUANTIZED = { + modelSource: QWEN3_0_6B_QUANTIZED_MODEL, + tokenizer: QWEN3_TOKENIZER, + tokenizerConfig: QWEN3_TOKENIZER_CONFIG +}; + +export const QWEN3_1_7B = { + modelSource: QWEN3_1_7B_MODEL, + tokenizer: QWEN3_TOKENIZER, + tokenizerConfig: QWEN3_TOKENIZER_CONFIG +}; + +export const QWEN3_1_7B_QUANTIZED = { + modelSource: QWEN3_1_7B_QUANTIZED_MODEL, + tokenizer: QWEN3_TOKENIZER, + tokenizerConfig: QWEN3_TOKENIZER_CONFIG +}; + +export const QWEN3_4B = { + modelSource: QWEN3_4B_MODEL, + tokenizer: QWEN3_TOKENIZER, + tokenizerConfig: QWEN3_TOKENIZER_CONFIG +}; + +export const QWEN3_4B_QUANTIZED = { + modelSource: QWEN3_4B_QUANTIZED_MODEL, + tokenizer: QWEN3_TOKENIZER, + tokenizerConfig: QWEN3_TOKENIZER_CONFIG +}; const HAMMER2_1_MODEL_NAME = 'hammer-2.1'; -export const HAMMER2_1_0_5B = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-0.5B/original/hammer2_1_0_5B_bf16.pte`; -export const HAMMER2_1_0_5B_QUANTIZED = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-0.5B/quantized/hammer2_1_0_5B_8da4w.pte`; -export const HAMMER2_1_1_5B = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-1.5B/original/hammer2_1_1_5B_bf16.pte`; -export const HAMMER2_1_1_5B_QUANTIZED = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-1.5B/quantized/hammer2_1_1_5B_8da4w.pte`; -export const HAMMER2_1_3B = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-3B/original/hammer2_1_3B_bf16.pte`; -export const HAMMER2_1_3B_QUANTIZED = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-3B/quantized/hammer2_1_3B_8da4w.pte`; -export const HAMMER2_1_TOKENIZER = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -export const HAMMER2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; +const HAMMER2_1_0_5B_MODEL = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-0.5B/original/hammer2_1_0_5B_bf16.pte`; +const HAMMER2_1_0_5B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-0.5B/quantized/hammer2_1_0_5B_8da4w.pte`; +const HAMMER2_1_1_5B_MODEL = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-1.5B/original/hammer2_1_1_5B_bf16.pte`; +const HAMMER2_1_1_5B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-1.5B/quantized/hammer2_1_1_5B_8da4w.pte`; +const HAMMER2_1_3B_MODEL = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-3B/original/hammer2_1_3B_bf16.pte`; +const HAMMER2_1_3B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/hammer-2.1-3B/quantized/hammer2_1_3B_8da4w.pte`; +const HAMMER2_1_TOKENIZER = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const HAMMER2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +export const HAMMER2_1_0_5B = { + modelSource: HAMMER2_1_0_5B_MODEL, + tokenizer: HAMMER2_1_TOKENIZER, + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG +}; + +export const HAMMER2_1_0_5B_QUANTIZED = { + modelSource: HAMMER2_1_0_5B_QUANTIZED_MODEL, + tokenizer: HAMMER2_1_TOKENIZER, + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG +}; + +export const HAMMER2_1_1_5B = { + modelSource: HAMMER2_1_1_5B_MODEL, + tokenizer: HAMMER2_1_TOKENIZER, + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG +}; + +export const HAMMER2_1_1_5B_QUANTIZED = { + modelSource: HAMMER2_1_1_5B_QUANTIZED_MODEL, + tokenizer: HAMMER2_1_TOKENIZER, + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG +}; + +export const HAMMER2_1_3B = { + modelSource: HAMMER2_1_3B_MODEL, + tokenizer: HAMMER2_1_TOKENIZER, + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG +}; + +export const HAMMER2_1_3B_QUANTIZED = { + modelSource: HAMMER2_1_3B_QUANTIZED_MODEL, + tokenizer: HAMMER2_1_TOKENIZER, + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG +}; const SMOLLM2_MODEL_NAME = 'smolLm-2'; -export const SMOLLM2_1_135M = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-135M/original/smolLm2_135M_bf16.pte`; -export const SMOLLM2_1_135M_QUANTIZED = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte`; -export const SMOLLM2_1_360M = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-360M/original/smolLm2_360M_bf16.pte`; -export const SMOLLM2_1_360M_QUANTIZED = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-360M/quantized/smolLm2_360M_8da4w.pte`; -export const SMOLLM2_1_1_7B = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-1.7B/original/smolLm2_1_7B_bf16.pte`; -export const SMOLLM2_1_1_7B_QUANTIZED = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-1.7B/quantized/smolLm2_1_7B_8da4w.pte`; -export const SMOLLM2_1_TOKENIZER = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -export const SMOLLM2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; +const SMOLLM2_1_135M_MODEL = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-135M/original/smolLm2_135M_bf16.pte`; +const SMOLLM2_1_135M_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte`; +const SMOLLM2_1_360M_MODEL = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-360M/original/smolLm2_360M_bf16.pte`; +const SMOLLM2_1_360M_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-360M/quantized/smolLm2_360M_8da4w.pte`; +const SMOLLM2_1_1_7B_MODEL = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-1.7B/original/smolLm2_1_7B_bf16.pte`; +const SMOLLM2_1_1_7B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/smolLm-2-1.7B/quantized/smolLm2_1_7B_8da4w.pte`; +const SMOLLM2_1_TOKENIZER = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const SMOLLM2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +export const SMOLLM2_1_135M = { + modelSource: SMOLLM2_1_135M_MODEL, + tokenizer: SMOLLM2_1_TOKENIZER, + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG +}; + +export const SMOLLM2_1_135M_QUANTIZED = { + modelSource: SMOLLM2_1_135M_QUANTIZED_MODEL, + tokenizer: SMOLLM2_1_TOKENIZER, + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG +}; + +export const SMOLLM2_1_360M = { + modelSource: SMOLLM2_1_360M_MODEL, + tokenizer: SMOLLM2_1_TOKENIZER, + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG +}; + +export const SMOLLM2_1_360M_QUANTIZED = { + modelSource: SMOLLM2_1_360M_QUANTIZED_MODEL, + tokenizer: SMOLLM2_1_TOKENIZER, + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG +}; + +export const SMOLLM2_1_1_7B = { + modelSource: SMOLLM2_1_1_7B_MODEL, + tokenizer: SMOLLM2_1_TOKENIZER, + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG +}; + +export const SMOLLM2_1_1_7B_QUANTIZED = { + modelSource: SMOLLM2_1_1_7B_QUANTIZED_MODEL, + tokenizer: SMOLLM2_1_TOKENIZER, + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG +}; const QWEN2_5_MODEL_NAME = 'qwen-2.5'; -export const QWEN2_5_0_5B = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-0.5B/original/qwen2_5_0_5b_bf16.pte`; -export const QWEN2_5_0_5B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-0.5B/quantized/qwen2_5_0_5b_8da4w.pte`; -export const QWEN2_5_1_5B = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-1.5B/original/qwen2_5_1_5b_bf16.pte`; -export const QWEN2_5_1_5B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-1.5B/quantized/qwen2_5_1_5b_8da4w.pte`; -export const QWEN2_5_3B = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-3B/original/qwen2_5_3b_bf16.pte`; -export const QWEN2_5_3B_QUANTIZED = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-3B/quantized/qwen2_5_3b_8da4w.pte`; -export const QWEN2_5_TOKENIZER = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -export const QWEN2_5_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; +const QWEN2_5_0_5B_MODEL = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-0.5B/original/qwen2_5_0_5b_bf16.pte`; +const QWEN2_5_0_5B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-0.5B/quantized/qwen2_5_0_5b_8da4w.pte`; +const QWEN2_5_1_5B_MODEL = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-1.5B/original/qwen2_5_1_5b_bf16.pte`; +const QWEN2_5_1_5B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-1.5B/quantized/qwen2_5_1_5b_8da4w.pte`; +const QWEN2_5_3B_MODEL = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-3B/original/qwen2_5_3b_bf16.pte`; +const QWEN2_5_3B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/qwen-2.5-3B/quantized/qwen2_5_3b_8da4w.pte`; +const QWEN2_5_TOKENIZER = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const QWEN2_5_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +export const QWEN2_5_0_5B = { + modelSource: QWEN2_5_0_5B_MODEL, + tokenizer: QWEN2_5_TOKENIZER, + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG +}; + +export const QWEN2_5_0_5B_QUANTIZED = { + modelSource: QWEN2_5_0_5B_QUANTIZED_MODEL, + tokenizer: QWEN2_5_TOKENIZER, + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG +}; + +export const QWEN2_5_1_5B = { + modelSource: QWEN2_5_1_5B_MODEL, + tokenizer: QWEN2_5_TOKENIZER, + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG +}; + +export const QWEN2_5_1_5B_QUANTIZED = { + modelSource: QWEN2_5_1_5B_QUANTIZED_MODEL, + tokenizer: QWEN2_5_TOKENIZER, + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG +}; + +export const QWEN2_5_3B = { + modelSource: QWEN2_5_3B_MODEL, + tokenizer: QWEN2_5_TOKENIZER, + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG +}; + +export const QWEN2_5_3B_QUANTIZED = { + modelSource: QWEN2_5_3B_QUANTIZED_MODEL, + tokenizer: QWEN2_5_TOKENIZER, + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG +}; const PHI_4_MINI_MODEL_NAME = 'phi-4-mini'; -export const PHI_4_MINI_4B = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/original/phi-4-mini_bf16.pte`; -export const PHI_4_MINI_4B_QUANTIZED = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/quantized/phi-4-mini_8da4w.pte`; -export const PHI_4_MINI_TOKENIZER = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; -export const PHI_4_MINI_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; +const PHI_4_MINI_4B_MODEL = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/original/phi-4-mini_bf16.pte`; +const PHI_4_MINI_4B_QUANTIZED_MODEL = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/quantized/phi-4-mini_8da4w.pte`; +const PHI_4_MINI_TOKENIZER = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const PHI_4_MINI_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME}/${VERSION_TAG}/tokenizer_config.json`; + +export const PHI_4_MINI_4B = { + modelSource: PHI_4_MINI_4B_MODEL, + tokenizer: PHI_4_MINI_TOKENIZER, + tokenizerConfig: PHI_4_MINI_TOKENIZER_CONFIG +}; + +export const PHI_4_MINI_4B_QUANTIZED = { + modelSource: PHI_4_MINI_4B_QUANTIZED_MODEL, + tokenizer: PHI_4_MINI_TOKENIZER, + tokenizerConfig: PHI_4_MINI_TOKENIZER +}; // Classification const EFFICIENTNET_V2_S_MODEL_NAME = 'efficientnet-v2-s'; @@ -72,8 +264,7 @@ export const EFFICIENTNET_V2_S = isIOS : `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/xnnpack/efficientnet_v2_s_xnnpack.pte`; // Object detection -const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = - 'ssdlite320-mobilenet-v3-large'; +const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = 'ssdlite320-mobilenet-v3-large'; export const SSDLITE_320_MOBILENET_V3_LARGE = `${BASE_URL_PREFIX}-${SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME}/${VERSION_TAG}/ssdlite320-mobilenetv3-large.pte`; // Style transfer @@ -99,19 +290,37 @@ export const STYLE_TRANSFER_UDNIE = isIOS // S2T const MOONSHINE_TINY_MODEL_NAME = 'moonshine-tiny'; -export const MOONSHINE_TINY_ENCODER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/moonshine_tiny_xnnpack_encoder.pte`; -export const MOONSHINE_TINY_DECODER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/moonshine_tiny_xnnpack_decoder.pte`; -export const MOONSHINE_TOKENIZER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/moonshine_tiny_tokenizer.json`; +const MOONSHINE_TINY_ENCODER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/moonshine_tiny_xnnpack_encoder.pte`; +const MOONSHINE_TINY_DECODER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/moonshine_tiny_xnnpack_decoder.pte`; +const MOONSHINE_TOKENIZER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${VERSION_TAG}/moonshine_tiny_tokenizer.json`; + +export const MOONSHINE_TINY = { + encoder: MOONSHINE_TINY_ENCODER, + decoder: MOONSHINE_TINY_DECODER, + tokenizer: MOONSHINE_TOKENIZER +}; const WHISPER_TINY_MODEL_NAME = 'whisper-tiny.en'; -export const WHISPER_TINY_ENCODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/whisper_tiny_en_xnnpack_encoder.pte`; -export const WHISPER_TINY_DECODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/whisper_tiny_en_xnnpack_decoder.pte`; -export const WHISPER_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/whisper_tokenizer.json`; +const WHISPER_TINY_ENCODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/whisper_tiny_en_xnnpack_encoder.pte`; +const WHISPER_TINY_DECODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/xnnpack/whisper_tiny_en_xnnpack_decoder.pte`; +const WHISPER_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSION_TAG}/whisper_tokenizer.json`; + +export const WHISPER_TINY = { + encoder: WHISPER_TINY_ENCODER, + decoder: WHISPER_TINY_DECODER, + tokenizer: WHISPER_TOKENIZER +}; const WHISPER_TINY_MULTILINGUAL_MODEL_NAME = 'whisper-tiny'; -export const WHISPER_TINY_MULTILINGUAL_ENCODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_whisper_encoder.pte`; -export const WHISPER_TINY_MULTILINGUAL_DECODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_whisper_decoder.pte`; -export const WHISPER_TINY_MULTILINGUAL_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const WHISPER_TINY_MULTILINGUAL_ENCODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_whisper_encoder.pte`; +const WHISPER_TINY_MULTILINGUAL_DECODER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/xnnpack/xnnpack_whisper_decoder.pte`; +const WHISPER_TINY_MULTILINGUAL_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MULTILINGUAL_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +export const WHISPER_TINY_MULTILINGUAL = { + encoder: WHISPER_TINY_MULTILINGUAL_ENCODER, + decoder: WHISPER_TINY_MULTILINGUAL_DECODER, + tokenizer: WHISPER_TINY_MULTILINGUAL_TOKENIZER +}; // OCR const DETECTOR_CRAFT_MODEL_NAME = 'detector-craft'; @@ -124,31 +333,56 @@ const DEEPLAB_V3_MODEL_NAME = 'deeplab-v3'; export const DEEPLAB_V3_RESNET50 = `${BASE_URL_PREFIX}-${DEEPLAB_V3_MODEL_NAME}/${VERSION_TAG}/xnnpack/deeplabV3_xnnpack_fp32.pte`; // Image Embeddings -const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = - 'clip-vit-base-patch32-image-encoder'; -export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; +const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-image-encoder'; +export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = + `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; // Text Embeddings const ALL_MINILM_L6_V2_MODEL_NAME = 'all-MiniLM-L6-v2'; -export const ALL_MINILM_L6_V2 = `${BASE_URL_PREFIX}-${ALL_MINILM_L6_V2_MODEL_NAME}/${VERSION_TAG}/all-MiniLM-L6-v2_xnnpack.pte`; -export const ALL_MINILM_L6_V2_TOKENIZER = `${BASE_URL_PREFIX}-${ALL_MINILM_L6_V2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const ALL_MINILM_L6_V2_MODEL = `${BASE_URL_PREFIX}-${ALL_MINILM_L6_V2_MODEL_NAME}/${VERSION_TAG}/all-MiniLM-L6-v2_xnnpack.pte`; +const ALL_MINILM_L6_V2_TOKENIZER = `${BASE_URL_PREFIX}-${ALL_MINILM_L6_V2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +export const ALL_MINILM_L6_V2 = { + modelSource: ALL_MINILM_L6_V2_MODEL, + tokenizerSource: ALL_MINILM_L6_V2_TOKENIZER, + meanPooling: false, +}; const ALL_MPNET_BASE_V2_MODEL_NAME = 'all-mpnet-base-v2'; -export const ALL_MPNET_BASE_V2 = `${BASE_URL_PREFIX}-${ALL_MPNET_BASE_V2_MODEL_NAME}/${VERSION_TAG}/all-mpnet-base-v2_xnnpack.pte`; -export const ALL_MPNET_BASE_V2_TOKENIZER = `${BASE_URL_PREFIX}-${ALL_MPNET_BASE_V2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const ALL_MPNET_BASE_V2_MODEL = `${BASE_URL_PREFIX}-${ALL_MPNET_BASE_V2_MODEL_NAME}/${VERSION_TAG}/all-mpnet-base-v2_xnnpack.pte`; +const ALL_MPNET_BASE_V2_TOKENIZER = `${BASE_URL_PREFIX}-${ALL_MPNET_BASE_V2_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +export const ALL_MPNET_BASE_V2 = { + modelSource: ALL_MPNET_BASE_V2_MODEL, + tokenizerSource: ALL_MPNET_BASE_V2_TOKENIZER, + meanPooling: false, +}; const MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME = 'multi-qa-MiniLM-L6-cos-v1'; -export const MULTI_QA_MINILM_L6_COS_V1 = `${BASE_URL_PREFIX}-${MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-MiniLM-L6-cos-v1_xnnpack.pte`; -export const MULTI_QA_MINILM_L6_COS_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const MULTI_QA_MINILM_L6_COS_V1_MODEL = `${BASE_URL_PREFIX}-${MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-MiniLM-L6-cos-v1_xnnpack.pte`; +const MULTI_QA_MINILM_L6_COS_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MINILM_L6_COS_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +export const MULTI_QA_MINILM_L6_COS_V1 = { + modelSource: MULTI_QA_MINILM_L6_COS_V1_MODEL, + tokenizerSource: MULTI_QA_MINILM_L6_COS_V1_TOKENIZER, + meanPooling: false, +}; const MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME = 'multi-qa-mpnet-base-dot-v1'; -export const MULTI_QA_MPNET_BASE_DOT_V1 = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-mpnet-base-dot-v1_xnnpack.pte`; -export const MULTI_QA_MPNET_BASE_DOT_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; +const MULTI_QA_MPNET_BASE_DOT_V1_MODEL = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/multi-qa-mpnet-base-dot-v1_xnnpack.pte`; +const MULTI_QA_MPNET_BASE_DOT_V1_TOKENIZER = `${BASE_URL_PREFIX}-${MULTI_QA_MPNET_BASE_DOT_V1_MODEL_NAME}/${VERSION_TAG}/tokenizer.json`; + +export const MULTI_QA_MPNET_BASE_DOT_V1 = { + modelSource: MULTI_QA_MPNET_BASE_DOT_V1_MODEL, + tokenizerSource: MULTI_QA_MPNET_BASE_DOT_V1_TOKENIZER, + meanPooling: false, +}; -const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = - 'clip-vit-base-patch32-text-encoder'; -export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; -export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-text-encoder'; +export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = + `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; +export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = + `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER = { modelSource: CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL, From 160558caa8b6c817dbb4c5b926502913c6e7036e Mon Sep 17 00:00:00 2001 From: Mateusz Sluszniak Date: Wed, 2 Jul 2025 17:23:17 +0200 Subject: [PATCH 4/6] Fix lint and usage of URLs --- .../src/constants/modelUrls.ts | 74 +++++++++---------- .../src/constants/sttDefaults.ts | 30 +++----- 2 files changed, 49 insertions(+), 55 deletions(-) diff --git a/packages/react-native-executorch/src/constants/modelUrls.ts b/packages/react-native-executorch/src/constants/modelUrls.ts index fbd058a85e..d19d6688f5 100644 --- a/packages/react-native-executorch/src/constants/modelUrls.ts +++ b/packages/react-native-executorch/src/constants/modelUrls.ts @@ -22,37 +22,37 @@ const LLAMA3_2_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${V export const LLAMA3_2_3B = { modelSource: LLAMA3_2_3B_MODEL, tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_3B_QLORA = { modelSource: LLAMA3_2_3B_QLORA_MODEL, tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_3B_SPINQUANT = { modelSource: LLAMA3_2_3B_SPINQUANT_MODEL, tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_1B = { modelSource: LLAMA3_2_1B_MODEL, tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_1B_QLORA = { modelSource: LLAMA3_2_1B_QLORA_MODEL, tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_1B_SPINQUANT = { modelSource: LLAMA3_2_1B_SPINQUANT_MODEL, tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG + tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, }; const QWEN3_MODEL_NAME = 'qwen-3'; @@ -68,37 +68,37 @@ const QWEN3_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION export const QWEN3_0_6B = { modelSource: QWEN3_0_6B_MODEL, tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG + tokenizerConfig: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_0_6B_QUANTIZED = { modelSource: QWEN3_0_6B_QUANTIZED_MODEL, tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG + tokenizerConfig: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_1_7B = { modelSource: QWEN3_1_7B_MODEL, tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG + tokenizerConfig: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_1_7B_QUANTIZED = { modelSource: QWEN3_1_7B_QUANTIZED_MODEL, tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG + tokenizerConfig: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_4B = { modelSource: QWEN3_4B_MODEL, tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG + tokenizerConfig: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_4B_QUANTIZED = { modelSource: QWEN3_4B_QUANTIZED_MODEL, tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG + tokenizerConfig: QWEN3_TOKENIZER_CONFIG, }; const HAMMER2_1_MODEL_NAME = 'hammer-2.1'; @@ -114,37 +114,37 @@ const HAMMER2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/$ export const HAMMER2_1_0_5B = { modelSource: HAMMER2_1_0_5B_MODEL, tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_0_5B_QUANTIZED = { modelSource: HAMMER2_1_0_5B_QUANTIZED_MODEL, tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_1_5B = { modelSource: HAMMER2_1_1_5B_MODEL, tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_1_5B_QUANTIZED = { modelSource: HAMMER2_1_1_5B_QUANTIZED_MODEL, tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_3B = { modelSource: HAMMER2_1_3B_MODEL, tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_3B_QUANTIZED = { modelSource: HAMMER2_1_3B_QUANTIZED_MODEL, tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG + tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, }; const SMOLLM2_MODEL_NAME = 'smolLm-2'; @@ -160,37 +160,37 @@ const SMOLLM2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${V export const SMOLLM2_1_135M = { modelSource: SMOLLM2_1_135M_MODEL, tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_135M_QUANTIZED = { modelSource: SMOLLM2_1_135M_QUANTIZED_MODEL, tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_360M = { modelSource: SMOLLM2_1_360M_MODEL, tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_360M_QUANTIZED = { modelSource: SMOLLM2_1_360M_QUANTIZED_MODEL, tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_1_7B = { modelSource: SMOLLM2_1_1_7B_MODEL, tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_1_7B_QUANTIZED = { modelSource: SMOLLM2_1_1_7B_QUANTIZED_MODEL, tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG + tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, }; const QWEN2_5_MODEL_NAME = 'qwen-2.5'; @@ -206,37 +206,37 @@ const QWEN2_5_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VER export const QWEN2_5_0_5B = { modelSource: QWEN2_5_0_5B_MODEL, tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_0_5B_QUANTIZED = { modelSource: QWEN2_5_0_5B_QUANTIZED_MODEL, tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_1_5B = { modelSource: QWEN2_5_1_5B_MODEL, tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_1_5B_QUANTIZED = { modelSource: QWEN2_5_1_5B_QUANTIZED_MODEL, tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_3B = { modelSource: QWEN2_5_3B_MODEL, tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_3B_QUANTIZED = { modelSource: QWEN2_5_3B_QUANTIZED_MODEL, tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG + tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, }; const PHI_4_MINI_MODEL_NAME = 'phi-4-mini'; @@ -248,13 +248,13 @@ const PHI_4_MINI_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME} export const PHI_4_MINI_4B = { modelSource: PHI_4_MINI_4B_MODEL, tokenizer: PHI_4_MINI_TOKENIZER, - tokenizerConfig: PHI_4_MINI_TOKENIZER_CONFIG + tokenizerConfig: PHI_4_MINI_TOKENIZER_CONFIG, }; export const PHI_4_MINI_4B_QUANTIZED = { modelSource: PHI_4_MINI_4B_QUANTIZED_MODEL, tokenizer: PHI_4_MINI_TOKENIZER, - tokenizerConfig: PHI_4_MINI_TOKENIZER + tokenizerConfig: PHI_4_MINI_TOKENIZER, }; // Classification @@ -297,7 +297,7 @@ const MOONSHINE_TOKENIZER = `${BASE_URL_PREFIX}-${MOONSHINE_TINY_MODEL_NAME}/${V export const MOONSHINE_TINY = { encoder: MOONSHINE_TINY_ENCODER, decoder: MOONSHINE_TINY_DECODER, - tokenizer: MOONSHINE_TOKENIZER + tokenizer: MOONSHINE_TOKENIZER, }; const WHISPER_TINY_MODEL_NAME = 'whisper-tiny.en'; @@ -308,7 +308,7 @@ const WHISPER_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_MODEL_NAME}/${VERSI export const WHISPER_TINY = { encoder: WHISPER_TINY_ENCODER, decoder: WHISPER_TINY_DECODER, - tokenizer: WHISPER_TOKENIZER + tokenizer: WHISPER_TOKENIZER, }; const WHISPER_TINY_MULTILINGUAL_MODEL_NAME = 'whisper-tiny'; @@ -319,7 +319,7 @@ const WHISPER_TINY_MULTILINGUAL_TOKENIZER = `${BASE_URL_PREFIX}-${WHISPER_TINY_M export const WHISPER_TINY_MULTILINGUAL = { encoder: WHISPER_TINY_MULTILINGUAL_ENCODER, decoder: WHISPER_TINY_MULTILINGUAL_DECODER, - tokenizer: WHISPER_TINY_MULTILINGUAL_TOKENIZER + tokenizer: WHISPER_TINY_MULTILINGUAL_TOKENIZER, }; // OCR @@ -379,9 +379,9 @@ export const MULTI_QA_MPNET_BASE_DOT_V1 = { }; const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-text-encoder'; -export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; -export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER = { diff --git a/packages/react-native-executorch/src/constants/sttDefaults.ts b/packages/react-native-executorch/src/constants/sttDefaults.ts index 647c9a1468..48613992a4 100644 --- a/packages/react-native-executorch/src/constants/sttDefaults.ts +++ b/packages/react-native-executorch/src/constants/sttDefaults.ts @@ -1,13 +1,7 @@ import { - MOONSHINE_TINY_ENCODER, - MOONSHINE_TINY_DECODER, - MOONSHINE_TOKENIZER, - WHISPER_TINY_ENCODER, - WHISPER_TINY_DECODER, - WHISPER_TOKENIZER, - WHISPER_TINY_MULTILINGUAL_ENCODER, - WHISPER_TINY_MULTILINGUAL_DECODER, - WHISPER_TINY_MULTILINGUAL_TOKENIZER, + MOONSHINE_TINY, + WHISPER_TINY, + WHISPER_TINY_MULTILINGUAL, } from './modelUrls'; import { AvailableModels, ModelConfig } from '../types/stt'; @@ -17,11 +11,11 @@ export const HAMMING_DIST_THRESHOLD = 1; const whisperTinyModelConfig = { sources: { - encoder: WHISPER_TINY_ENCODER, - decoder: WHISPER_TINY_DECODER, + encoder: WHISPER_TINY.encoder, + decoder: WHISPER_TINY.decoder, }, tokenizer: { - source: WHISPER_TOKENIZER, + source: WHISPER_TINY.tokenizer, bos: 50257, // FIXME: this is a placeholder and needs to be changed eos: 50256, // FIXME: this is a placeholder and needs to be changed }, @@ -30,11 +24,11 @@ const whisperTinyModelConfig = { const moonshineTinyModelConfig = { sources: { - encoder: MOONSHINE_TINY_ENCODER, - decoder: MOONSHINE_TINY_DECODER, + encoder: MOONSHINE_TINY.encoder, + decoder: MOONSHINE_TINY.decoder, }, tokenizer: { - source: MOONSHINE_TOKENIZER, + source: MOONSHINE_TINY.tokenizer, bos: 1, // FIXME: this is a placeholder and needs to be changed eos: 2, // FIXME: this is a placeholder and needs to be changed }, @@ -43,11 +37,11 @@ const moonshineTinyModelConfig = { const whisperTinyMultilingualModelConfig = { sources: { - encoder: WHISPER_TINY_MULTILINGUAL_ENCODER, - decoder: WHISPER_TINY_MULTILINGUAL_DECODER, + encoder: WHISPER_TINY_MULTILINGUAL.encoder, + decoder: WHISPER_TINY_MULTILINGUAL.decoder, }, tokenizer: { - source: WHISPER_TINY_MULTILINGUAL_TOKENIZER, + source: WHISPER_TINY_MULTILINGUAL.tokenizer, bos: 50258, // FIXME: this is a placeholder and needs to be changed eos: 50257, // FIXME: this is a placeholder and needs to be changed }, From 4bce7f62d09003b067e2530bdf6b27817fa35ba2 Mon Sep 17 00:00:00 2001 From: Mateusz Sluszniak Date: Wed, 2 Jul 2025 17:58:33 +0200 Subject: [PATCH 5/6] Add all corrections to demo apps --- apps/llm/app/llm/index.tsx | 13 +- apps/llm/app/llm_structured_output/index.tsx | 10 +- apps/llm/app/llm_tool_calling/index.tsx | 8 +- apps/llm/app/voice_chat/index.tsx | 8 +- .../app/text-embeddings/index.tsx | 12 +- .../src/constants/modelUrls.ts | 146 +++++++++--------- 6 files changed, 81 insertions(+), 116 deletions(-) diff --git a/apps/llm/app/llm/index.tsx b/apps/llm/app/llm/index.tsx index f59e9e6894..2a647b4adb 100644 --- a/apps/llm/app/llm/index.tsx +++ b/apps/llm/app/llm/index.tsx @@ -12,12 +12,7 @@ import { } from 'react-native'; import SendIcon from '../../assets/icons/send_icon.svg'; import Spinner from 'react-native-loading-spinner-overlay'; -import { - LLAMA3_2_1B_QLORA, - LLAMA3_2_TOKENIZER, - LLAMA3_2_TOKENIZER_CONFIG, - useLLM, -} from 'react-native-executorch'; +import { LLAMA3_2_1B_QLORA, useLLM } from 'react-native-executorch'; import PauseIcon from '../../assets/icons/pause_icon.svg'; import ColorPalette from '../../colors'; import Messages from '../../components/Messages'; @@ -35,11 +30,7 @@ function LLMScreen() { const textInputRef = useRef(null); const { setGlobalGenerating } = useContext(GeneratingContext); - const llm = useLLM({ - modelSource: LLAMA3_2_1B_QLORA, - tokenizerSource: LLAMA3_2_TOKENIZER, - tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, - }); + const llm = useLLM(LLAMA3_2_1B_QLORA); useEffect(() => { if (llm.error) { diff --git a/apps/llm/app/llm_structured_output/index.tsx b/apps/llm/app/llm_structured_output/index.tsx index dd6a7275be..c76fa51285 100644 --- a/apps/llm/app/llm_structured_output/index.tsx +++ b/apps/llm/app/llm_structured_output/index.tsx @@ -13,8 +13,6 @@ import { import SendIcon from '../../assets/icons/send_icon.svg'; import Spinner from 'react-native-loading-spinner-overlay'; import { - QWEN3_TOKENIZER, - QWEN3_TOKENIZER_CONFIG, useLLM, fixAndValidateStructuredOutput, getStructuredOutputPrompt, @@ -75,12 +73,8 @@ function LLMScreen() { const textInputRef = useRef(null); const { setGlobalGenerating } = useContext(GeneratingContext); - const llm = useLLM({ - // try out 4B model it this one struggles with following structured output - modelSource: QWEN3_1_7B_QUANTIZED, - tokenizerSource: QWEN3_TOKENIZER, - tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, - }); + // try out 4B model it this one struggles with following structured output + const llm = useLLM(QWEN3_1_7B_QUANTIZED); useEffect(() => { setGlobalGenerating(llm.isGenerating); diff --git a/apps/llm/app/llm_tool_calling/index.tsx b/apps/llm/app/llm_tool_calling/index.tsx index 5d5995f882..2caac8065b 100644 --- a/apps/llm/app/llm_tool_calling/index.tsx +++ b/apps/llm/app/llm_tool_calling/index.tsx @@ -15,8 +15,6 @@ import SendIcon from '../../assets/icons/send_icon.svg'; import Spinner from 'react-native-loading-spinner-overlay'; import { HAMMER2_1_1_5B, - HAMMER2_1_TOKENIZER, - HAMMER2_1_TOKENIZER_CONFIG, useLLM, DEFAULT_SYSTEM_PROMPT, } from 'react-native-executorch'; @@ -41,11 +39,7 @@ function LLMToolCallingScreen() { const textInputRef = useRef(null); const { setGlobalGenerating } = useContext(GeneratingContext); - const llm = useLLM({ - modelSource: HAMMER2_1_1_5B, - tokenizerSource: HAMMER2_1_TOKENIZER, - tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, - }); + const llm = useLLM(HAMMER2_1_1_5B); useEffect(() => { setGlobalGenerating(llm.isGenerating); diff --git a/apps/llm/app/voice_chat/index.tsx b/apps/llm/app/voice_chat/index.tsx index c4baaa9870..f86657281c 100644 --- a/apps/llm/app/voice_chat/index.tsx +++ b/apps/llm/app/voice_chat/index.tsx @@ -16,8 +16,6 @@ import { useSpeechToText, useLLM, QWEN3_0_6B_QUANTIZED, - QWEN3_TOKENIZER, - QWEN3_TOKENIZER_CONFIG, } from 'react-native-executorch'; import PauseIcon from '../../assets/icons/pause_icon.svg'; import MicIcon from '../../assets/icons/mic_icon.svg'; @@ -68,11 +66,7 @@ function VoiceChatScreen() { const messageRecorded = useRef(false); const { setGlobalGenerating } = useContext(GeneratingContext); - const llm = useLLM({ - modelSource: QWEN3_0_6B_QUANTIZED, - tokenizerSource: QWEN3_TOKENIZER, - tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, - }); + const llm = useLLM(QWEN3_0_6B_QUANTIZED); const speechToText = useSpeechToText({ modelName: 'moonshine', windowSize: 3, diff --git a/apps/text-embeddings/app/text-embeddings/index.tsx b/apps/text-embeddings/app/text-embeddings/index.tsx index 618a40bcc9..ddd8f7be9d 100644 --- a/apps/text-embeddings/app/text-embeddings/index.tsx +++ b/apps/text-embeddings/app/text-embeddings/index.tsx @@ -11,11 +11,7 @@ import { Platform, } from 'react-native'; import { Ionicons } from '@expo/vector-icons'; -import { - useTextEmbeddings, - ALL_MINILM_L6_V2, - ALL_MINILM_L6_V2_TOKENIZER, -} from 'react-native-executorch'; +import { useTextEmbeddings, ALL_MINILM_L6_V2 } from 'react-native-executorch'; import { useIsFocused } from '@react-navigation/native'; export default function TextEmbeddingsScreenWrapper() { @@ -25,11 +21,7 @@ export default function TextEmbeddingsScreenWrapper() { } function TextEmbeddingsScreen() { - const model = useTextEmbeddings({ - modelSource: ALL_MINILM_L6_V2, - tokenizerSource: ALL_MINILM_L6_V2_TOKENIZER, - meanPooling: true, - }); + const model = useTextEmbeddings(ALL_MINILM_L6_V2); const [inputSentence, setInputSentence] = useState(''); const [sentencesWithEmbeddings, setSentencesWithEmbeddings] = useState< diff --git a/packages/react-native-executorch/src/constants/modelUrls.ts b/packages/react-native-executorch/src/constants/modelUrls.ts index d19d6688f5..14944fe704 100644 --- a/packages/react-native-executorch/src/constants/modelUrls.ts +++ b/packages/react-native-executorch/src/constants/modelUrls.ts @@ -21,38 +21,38 @@ const LLAMA3_2_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${LLAMA3_2_MODEL_NAME}/${V export const LLAMA3_2_3B = { modelSource: LLAMA3_2_3B_MODEL, - tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, + tokenizerSource: LLAMA3_2_TOKENIZER, + tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_3B_QLORA = { modelSource: LLAMA3_2_3B_QLORA_MODEL, - tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, + tokenizerSource: LLAMA3_2_TOKENIZER, + tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_3B_SPINQUANT = { modelSource: LLAMA3_2_3B_SPINQUANT_MODEL, - tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, + tokenizerSource: LLAMA3_2_TOKENIZER, + tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_1B = { modelSource: LLAMA3_2_1B_MODEL, - tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, + tokenizerSource: LLAMA3_2_TOKENIZER, + tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_1B_QLORA = { modelSource: LLAMA3_2_1B_QLORA_MODEL, - tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, + tokenizerSource: LLAMA3_2_TOKENIZER, + tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, }; export const LLAMA3_2_1B_SPINQUANT = { modelSource: LLAMA3_2_1B_SPINQUANT_MODEL, - tokenizer: LLAMA3_2_TOKENIZER, - tokenizerConfig: LLAMA3_2_TOKENIZER_CONFIG, + tokenizerSource: LLAMA3_2_TOKENIZER, + tokenizerConfigSource: LLAMA3_2_TOKENIZER_CONFIG, }; const QWEN3_MODEL_NAME = 'qwen-3'; @@ -67,38 +67,38 @@ const QWEN3_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN3_MODEL_NAME}/${VERSION export const QWEN3_0_6B = { modelSource: QWEN3_0_6B_MODEL, - tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG, + tokenizerSource: QWEN3_TOKENIZER, + tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_0_6B_QUANTIZED = { modelSource: QWEN3_0_6B_QUANTIZED_MODEL, - tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG, + tokenizerSource: QWEN3_TOKENIZER, + tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_1_7B = { modelSource: QWEN3_1_7B_MODEL, - tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG, + tokenizerSource: QWEN3_TOKENIZER, + tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_1_7B_QUANTIZED = { modelSource: QWEN3_1_7B_QUANTIZED_MODEL, - tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG, + tokenizerSource: QWEN3_TOKENIZER, + tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_4B = { modelSource: QWEN3_4B_MODEL, - tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG, + tokenizerSource: QWEN3_TOKENIZER, + tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, }; export const QWEN3_4B_QUANTIZED = { modelSource: QWEN3_4B_QUANTIZED_MODEL, - tokenizer: QWEN3_TOKENIZER, - tokenizerConfig: QWEN3_TOKENIZER_CONFIG, + tokenizerSource: QWEN3_TOKENIZER, + tokenizerConfigSource: QWEN3_TOKENIZER_CONFIG, }; const HAMMER2_1_MODEL_NAME = 'hammer-2.1'; @@ -113,38 +113,38 @@ const HAMMER2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${HAMMER2_1_MODEL_NAME}/$ export const HAMMER2_1_0_5B = { modelSource: HAMMER2_1_0_5B_MODEL, - tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, + tokenizerSource: HAMMER2_1_TOKENIZER, + tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_0_5B_QUANTIZED = { modelSource: HAMMER2_1_0_5B_QUANTIZED_MODEL, - tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, + tokenizerSource: HAMMER2_1_TOKENIZER, + tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_1_5B = { modelSource: HAMMER2_1_1_5B_MODEL, - tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, + tokenizerSource: HAMMER2_1_TOKENIZER, + tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_1_5B_QUANTIZED = { modelSource: HAMMER2_1_1_5B_QUANTIZED_MODEL, - tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, + tokenizerSource: HAMMER2_1_TOKENIZER, + tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_3B = { modelSource: HAMMER2_1_3B_MODEL, - tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, + tokenizerSource: HAMMER2_1_TOKENIZER, + tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, }; export const HAMMER2_1_3B_QUANTIZED = { modelSource: HAMMER2_1_3B_QUANTIZED_MODEL, - tokenizer: HAMMER2_1_TOKENIZER, - tokenizerConfig: HAMMER2_1_TOKENIZER_CONFIG, + tokenizerSource: HAMMER2_1_TOKENIZER, + tokenizerConfigSource: HAMMER2_1_TOKENIZER_CONFIG, }; const SMOLLM2_MODEL_NAME = 'smolLm-2'; @@ -159,38 +159,38 @@ const SMOLLM2_1_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${SMOLLM2_MODEL_NAME}/${V export const SMOLLM2_1_135M = { modelSource: SMOLLM2_1_135M_MODEL, - tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, + tokenizerSource: SMOLLM2_1_TOKENIZER, + tokenizerConfigSource: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_135M_QUANTIZED = { modelSource: SMOLLM2_1_135M_QUANTIZED_MODEL, - tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, + tokenizerSource: SMOLLM2_1_TOKENIZER, + tokenizerConfigSource: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_360M = { modelSource: SMOLLM2_1_360M_MODEL, - tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, + tokenizerSource: SMOLLM2_1_TOKENIZER, + tokenizerConfigSource: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_360M_QUANTIZED = { modelSource: SMOLLM2_1_360M_QUANTIZED_MODEL, - tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, + tokenizerSource: SMOLLM2_1_TOKENIZER, + tokenizerConfigSource: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_1_7B = { modelSource: SMOLLM2_1_1_7B_MODEL, - tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, + tokenizerSource: SMOLLM2_1_TOKENIZER, + tokenizerConfigSource: SMOLLM2_1_TOKENIZER_CONFIG, }; export const SMOLLM2_1_1_7B_QUANTIZED = { modelSource: SMOLLM2_1_1_7B_QUANTIZED_MODEL, - tokenizer: SMOLLM2_1_TOKENIZER, - tokenizerConfig: SMOLLM2_1_TOKENIZER_CONFIG, + tokenizerSource: SMOLLM2_1_TOKENIZER, + tokenizerConfigSource: SMOLLM2_1_TOKENIZER_CONFIG, }; const QWEN2_5_MODEL_NAME = 'qwen-2.5'; @@ -205,38 +205,38 @@ const QWEN2_5_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${QWEN2_5_MODEL_NAME}/${VER export const QWEN2_5_0_5B = { modelSource: QWEN2_5_0_5B_MODEL, - tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, + tokenizerSource: QWEN2_5_TOKENIZER, + tokenizerConfigSource: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_0_5B_QUANTIZED = { modelSource: QWEN2_5_0_5B_QUANTIZED_MODEL, - tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, + tokenizerSource: QWEN2_5_TOKENIZER, + tokenizerConfigSource: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_1_5B = { modelSource: QWEN2_5_1_5B_MODEL, - tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, + tokenizerSource: QWEN2_5_TOKENIZER, + tokenizerConfigSource: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_1_5B_QUANTIZED = { modelSource: QWEN2_5_1_5B_QUANTIZED_MODEL, - tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, + tokenizerSource: QWEN2_5_TOKENIZER, + tokenizerConfigSource: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_3B = { modelSource: QWEN2_5_3B_MODEL, - tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, + tokenizerSource: QWEN2_5_TOKENIZER, + tokenizerConfigSource: QWEN2_5_TOKENIZER_CONFIG, }; export const QWEN2_5_3B_QUANTIZED = { modelSource: QWEN2_5_3B_QUANTIZED_MODEL, - tokenizer: QWEN2_5_TOKENIZER, - tokenizerConfig: QWEN2_5_TOKENIZER_CONFIG, + tokenizerSource: QWEN2_5_TOKENIZER, + tokenizerConfigSource: QWEN2_5_TOKENIZER_CONFIG, }; const PHI_4_MINI_MODEL_NAME = 'phi-4-mini'; @@ -247,14 +247,14 @@ const PHI_4_MINI_TOKENIZER_CONFIG = `${BASE_URL_PREFIX}-${PHI_4_MINI_MODEL_NAME} export const PHI_4_MINI_4B = { modelSource: PHI_4_MINI_4B_MODEL, - tokenizer: PHI_4_MINI_TOKENIZER, - tokenizerConfig: PHI_4_MINI_TOKENIZER_CONFIG, + tokenizerSource: PHI_4_MINI_TOKENIZER, + tokenizerConfigSource: PHI_4_MINI_TOKENIZER_CONFIG, }; export const PHI_4_MINI_4B_QUANTIZED = { modelSource: PHI_4_MINI_4B_QUANTIZED_MODEL, - tokenizer: PHI_4_MINI_TOKENIZER, - tokenizerConfig: PHI_4_MINI_TOKENIZER, + tokenizerSource: PHI_4_MINI_TOKENIZER, + tokenizerConfigSource: PHI_4_MINI_TOKENIZER, }; // Classification @@ -264,7 +264,8 @@ export const EFFICIENTNET_V2_S = isIOS : `${BASE_URL_PREFIX}-${EFFICIENTNET_V2_S_MODEL_NAME}/${VERSION_TAG}/xnnpack/efficientnet_v2_s_xnnpack.pte`; // Object detection -const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = 'ssdlite320-mobilenet-v3-large'; +const SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME = + 'ssdlite320-mobilenet-v3-large'; export const SSDLITE_320_MOBILENET_V3_LARGE = `${BASE_URL_PREFIX}-${SSDLITE_320_MOBILENET_V3_LARGE_MODEL_NAME}/${VERSION_TAG}/ssdlite320-mobilenetv3-large.pte`; // Style transfer @@ -333,9 +334,9 @@ const DEEPLAB_V3_MODEL_NAME = 'deeplab-v3'; export const DEEPLAB_V3_RESNET50 = `${BASE_URL_PREFIX}-${DEEPLAB_V3_MODEL_NAME}/${VERSION_TAG}/xnnpack/deeplabV3_xnnpack_fp32.pte`; // Image Embeddings -const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-image-encoder'; -export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = - `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; +const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME = + 'clip-vit-base-patch32-image-encoder'; +export const CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_IMAGE_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-image-encoder-float32.pte`; // Text Embeddings const ALL_MINILM_L6_V2_MODEL_NAME = 'all-MiniLM-L6-v2'; @@ -378,11 +379,10 @@ export const MULTI_QA_MPNET_BASE_DOT_V1 = { meanPooling: false, }; -const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = 'clip-vit-base-patch32-text-encoder'; -const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = - `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; -const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = - `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME = + 'clip-vit-base-patch32-text-encoder'; +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/clip-vit-base-patch32-text-encoder-float32.pte`; +const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_TOKENIZER = `${BASE_URL_PREFIX}-${CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL_NAME}/${NEXT_DEV_VERSION_TAG}/tokenizer.json`; export const CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER = { modelSource: CLIP_VIT_BASE_PATCH_32_TEXT_ENCODER_MODEL, From 0ec9baf440558c434e565247c818b0be294f6d17 Mon Sep 17 00:00:00 2001 From: Mateusz Sluszniak <56299341+msluszniak@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:03:19 +0200 Subject: [PATCH 6/6] Update apps/llm/app/llm_structured_output/index.tsx Co-authored-by: Norbert Klockiewicz --- apps/llm/app/llm_structured_output/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/llm/app/llm_structured_output/index.tsx b/apps/llm/app/llm_structured_output/index.tsx index c76fa51285..4bfa4d7163 100644 --- a/apps/llm/app/llm_structured_output/index.tsx +++ b/apps/llm/app/llm_structured_output/index.tsx @@ -73,7 +73,7 @@ function LLMScreen() { const textInputRef = useRef(null); const { setGlobalGenerating } = useContext(GeneratingContext); - // try out 4B model it this one struggles with following structured output + // try out 4B model if this one struggles with following structured output const llm = useLLM(QWEN3_1_7B_QUANTIZED); useEffect(() => {