Extend llama_kv_cache_seq_rm to allow matichng any sequence
This commit is contained in:
parent
ff3bad83e2
commit
ebd4b91327
2 changed files with 11 additions and 4 deletions
10
llama.cpp
10
llama.cpp
|
@ -1492,8 +1492,14 @@ static void llama_kv_cache_seq_rm(
|
||||||
if (p1 < 0) p1 = std::numeric_limits<llama_pos>::max();
|
if (p1 < 0) p1 = std::numeric_limits<llama_pos>::max();
|
||||||
|
|
||||||
for (uint32_t i = 0; i < cache.size; ++i) {
|
for (uint32_t i = 0; i < cache.size; ++i) {
|
||||||
if (cache.cells[i].has_seq_id(seq_id) && cache.cells[i].pos >= p0 && cache.cells[i].pos < p1) {
|
if (cache.cells[i].pos >= p0 && cache.cells[i].pos < p1) {
|
||||||
cache.cells[i].seq_id.erase(seq_id);
|
if (seq_id < 0) {
|
||||||
|
cache.cells[i].seq_id.clear();
|
||||||
|
} else if (cache.cells[i].has_seq_id(seq_id)) {
|
||||||
|
cache.cells[i].seq_id.erase(seq_id);
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (cache.cells[i].seq_id.empty()) {
|
if (cache.cells[i].seq_id.empty()) {
|
||||||
cache.cells[i].pos = -1;
|
cache.cells[i].pos = -1;
|
||||||
if (new_head == cache.size) new_head = i;
|
if (new_head == cache.size) new_head = i;
|
||||||
|
|
5
llama.h
5
llama.h
|
@ -342,8 +342,9 @@ extern "C" {
|
||||||
int32_t c1);
|
int32_t c1);
|
||||||
|
|
||||||
// Removes all tokens that belong to the specified sequence and have positions in [p0, p1)
|
// Removes all tokens that belong to the specified sequence and have positions in [p0, p1)
|
||||||
// p0 < 0 : [0, p1]
|
// seq_id < 0 : match any sequence
|
||||||
// p1 < 0 : [p0, inf)
|
// p0 < 0 : [0, p1]
|
||||||
|
// p1 < 0 : [p0, inf)
|
||||||
LLAMA_API void llama_kv_cache_seq_rm(
|
LLAMA_API void llama_kv_cache_seq_rm(
|
||||||
struct llama_context * ctx,
|
struct llama_context * ctx,
|
||||||
llama_seq_id seq_id,
|
llama_seq_id seq_id,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue