@@ -48,8 +48,17 @@ DOWNLOADED_PATH=$(
4848 --model_id " ${HF_MODEL_REPO} " \
4949 --files " adapter_config.json" " adapter_model.pt" " consolidated.00.pth" " params.json" " tokenizer.model"
5050)
51- EXPORTED_MODEL_NAME=" llama_3_2_1B_lora.pte"
52- # Export model.
51+ # Build llama runner.
52+ cmake_install_executorch_libraries
53+ cmake_build_llama_runner
54+
55+ # Constants.
56+ RUNTIME_ARGS=" --tokenizer_path=${DOWNLOADED_PATH} /tokenizer.model --temperature=0 --seq_len=20 --warmup=1"
57+ PROMPT=" What happens if you eat watermelon seeds?"
58+ EXPECTED_PREFIX=" What happens if you eat watermelon seeds? Watermelon seeds are a good source of vitamin C,"
59+
60+ # Export LoRA PTE file.
61+ MODEL_NAME=" llama_3_2_1B_lora"
5362$PYTHON_EXECUTABLE -m extension.llm.export.export_llm \
5463 base.checkpoint=" ${DOWNLOADED_PATH} /consolidated.00.pth" \
5564 base.params=" ${DOWNLOADED_PATH} /params.json" \
@@ -61,36 +70,64 @@ $PYTHON_EXECUTABLE -m extension.llm.export.export_llm \
6170 model.dtype_override=" fp32" \
6271 backend.xnnpack.enabled=true \
6372 backend.xnnpack.extended_ops=true \
64- export.output_name=" ${EXPORTED_MODEL_NAME} "
65-
66- # Build llama runner.
67- cmake_install_executorch_libraries
68- cmake_build_llama_runner
73+ export.output_name=" ${MODEL_NAME} .pte"
6974
70- PROMPT=" What happens if you eat watermelon seeds?"
7175# Run llama runner
72- RUNTIME_ARGS=" --model_path=${EXPORTED_MODEL_NAME} --tokenizer_path=${DOWNLOADED_PATH} /tokenizer.model --temperature=0 --seq_len=20 --warmup=1"
73-
7476NOW=$( date +" %H:%M:%S" )
7577echo " Starting to run llama runner at ${NOW} "
7678# shellcheck source=/dev/null
77- cmake-out/examples/models/llama/llama_main --prompt=" ${PROMPT} " ${RUNTIME_ARGS} > result.txt
79+ cmake-out/examples/models/llama/llama_main --model_path= ${MODEL_NAME} .pte -- prompt=" ${PROMPT} " ${RUNTIME_ARGS} > result.txt
7880NOW=$( date +" %H:%M:%S" )
7981echo " Finished at ${NOW} "
8082
8183RESULT=$( cat result.txt)
82- EXPECTED_PREFIX=" What happens if you eat watermelon seeds? Watermelon seeds are a good source of vitamin C,"
83-
8484if [[ " ${RESULT} " == " ${EXPECTED_PREFIX} " * ]]; then
8585 echo " Expected result prefix: ${EXPECTED_PREFIX} "
8686 echo " Actual result: ${RESULT} "
87+ # Do not clean up files if test passes, as they're re-used in the next test.
8788 echo " Success"
88- cleanup_files
8989else
9090 echo " Expected result prefix: ${EXPECTED_PREFIX} "
9191 echo " Actual result: ${RESULT} "
9292 echo " Failure; results not the same"
93+ cleanup_files
94+ exit 1
95+ fi
9396
97+ # Export LoRA PTE, PTD file.
98+ MODEL_SEPARATE=" ${MODEL_NAME} _separate"
99+ $PYTHON_EXECUTABLE -m extension.llm.export.export_llm \
100+ base.checkpoint=" ${DOWNLOADED_PATH} /consolidated.00.pth" \
101+ base.params=" ${DOWNLOADED_PATH} /params.json" \
102+ base.adapter_checkpoint=" ${DOWNLOADED_PATH} /adapter_model.pt" \
103+ base.adapter_config=" ${DOWNLOADED_PATH} /adapter_config.json" \
104+ base.tokenizer_path=" ${DOWNLOADED_PATH} /tokenizer.model" \
105+ model.use_kv_cache=true \
106+ model.use_sdpa_with_kv_cache=true \
107+ model.dtype_override=" fp32" \
108+ backend.xnnpack.enabled=true \
109+ backend.xnnpack.extended_ops=true \
110+ export.output_name=" ${MODEL_SEPARATE} .pte" \
111+ export.foundation_weights_file=" ${MODEL_SEPARATE} .ptd"
112+
113+ # Run llama runner.
114+ NOW=$( date +" %H:%M:%S" )
115+ echo " Starting to run llama runner at ${NOW} "
116+ # shellcheck source=/dev/null
117+ cmake-out/examples/models/llama/llama_main --model_path=${MODEL_SEPARATE} .pte --data_path=${MODEL_SEPARATE} .ptd --prompt=" ${PROMPT} " ${RUNTIME_ARGS} > result2.txt
118+ NOW=$( date +" %H:%M:%S" )
119+ echo " Finished at ${NOW} "
120+
121+ RESULT2=$( cat result2.txt)
122+ if [[ " ${RESULT2} " == " ${EXPECTED_PREFIX} " * ]]; then
123+ echo " Expected result prefix: ${EXPECTED_PREFIX} "
124+ echo " Actual result: ${RESULT2} "
125+ echo " Success"
126+ cleanup_files
127+ else
128+ echo " Expected result prefix: ${EXPECTED_PREFIX} "
129+ echo " Actual result: ${RESULT2} "
130+ echo " Failure; results not the same"
94131 cleanup_files
95132 exit 1
96133fi
0 commit comments