|
1 | 1 | import sys, struct, math, argparse
|
| 2 | +from pathlib import Path |
2 | 3 |
|
3 | 4 | import numpy as np
|
4 | 5 |
|
@@ -163,8 +164,16 @@ def save(self):
|
163 | 164 | def add_params(self, gguf_writer):
|
164 | 165 | hp = self.model.hyperparameters
|
165 | 166 | cfg = self.cfg
|
| 167 | + desc = cfg.desc if cfg.desc is not None else 'converted from legacy GGJTv3 format' |
| 168 | + try: |
| 169 | + # Filenames aren't necessarily valid UTF8. |
| 170 | + name = cfg.name if cfg.name is not None else cfg.input.name |
| 171 | + except UnicodeDecodeError: |
| 172 | + name = None |
166 | 173 | print('* Adding model parameters and KV items')
|
167 |
| - gguf_writer.add_description('converted from legacy GGJTv3 format') |
| 174 | + if name is not None: |
| 175 | + gguf_writer.add_name(name) |
| 176 | + gguf_writer.add_description(desc) |
168 | 177 | gguf_writer.add_context_length(cfg.context_length)
|
169 | 178 | gguf_writer.add_embedding_length(hp.n_embd)
|
170 | 179 | gguf_writer.add_block_count(hp.n_layer)
|
@@ -224,8 +233,10 @@ def add_tensors(self, gguf_writer):
|
224 | 233 |
|
225 | 234 | def handle_args():
|
226 | 235 | parser = argparse.ArgumentParser(description = 'Convert GGMLv3 models to GGUF')
|
227 |
| - parser.add_argument('--input', '-i', help = 'Input GGMLv3 filename') |
228 |
| - parser.add_argument('--output', '-o', help ='Output GGUF filename') |
| 236 | + parser.add_argument('--input', '-i', type = Path, help = 'Input GGMLv3 filename') |
| 237 | + parser.add_argument('--output', '-o', type = Path, help ='Output GGUF filename') |
| 238 | + parser.add_argument('--name', help = 'Set model name') |
| 239 | + parser.add_argument('--desc', help = 'Set model description') |
229 | 240 | parser.add_argument('--gqa', type = int, default = 1, help = 'grouped-query attention factor (use 8 for LLaMA2 70B)')
|
230 | 241 | parser.add_argument('--eps', default = '5.0e-06', help = 'RMS norm eps: Use 1e-6 for LLaMA1 and OpenLLaMA, use 1e-5 for LLaMA2')
|
231 | 242 | parser.add_argument('--context-length', '-c', type=int, default = 2048, help = 'Default max context length: LLaMA1 is typically 2048, LLaMA2 is typically 4096')
|
|
0 commit comments