Switch model to Q6_K (~1.5 GB), lighter/faster than Q8
- ModelDownloader now pulls the Q6_K quant - README: reflect Q6_K sizes + note prebuilt APK on Releases Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,7 @@ conversation and start fresh.
|
|||||||
- **Inference:** llama.cpp compiled from source (pinned tag `b10333`) through the
|
- **Inference:** llama.cpp compiled from source (pinned tag `b10333`) through the
|
||||||
NDK. Pulled automatically at build time via CMake `FetchContent` — no submodule
|
NDK. Pulled automatically at build time via CMake `FetchContent` — no submodule
|
||||||
to init.
|
to init.
|
||||||
- **Model:** `Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-Q8_0.gguf` (~1.9 GB) is
|
- **Model:** `Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-Q6_K.gguf` (~1.5 GB) is
|
||||||
**downloaded on first launch** from Hugging Face into the app's private storage.
|
**downloaded on first launch** from Hugging Face into the app's private storage.
|
||||||
It is *not* bundled in the APK. (Swap the quant in `ModelDownloader.kt`.)
|
It is *not* bundled in the APK. (Swap the quant in `ModelDownloader.kt`.)
|
||||||
- **Persona:** set via `SYSTEM_PROMPT` in `MainActivity.kt`; sampling is a little
|
- **Persona:** set via `SYSTEM_PROMPT` in `MainActivity.kt`; sampling is a little
|
||||||
@@ -47,7 +47,7 @@ conversation and start fresh.
|
|||||||
in **Android Studio** (it will offer to install the matching NDK `27.2.12479018`
|
in **Android Studio** (it will offer to install the matching NDK `27.2.12479018`
|
||||||
and CMake `3.22.1`).
|
and CMake `3.22.1`).
|
||||||
- **A phone:** 64-bit ARM (`arm64-v8a`), Android 8.0+ (minSdk 26), and enough free
|
- **A phone:** 64-bit ARM (`arm64-v8a`), Android 8.0+ (minSdk 26), and enough free
|
||||||
RAM to hold a ~1.9 GB Q8 model (~4+ GB RAM device recommended).
|
RAM to hold a ~1.5 GB Q6 model (~4 GB RAM device recommended).
|
||||||
- Network on first launch to download the model.
|
- Network on first launch to download the model.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
@@ -63,9 +63,11 @@ The APK lands in `app/build/outputs/apk/debug/`. Or just Run ▶ from Android St
|
|||||||
|
|
||||||
## Install (sideload)
|
## Install (sideload)
|
||||||
|
|
||||||
|
A prebuilt `app-debug.apk` is attached to every [Release](../../releases).
|
||||||
|
|
||||||
The debug APK is signed with the debug key, so you can sideload it directly:
|
The debug APK is signed with the debug key, so you can sideload it directly:
|
||||||
copy `app-debug.apk` to the phone, enable "install unknown apps" for your file
|
copy `app-debug.apk` to the phone, enable "install unknown apps" for your file
|
||||||
manager, and tap it. First launch downloads the ~1.9 GB model over Wi-Fi.
|
manager, and tap it. First launch downloads the ~1.5 GB model over Wi-Fi.
|
||||||
|
|
||||||
## Where things live
|
## Where things live
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ import java.net.URL
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Downloads the GGUF model on first launch and caches it in the app's private
|
* Downloads the GGUF model on first launch and caches it in the app's private
|
||||||
* files dir. ~1.9 GB (Q8_0), so it only happens once.
|
* files dir. ~1.5 GB (Q6_K), so it only happens once.
|
||||||
*/
|
*/
|
||||||
object ModelDownloader {
|
object ModelDownloader {
|
||||||
|
|
||||||
const val MODEL_FILENAME = "Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-Q8_0.gguf"
|
const val MODEL_FILENAME = "Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-Q6_K.gguf"
|
||||||
|
|
||||||
private const val MODEL_URL =
|
private const val MODEL_URL =
|
||||||
"https://huggingface.co/HauhauCS/Qwen3.5-2B-Uncensored-HauhauCS-Aggressive" +
|
"https://huggingface.co/HauhauCS/Qwen3.5-2B-Uncensored-HauhauCS-Aggressive" +
|
||||||
|
|||||||
Reference in New Issue
Block a user