Kazeia-engine/dist/jni
Richard Loyer 5cc8c22fc9 chantier RAG #1 : entrypoint embeddings (texte -> vecteur poolé) pour le RAG mobile
Spec /opt/Kazeia/docs/RAG_EMBEDDINGS_ENGINE_SPEC.md implémentée.

Préflight (point #2 du spec = LE bloqueur potentiel) :
 - Arch BERT/nomic-bert/gemma-embedding TOUJOURS présentes dans le fork ql
   (llama-arch.cpp + src/models/bert.cpp), malgré les mods Qwen/TTS.
 - Outil de référence examples/embedding/embedding.cpp dispo = source de vérité.
 - Confirmé : BERT encoder-only routé via llama_decode (PAS llama_encode) dans
   ce fork ; le code ne bascule sur erreur que pour encoder+decoder (T5).

Ajouts kazeia_engine_jni.cpp (handle KEmbedder SÉPARÉ du KEngine, CPU pur) :
 - loadEmbedder(path, nThreads, pooling) : embeddings=true, pooling MEAN/CLS/auto,
   n_ctx=n_batch=n_ubatch=512 (contrainte pooling = séquence dans 1 ubatch),
   n_gpu_layers=0, refus explicite des modèles encoder-decoder.
 - embedText(h, text) : tokenize add_special + batch logits=1 + llama_decode +
   llama_get_embeddings_seq + normalisation L2 -> float[n_embd] ou null.
 - freeEmbedder(h).
 - Reproduit À L'IDENTIQUE examples/embedding/embedding.cpp.

Bindings Kotlin (EngineLlmEngine.kt) : loadEmbedder/embedText/freeEmbedder +
wrapper EmbedderEngine(model, nThreads, pooling).embed(text).

Validation sur tablette SM8750 (adb shell, nomic-embed Q4_K_M, CPU) :
 - Déterminisme : max|diff| = 0.0 bit-identique sur 2 runs
 - Norme L2 = 1.0000
 - PARITÉ RÉFÉRENCE : mon embedText vs llama-embedding = max|diff| 5e-7,
   cos 1.000000 (probe rag_probe.cpp répliquant le chemin exact)
 - Cohérence sémantique : OK avec bons préfixes

FINDING modèle (point #1 du spec confirmé par mesure) : nomic-embed est
anglo-centré, marge FR fine (cos insomnie 0.556 vs tarte 0.517 = 0.04, et
ordre s'inverse avec mauvais préfixe). => SHIPPER multilingual-e5-small comme
le spec l'exige, pas nomic. Le code est agnostique au modèle (n_embd auto).

⚠ Bloqueur SELinux identique LLM/TTS : l'embedder linke libllama->libggml-hexagon
qui ouvre /dev/fastrpc-cdsp au backend_init -> crash untrusted_app. DOIT tourner
sur le build CPU-only (GGML_HEXAGON=OFF). Documenté dans le code + RAG_INTEGRATION.md.

Doc : dist/RAG_INTEGRATION.md (format des 3 autres) + overview à jour (4 sous-systèmes).
2026-06-09 22:02:30 +02:00
..
EngineLlmEngine.kt chantier RAG #1 : entrypoint embeddings (texte -> vecteur poolé) pour le RAG mobile 2026-06-09 22:02:30 +02:00
SttEngine.kt chantier B STT #2 : S2 + S3 livrés (stt_engine ORT QNN + JNI + façade Kotlin + doc) 2026-05-31 22:15:58 +02:00
TtsEngine.kt TU sampler tuning : top_p 1.0->0.95 + rep_penalty 1.05->1.10 nouveaux défauts 2026-05-31 11:18:25 +02:00
build_prefill.cpp chantier B TTS #4: P3.1+P3.2 = x_vector + prefill_embeds depuis input_ids (bit-exact) 2026-05-28 15:05:23 +02:00
cp_inference.cpp chantier B engine #3 : TTS lib audible + E2E in-app validé 2026-06-03 22:37:47 +02:00
cp_inference.h chantier F (CP HMX) : path sched livré, gain absent (overhead per-call) 2026-05-29 16:03:41 +02:00
cp_validate.cpp chantier B TTS #5: P3.3 = vrai CP runner intégré (bit-exact) 2026-05-28 15:11:07 +02:00
decoder_subprocess.cpp Decoder chraac en sous-process : -20% decoder, -9% pipeline, talker intact 2026-05-30 18:14:09 +02:00
dual_ctx.cpp dist: prefill HTP = CASSÉ (sortie charabia), prefill obligatoirement CPU 2026-05-27 09:42:59 +02:00
dual_ctx_mt.cpp dist: JNI option C câblé (prefill HTP / decode CPU), validé multi-tour 2026-05-27 10:24:55 +02:00
kazeia_engine_jni.cpp chantier RAG #1 : entrypoint embeddings (texte -> vecteur poolé) pour le RAG mobile 2026-06-09 22:02:30 +02:00
kazeia_mel.cpp chantier B STT #6 : 2 bugs critiques fixés grâce à l'A/B in-app du dev 2026-06-01 12:19:33 +02:00
kazeia_mel.h chantier B STT #1 : S1 unification engine (mel partagé + skeleton stt + VAD C++) 2026-05-31 19:19:28 +02:00
kazeia_stt_jni.cpp chantier B STT #2 : S2 + S3 livrés (stt_engine ORT QNN + JNI + façade Kotlin + doc) 2026-05-31 22:15:58 +02:00
kazeia_text_tokenizer.cpp chantier B TTS #10: tokenizer Qwen3 BPE via llama_tokenize, texte arbitraire 2026-05-28 21:21:53 +02:00
kazeia_text_tokenizer.h chantier B TTS #10: tokenizer Qwen3 BPE via llama_tokenize, texte arbitraire 2026-05-28 21:21:53 +02:00
kazeia_tts_jni.cpp chantier B engine #3 : TTS lib audible + E2E in-app validé 2026-06-03 22:37:47 +02:00
sampler.cpp chantier B TTS #7: sampler HF-style top_k+top_p+rep_penalty (générique) 2026-05-28 16:55:05 +02:00
sampler.h chantier B TTS #7: sampler HF-style top_k+top_p+rep_penalty (générique) 2026-05-28 16:55:05 +02:00
speaker_encoder.cpp chantier B STT #1 : S1 unification engine (mel partagé + skeleton stt + VAD C++) 2026-05-31 19:19:28 +02:00
speaker_encoder.h chantier B TTS #8 : speaker encoder embedded + clonage in-process 2026-05-31 15:54:29 +02:00
stt_cli.cpp chantier B STT #6 : 2 bugs critiques fixés grâce à l'A/B in-app du dev 2026-06-01 12:19:33 +02:00
stt_engine.cpp chantier B STT #6 : 2 bugs critiques fixés grâce à l'A/B in-app du dev 2026-06-01 12:19:33 +02:00
stt_engine.h chantier B STT #1 : S1 unification engine (mel partagé + skeleton stt + VAD C++) 2026-05-31 19:19:28 +02:00
stt_test.cpp chantier B STT #1 : S1 unification engine (mel partagé + skeleton stt + VAD C++) 2026-05-31 19:19:28 +02:00
test_engine.c Valide device: generate() bout-en-bout OK (test_native), bridge pret integration 2026-05-24 22:05:44 +02:00
test_engine.cpp Valide device: generate() bout-en-bout OK (test_native), bridge pret integration 2026-05-24 22:05:44 +02:00
test_engine_2calls.cpp chantier B TTS #11: libkazeia_tts.so + Kotlin wrapper, JNI validé bout-en-bout 2026-05-28 21:54:21 +02:00
test_jni_native.cpp dist: multi-tour propre (generateRaw + ChatSession) + JNI validé end-to-end natif 2026-05-27 11:18:20 +02:00
test_jni_tts.cpp chantier B engine #3 : TTS lib audible + E2E in-app validé 2026-06-03 22:37:47 +02:00
test_native.cpp v4 fix #277: ngl0 CPU decode 14tok/s, 4s/tour, usable 2026-05-25 10:18:31 +02:00
test_talker.cpp chantier B TTS #1: API JNI embeds-only + M-RoPE qwen3 dense 2026-05-28 13:37:17 +02:00
test_talker_replay.cpp chantier B TTS #2: fix M-RoPE positions en embeds-mode + validation bit-exact 2026-05-28 13:54:03 +02:00
test_tokenizer.cpp chantier B TTS #10: tokenizer Qwen3 BPE via llama_tokenize, texte arbitraire 2026-05-28 21:21:53 +02:00
tts_engine.cpp chantier B engine #3 : TTS lib audible + E2E in-app validé 2026-06-03 22:37:47 +02:00
tts_engine.h chantier B TTS #8 : speaker encoder embedded + clonage in-process 2026-05-31 15:54:29 +02:00
tts_orchestrate.cpp chantier B TTS #6: P3.4+P3.5 = pipeline complet 100% tablette bout-en-bout 2026-05-28 15:25:00 +02:00
tts_pipeline.cpp chantier B STT #1 : S1 unification engine (mel partagé + skeleton stt + VAD C++) 2026-05-31 19:19:28 +02:00