Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

summo-models

Tiếng Việt · English

Cách các model của Summo được tạo ra, đo, và phát hành.

Repo này không chứa file model. Nó chứa công thức: script export, phiên bản thư viện đã dùng, số đo, và giấy phép của từng model. File model nằm ở Releases của chính repo này.

Ba repo, ba việc

Repo Chứa gì Đổi khi nào
summo-app Ứng dụng, và code đọc manifest hằng ngày
summo-registry Manifest JSON: sha256, dung lượng, giấy phép, URL khi thêm/đổi một model
summo-models (đây) Script export, số đo, README từng model khi export lại một model

Tách ra vì nhịp thay đổi khác nhau: script export kéo theo PyTorch và ONNX Runtime vài GB, chạy hàng chục phút. Không có lý do gì để mỗi lần sửa nó thì 13 job CI của app phải chạy lại.

Vì sao model nằm ở Releases, không nằm trong git

Không phải lựa chọn phong cách — là giới hạn cứng:

Giới hạn
File trong git GitHub chặn file > 100 MiB; cảnh báo từ 50 MiB
Kích thước repo khuyến nghị < 1 GB, "strongly recommended" < 5 GB
Git LFS (gói free) 1 GB lưu trữ, 1 GB băng thông/tháng
Release asset 2 GiB mỗi file, không giới hạn tổng, không giới hạn băng thông

Model nhỏ nhất của Summo là 73 MB, lớn nhất là 937 MB. Bốn trong tám model vượt mốc 100 MiB, nên chúng không thể nằm trong git dù có muốn. LFS thì 1 GB băng thông/tháng là hết sau mười lượt tải.

Releases không giới hạn băng thông cho repo công khai — cùng một lý do khiến nó là nơi mọi dự án phát hành binary. Muốn thêm mirror (R2, CDN) sau này thì manifest đã có sẵn trường mirror; app tự chuyển sang nguồn tiếp theo khi một nguồn chết.

Cái gì được phát hành ở đây, cái gì không

Đây là ràng buộc pháp lý, không phải kỹ thuật:

Model Giấy phép Phát hành ở đây? Tag
small100 MIT (model gốc) + export của chúng tôi ✅ export của chúng tôi small100-v1
gipformer-65m MIT ✅ mirror gipformer-65m-v1
whisper-tiny MIT ✅ mirror whisper-tiny-v1
silero-vad-v5 MIT ✅ mirror silero-vad-v5-v1
campplus-sv Apache-2.0 ✅ mirror campplus-sv-v1
sense-voice-small FunASR Model Open Source License v1.1 không — trỏ thẳng nguồn gốc
milmmt-46-1b/4b Gemma Terms of Use không — trỏ thẳng nguồn gốc

Cột "Tag" từng trống trong nhiều tuần: bảng này ghi "✅ có (mirror)" trong khi manifest chỉ có đúng một URL upstream và mirror rỗng. Nghĩa là mọi lượt cài model tiếng Việt mặc định phụ thuộc vào một repo HuggingFace giữ nguyên tên file. Nay 11 file đã nằm trong Releases của repo này, đối chiếu sha256 hai chiều: sau khi tải từ upstream, và sau khi tải ngược từ release.

Manifest của hai nhóm cuối đánh dấu redistributable: false, và summo registry check từ chối một manifest nào trỏ model không được phát tán vào CDN của chúng tôi. Kiểm tra đó chạy trong CI của summo-registry, nên đây không phải một quy ước mà là một cái chặn.

Export một model

cd models/small100
python -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
python export.py --out build/
python ../../scripts/manifest.py build/ --id small100 --release-tag small100-20260813   # in ra JSON để dán vào summo-registry

Hoặc để CI làm: Actions → export → Run workflow, chọn model. Nó export, đính file vào một release, rồi in đúng đoạn manifest cần dán — kèm sha256 đã tính trên file vừa tải lên, không phải trên file ở máy ai đó.

Số đo

Số đo nằm trong README của từng model, kèm lệnh để chạy lại. Con số nào không nói được nó đến từ đâu thì không nên có trong bảng.

Giấy phép

Script trong repo này (export, scripts/manifest.py, scripts/verify.py, các workflow) là của chúng tôi, phát hành theo Apache-2.0. Giấy phép đó không áp dụng cho bản thân các model — mỗi model giữ giấy phép riêng của nó, liệt kê trong bảng ở trên và nhắc lại trong models/<id>/README.md của từng model.

Nhận dạng giọng nói

Model Dung lượng Giấy phép Phát tán lại
gipformer-65m 73 MB MIT
sense-voice-small 1,177 MB FunASR Model Open Source License Agreement v1.1
whisper-tiny 256 MB MIT

Phát hiện giọng nói

Model Dung lượng Giấy phép Phát tán lại
silero-vad-v5 2 MB MIT

Nhận diện người nói

Model Dung lượng Giấy phép Phát tán lại
campplus-sv 28 MB Apache-2.0

Dịch

Model Dung lượng Giấy phép Phát tán lại
milmmt-46-1b 806 MB Gemma Terms of Use
milmmt-46-4b 2,490 MB Gemma Terms of Use
small100 611 MB MIT

Đặt tên release, và vì sao không phải nhánh riêng cho mỗi model

Một release cho một model, tag <id>-vN: small100-v1, gipformer-65m-v2.

Nhánh là chỗ cho một thay đổi đang làm dở; release là chỗ cho một artefact. Nhánh riêng mỗi model nghĩa là hai mươi nhánh không bao giờ merge và không bao giờ chết, mỗi cái trôi dần khỏi script export trên master — và một lỗi sửa ở export này sẽ không bao giờ tới mười chín cái kia. Tag thì miễn phí và là thứ một URL trong manifest có thể trỏ vào mãi mãi.

Số version tăng bằng tay, không theo ngày: export lại là một quyết định của ai đó, không phải một ngày trôi qua. Hai lần export trong cùng một ngày là hai version; tag theo ngày sẽ đè lên nhau và âm thầm thay mất artefact mà một manifest đã công bố đang trỏ tới. Workflow từ chối chạy nếu tag đã tồn tại.

About

Export recipes, measurements and licences for Summo's models. The model files themselves are published as Releases.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages