ngxson HF Staff commited on
Commit
811d18f
·
verified ·
1 Parent(s): e8416a8

Upload folder using huggingface_hub

Browse files
.gitattributes CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ Home-Cook-Mistral-Small-Omni-2507-bf16.gguf filter=lfs diff=lfs merge=lfs -text
37
+ Home-Cook-Mistral-Small-Omni-2507-f16.gguf filter=lfs diff=lfs merge=lfs -text
38
+ mmproj-model-f16.gguf filter=lfs diff=lfs merge=lfs -text
Home-Cook-Mistral-Small-Omni-2507-bf16.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:90e67f8e12d924e9202428b41a06ff4601365a28101a23f41f00e8a06eba41d4
3
+ size 47154051136
Home-Cook-Mistral-Small-Omni-2507-f16.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:13dbbd4ba30f66f252903e1833af699fa2fc3f5178940867c00c348fdb73149a
3
+ size 47154051136
merge_mmproj_models.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ from __future__ import annotations
3
+
4
+ import logging
5
+ import argparse
6
+ import os
7
+ import sys
8
+ import json
9
+ from pathlib import Path
10
+
11
+ from tqdm import tqdm
12
+ from typing import Any, Sequence, NamedTuple
13
+
14
+ # Necessary to load the local gguf package
15
+ if "NO_LOCAL_GGUF" not in os.environ and (Path(__file__).parent.parent.parent.parent / 'gguf-py').exists():
16
+ sys.path.insert(0, str(Path(__file__).parent.parent.parent))
17
+
18
+ import gguf
19
+
20
+ logger = logging.getLogger("gguf-mmproj-merge")
21
+
22
+
23
+ class MetadataDetails(NamedTuple):
24
+ type: gguf.GGUFValueType
25
+ value: Any
26
+ description: str = ''
27
+ sub_type: gguf.GGUFValueType | None = None
28
+
29
+
30
+ def get_field_data(reader: gguf.GGUFReader, key: str) -> Any:
31
+ field = reader.get_field(key)
32
+
33
+ return field.contents() if field else None
34
+
35
+
36
+ def merge_multiple_ggufs(readers: Sequence[gguf.GGUFReader], writer: gguf.GGUFWriter) -> None:
37
+ total_bytes = 0
38
+ seen_fields = set()
39
+
40
+ for reader in readers:
41
+ for field in reader.fields.values():
42
+ # Suppress virtual fields and fields written by GGUFWriter
43
+ if field.name == gguf.Keys.General.ARCHITECTURE or field.name.startswith('GGUF.') or "projector_type" in field.name:
44
+ logger.debug(f'Suppressing {field.name}')
45
+ continue
46
+
47
+ if field.name in seen_fields:
48
+ logger.debug(f'Skipping duplicate field {field.name}')
49
+ continue
50
+
51
+ seen_fields.add(field.name)
52
+
53
+ val_type = field.types[0]
54
+ sub_type = field.types[-1] if val_type == gguf.GGUFValueType.ARRAY else None
55
+ old_val = MetadataDetails(val_type, field.contents(), sub_type=sub_type)
56
+ val = old_val
57
+
58
+ assert val.value is not None
59
+ logger.debug(f'Copying {field.name}')
60
+ writer.add_key_value(field.name, val.value, val.type, sub_type=sub_type if val.sub_type is None else val.sub_type)
61
+
62
+ for tensor in reader.tensors:
63
+ total_bytes += tensor.n_bytes
64
+ writer.add_tensor_info(tensor.name, tensor.data.shape, tensor.data.dtype, tensor.data.nbytes, tensor.tensor_type)
65
+
66
+ bar = tqdm(desc="Writing", total=total_bytes, unit="byte", unit_scale=True)
67
+
68
+ writer.add_string("clip.vision.projector_type", "pixtral")
69
+ writer.add_string("clip.audio.projector_type", "voxtral")
70
+ writer.write_header_to_file()
71
+ writer.write_kv_data_to_file()
72
+ writer.write_ti_data_to_file()
73
+
74
+ for reader in readers:
75
+ for tensor in reader.tensors:
76
+ writer.write_tensor_data(tensor.data)
77
+ bar.update(tensor.n_bytes)
78
+
79
+ writer.close()
80
+
81
+
82
+ def main() -> None:
83
+ reader0 = gguf.GGUFReader('audio.gguf', 'r')
84
+ reader1 = gguf.GGUFReader('vision.gguf', 'r')
85
+ output_path = 'mmproj-model.gguf'
86
+
87
+ logger.info(f'* Writing: {output_path}')
88
+ writer = gguf.GGUFWriter(output_path, arch='clip', endianess=reader0.endianess)
89
+
90
+ merge_multiple_ggufs([reader0, reader1], writer)
91
+
92
+
93
+ if __name__ == '__main__':
94
+ main()
mmproj-model-f16.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a2cd57fff1772fd0bcf267b44fe0c03f028358f9b753142b6ab862ff5bd56de
3
+ size 2261710592