"""GGUF書き出し。圧縮した重みを実モデルに戻して、本当に動かして測るための道具。 やり方: 元のGGUFを読み、指定したテンソルだけ我々のレシピで圧縮→復元した値に差し替え、 F16として書き出す。ファイルは大きくなるが「その重みで実際に推論したらどうなるか」を perplexityと実速度で測れるようになる。これが無いと世界の手法と同じ土俵に立てない。 """ import struct import numpy as np import gguf as G def _w_str(f, s): b = s.encode("utf-8") f.write(struct.pack(" 0: buf = src.read(min(CHUNK, nokori)) if not buf: raise IOError("元ファイルが途中で尽きた: %s" % name) f.write(buf) nokori -= len(buf) f.write(b"\x00" * pad) src.close() return out_path