Laya Parity 18 KO - teamswyg/laya-tools GitHub Wiki
Laya ๊ตฌํยท๋ณํ ์ง๋จ 18
์ด๋ฒ 12๊ฐ ์ ๋ ฅ์์ Go์ Python์ INT8 ์ถ๋ ฅ์ ์ผ์นํ๋ค. ์๋ณธ ๊ฐ์ค์น FP32 ์คํ๊ณผ INT8์ ์ต๋ ํ๋ฅ ์ฐจ์ด๋ ์ ์ ์์ ์ฝ 0.45%p, ์ญ์ ์ฝ 20.76%p์๋ค. ์ด๋ ํ์ง ํ๊ฐ๊ฐ ์๋ ๊ตฌํ ์ง๋จ์ด๋ค. ๋ ๋ฆฝ ์ง๋ฌธ 2,400๊ฐ ํ๊ฐ๋ฅผ ๋์ฒดํ์ง ์์ผ๋ฉฐ, ์ค์ฌ์ฉ ๊ฐ์ ยท๋ณด์ ๋ ํ๋ฅ ยท์๋ณธ ๋ชจ๋ธ์ ์ฐ์์ฑ์ ์ ์ฆํ์ง ์๋๋ค.
๋ฌด์์ ๋น๊ตํ๋
์ง์ ์์ฑํ ์ฝ๋ยทํ๊ตญ์ดยท๊ณต๋ฐฑยท์ ๋์ฝ๋ยทํน์ ํ ํฐยท๊ธด ์ ๋ ฅ 6๊ฐ๋ฅผ ๋ ์ ํ์ง ์์๋ก ์คํํ๋ค. ์ด์ ์ง๋จ์ ์ ๋ ฅ๊ณผ ๋์ผํ์ง ํ์ธํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ ์ ์ ๊ณํ๊ณผ ์์ฐ ํด์๋ฅผ ์ปค๋ฐํ๋ค. ์ ๋ต ๋ผ๋ฒจ์ ์์ผ๋ฉฐ CoSQA ๋ฑ ์์ฒ ์๋ฃ, ํ์ตยท๊ฒ์ฆยท์ต์ข ยทreserve ํ์ผ์ ์ด์ง ์๋๋ค.
- Go์ ์ค์น๋
laya==0.3.21์build_sequence๊ฐ ๋ง๋ ํ ํฐ๊ณผ ์ ํ์ง ์์น๋ฅผ ๋น๊ตํ๋ค. - ๊ฐ์ INT8 ONNX ํ์ผ์ Go์ Python ONNX Runtime 1.30.0 CPU์์ ์คํํ๊ณ , ๊ฐ์ ์จ๋ ๋ณด์ ์ ์ ์ฉํ ํ๋ฅ ์ ๋น๊ตํ๋ค. ์ฐธ์กฐ ์คํฌ๋ฆฝํธ๋ upstream sequence builder์ ์ง์ ORT ์คํ์ ์ฌ์ฉํ๋ค. Python
ONNXAgent์ ์ ์ฒด APIยทํ ยท๋ฐฐ์น ๋์์ ์ํํ ๊ฒ์ ์๋๋ค. tindang/laya-code์ ๊ณ ์ revision25f97e5a2ec5f8cf7218a4f67504367d8832e1fe์๋ณธ F16 ์ ์ฅ ๊ฐ์ค์น๋ฅผ FP32 CPU๋ก ์คํํ์ฌ INT8๊ณผ ๋น๊ตํ๋ค. ์ค์น๋ Laya ๋ชจ๋ธ ๊ตฌํ์ ์ฌ์ฉํ๊ณ strict state loading์ ์ ์ฉํ๋ค. ๋ชจ๋ธ ์ ์ฅ์์ Python ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ๊ฑฐ๋ ์คํํ์ง ์๋๋ค.
๊ฒฐ๊ณผ
| ์งํ | ๊ฒฐ๊ณผ |
|---|---|
| ํ ํฐยท์ ํ์ง ์์น ์ ํํ ์ผ์น | 12/12 |
| Go โ Python INT8 ์ต๋ ํ๋ฅ ์ฐจ์ด | 1.73 ร 10โปยนโธ |
| Go โ Python ์ต์ข ์ ํ ๋ถ์ผ์น | 0/12 |
| ์๋ณธ FP32 โ INT8 ์ ์ ์์ ์ต๋ ์ฐจ์ด | 0.004498, ์ฝ 0.45%p |
| ์๋ณธ FP32 โ INT8 ์ญ์ ์ต๋ ์ฐจ์ด | 0.207607, ์ฝ 20.76%p |
| ์๋ณธ FP32 โ INT8 ์ ์ฒด ์ต๋ ํ๋ฅ ์ฐจ์ด | 0.207607, ์ฝ 20.76%p |
| ์๋ณธ FP32 โ INT8 ํ๊ท ์ฌ๋ก๋ณ ์ต๋ ์ฐจ์ด | 0.019952, ์ฝ 2.00%p |
| ์๋ณธ FP32 โ INT8 ์ต์ข ์ ํ ๋ถ์ผ์น | 0/12 |
Go ์ฌ์คํ์ ์๊ฐ ์ธ ๋ชจ๋ ๋น๊ต ์์น๋ ๋์ผํ๋ค. Python ์ฐธ์กฐ์ ์ ์ฒด ๋ฐ๋ณต ์คํ์ ํ์ง ์์๋ค. ์ฐธ์กฐ ํ์ผ ํด์๋ ์๊ฐ ํ๋๋ ํฌํจํ๋ฏ๋ก ์๋ก ์์ฑํ๋ฉด ๋ฌ๋ผ์ง ์ ์๋ค.
์ ์ ์์์ ์ญ์์ ๊ฐ๊ฐ 6๊ฐ๋ค. ์ ์ฒด ์ต๋ ์ฐจ์ด๋ ์ญ์์์ ๋์์ผ๋ฏ๋ก ์ ์ ์ฌ์ฉ์ ์ต๋ ์ฐจ์ด๋ก ์ธ์ฉํ์ง ์๋๋ค. ์์๋ณ ๊ตฌ๋ถ์ ์ ์ฒด ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ๋ค ์ถ๊ฐํ ์ค๋ช ์ฉ ์ง๊ณ์ด๋ฉฐ ์ ํ์ง ํต๊ณผ ๊ธฐ์ค์ด ์๋๋ค.
Go ์ด์ ์ค๋ฅ๋ผ๋ ์ค๋ช ์ ์ด ์ ๋ ฅ ๋ฒ์์์ ์ง์ง๋์ง ์๋๋ค. ํ์ง๋ง FP32โINT8 ์ฐจ์ด๋ PyTorch ์คํยทONNX ๋ณํยท์์ํยท์ปค๋ ์ฐจ์ด๊ฐ ํฉ์ณ์ง ๊ฐ์ด๋ค. ๋์ผ FP32 ONNX ๋์กฐ๊ตฐ์ด ์์ผ๋ฏ๋ก ์์ํ ์์ํ ์์ค์ด๋ผ๊ณ ๋จ์ ํ์ง ์๋๋ค. 12๊ฐ์์ ์ ํ์ด ๊ฐ์๋ค๋ ์ฌ์ค๋ ์ค์ ์ง๋ฌธ์ ์์ยทAUCยท๊ธฐ์ค๊ฐ ํต๊ณผ ์ฌ๋ถ๊ฐ ๋ณด์กด๋๋ค๋ ๋ป์ ์๋๋ค.
์์๊ณผ ์ฌํ
Apple M4 Pro, macOS ARM64, CPU 4์ค๋ ๋, ์ต๋ 512ํ ํฐ. ๋ ํ๋ก๊ทธ๋จ์ ์์๋๋ก ์คํํ๋ค. Python ์ฐธ์กฐ๋ 5.69์ด wall, ์ต๋ RSS 3,143,892,992๋ฐ์ดํธ(์ฝ 2.93GiB); Go ๋น๊ต๊ธฐ๋ 2.31์ด wall, ์ต๋ RSS 1,600,077,824๋ฐ์ดํธ(์ฝ 1.49GiB). Python์ INT8๊ณผ ์๋ณธ์ ๋ชจ๋ ์คํํ๊ณ Go๋ INT8๋ง ์คํํ๋ฏ๋ก ์ด ์๊ฐยท๋ฉ๋ชจ๋ฆฌ ์ฐจ์ด๋ฅผ ์ธ์ด ์ฑ๋ฅ ๋น๊ต๋ก ํด์ํ์ง ์๋๋ค. ํ ๋ฒ์ ์ธ๋ถ ์ธก์ ์ด๋ฉฐ pprof heap์ด๋ GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ค.
ํธ์ถ ์ฌ์ด์ 15๋ถยท8GiB RSS ์ ํ์ ํ์ธํ๋ค. ํธ์ถ ๋ด๋ถ์ ๊ฐ์ ์ ํ์ ์๋๋ค. maintainer ํ๊ฒฝ์ ONNX Runtime 1.30.0 wheel์ ์ถ๊ฐํ๊ณ , ์๋ณธ ์ ํ ํ์ผ 8๊ฐ ์ฝ 846MB๋ฅผ ๊ณ ์ revision์์ ๋ด๋ ค๋ฐ์ HF ํด์ ๊ฒ์ฆ์ ํต๊ณผํ๋ค. ๊ฒ์ฆ ๊ฒฝ๊ณ ์ ๋๋ฝ 4๊ฐ๋ ๋ค์ด๋ก๋ํ์ง ์์ ์๊ฒฉ ํ์ผ, ์ถ๊ฐ ํญ๋ชฉ์ ๋ก์ปฌ Hub ๋ฉํ๋ฐ์ดํฐ๋ค. ์ฌ์ฉ ํ์ผ์ ๋ณ๋ ํด์๋ก ๊ณ ์ ํ๋ค. ์ฝ๋ ๋ชจ๋ธ์ Apache-2.0 LICENSE/NOTICE๋ฅผ ๋ก์ปฌ์ ๋ณด์กดํ๋ฉฐ ์ ๋ชจ๋ธ์ ๋ฐฐํฌํ์ง ์๋๋ค.
# ๊ธฐ์กด maintainer ๊ฐ์ํ๊ฒฝ์ onnxruntime==1.30.0 ํ์; ์ฌ์ฉ์ Go ๋ฐํ์ ์๊ตฌ ์ฌํญ ์๋.
hf download tindang/laya-code README.md LICENSE NOTICE rl_agent_config.json encoder/config.json tokenizer/tokenizer.json tokenizer/tokenizer_config.json model.safetensors --revision 25f97e5a2ec5f8cf7218a4f67504367d8832e1fe --local-dir .cache/laya-code-source-18
python scripts/training/laya_parity_reference.py --model-dir .cache/models-v2/code --source-dir .cache/laya-code-source-18 --out .cache/parity18-reference.json
go run ./cmd/riido-parityprobe --reference .cache/parity18-reference.json --model-dir .cache/models-v2/code --runtime /path/to/pinned/libonnxruntime.1.30.0.dylib
์คํ ํ๊ฒฝ ๋ฒ์ ยท์ง๊ณ๋ ๊ฒฐ๊ณผ JSON์ ์๋ค. ๊ธฐ์กด ์ฐธ์กฐ ํ์ผ์ ๋ฎ์ด์ฐ์ง ์์ผ๋ฏ๋ก ์ฌ์์ฑํ ๋ ์ ์ถ๋ ฅ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค. ๋น๊ต๊ธฐ๋ ๋์ผ ์์ฐ ํด์, ํ๋ฅ ์ ํจ์ฑ, ์ ๋ ฅ ์ผ์น์ ํ๋ฅ ํ์ฉ์ค์ฐจ 10โปโต๋ฅผ ๊ฒ์ฌํ๋ค. ๊ตฌํ ์ผ์น ํต๊ณผ์ ๋ชจ๋ธ ํ์ง ํต๊ณผ๋ ๋ณ๊ฐ๋ค.
๋ค์์ ์๋ณธ FP32 ๋ชจ๋ธ์ ์คํ 17b์ ๋์ผํ ๊ฒ์ฆ ์ง๋ฌธยท์ ๋ ฅยท๋ฒ์๋ก ํ๊ฐํ๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ผ๋ก ์ ์ ์ฐจ์ด๊ฐ ์ค์ ๊ด๋ จ์ฑ ๊ตฌ๋ถ์ ์ํฅ์ ์ฃผ๋์ง ํ์ธํ ๋ค ํ์ตยท์ฆ๋ฅ ๋ฐฉํฅ์ ์ ํ๋ค. ๋ฏธ์ฌ์ฉ reserve 2,403๊ฐยท2,401๊ฐ๋ ๊ณ์ ๋ณด์กดํ๋ค.
Source: PR #41. Native diagnostic results are local evidence; Exact-head CI passed macOS, Linux, secrets and quality. Merged as de708929c0835259ed052d900983baaf306ef07e; this does not establish model quality.