Skip to content

Commit 8f3cfc6

Browse files
Merge pull request #490 from janhq/update-dev-from-master-2026-04-19-01-00
Sync master with upstream release b8840
2 parents 3ee0464 + 9e5647a commit 8f3cfc6

62 files changed

Lines changed: 255 additions & 182 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,11 @@ jobs:
687687
with:
688688
fetch-depth: 0
689689

690+
- name: Free up disk space
691+
uses: ggml-org/free-disk-space@v1.3.1
692+
with:
693+
tool-cache: true
694+
690695
- name: ccache
691696
uses: ggml-org/ccache-action@v1.2.21
692697
with:

convert_hf_to_gguf.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10912,14 +10912,14 @@ def set_vocab(self):
1091210912
vocab_size = -(vocab_size // -pad_vocab) * pad_vocab
1091310913
self.hparams["vocab_size"] = vocab_size
1091410914

10915-
assert max(tokenizer.vocab.values()) < vocab_size
10915+
assert max(tokenizer.vocab.values()) < vocab_size # ty: ignore[unresolved-attribute]
1091610916

1091710917
tokpre = self.get_vocab_base_pre(tokenizer)
1091810918

10919-
reverse_vocab = {id_: encoded_tok for encoded_tok, id_ in tokenizer.vocab.items()}
10920-
added_vocab = tokenizer.get_added_vocab()
10919+
reverse_vocab = {id_: encoded_tok for encoded_tok, id_ in tokenizer.vocab.items()} # ty: ignore[unresolved-attribute]
10920+
added_vocab = tokenizer.get_added_vocab() # ty: ignore[unresolved-attribute]
1092110921

10922-
added_tokens_decoder = tokenizer.added_tokens_decoder
10922+
added_tokens_decoder = tokenizer.added_tokens_decoder # ty: ignore[unresolved-attribute]
1092310923

1092410924
for i in range(vocab_size):
1092510925
if i not in reverse_vocab:
@@ -10930,7 +10930,7 @@ def set_vocab(self):
1093010930
if token in added_vocab:
1093110931
if not added_tokens_decoder[i].normalized:
1093210932
previous_token = token
10933-
token = tokenizer.decode(tokenizer.encode(token, add_special_tokens=False))
10933+
token = tokenizer.decode(tokenizer.encode(token, add_special_tokens=False)) # ty: ignore[unresolved-attribute, invalid-assignment]
1093410934
if previous_token != token:
1093510935
logger.info(f"{repr(previous_token)} is encoded and decoded back to {repr(token)} using AutoTokenizer")
1093610936

examples/llama.android/lib/src/main/cpp/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,6 @@ target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
5151

5252
target_link_libraries(${CMAKE_PROJECT_NAME}
5353
llama
54-
common
54+
llama-common
5555
android
5656
log)

ggml/src/ggml-backend-meta.cpp

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1270,7 +1270,45 @@ static void ggml_backend_meta_buffer_get_tensor(ggml_backend_buffer_t buffer, co
12701270
GGML_ASSERT(ggml_is_contiguous(tensor));
12711271

12721272
const ggml_backend_meta_split_state split_state = ggml_backend_meta_get_split_state(tensor, /*assume_sync =*/ false);
1273-
GGML_ASSERT(split_state.n_segments == 1);
1273+
1274+
if (split_state.n_segments != 1) {
1275+
GGML_ASSERT(split_state.axis >= 0 && split_state.axis < GGML_MAX_DIMS);
1276+
GGML_ASSERT(offset == 0);
1277+
GGML_ASSERT(size == ggml_nbytes(tensor));
1278+
GGML_ASSERT(tensor->ne[3] == 1);
1279+
size_t offset_data = 0;
1280+
std::vector<size_t> simple_offsets(n_bufs, 0);
1281+
if (split_state.axis == GGML_BACKEND_SPLIT_AXIS_0) {
1282+
GGML_ASSERT(tensor->ne[2] == 1);
1283+
const int64_t blck_size = ggml_blck_size(tensor->type);
1284+
for (size_t s = 0; s < split_state.n_segments; s++) {
1285+
for (size_t j = 0; j < n_bufs; j++) {
1286+
const ggml_tensor * simple_tensor = ggml_backend_meta_buffer_simple_tensor(tensor, j);
1287+
GGML_ASSERT(split_state.ne[s*n_bufs + j] % blck_size == 0);
1288+
const size_t nbytes = split_state.ne[s*n_bufs + j]/blck_size * tensor->nb[0];
1289+
ggml_backend_tensor_get_2d(simple_tensor, (char *) data + offset_data, simple_offsets[j], nbytes,
1290+
tensor->ne[1], simple_tensor->nb[1], tensor->nb[1]);
1291+
offset_data += nbytes;
1292+
simple_offsets[j] += nbytes;
1293+
}
1294+
}
1295+
GGML_ASSERT(offset_data*tensor->ne[1] == size);
1296+
return;
1297+
}
1298+
GGML_ASSERT(split_state.axis == GGML_BACKEND_SPLIT_AXIS_1);
1299+
for (size_t s = 0; s < split_state.n_segments; s++) {
1300+
for (size_t j = 0; j < n_bufs; j++) {
1301+
const ggml_tensor * simple_tensor = ggml_backend_meta_buffer_simple_tensor(tensor, j);
1302+
const size_t nbytes = split_state.ne[s*n_bufs + j] * tensor->nb[1];
1303+
ggml_backend_tensor_get_2d(simple_tensor, (char *) data + offset_data, simple_offsets[j], nbytes,
1304+
tensor->ne[2], simple_tensor->nb[2], tensor->nb[2]);
1305+
offset_data += nbytes;
1306+
simple_offsets[j] += nbytes;
1307+
}
1308+
}
1309+
GGML_ASSERT(offset_data*tensor->ne[2] == size);
1310+
return;
1311+
}
12741312

12751313
switch (split_state.axis) {
12761314
case GGML_BACKEND_SPLIT_AXIS_0:

src/llama-graph.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,9 +1077,9 @@ llm_graph_qkv llm_graph_context::build_qkv(
10771077
// fused QKV path
10781078
ggml_tensor * qkv = build_lora_mm(layer.wqkv, cur, layer.wqkv_s);
10791079
cb(qkv, "wqkv", il);
1080-
if (layer.bqkv) {
1081-
qkv = ggml_add(ctx0, qkv, layer.bqkv);
1082-
cb(qkv, "bqkv", il);
1080+
if (layer.wqkv_b) {
1081+
qkv = ggml_add(ctx0, qkv, layer.wqkv_b);
1082+
cb(qkv, "wqkv_b", il);
10831083
}
10841084
if (hparams.f_clamp_kqv > 0.0f) {
10851085
qkv = ggml_clamp(ctx0, qkv, -hparams.f_clamp_kqv, hparams.f_clamp_kqv);
@@ -1097,8 +1097,8 @@ llm_graph_qkv llm_graph_context::build_qkv(
10971097
// separate Q/K/V path
10981098
Qcur = build_lora_mm(layer.wq, cur, layer.wq_s);
10991099
cb(Qcur, "Qcur", il);
1100-
if (layer.bq) {
1101-
Qcur = ggml_add(ctx0, Qcur, layer.bq);
1100+
if (layer.wq_b) {
1101+
Qcur = ggml_add(ctx0, Qcur, layer.wq_b);
11021102
cb(Qcur, "Qcur", il);
11031103
}
11041104
if (hparams.f_clamp_kqv > 0.0f) {
@@ -1107,8 +1107,8 @@ llm_graph_qkv llm_graph_context::build_qkv(
11071107
}
11081108
Kcur = build_lora_mm(layer.wk, cur, layer.wk_s);
11091109
cb(Kcur, "Kcur", il);
1110-
if (layer.bk) {
1111-
Kcur = ggml_add(ctx0, Kcur, layer.bk);
1110+
if (layer.wk_b) {
1111+
Kcur = ggml_add(ctx0, Kcur, layer.wk_b);
11121112
cb(Kcur, "Kcur", il);
11131113
}
11141114
if (hparams.f_clamp_kqv > 0.0f) {
@@ -1117,8 +1117,8 @@ llm_graph_qkv llm_graph_context::build_qkv(
11171117
}
11181118
Vcur = build_lora_mm(layer.wv, cur, layer.wv_s);
11191119
cb(Vcur, "Vcur", il);
1120-
if (layer.bv) {
1121-
Vcur = ggml_add(ctx0, Vcur, layer.bv);
1120+
if (layer.wv_b) {
1121+
Vcur = ggml_add(ctx0, Vcur, layer.wv_b);
11221122
cb(Vcur, "Vcur", il);
11231123
}
11241124
if (hparams.f_clamp_kqv > 0.0f) {

0 commit comments

Comments
 (0)