From 475e14bbec63a8f8b36522e043ce378f015a6619 Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Wed, 8 Oct 2025 15:27:56 -0700 Subject: [PATCH 1/2] Remove unused model type --- .../java/com/example/executorchllamademo/ModelType.java | 2 -- .../java/com/example/executorchllamademo/ModelUtils.java | 2 -- .../java/com/example/executorchllamademo/PromptFormat.java | 6 ------ 3 files changed, 10 deletions(-) diff --git a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelType.java b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelType.java index a04ef12f..513785ec 100644 --- a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelType.java +++ b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelType.java @@ -11,8 +11,6 @@ public enum ModelType { GEMMA_3, LLAMA_3, - LLAMA_3_1, - LLAMA_3_2, LLAVA_1_5, LLAMA_GUARD_3, QWEN_3, diff --git a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelUtils.java b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelUtils.java index 99596d42..6dc07390 100644 --- a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelUtils.java +++ b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/ModelUtils.java @@ -31,8 +31,6 @@ public static int getModelCategory(ModelType modelType, BackendType backendType) case LLAVA_1_5: return VISION_MODEL; case LLAMA_3: - case LLAMA_3_1: - case LLAMA_3_2: case QWEN_3: default: return TEXT_MODEL; diff --git a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/PromptFormat.java b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/PromptFormat.java index 41a91fc4..42c54ee5 100644 --- a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/PromptFormat.java +++ b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/PromptFormat.java @@ -21,8 +21,6 @@ public static String getSystemPromptTemplate(ModelType modelType) { case GEMMA_3: return SYSTEM_PLACEHOLDER; case LLAMA_3: - case LLAMA_3_1: - case LLAMA_3_2: return "<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n" + SYSTEM_PLACEHOLDER + "<|eot_id|>"; @@ -40,8 +38,6 @@ public static String getUserPromptTemplate(ModelType modelType) { case GEMMA_3: return "user\n" + USER_PLACEHOLDER + "\nmodel"; case LLAMA_3: - case LLAMA_3_1: - case LLAMA_3_2: case LLAMA_GUARD_3: return "<|start_header_id|>user<|end_header_id|>\n" + USER_PLACEHOLDER @@ -65,8 +61,6 @@ public static String getStopToken(ModelType modelType) { case GEMMA_3: return ""; case LLAMA_3: - case LLAMA_3_1: - case LLAMA_3_2: case LLAMA_GUARD_3: return "<|eot_id|>"; case LLAVA_1_5: From a84c4d3eab2be5115a37f9ba4aa24dc4f294096d Mon Sep 17 00:00:00 2001 From: Hansong Zhang Date: Wed, 8 Oct 2025 15:40:30 -0700 Subject: [PATCH 2/2] Small refactor --- .../executorchllamademo/MainActivity.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java index 37479484..997799f0 100644 --- a/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java +++ b/llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java @@ -63,7 +63,8 @@ public class MainActivity extends AppCompatActivity implements Runnable, LlmCall private ImageButton mCameraButton; private ListView mMessagesView; private MessageAdapter mMessageAdapter; - private LlmModule mModule = null; + private List mLoadedModules = new ArrayList<>(); + private LlmModule mActiveModule = null; private Message mResultMessage = null; private ImageButton mSettingsButton; private TextView mMemoryView; @@ -136,7 +137,7 @@ private void setLocalModel( long runStartTime = System.currentTimeMillis(); // Create LlmModule with dataPath - mModule = + mActiveModule = new LlmModule( ModelUtils.getModelCategory( mCurrentSettingsFields.getModelType(), mCurrentSettingsFields.getBackendType()), @@ -144,8 +145,9 @@ private void setLocalModel( tokenizerPath, temperature, dataPath); + mLoadedModules.add(mActiveModule); - int loadResult = mModule.load(); + int loadResult = mActiveModule.load(); long loadDuration = System.currentTimeMillis() - runStartTime; String modelLoadError = ""; String modelInfo = ""; @@ -177,7 +179,7 @@ private void setLocalModel( if (mCurrentSettingsFields.getModelType() == ModelType.LLAVA_1_5) { ETLogging.getInstance().log("Llava start prefill prompt"); - startPos = mModule.prefillPrompt(PromptFormat.getLlavaPresetPrompt()); + startPos = mActiveModule.prefillPrompt(PromptFormat.getLlavaPresetPrompt()); ETLogging.getInstance().log("Llava completes prefill prompt"); } } @@ -649,7 +651,7 @@ private void showMediaPreview(List uris) { ETImage img = processedImageList.get(0); ETLogging.getInstance().log("Llava start prefill image"); startPos = - mModule.prefillImages( + mActiveModule.prefillImages( img.getInts(), img.getWidth(), img.getHeight(), @@ -678,7 +680,7 @@ private void onModelRunStarted() { mSendButton.setImageResource(R.drawable.baseline_stop_24); mSendButton.setOnClickListener( view -> { - mModule.stop(); + mActiveModule.stop(); }); } @@ -729,21 +731,21 @@ public void run() { mCurrentSettingsFields.getModelType(), mCurrentSettingsFields.getBackendType()) == ModelUtils.VISION_MODEL) { - mModule.generate( + mActiveModule.generate( finalPrompt, ModelUtils.VISION_MODEL_SEQ_LEN, MainActivity.this, false); } else if (mCurrentSettingsFields.getModelType() == ModelType.LLAMA_GUARD_3) { String llamaGuardPromptForClassification = PromptFormat.getFormattedLlamaGuardPrompt(rawPrompt); ETLogging.getInstance() .log("Running inference.. prompt=" + llamaGuardPromptForClassification); - mModule.generate( + mActiveModule.generate( llamaGuardPromptForClassification, llamaGuardPromptForClassification.length() + 64, MainActivity.this, false); } else { ETLogging.getInstance().log("Running inference.. prompt=" + finalPrompt); - mModule.generate( + mActiveModule.generate( finalPrompt, (int) (finalPrompt.length() * 0.75) + 64, MainActivity.this,