Skip to content

Commit ff3c9e1

Browse files
committed
Update llama_cpp: Sync LLAMA_API names with llama.cpp mainline. Needs more testing
1 parent 786fb42 commit ff3c9e1

File tree

2 files changed

+222
-173
lines changed

2 files changed

+222
-173
lines changed

llama_cpp/_internals.py

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,13 @@ def __init__(
4343
self._exit_stack = ExitStack()
4444

4545
model = None
46+
vocab = None
4647

4748
if not os.path.exists(path_model):
4849
raise ValueError(f"Model path does not exist: {path_model}")
4950

5051
with suppress_stdout_stderr(disable=verbose):
51-
model = llama_cpp.llama_load_model_from_file(
52+
model = llama_cpp.llama_model_load_from_file(
5253
self.path_model.encode("utf-8"), self.params
5354
)
5455

@@ -57,12 +58,24 @@ def __init__(
5758

5859
self.model = model
5960

61+
vocab = llama_cpp.llama_model_get_vocab(self.model)
62+
63+
if vocab is None:
64+
raise ValueError(f"Failed to load vocab from file: {path_model}")
65+
66+
self.vocab = vocab
67+
6068
def free_model():
6169
if self.model is None:
6270
return
63-
llama_cpp.llama_free_model(self.model)
71+
llama_cpp.llama_model_free(self.model)
6472
self.model = None
6573

74+
if self.vocab is None:
75+
return
76+
llama_cpp.llama_model_free(self.vocab)
77+
self.vocab = None
78+
6679
self._exit_stack.callback(free_model)
6780

6881
def close(self):
@@ -72,19 +85,19 @@ def __del__(self):
7285
self.close()
7386

7487
def vocab_type(self) -> int:
75-
return llama_cpp.llama_vocab_type(self.model)
88+
return llama_cpp.llama_vocab_type(self.vocab)
7689

7790
def n_vocab(self) -> int:
78-
return llama_cpp.llama_n_vocab(self.model)
91+
return llama_cpp.llama_vocab_n_tokens(self.vocab)
7992

8093
def n_ctx_train(self) -> int:
81-
return llama_cpp.llama_n_ctx_train(self.model)
94+
return llama_cpp.llama_model_n_ctx_train(self.model)
8295

8396
def n_embd(self) -> int:
84-
return llama_cpp.llama_n_embd(self.model)
97+
return llama_cpp.llama_model_n_embd(self.model)
8598

8699
def rope_freq_scale_train(self) -> float:
87-
return llama_cpp.llama_rope_freq_scale_train(self.model)
100+
return llama_cpp.llama_model_rope_freq_scale_train(self.model)
88101

89102
def desc(self) -> str:
90103
buf = ctypes.create_string_buffer(1024)
@@ -114,37 +127,40 @@ def token_get_attr(self, token: int) -> int:
114127
# Special tokens
115128

116129
def token_bos(self) -> int:
117-
return llama_cpp.llama_token_bos(self.model)
130+
return llama_cpp.llama_vocab_bos(self.vocab)
118131

119132
def token_eos(self) -> int:
120-
return llama_cpp.llama_token_eos(self.model)
133+
return llama_cpp.llama_vocab_eos(self.vocab)
134+
135+
def token_eot(self) -> int:
136+
return llama_cpp.llama_vocab_eot(self.vocab)
121137

122138
def token_cls(self) -> int:
123-
return llama_cpp.llama_token_cls(self.model)
139+
return llama_cpp.llama_vocab_cls(self.vocab)
124140

125141
def token_sep(self) -> int:
126-
return llama_cpp.llama_token_sep(self.model)
142+
return llama_cpp.llama_vocab_sep(self.vocab)
127143

128144
def token_nl(self) -> int:
129-
return llama_cpp.llama_token_nl(self.model)
145+
return llama_cpp.llama_vocab_nl(self.vocab)
146+
147+
def token_pad(self) -> int:
148+
return llama_cpp.llama_vocab_pad(self.vocab)
130149

131150
def token_prefix(self) -> int:
132-
return llama_cpp.llama_token_prefix(self.model)
151+
return llama_cpp.llama_vocab_fim_pre(self.vocab)
133152

134153
def token_middle(self) -> int:
135-
return llama_cpp.llama_token_middle(self.model)
154+
return llama_cpp.llama_vocab_fim_mid(self.vocab)
136155

137156
def token_suffix(self) -> int:
138-
return llama_cpp.llama_token_suffix(self.model)
139-
140-
def token_eot(self) -> int:
141-
return llama_cpp.llama_token_eot(self.model)
157+
return llama_cpp.llama_vocab_fim_suf(self.vocab)
142158

143159
def add_bos_token(self) -> bool:
144-
return llama_cpp.llama_add_bos_token(self.model)
160+
return llama_cpp.llama_vocab_get_add_bos(self.vocab)
145161

146162
def add_eos_token(self) -> bool:
147-
return llama_cpp.llama_add_eos_token(self.model)
163+
return llama_cpp.llama_vocab_get_add_eos(self.vocab)
148164

149165
# Tokenization
150166

0 commit comments

Comments
 (0)