Spaces:
Running
Running
Alex W. commited on
Commit ยท
e1ce951
1
Parent(s): a2dfa0f
debug for gemma-4-31b-it
Browse files- core/fetcher.py +32 -3
core/fetcher.py
CHANGED
|
@@ -80,7 +80,6 @@ def load_tensor_remote(
|
|
| 80 |
header_size: int,
|
| 81 |
token: str = None
|
| 82 |
) -> torch.Tensor | None:
|
| 83 |
-
"""่ฟ็จๅ ่ฝฝๅไธช tensor๏ผ่ฟๅ float32"""
|
| 84 |
if tensor_name not in header:
|
| 85 |
return None
|
| 86 |
|
|
@@ -94,10 +93,27 @@ def load_tensor_remote(
|
|
| 94 |
if dtype_str in UNSUPPORTED_SVD_DTYPES:
|
| 95 |
raise ValueError(f"dtype={dtype_str} ไธบ้ๅๆ ผๅผ๏ผๆ ๆณ SVD")
|
| 96 |
|
| 97 |
-
torch_dtype,
|
| 98 |
abs_start = 8 + header_size + offsets[0]
|
| 99 |
abs_end = 8 + header_size + offsets[1] - 1
|
| 100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
req_headers = {"Range": f"bytes={abs_start}-{abs_end}"}
|
| 102 |
if token:
|
| 103 |
req_headers["Authorization"] = f"Bearer {token}"
|
|
@@ -105,6 +121,14 @@ def load_tensor_remote(
|
|
| 105 |
r = requests.get(url, headers=req_headers, timeout=120)
|
| 106 |
r.raise_for_status()
|
| 107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
if torch_dtype == torch.bfloat16:
|
| 109 |
tensor = torch.frombuffer(
|
| 110 |
bytearray(r.content), dtype=torch.int16
|
|
@@ -112,7 +136,12 @@ def load_tensor_remote(
|
|
| 112 |
else:
|
| 113 |
tensor = torch.frombuffer(bytearray(r.content), dtype=torch_dtype)
|
| 114 |
|
| 115 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
|
| 117 |
|
| 118 |
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
|
|
| 80 |
header_size: int,
|
| 81 |
token: str = None
|
| 82 |
) -> torch.Tensor | None:
|
|
|
|
| 83 |
if tensor_name not in header:
|
| 84 |
return None
|
| 85 |
|
|
|
|
| 93 |
if dtype_str in UNSUPPORTED_SVD_DTYPES:
|
| 94 |
raise ValueError(f"dtype={dtype_str} ไธบ้ๅๆ ผๅผ๏ผๆ ๆณ SVD")
|
| 95 |
|
| 96 |
+
torch_dtype, bytes_per_elem = DTYPE_MAP[dtype_str]
|
| 97 |
abs_start = 8 + header_size + offsets[0]
|
| 98 |
abs_end = 8 + header_size + offsets[1] - 1
|
| 99 |
|
| 100 |
+
# โโ ่ฐ่ฏ๏ผๆๅฐๅ็งปไฟกๆฏ โโโโโโโโโโโโโโโโโโโโโโโโ
|
| 101 |
+
expected_bytes = offsets[1] - offsets[0]
|
| 102 |
+
expected_elems = 1
|
| 103 |
+
for d in shape:
|
| 104 |
+
expected_elems *= d
|
| 105 |
+
print(
|
| 106 |
+
f"[FETCH] {tensor_name}\n"
|
| 107 |
+
f" shape={shape} dtype={dtype_str}\n"
|
| 108 |
+
f" data_offsets={offsets}\n"
|
| 109 |
+
f" abs_start={abs_start} abs_end={abs_end}\n"
|
| 110 |
+
f" expected_bytes={expected_bytes} "
|
| 111 |
+
f"expected_elems={expected_elems} "
|
| 112 |
+
f"bytes_per_elem={bytes_per_elem}\n"
|
| 113 |
+
f" check: {expected_elems * bytes_per_elem} == {expected_bytes} "
|
| 114 |
+
f"{'โ
' if expected_elems * bytes_per_elem == expected_bytes else 'โ ไธๅน้
!'}\n"
|
| 115 |
+
)
|
| 116 |
+
|
| 117 |
req_headers = {"Range": f"bytes={abs_start}-{abs_end}"}
|
| 118 |
if token:
|
| 119 |
req_headers["Authorization"] = f"Bearer {token}"
|
|
|
|
| 121 |
r = requests.get(url, headers=req_headers, timeout=120)
|
| 122 |
r.raise_for_status()
|
| 123 |
|
| 124 |
+
# โโ ่ฐ่ฏ๏ผๆๅฐๅฎ้
ๆถๅฐ็ๅญ่ๆฐ โโโโโโโโโโโโโโโโ
|
| 125 |
+
actual_bytes = len(r.content)
|
| 126 |
+
print(
|
| 127 |
+
f" actual_bytes={actual_bytes} "
|
| 128 |
+
f"{'โ
' if actual_bytes == expected_bytes else 'โ ๅญ่ๆฐไธๅน้
!'}\n"
|
| 129 |
+
f" ๅ8ๅญ่(hex)={r.content[:8].hex()}\n"
|
| 130 |
+
)
|
| 131 |
+
|
| 132 |
if torch_dtype == torch.bfloat16:
|
| 133 |
tensor = torch.frombuffer(
|
| 134 |
bytearray(r.content), dtype=torch.int16
|
|
|
|
| 136 |
else:
|
| 137 |
tensor = torch.frombuffer(bytearray(r.content), dtype=torch_dtype)
|
| 138 |
|
| 139 |
+
result = tensor.reshape(shape).float()
|
| 140 |
+
|
| 141 |
+
# โโ ่ฐ่ฏ๏ผๆๅฐ็ปๆ้ฆ่ก โโโโโโโโโโโโโโโโโโโโโโโโ
|
| 142 |
+
print(f" result[0,:5]={result[0,:5].tolist()}\n")
|
| 143 |
+
|
| 144 |
+
return result
|
| 145 |
|
| 146 |
|
| 147 |
# โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|