]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
llama : simplify Mamba with advanced batch splits (#8526)
authorcompilade <redacted>
Wed, 21 Aug 2024 21:58:11 +0000 (17:58 -0400)
committerGitHub <redacted>
Wed, 21 Aug 2024 21:58:11 +0000 (17:58 -0400)
commita1631e53f6763e17da522ba219b030d8932900bd
tree8e6c2f542542ea095ede8f554e918c77f97325d3
parentfc54ef0d1c138133a01933296d50a36a1ab64735
llama : simplify Mamba with advanced batch splits (#8526)

* llama : advanced batch splits

This includes equal-sequence-length batch splits which are useful
to simplify recurrent model operators.

* llama : always make recurrent state slots contiguous

* ggml : simplify mamba operators

* llama : fix integer signedness mixing

* llama : logits_all has priority over batch->logits

Otherwise, the server embeddings tests failed.
This was likely an existing problem but was only detected here
because of an additional assertion.

* llama : apply suggestions

Co-authored-by: Georgi Gerganov <redacted>
* llama : fix t5 segfault

* llama : fix Mamba session save and restore

* llama : minor cosmetic changes

* llama : rename llama_reorder_outputs to llama_output_reorder

Also move it closer to llama_output_reserve.

* llama : fix pooled embeddings when using batches with equal_seqs

* minor : add struct members for clarity

ggml-ci

* llama : fix T5 segfault again

* llama : fix Mamba pooled embeddings with multiple sequences

Until the pooled embeddings are refactored to allow splitting
across ubatches for causal embeddings,
recurrent models can only process a single sequence per ubatch
when calculating pooled embeddings.

* llama : add llama_model_is_recurrent to simplify figuring that out

This will make it easier to more cleanly support RWKV-v6 and Mamba-2.

* llama : fix simple splits when the batch contains embeddings

---------

Co-authored-by: Georgi Gerganov <redacted>
ggml/include/ggml.h
ggml/src/ggml.c
include/llama.h
src/llama.cpp