Georgi Gerganov
ec893798b7
llama : custom attention mask + parallel decoding + no context swaps (#3228)
* tests : verify that RoPE is "additive"
* llama : replace ggml_diag_mask_inf with ggml_add (custom -inf mask)
* ggml : ggml_rope now takes a vector with positions instead of n_past
* metal : add rope_f16 kernel + optimize cpy kernels
* llama : unified KV cache + batch inference API
* llama : add new llama_decode() API that works with llama_batch
* llama : add cell_max heuristic for more efficient kv_cache
* llama : extend llama_kv_cache API
* llama : more robust cell_max heuristic + wip shift
* metal : disable concurrency optimization
* llama : add llama_kv_cache_shift_seq + no more context swaps
* llama : apply K-cache roping for Falcon and Baichuan
* speculative : fix KV cache management
* parallel : example for serving multiple users in parallel
* parallel : disable hot-plug to avoid cache fragmentation
* fixes : speculative KV cache + llama worst-case graph
* llama : extend batch API to select which logits to output
* llama : fix worst case graph build
* ggml-cuda : update rope implementation for parallel decoding (#3254)
* ggml-cuda : update rope implementation for parallel decoding
* better solution for p0 computation
* fix rope
* simpler rope implementation
---------
Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
* make : add parallel to build + fix static functions in llama.cpp
* simple : fix token counting
* parallel : various improvements
* llama : fix cell_max logic + rename functions
* parallel : try smaller batches when the KV cache is fragmented
* parallel : fix sequence termination criteria
* llama : silence errors KV cache errors
* parallel : remove new line from prompt
* parallel : process system prompt once + configurable paramters + llama API
* parallel : remove question with short answers
* parallel : count cache misses
* parallel : print misses on each request
* parallel : minor
* llama : fix n_kv to never become 0
* parallel : rename hot-plug to continuous-batching
* llama : improve llama_batch API + simplify parallel example
* simple : add parallel decoding support
* simple : improve comments + free batch
* ggml-cuda : add rope f16, restore performance with parallel decoding (#3272)
* ggml-cuda : add rope f16, restore performance
* offload KQ_mask with all models
* fix rope shift
---------
Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
* llama : disable MPI for now
ggml-ci
* train : make KQ_pos memory buffer permanent via dummy scale op
* ggml : revert change to ggml_cpy, add ggml_cont_Nd instead (#3275)
ggml-ci
* parallel : fix bug (extra BOS) + smaller token_prev array
* parallel : fix cases where the input prompts can overflow the batch
* parallel : add disabled experimental batch chunking in powers of two
* llama : llama.h formatting + comments
* simple : add README.md
* llama : fix kv cache heuristic when context is less than 32
* parallel : fix crash when `-n -1`
* llama : simplify returns if/else branches
* metal : use mm kernels for batch size > 2
* examples : utilize new llama_get_logits_ith()
* examples : add example for batched decoding
* examples : do not eval prompt 2 times (close #3348)
* server : clear the KV cache beyond n_past before llama_decode
* server : avoid context swaps by shifting the KV cache
---------
Co-authored-by: slaren <slarengh@gmail.com>
2023-09-28 19:04:36 +03:00
..
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-20 12:06:08 -04:00
2023-09-15 15:38:27 -04:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-15 15:38:27 -04:00
2023-09-27 12:18:07 -04:00
2023-08-23 17:29:09 +03:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-14 20:04:40 +03:00
2023-08-21 23:07:43 +03:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-27 18:30:36 +03:00
2023-09-18 10:03:53 -04:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-09-28 19:04:36 +03:00
2023-07-06 19:17:50 +03:00
2023-03-29 20:21:09 +03:00
2023-05-03 20:58:11 +03:00
2023-05-24 09:16:22 +03:00
2023-06-15 21:05:53 +03:00
2023-08-30 09:29:32 +03:00
2023-09-28 19:04:36 +03:00
2023-04-13 16:03:39 +03:00
2023-08-23 17:29:09 +03:00
2023-07-21 13:53:27 +03:00
2023-07-21 13:53:27 +03:00
2023-08-08 14:44:48 +03:00
2023-08-30 09:50:55 +03:00
2023-09-27 19:25:12 +03:00
2023-07-21 11:13:18 +03:00
2023-08-23 17:29:09 +03:00
2023-08-23 17:29:09 +03:00