mllm Chat Bot is an Android application based on the multimodal LLM inference engine mllm. It supports text/image conversations, Android Intent Invocation, and can support the use of CPU and some Hexagon NPUs.
Note
ChatBot is a demo app of MLLM Engine. Any error report or feature request should be opened in mllm Github Repo.
Model | Backend | Chat | Intent Invocation |
---|---|---|---|
PhoneLM 1.5B | CPU | ✔️ | ✔️ |
NPU | ✔️ | ✔️ | |
Qwen-2.5 1.5B | CPU | ✔️ | ✔️ |
NPU | |||
Qwen-1.5 1.8B | CPU | ✔️ | |
NPU | ✔️ | ||
Fuyu 8B | CPU | ✔️ |
git clone https://github.com/lx200916/ChatBotApp
Get mllm codes:
git clone https://github.com/UbiquitousLearning/mllm
cd mllm
Build mllm_lib:
mkdir ../build-arm-app
cd ../build-arm-app
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_ABI="arm64-v8a" \
-DANDROID_NATIVE_API_LEVEL=android-28 \
-DNATIVE_LIBRARY_OUTPUT=. -DNATIVE_INCLUDE_OUTPUT=. $1 $2 $3 \
-DARM=ON \
-DAPK=ON \
-DQNN=ON \
-DDEBUG=OFF \
-DTEST=OFF \
-DQUANT=OFF \
-DQNN_VALIDATE_NODE=ON \
-DMLLM_BUILD_XNNPACK_BACKEND=OFF
make mllm_lib -j$(nproc)
Copy mllm_lib to ChatBotApp:
cp ./libmllm_lib.a ChatBotApp/app/src/main/cpp/libs/
You need to download mllm models from Web.
Then you need to move these models and vocab files from mllm/vocab
to your Android Phone's File Path /sdcard/Download/model/
. The following files are required to exist in /sdcard/Download/model/
:
/sdcard/Download/model/
|-- gte-small-fp32.mllm
|-- phonelm-1.5b-instruct-int8.mllm
|-- phonelm-1.5b-instruct-q4_0_4_4.mllm
|-- phonelm-1.5b-call-int8.mllm
|-- phonelm-1.5b-call-q8_0.mllm
|-- qwen-2.5-1.5b-call-q4_0_4_4.mllm
|-- qwen-2.5-1.5b-instruct-q4_0_4_4.mllm
|-- qwen-1.5-1.8b-chat-int8.mllm
|-- qwen-1.5-1.8b-chat-q4_0_4_4.mllm
|-- fuyu-8b-q4_k.mllm
|-- gte_vocab.mllm
|-- phonelm_vocab.mllm
|-- phonelm_merges.txt
|-- qwen_vocab.mllm
|-- qwen_merges.txt
|-- qwen2.5_vocab.mllm
|-- qwen2.5_merges.txt
|-- fuyu_vocab.mllm
Now you can import the project into Android Studio and build it.
If you do not use Android Studio, you may need to manually set up JDK(17+) and Android SDK(30+) environment, and then build it with gradle.
./gradlew assembleDebug