Download tools/finalize_selective_release.py from Sariel00/Ling-3.0-tiny-RKNN: direct link, hf CLI and curl.
- Browser
- Download file 3.84 kB
-
https://huggingface.co/Sariel00/Ling-3.0-tiny-RKNN/resolve/main/tools/finalize_selective_release.py
- Command line
-
hf download hf://Sariel00/Ling-3.0-tiny-RKNN/tools/finalize_selective_release.py
-
curl -L -o finalize_selective_release.py https://huggingface.co/Sariel00/Ling-3.0-tiny-RKNN/resolve/main/tools/finalize_selective_release.py
3.84 kB
| #!/usr/bin/env python3 | |
| """Build a new, verified release archive after board acceptance. Never overwrite it.""" | |
| import argparse | |
| import hashlib | |
| import json | |
| from pathlib import Path | |
| import shutil | |
| import tarfile | |
| def digest(path): | |
| with path.open('rb') as f:return hashlib.file_digest(f,'sha256').hexdigest() | |
| def main(): | |
| p=argparse.ArgumentParser(description=__doc__) | |
| p.add_argument('--root',type=Path,required=True) | |
| a=p.parse_args() | |
| root=a.root.resolve();source=root/'source' | |
| package=root/'package/mindnano-ling3-rk3588-selective-20260911' | |
| archive=root/(package.name+'.tar.gz') | |
| partial=archive.with_suffix(archive.suffix+'.building') | |
| if archive.exists() or partial.exists():raise FileExistsError('archive already exists') | |
| result=json.loads((root/'validation/results.json').read_text()) | |
| assert result['passed'] and all(x['bitwise_equal'] for x in result['logit_equality']) | |
| assert result['health_restored']['status']=='ok' | |
| api=json.loads((root/'validation/api.json').read_text()) | |
| cache=json.loads((root/'validation/prefix-cache.json').read_text()) | |
| assert api['passed'] and cache['passed'] | |
| manifest=json.loads((package/'MANIFEST.json').read_text()) | |
| assert manifest['files']['mindnano-infer-engine']['sha256']==digest(root/'build/mindnano-infer') | |
| readme_template=source/'docs/deployment-selective-readme.md' | |
| if not readme_template.is_file():readme_template=source/'README.md' | |
| shutil.copyfile(readme_template,package/'README.md') | |
| merge=package/'ling3-tiny-w4.merge.json' | |
| if merge.exists():merge.rename(package/'MODEL.json') | |
| model=json.loads((package/'MODEL.json').read_text()) | |
| assert model['all_payload_sha256_valid'] and model['source_payloads_verified'] | |
| validation=dict(passed=True,model_merge=model,portable_health=result['health'], | |
| portable_api_passed=api['passed'],prefix_cache_passed=cache['passed'], | |
| performance=dict(context=65536,input_tokens=128,output_tokens=64,warm_request_excluded=True, | |
| runs=3,**result['performance']), | |
| run_metrics=[x['mindnano_metrics'] for x in result['runs']], | |
| full_candidate_logit_comparison=result['logit_equality'], | |
| source_weight_rmse=0.005611173617454249, | |
| fixed_prefix_tv=dict(nothink=0.08169259726325992,think=0.09401621062421926), | |
| notes='Speed is package acceptance under current background load; quality is fixed-prefix, not long generation') | |
| (package/'VALIDATION.json').write_text(json.dumps(validation,ensure_ascii=False,indent=2)+'\n') | |
| def keep(info): | |
| if '__pycache__' in Path(info.name).parts or info.name.endswith('.pyc'):return None | |
| info.uid=info.gid=0;info.uname=info.gname='root' | |
| return info | |
| with tarfile.open(package/'SOURCE.tar.gz','w:gz',compresslevel=6) as tar: | |
| for name in ('CMakeLists.txt','LICENSE','LICENSES.md','src','include','tools','tests','third_party','deployment','docs'): | |
| if not (source/name).exists():continue | |
| tar.add(source/name,arcname='Ling3RKNN/'+name,filter=keep) | |
| checks=[] | |
| for file in sorted(package.iterdir()): | |
| if file.is_file() and file.name!='SHA256SUMS':checks.append(digest(file)+' '+file.name) | |
| (package/'SHA256SUMS').write_text('\n'.join(checks)+'\n') | |
| print(json.dumps(dict(phase='archive',files=[x.name for x in sorted(package.iterdir())], | |
| performance=result['performance'])),flush=True) | |
| with tarfile.open(partial,'w:gz',compresslevel=6) as tar: | |
| tar.add(package,arcname=package.name,filter=keep) | |
| partial.rename(archive) | |
| sha=digest(archive) | |
| archive.with_name(archive.name+'.sha256').write_text(sha+' '+archive.name+'\n') | |
| print(json.dumps(dict(archive=str(archive),bytes=archive.stat().st_size,sha256=sha)),flush=True) | |
| if __name__=='__main__':main() | |