@@ -1508,25 +1508,27 @@ def main(args_in: list[str] | None = None) -> None:
1508
1508
if args .big_endian :
1509
1509
endianess = gguf .GGUFEndian .BIG
1510
1510
1511
- params = Params .load (model_plus )
1512
- if params .n_ctx == - 1 :
1513
- if args .ctx is None :
1514
- msg = """\
1515
- The model doesn't have a context size, and you didn't specify one with --ctx
1516
- Please specify one with --ctx:
1517
- - LLaMA v1: --ctx 2048
1518
- - LLaMA v2: --ctx 4096"""
1519
- parser .error (textwrap .dedent (msg ))
1520
- params .n_ctx = args .ctx
1521
-
1522
- if args .outtype :
1523
- params .ftype = {
1524
- "f32" : GGMLFileType .AllF32 ,
1525
- "f16" : GGMLFileType .MostlyF16 ,
1526
- "q8_0" : GGMLFileType .MostlyQ8_0 ,
1527
- }[args .outtype ]
1528
-
1529
- logger .info (f"params = { params } " )
1511
+ params = None
1512
+ if args .pad_vocab or not args .vocab_only :
1513
+ params = Params .load (model_plus )
1514
+ if params .n_ctx == - 1 :
1515
+ if args .ctx is None :
1516
+ msg = """\
1517
+ The model doesn't have a context size, and you didn't specify one with --ctx
1518
+ Please specify one with --ctx:
1519
+ - LLaMA v1: --ctx 2048
1520
+ - LLaMA v2: --ctx 4096"""
1521
+ parser .error (textwrap .dedent (msg ))
1522
+ params .n_ctx = args .ctx
1523
+
1524
+ if args .outtype :
1525
+ params .ftype = {
1526
+ "f32" : GGMLFileType .AllF32 ,
1527
+ "f16" : GGMLFileType .MostlyF16 ,
1528
+ "q8_0" : GGMLFileType .MostlyQ8_0 ,
1529
+ }[args .outtype ]
1530
+
1531
+ logger .info (f"params = { params } " )
1530
1532
1531
1533
model_parent_path = model_plus .paths [0 ].parent
1532
1534
vocab_path = Path (args .vocab_dir or args .model or model_parent_path )
@@ -1539,6 +1541,17 @@ def main(args_in: list[str] | None = None) -> None:
1539
1541
if not args .outfile :
1540
1542
raise ValueError ("need --outfile if using --vocab-only" )
1541
1543
outfile = args .outfile
1544
+ if params is None :
1545
+ params = Params (
1546
+ n_vocab = vocab .vocab_size ,
1547
+ n_embd = 1 ,
1548
+ n_layer = 1 ,
1549
+ n_ctx = 1 ,
1550
+ n_ff = 1 ,
1551
+ n_head = 1 ,
1552
+ n_head_kv = 1 ,
1553
+ f_norm_eps = 1e-5 ,
1554
+ )
1542
1555
OutputFile .write_vocab_only (outfile , params , vocab , special_vocab ,
1543
1556
endianess = endianess , pad_vocab = args .pad_vocab )
1544
1557
logger .info (f"Wrote { outfile } " )
0 commit comments