diff --git a/src/config.ts b/src/config.ts index dfeb1913..1085fc1d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -258,6 +258,7 @@ export interface ModelRecord { model_lib: string; overrides?: ChatOptions; vram_required_MB?: number; + model_size_MB?: number; low_resource_required?: boolean; buffer_size_required_bytes?: number; required_features?: Array; @@ -320,6 +321,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-1B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1128.82, + model_size_MB: 736.82, low_resource_required: true, overrides: { context_window_size: 4096, @@ -333,6 +335,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-1B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 879.04, + model_size_MB: 663.04, low_resource_required: true, overrides: { context_window_size: 4096, @@ -346,6 +349,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-1B-Instruct-q0f32-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5106.26, + model_size_MB: 4714.26, low_resource_required: true, overrides: { context_window_size: 4096, @@ -359,6 +363,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-1B-Instruct-q0f16-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2573.13, + model_size_MB: 2357.13, low_resource_required: true, overrides: { context_window_size: 4096, @@ -372,6 +377,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-3B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2951.51, + model_size_MB: 1915.51, low_resource_required: true, overrides: { context_window_size: 4096, @@ -385,6 +391,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-3B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2263.69, + model_size_MB: 1723.69, low_resource_required: true, overrides: { context_window_size: 4096, @@ -399,6 +406,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5295.7, + model_size_MB: 4787.27, low_resource_required: true, overrides: { context_window_size: 1024, @@ -412,6 +420,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4598.34, + model_size_MB: 4308.13, low_resource_required: true, overrides: { context_window_size: 1024, @@ -425,6 +434,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6101.01, + model_size_MB: 4787.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -438,6 +448,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5001.0, + model_size_MB: 4308.13, low_resource_required: false, overrides: { context_window_size: 4096, @@ -481,6 +492,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5106.67, + model_size_MB: 4085.79, overrides: { context_window_size: 4096, }, @@ -495,6 +507,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5900.09, + model_size_MB: 4540.33, overrides: { context_window_size: 4096, }, @@ -509,6 +522,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6101.01, + model_size_MB: 4787.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -523,6 +537,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5001.0, + model_size_MB: 4308.13, low_resource_required: false, overrides: { context_window_size: 4096, @@ -538,6 +553,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4976.13, + model_size_MB: 4308.13, low_resource_required: false, overrides: { context_window_size: 4096, @@ -552,6 +568,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6051.27, + model_size_MB: 4787.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -566,6 +583,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4976.13, + model_size_MB: 4308.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -580,6 +598,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6051.27, + model_size_MB: 4787.42, low_resource_required: false, overrides: { context_window_size: 4096, @@ -593,6 +612,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-3B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2951.51, + model_size_MB: 1915.51, low_resource_required: true, overrides: { context_window_size: 4096, @@ -606,6 +626,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3.2-3B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2263.69, + model_size_MB: 1723.69, low_resource_required: true, overrides: { context_window_size: 4096, @@ -619,6 +640,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5779.27, + model_size_MB: 4787.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -632,6 +654,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4876.13, + model_size_MB: 4308.13, low_resource_required: false, overrides: { context_window_size: 4096, @@ -646,6 +669,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4033.28, + model_size_MB: 3885.27, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -662,6 +686,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3.5-mini-instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 3672.07, + model_size_MB: 2050.06, low_resource_required: false, overrides: { context_window_size: 4096, @@ -675,6 +700,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3.5-mini-instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5483.12, + model_size_MB: 2278.18, low_resource_required: false, overrides: { context_window_size: 4096, @@ -688,6 +714,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3.5-mini-instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2520.07, + model_size_MB: 2050.06, low_resource_required: true, overrides: { context_window_size: 1024, @@ -701,6 +728,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3.5-mini-instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 3179.12, + model_size_MB: 2278.18, low_resource_required: true, overrides: { context_window_size: 1024, @@ -716,6 +744,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3.5-vision-instruct-q4f16_1-ctx4k_cs2k-webgpu.wasm", vram_required_MB: 3952.18, + model_size_MB: 2640.79, low_resource_required: true, overrides: { context_window_size: 4096, @@ -731,6 +760,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3.5-vision-instruct-q4f32_1-ctx4k_cs2k-webgpu.wasm", vram_required_MB: 5879.84, + model_size_MB: 3449.15, low_resource_required: true, overrides: { context_window_size: 4096, @@ -747,6 +777,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4573.39, + model_size_MB: 3888.51, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -763,6 +794,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5619.27, + model_size_MB: 4321.02, low_resource_required: false, overrides: { context_window_size: 4096, @@ -778,6 +810,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4573.39, + model_size_MB: 3885.13, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -794,6 +827,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4573.39, + model_size_MB: 3885.14, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -810,6 +844,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4573.39, + model_size_MB: 3885.14, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -825,6 +860,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Mistral-7B-Instruct-v0.3-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4573.39, + model_size_MB: 3885.13, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -841,6 +877,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-1.7B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1774.19, + model_size_MB: 918.19, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -855,6 +892,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-1.7B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2692.38, + model_size_MB: 1020.38, low_resource_required: true, overrides: { context_window_size: 4096, @@ -869,6 +907,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-360M-Instruct-q0f16-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 871.99, + model_size_MB: 690.12, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -883,6 +922,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-360M-Instruct-q0f32-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1743.99, + model_size_MB: 1380.24, low_resource_required: true, overrides: { context_window_size: 4096, @@ -896,6 +936,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-360M-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 376.06, + model_size_MB: 194.18, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -910,6 +951,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-360M-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 579.61, + model_size_MB: 215.86, low_resource_required: true, overrides: { context_window_size: 4096, @@ -923,6 +965,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-135M-Instruct-q0f16-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 359.69, + model_size_MB: 256.57, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -937,6 +980,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/SmolLM2-135M-Instruct-q0f32-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 719.38, + model_size_MB: 513.13, low_resource_required: true, overrides: { context_window_size: 4096, @@ -951,6 +995,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-2b-it-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1895.3, + model_size_MB: 1402.77, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -965,6 +1010,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-2b-it-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2508.75, + model_size_MB: 1559.05, low_resource_required: false, overrides: { context_window_size: 4096, @@ -978,6 +1024,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-2b-it-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1583.3, + model_size_MB: 1402.77, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -992,6 +1039,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-2b-it-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1884.75, + model_size_MB: 1559.05, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1005,6 +1053,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-9b-it-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6422.01, + model_size_MB: 4958.47, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -1019,6 +1068,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-9b-it-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 8383.33, + model_size_MB: 5510.44, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1033,6 +1083,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-2b-jpn-it-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1895.3, + model_size_MB: 1402.77, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -1047,6 +1098,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2-2b-jpn-it-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2508.75, + model_size_MB: 1559.05, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1061,6 +1113,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-0.6B-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1403.34, + model_size_MB: 319.84, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1074,6 +1127,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-0.6B-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1924.98, + model_size_MB: 355.48, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1087,6 +1141,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-0.6B-q0f16-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2220.38, + model_size_MB: 1136.88, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1100,6 +1155,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-0.6B-q0f32-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 3843.25, + model_size_MB: 2273.75, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1113,6 +1169,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-1.7B-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2036.66, + model_size_MB: 923.16, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1126,6 +1183,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-1.7B-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2635.44, + model_size_MB: 1025.94, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1139,6 +1197,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-4B-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 3431.59, + model_size_MB: 2158.09, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1152,6 +1211,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-4B-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4327.71, + model_size_MB: 2398.21, low_resource_required: true, overrides: { context_window_size: 4096, @@ -1165,6 +1225,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-8B-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5695.78, + model_size_MB: 4394.28, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1178,6 +1239,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Qwen3-8B-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6852.55, + model_size_MB: 4883.05, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1193,6 +1255,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 944.62, + model_size_MB: 265.12, overrides: { context_window_size: 4096, }, @@ -1206,6 +1269,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1060.2, + model_size_MB: 294.7, overrides: { context_window_size: 4096, }, @@ -1219,6 +1283,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q0f16-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1624.12, + model_size_MB: 942.29, overrides: { context_window_size: 4096, }, @@ -1232,6 +1297,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q0f32-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2654.75, + model_size_MB: 1884.59, overrides: { context_window_size: 4096, }, @@ -1245,6 +1311,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1629.75, + model_size_MB: 828.31, overrides: { context_window_size: 4096, }, @@ -1258,6 +1325,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1888.97, + model_size_MB: 920.59, overrides: { context_window_size: 4096, }, @@ -1271,6 +1339,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2.5-3B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2504.76, + model_size_MB: 1655.76, overrides: { context_window_size: 4096, }, @@ -1284,6 +1353,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2.5-3B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2893.64, + model_size_MB: 1840.14, overrides: { context_window_size: 4096, }, @@ -1297,6 +1367,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5106.67, + model_size_MB: 4085.79, overrides: { context_window_size: 4096, }, @@ -1310,6 +1381,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5900.09, + model_size_MB: 4540.33, overrides: { context_window_size: 4096, }, @@ -1325,6 +1397,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 944.62, + model_size_MB: 265.12, overrides: { context_window_size: 4096, }, @@ -1339,6 +1412,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1060.2, + model_size_MB: 294.7, overrides: { context_window_size: 4096, }, @@ -1353,6 +1427,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q0f16-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1624.12, + model_size_MB: 942.29, overrides: { context_window_size: 4096, }, @@ -1367,6 +1442,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q0f32-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2654.75, + model_size_MB: 1884.59, overrides: { context_window_size: 4096, }, @@ -1381,6 +1457,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 1629.75, + model_size_MB: 828.31, overrides: { context_window_size: 4096, }, @@ -1395,6 +1472,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 1888.97, + model_size_MB: 920.59, overrides: { context_window_size: 4096, }, @@ -1409,6 +1487,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2.5-3B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2504.76, + model_size_MB: 1655.76, overrides: { context_window_size: 4096, }, @@ -1423,6 +1502,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2.5-3B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2893.64, + model_size_MB: 1840.14, overrides: { context_window_size: 4096, }, @@ -1437,6 +1517,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5106.67, + model_size_MB: 4085.79, overrides: { context_window_size: 4096, }, @@ -1451,6 +1532,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5900.09, + model_size_MB: 4540.33, overrides: { context_window_size: 4096, }, @@ -1466,6 +1548,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1629.75, + model_size_MB: 828.31, overrides: { context_window_size: 4096, }, @@ -1480,6 +1563,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1888.97, + model_size_MB: 920.59, overrides: { context_window_size: 4096, }, @@ -1493,6 +1577,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/stablelm-2-zephyr-1_6b-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2087.66, + model_size_MB: 882.66, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1506,6 +1591,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/stablelm-2-zephyr-1_6b-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2999.33, + model_size_MB: 981.33, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1519,6 +1605,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/stablelm-2-zephyr-1_6b-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1511.66, + model_size_MB: 882.66, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1532,6 +1619,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/stablelm-2-zephyr-1_6b-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1847.33, + model_size_MB: 981.33, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1547,6 +1635,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/RedPajama-INCITE-Chat-3B-v1-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 2972.09, + model_size_MB: 1491.34, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -1562,6 +1651,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/RedPajama-INCITE-Chat-3B-v1-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 3928.09, + model_size_MB: 1657.99, low_resource_required: false, overrides: { context_window_size: 2048, @@ -1576,6 +1666,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/RedPajama-INCITE-Chat-3B-v1-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 2041.09, + model_size_MB: 1491.34, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -1591,6 +1682,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/RedPajama-INCITE-Chat-3B-v1-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 2558.09, + model_size_MB: 1657.99, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1606,6 +1698,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v1.0-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 697.24, + model_size_MB: 590.24, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -1621,6 +1714,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v1.0-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 839.98, + model_size_MB: 655.98, low_resource_required: true, overrides: { context_window_size: 2048, @@ -1635,6 +1729,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v1.0-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 675.24, + model_size_MB: 590.24, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -1650,6 +1745,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v1.0-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 795.98, + model_size_MB: 655.98, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1665,6 +1761,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3_1-70B-Instruct-q3f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 31153.13, + model_size_MB: 30304.26, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1680,6 +1777,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 944.62, + model_size_MB: 265.12, overrides: { context_window_size: 4096, }, @@ -1693,6 +1791,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q0f16-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1624.12, + model_size_MB: 942.29, overrides: { context_window_size: 4096, }, @@ -1706,6 +1805,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-0.5B-Instruct-q0f32-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 2654.75, + model_size_MB: 1884.59, overrides: { context_window_size: 4096, }, @@ -1719,6 +1819,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1629.75, + model_size_MB: 828.31, overrides: { context_window_size: 4096, }, @@ -1732,6 +1833,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1888.97, + model_size_MB: 920.59, overrides: { context_window_size: 4096, }, @@ -1745,6 +1847,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5106.67, + model_size_MB: 4085.79, overrides: { context_window_size: 4096, }, @@ -1758,6 +1861,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5900.09, + model_size_MB: 4540.33, overrides: { context_window_size: 4096, }, @@ -1773,6 +1877,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1629.75, + model_size_MB: 828.31, overrides: { context_window_size: 4096, }, @@ -1787,6 +1892,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-1.5B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: true, vram_required_MB: 1888.97, + model_size_MB: 920.59, overrides: { context_window_size: 4096, }, @@ -1800,6 +1906,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5106.67, + model_size_MB: 4085.79, overrides: { context_window_size: 4096, }, @@ -1813,6 +1920,7 @@ export const prebuiltAppConfig: AppConfig = { "/Qwen2-7B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", low_resource_required: false, vram_required_MB: 5900.09, + model_size_MB: 4540.33, overrides: { context_window_size: 4096, }, @@ -1826,6 +1934,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5295.7, + model_size_MB: 4787.27, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1839,6 +1948,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4598.34, + model_size_MB: 4308.13, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1852,6 +1962,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6101.01, + model_size_MB: 4787.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1865,6 +1976,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-8B-Instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5001.0, + model_size_MB: 4308.13, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1878,6 +1990,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-3-70B-Instruct-q3f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 31153.13, + model_size_MB: 30304.26, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1892,6 +2005,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3-mini-4k-instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 3672.07, + model_size_MB: 2050.06, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1905,6 +2019,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3-mini-4k-instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5483.12, + model_size_MB: 2278.18, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1918,6 +2033,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3-mini-4k-instruct-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 2520.07, + model_size_MB: 2050.06, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1931,6 +2047,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Phi-3-mini-4k-instruct-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 3179.12, + model_size_MB: 2278.18, low_resource_required: true, overrides: { context_window_size: 1024, @@ -1945,6 +2062,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-2-7b-chat-hf-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 5284.01, + model_size_MB: 4017.27, low_resource_required: false, overrides: { context_window_size: 1024, @@ -1958,6 +2076,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-2-7b-chat-hf-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 4618.52, + model_size_MB: 3615.13, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -1972,6 +2091,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-2-7b-chat-hf-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 9109.03, + model_size_MB: 4017.27, low_resource_required: false, overrides: { context_window_size: 4096, @@ -1985,6 +2105,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-2-7b-chat-hf-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 6749.02, + model_size_MB: 3615.13, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -1999,6 +2120,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/Llama-2-13b-chat-hf-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 11814.09, + model_size_MB: 6982.82, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -2014,6 +2136,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2b-it-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1476.52, + model_size_MB: 1344.52, low_resource_required: false, buffer_size_required_bytes: 262144000, required_features: ["shader-f16"], @@ -2029,6 +2152,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2b-it-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1750.66, + model_size_MB: 1494.04, low_resource_required: false, buffer_size_required_bytes: 262144000, overrides: { @@ -2043,6 +2167,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2b-it-q4f16_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1476.52, + model_size_MB: 1344.52, low_resource_required: true, buffer_size_required_bytes: 262144000, required_features: ["shader-f16"], @@ -2058,6 +2183,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/gemma-2b-it-q4f32_1-ctx4k_cs1k-webgpu.wasm", vram_required_MB: 1750.66, + model_size_MB: 1494.04, low_resource_required: true, buffer_size_required_bytes: 262144000, overrides: { @@ -2073,6 +2199,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-2-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 3053.97, + model_size_MB: 1492.45, low_resource_required: false, required_features: ["shader-f16"], overrides: { @@ -2087,6 +2214,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-2-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 4032.48, + model_size_MB: 1659.9, low_resource_required: false, overrides: { context_window_size: 2048, @@ -2100,6 +2228,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-2-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 2131.97, + model_size_MB: 1492.45, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -2114,6 +2243,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-2-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 2740.48, + model_size_MB: 1659.9, low_resource_required: true, overrides: { context_window_size: 1024, @@ -2128,6 +2258,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-1_5-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 1210.09, + model_size_MB: 761.64, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -2142,6 +2273,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-1_5-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 1682.09, + model_size_MB: 847.27, low_resource_required: true, overrides: { context_window_size: 2048, @@ -2155,6 +2287,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-1_5-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 1210.09, + model_size_MB: 761.64, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -2169,6 +2302,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/phi-1_5-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 1682.09, + model_size_MB: 847.27, low_resource_required: true, overrides: { context_window_size: 1024, @@ -2184,6 +2318,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v0.4-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 697.24, + model_size_MB: 590.24, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -2199,6 +2334,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v0.4-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 839.98, + model_size_MB: 655.98, low_resource_required: true, overrides: { context_window_size: 2048, @@ -2213,6 +2349,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v0.4-q4f16_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 675.24, + model_size_MB: 590.24, low_resource_required: true, required_features: ["shader-f16"], overrides: { @@ -2228,6 +2365,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/TinyLlama-1.1B-Chat-v0.4-q4f32_1-ctx2k_cs1k-webgpu.wasm", vram_required_MB: 795.98, + model_size_MB: 655.98, low_resource_required: true, overrides: { context_window_size: 1024, @@ -2243,6 +2381,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/snowflake-arctic-embed-m-q0f32-ctx512_cs512_batch32-webgpu.wasm", vram_required_MB: 1407.51, + model_size_MB: 415.39, model_type: ModelType.embedding, }, { @@ -2253,6 +2392,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/snowflake-arctic-embed-m-q0f32-ctx512_cs512_batch4-webgpu.wasm", vram_required_MB: 539.4, + model_size_MB: 415.39, model_type: ModelType.embedding, }, { @@ -2263,6 +2403,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/snowflake-arctic-embed-s-q0f32-ctx512_cs512_batch32-webgpu.wasm", vram_required_MB: 1022.82, + model_size_MB: 126.69, model_type: ModelType.embedding, }, { @@ -2273,6 +2414,7 @@ export const prebuiltAppConfig: AppConfig = { modelVersion + "/snowflake-arctic-embed-s-q0f32-ctx512_cs512_batch4-webgpu.wasm", vram_required_MB: 238.71, + model_size_MB: 126.69, model_type: ModelType.embedding, }, ], diff --git a/utils/model_size/README.md b/utils/model_size/README.md new file mode 100644 index 00000000..eccb6076 --- /dev/null +++ b/utils/model_size/README.md @@ -0,0 +1,5 @@ +### Model Size + +To check model size for a model, add models to check in `gh-config.json`. + +Then run `tsc model_size.ts`. \ No newline at end of file diff --git a/utils/model_size/package.json b/utils/model_size/package.json new file mode 100644 index 00000000..3696fbdd --- /dev/null +++ b/utils/model_size/package.json @@ -0,0 +1,29 @@ +{ + "name": "model_size", + "version": "0.1.0", + "private": true, + "scripts": { + "start": "cp src/gh-config.js src/app-config.js && parcel src/vram_requirements.html --port 8885", + "build": "cp src/gh-config.js src/app-config.js && parcel build src/vram_requirements.html --dist-dir lib" + }, + "devDependencies": { + "buffer": "^5.7.1", + "crypto-browserify": "^3.12.0", + "events": "^3.3.0", + "parcel": "^2.8.3", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "string_decoder": "^1.3.0", + "tslib": "^2.3.1", + "typescript": "^4.9.5", + "url": "^0.11.3", + "vm-browserify": "^1.1.2" + }, + "dependencies": { + "@mlc-ai/web-llm": "^0.2.79", + "@mlc-ai/web-runtime": "0.18.0-dev2", + "node-fetch": "^3.3.2", + "ws": "^8.18.2" + } +} diff --git a/utils/model_size/src/app-config.js b/utils/model_size/src/app-config.js new file mode 100644 index 00000000..dfc364c9 --- /dev/null +++ b/utils/model_size/src/app-config.js @@ -0,0 +1,6 @@ +import { prebuiltAppConfig } from "../../../lib/config"; + +export default { + model_list: prebuiltAppConfig.model_list, + use_web_worker: true, +}; diff --git a/utils/model_size/src/gh-config.js b/utils/model_size/src/gh-config.js new file mode 100644 index 00000000..dfc364c9 --- /dev/null +++ b/utils/model_size/src/gh-config.js @@ -0,0 +1,6 @@ +import { prebuiltAppConfig } from "../../../lib/config"; + +export default { + model_list: prebuiltAppConfig.model_list, + use_web_worker: true, +}; diff --git a/utils/model_size/src/model_size.ts b/utils/model_size/src/model_size.ts new file mode 100644 index 00000000..a3240c36 --- /dev/null +++ b/utils/model_size/src/model_size.ts @@ -0,0 +1,29 @@ +import appConfig from "./gh-config.js"; +import { cleanModelUrl, findModelRecord } from "../../../src/support"; + +interface AppConfig { + model_list: Array; +} + +async function getParamBytes(modelId: string): Promise { + const config: AppConfig = appConfig; + const rec = findModelRecord(modelId, config); + const base = cleanModelUrl(rec.model); + const url = `${base}ndarray-cache.json`; + const meta = (await (await fetch(url)).json()) as { + metadata: { ParamBytes: number; ParamSize: number; BitsPerParam: number }; + }; + return meta.metadata.ParamBytes; +} + +async function main() { + const config: AppConfig = appConfig; + for (const rec of config.model_list) { + const bytes = await getParamBytes(rec.model_id); + console.log( + `${rec.model_id.padEnd(30)} : ` + `${(bytes / 1_048_576).toFixed(2)} MB`, + ); + } +} + +main().catch(console.error);