Models and Metaprogramming - kimjooyoon/meta-ontology-go GitHub Wiki

์ž‘์€ ๋ชจ๋ธ๊ณผ ๋ฉ”ํƒ€ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์—…๋ฐ์ดํŠธ: 2026-10-09.

Gooo๊ฐ€ ์กฐ๋ฆฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ , ์ž‘์€ ๋ชจ๋ธ์ด ๊ทธ ์•ˆ์—์„œ ๋‹ค์Œ ์‹œ๋„๋ฅผ ๊ณ ๋ฅด๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋Š” Hugging Face, ์‹คํ–‰ ์ฝ”๋“œ๋Š” Go SDK, ๋น„๊ต ์‹คํ—˜์€ ์—ฐ๊ตฌ ์ €์žฅ์†Œ์— ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ์†Œ์Šค ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์€ ๊ณ„์‚ฐ ๊ณผ์ •๊ณผ ํ•œ์˜ ์˜๋„๋ฅผ ์ฝ๋Š” 2,072๊ฐœ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชจ๋ธ์„ Go๋กœ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ธ ํ”„๋กœ๊ทธ๋žจ์„ ๋‚˜๋ˆ  ํ‰๊ฐ€ํ–ˆ๊ณ  ์ƒˆ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ์˜ ์ „์ด๋Š” ๋‚ฎ์•˜์Šต๋‹ˆ๋‹ค. Gooo์˜ ์‚ฌ๋ก€ ๊ฒ€์‚ฌ์™€ ๋‹ค์Œ ํ›„๋ณด ํƒ์ƒ‰์„ ์—ฐ๊ฒฐํ•ด ์ฒซ ์„ ํƒยท๋ถ€๋ถ„ ์ถฉ์กฑยท์ตœ์ข… ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋”ฐ๋กœ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์˜ ๊ฐ€์ค‘์น˜๋Š” GitHub์— ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์‹คํ–‰ํ•ด ๋ณผ ํ๋ฆ„

๊ณต๊ฐœ Gooo 0.6.22์™€ ์ž‘์—…์žฅ์˜ assemble๋กœ ์†Œ์Šคยท๋ชจ๋ธ ์‚ฌ์ „ ํ™•์ธ๋ถ€ํ„ฐ ๋ณธ๋ฌธ ์กฐ๋ฆฝ, ์‹ค์ œ ํ˜ธ์ถœ๊ณผ ๋‹ค์Œ ์ž‘์—…๊นŒ์ง€ ์ด์–ด ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ช…๋ น์— ๊ธฐ์กด ์ž์ฒด ๊ทธ๋ž˜ํ”„ QAT์˜ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ์ƒ๋žตํ•˜๋ฉด ์†Œ์Šค ์ˆœ์„œ๋กœ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” dev d3b44fc6์ด๋ฉฐ ๊ฐ™์€ ํŒŒ์ผ ํŠธ๋ฆฌ๊ฐ€ main 340982bb์—๋„ ๋ฐ˜์˜๋์Šต๋‹ˆ๋‹ค.

์ €์žฅํ•œ ์‹คํŒจ ๊ฒฐ๊ณผ๋Š” construct --assembly๋กœ ๊ธฐ์กด ๋ฐ˜๋ก€ ๋ฐ˜๋ณต์— ๋„˜๊น๋‹ˆ๋‹ค. ์†Œ์Šค์™€ ์›๋ž˜ ๊ธฐ๋Œ€๊ฐ’์„ ์œ ์ง€ํ•˜๊ณ , ๋ชจ๋ธ์„ ์—ฐ๊ฒฐํ•œ ํ›„์† ํšŒ์ฐจ๋งˆ๋‹ค ์ƒˆ๋กœ ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋ฉด ์ด์ „ ๋ชจ๋ธ์„ ๋ฌผ๋ ค๋ฐ›์ง€ ์•Š๊ณ  ๊ณ ์ • ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์“ฐ๋Š” ์ „์ฒด ์ž๋ฃŒ ์‹œ์—ฐ์šฉ ๊ทธ๋ž˜ํ”„ QAT๋Š” 2,072๊ฐœ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ 446๋ฐ”์ดํŠธ ๊ฐ€์ค‘์น˜ ํŒŒ์ผ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์‹คํ–‰ ์‹œ ํ…์„œ 2,096๋ฐ”์ดํŠธ, ์Šค์ผ€์ผ 8๋ฐ”์ดํŠธ์™€ ์ž…๋ ฅยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐยทํ”„๋กœ์„ธ์Šค ๊ณต๊ฐ„์€ ๋”ฐ๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ–‰๋ ฌ์€ ๋‹ค์„ฏ ์‚ผ์ง„ ๊ฐ’์„ ํ•œ ๋ฐ”์ดํŠธ์— ๋‹ด์•„ ์›์†Œ๋‹น 1.6๋น„ํŠธ๋ฅผ ์”๋‹ˆ๋‹ค.

๊ด€์ธก ๊ฒฐ๊ณผ ์ฝ์„ ๋ฒ”์œ„
์ „์ฒด ์ž๋ฃŒ ๋ชจ๋ธ์˜ ์ฒซ ์กฐํ•ฉ 297/576 ํ•™์Šต์— ์‚ฌ์šฉํ•œ ์„ธ ํ”„๋กœ๊ทธ๋žจ ์ž๋ฃŒ ๋‚ด ๊ฒฐ๊ณผ
ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์™ธํ•œ QAT์˜ ์ฒซ ์กฐํ•ฉ 24/192, 10/192, 28/192 ๊ฐ๊ฐ ํŒŒ์ผ๋ช…ยท๋‚˜๋ˆ—์…ˆยท์žฌ์‹œ๋„ ํ”„๋กœ๊ทธ๋žจ์„ ํ•™์Šต์—์„œ ๋บ€ ํ‰๊ฐ€
๊ณต๊ฐœํŒ์˜ ์ž‘์€ ํ•œ๊ธ€ยท์˜๋ฌธ ์กฐ๋ฆฝ ํ˜ธ์ถœ 4/4ยทํ•„๋“œ 12/12 ๊ฐ™์€ ๋„ค ์ž…๋ ฅ์„ ๊ฒฝ๋กœ๋ณ„๋กœ ํ™•์ธํ•œ ๊ด€์ธก
๊ธฐ๋Œ€ ๋ฌธ์ž์—ด ํ•˜๋‚˜๋ฅผ ๋ฐ”๊พผ ํ•ฉ์„ฑ ํ˜ธ์ถœ 3/4ยทํ•„๋“œ 11/12 ์›๋ณธ ๊ธฐ๋Œ€๊ฐ’๊ณผ ๋ถˆ์ผ์น˜ ์œ„์น˜๋ฅผ ๋ณด์กดํ•˜๋Š” ์ง„๋‹จ ๊ฒ€์‚ฌ
์ƒˆ ํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ˜๋ก€ ํ›„์† ์กฐ๋ฆฝ ์ฒ˜์Œ ํ•„๋“œ 2/6ยท4/6, ์ดํ›„ 6/6 ๊ณ ์ • ํ›„์† 15๋ฒˆยท๋ช…์‹œ์  ๋ชจ๋ธ ํ›„์† 13๋ฒˆ ์‹œ๋„, ์ตœ์ข… ๋‘ ์ž…๋ ฅ์˜ ํ•„๋“œ 6/6

์ด ์ˆ˜์น˜์—์„œ ๋‹ค์Œ ๊ณผ์ œ๋Š” ์ž…๋ ฅ ํ‘œํ˜„๊ณผ ํ”„๋กœ๊ทธ๋žจ๋ณ„ ์ „์ด๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ ์ถ”์ฒœํ•œ ํ›„๋ณด๊ฐ€ ํ‹€๋ ค๋„ Gooo๋Š” ์„ ์–ธํ•œ ์กฐ๊ฑด์œผ๋กœ ๋‹ค์Œ ํ›„๋ณด๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฐœํŒ์˜ ์กฐ๋ฆฝ ๋ชจ๋ธ ํ˜ธ์ถœ์€ 1ํšŒ, ์ €์žฅ ์žฌ์ƒ๊ณผ ๊ฒฐ์ •๋ก ์  ํ›„์† ๊ทœ์น™์˜ ์ƒˆ ํ˜ธ์ถœ์€ 0ํšŒ์˜€์Šต๋‹ˆ๋‹ค. ํ›„์† ์ œ์•ˆ์€ ์ •๋‹ต์„ ๋ถ™์ด์ง€ ์•Š์€ ์‹ค์ œ ์ž…๋ ฅ 0/0์œผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต๊ณผ ์‹คํ–‰์˜ ์ถœ์ฒ˜ยท๋ถ„๋ชจ๋Š” ์›๋ž˜ ๊ทธ๋ž˜ํ”„ ์—ฐ๊ตฌ์™€ ๊ณต๊ฐœํŒ ๊ด€์ธก์— ๋‚จ์Šต๋‹ˆ๋‹ค.

Hugging Face์˜ ๊ธฐ์กด ๊ณต์œ  ํ•„๋“œ ๋ชจ๋ธ๊ณผ ์œ„ ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์€ ๊ฐ€์ค‘์น˜ยท์ž…๋ ฅ ๊ทœ๊ฒฉ์ด ๊ฐ๊ฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์€ ํ˜„์žฌ GitHub์˜ ๊ณ ์ • ํŒŒ์ผ์— ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์—ฐ๊ฒฐ์€ ๊ธฐ์กด ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•œ ์–ธ์–ด ๋„๊ตฌ์˜ ์‹คํ–‰ ๊ด€์ธก์ž…๋‹ˆ๋‹ค.

์•ž์„  ์ž์ฒด ํ•„๋“œ ๋ชจ๋ธ์€ Gooo์˜ ์‹ค์ œ ํ›„๋ณด์‹ ์ „์ฒด์™€ ํ•œ์˜ ์˜๋„๋กœ ์„ธ ๋ ˆ์ฝ”๋“œ ํ•„๋“œ๋ฅผ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ดˆ๊ธฐ๊ฐ’์—์„œ GPU480ํšŒ ํ•™์Šตํ–ˆ๊ณ , Go ํŒ๋‹จยท์‹คํ–‰ ๋ฐ ๊ฐ™์€ ํ›„๋ณด์˜ ๋ฐ˜๋Œ€ ์˜๋„ ์‹คํŒจ๋ฅผ ํ•จ๊ป˜ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ๋ชจ๋ธ์˜ ๋น ๋ฅธ ํŒ๋‹จ๊ณผ ์˜๋„ ํ‘œํ˜„์˜ ํ•œ๊ณ„๋ฅผ ์‹ค์ œ ํ•„๋“œ ์ถฉ์กฑ ์ง€ํ‘œ๋กœ ์ด์–ด ๋ณด๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

ํ•œ ๋ฒˆ์˜ ์ฝ”๋“œ ์กฐ๋ฆฝ์„ ๋”ฐ๋ผ๊ฐ€ ๋ณด๋ฉด

โ€œ๊ฐ’์ด ๊ธฐ์ค€๋ณด๋‹ค ์ž‘์œผ๋ฉด ๋ณด์ •ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์— ๋‘ ๋ฐฐ๋กœ ๋งŒ๋“ ๋‹คโ€๋Š” ํ•จ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ๊ณ„ํš์—์„œ ๋น„๊ต ์กฐ๊ฑด, ๋ณด์ • ์—ฐ์‚ฐ, ๋งˆ์ง€๋ง‰ ์—ฐ์‚ฐ์— ๊ฐ๊ฐ ๋‘ ๋Œ€์•ˆ์„ ์ฃผ๋ฉด ์—ฌ๋Ÿ ๋ฐ”๋””๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋™์ž‘์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

  1. Gooo ์›๋ณธ๊ณผ ๊ณ„ํš์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ๋ฐ”๋””, ํ—ˆ์šฉ๋œ ์กฐ๊ฑดยท๋ณ€์ˆ˜ยท์—ฐ์‚ฐ, ํ•œ๊ตญ์–ด ๋˜๋Š” ์˜์–ด ์˜๋„, ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ์™€ ์‹œ๋„ ์˜ˆ์‚ฐ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  2. ๋ชจ๋ธ์ด ๊ฒฝ๋กœ์— ์ˆœ์œ„๋ฅผ ์ค๋‹ˆ๋‹ค. ์›๋ณธ์—์„œ ์–ป์€ ๊ตฌ์กฐ์™€ ์˜๋„๋ฅผ ์ž‘์€ ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•˜๊ณ , ์—ฌ๋Ÿ ์กฐํ•ฉ ์ค‘ ๋จผ์ € ์‹œ๋„ํ•  ๊ฒฝ๋กœ๋ฅผ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.
  3. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์กฐ๋ฆฝํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„์™€ ํƒ€์ž…์„ ํ™•์ธํ•˜๊ณ  ํ—ˆ์šฉ๋œ ๋ถ€ํ’ˆ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  4. ์œ ํ•œ ์˜ˆ์‹œ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ์ž…๋ ฅยท๊ธฐ๋Œ€๊ฐ’ยท์‹ค์ œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค์Œ ๋ชจ๋ธ ํŒ๋‹จ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ์„ ํƒํ•œ ๋ฐ”๋””๋ฅผ Go๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‹คํ—˜ ์‹คํ–‰๊ธฐ๊ฐ€ ๊ณง๋ฐ”๋กœ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉฐ, ์›๋ณธยท๋ชจ๋ธยท์„ ํƒยท๊ฒฐ๊ณผ๋ฅผ ์—ฐ๊ฒฐํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

์œ„ ๊ณผ์ •์˜ ์‹คํŒจ ๋ฌธ๋งฅ ์žฌ์ž…๋ ฅ์€ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ๋กœ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ๊ทธ๋ž˜ํ”„ ํ•„๋“œ ๋ชจ๋ธ ๊ฒฝ๋กœ๋Š” ์ฒ˜์Œ ํ•œ ๋ฒˆ ์ˆœ์œ„๋ฅผ ์ •ํ•œ ๋’ค Gooo๊ฐ€ ๊ทธ ์ˆœ์„œ๋กœ ํ›„๋ณด๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅํ•œ ์กฐ๋ฆฝ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•  ๋•Œ๋Š” ์ƒˆ ๋ชจ๋ธ ํ˜ธ์ถœ์ด ์—†์Šต๋‹ˆ๋‹ค.

Gooo ์›๋ณธ + ์กฐ๋ฆฝ ๊ณ„ํš + ์˜๋„ + ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ
                    โ”‚
           ์ž‘์€ ๋ชจ๋ธ์˜ ๊ฒฝ๋กœ ์ˆœ์œ„
                    โ”‚
         ํƒ€์ž… ๊ฒ€์‚ฌ โ†’ ๋ฐ”๋”” ์กฐ๋ฆฝ โ†’ ์˜ˆ์‹œ ํ‰๊ฐ€
                    โ†‘                  โ”‚
                    โ””โ”€โ”€โ”€โ”€ ์‹คํŒจ ๋ฌธ๋งฅ โ”€โ”€โ”€โ”˜
                    โ”‚
           ์ƒ์„ฑ Go โ†’ ๋นŒ๋“œ โ†’ ์‹คํ–‰
                    โ”‚
          ์ถฉ์กฑํ•œ ํ•ญ๋ชฉ๊ณผ ๋‚จ์€ ์ž‘์—… ๊ธฐ๋ก

ํ™œ๋™์˜ assembling ์„ ์–ธ์— ๋ณธ๋ฌธ ์กฐ๋ฆฝ ๊ณ„ํš๊ณผ ์˜๋„ยท์˜ˆ์‹œ๋ฅผ ํ•จ๊ป˜ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ JSON ๊ณ„ํš๋„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ž์—ฐ์–ด์—์„œ ์กฐ๋ฆฝ ๊ณ„ํš ์ž์ฒด๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ ์–ธ์–ด ์—ฐ๊ตฌ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์†Œ์Šค ์•ˆ์— ์กฐ๋ฆฝ ์˜๋„ ์ ๊ธฐ.

๋ฌด์—‡์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‚˜

์‹คํ—˜์˜ ์„ ํƒ ๊ณต๊ฐ„์—๋Š” ๋น„๊ต ์—ฐ์‚ฐ, ํ”ผ์—ฐ์‚ฐ์ž ์ˆœ์„œ, ์ง€์—ญ ๋ณ€์ˆ˜ ์ฐธ์กฐ, ๋Œ€์ž… ๋Œ€์ƒ, ์กฐ๊ฑด ๋ถ„๊ธฐ, ์ค‘์ฒฉ ๋ถ„๊ธฐ์™€ ๋ฌธ์žฅ ์ˆœ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์ˆ˜ ๊ฒฝ๋กœ ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ์‹ค์ œ ๋ ˆ์ฝ”๋“œ ํ•„๋“œ ๋‘ ํ›„๋ณด์‹์˜ ์กฐํ•ฉ์„ ๊ณ ๋ฅด๋Š” ๋ชจ๋ธ๋„ ๋ณ„๋„๋กœ ํ•™์Šตยทํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๋ณธ๋ฌธ ์ƒ์„ฑ์€ IntegerยทBooleanยทText์™€ ๋ ˆ์ฝ”๋“œ ์ž…๋ ฅยท๊ฒฐ๊ณผ, ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์—ฌ๋Ÿฌ ์ž…๋ ฅ, let, ์ง€์—ญ ๋Œ€์ž…, ์กฐ๊ฑด๋ฌธ๊ณผ return์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑยทํ•„๋“œ ์ฝ๊ธฐยท์ „์ฒด ๊ฐ’ ๊ต์ฒด๋„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. body-codegen์€ ๊ฐ™์€ ์†Œ์Šค์˜ ๊ณ ์ •๋œ ์ˆœ์ˆ˜ Gooo ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. body-compose๋Š” ์กฐ๋ฆฝํ•œ ๋ณด์กฐ ํ™œ๋™์˜ ํ˜ธ์ถœ๊ณผ ์‹ค์ œ ์ž…๋ ฅ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. package executeยทconstruct๋Š” ๊ฐ€์ ธ์˜จ ํŒจํ‚ค์ง€์˜ ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต๋ฌธ๊ณผ ์™ธ๋ถ€ ํšจ๊ณผ๋Š” ์ง€์› ๋ฒ”์œ„๋ฅผ ๋” ์ •ํ•˜๋Š” ์–ธ์–ด ํ™•์žฅ ๊ณผ์ œ์ž…๋‹ˆ๋‹ค. ๋ณธ๋ฌธ ์ƒ์„ฑ๊ณผ ํ•จ์ˆ˜ ํ˜ธ์ถœ์˜ ํ˜„์žฌ ๋ฒ”์œ„ ยท ๋ณด์กฐ ํ™œ๋™ ํ˜ธ์ถœ๊ณผ ์กฐ๋ฆฝ ๊ธฐ๋ก ยท ํŒจํ‚ค์ง€ ํ˜ธ์ถœ ์กฐ๋ฆฝ ยท ๊ธฐ๋ก๊ฐ’ ์ž‘์„ฑ ยท ์ž…๋ ฅ ์ˆœ์„œ.

Laya์—์„œ ์ž์ฒด ๋ชจ๋ธ๊นŒ์ง€

๋‹จ๊ณ„ ํ•œ ์ผ ๋ฐฐ์šด ์ 
Laya ๊ฒฝ๋กœ ์‹คํ—˜ ์˜๋„์™€ ์„ ํƒ์ง€๋ฅผ ์ „๋‹ฌํ•ด ํ—ˆ์šฉ๋œ ์ƒ์„ฑ ๊ฒฝ๋กœ ์„ ํƒ ์‘๋‹ต ์†๋„, ๋ฌธ๋งฅ ๊ธธ์ด, ์–ธ์–ด ๋ผ์šฐํŒ…๊ณผ ์‹คํŒจ ์ „๋‹ฌ์„ ๊ด€์ธก
์ฝ”๋“œ ๋ฐ”๋””ยทTDD ์‹คํ—˜ ํ›„๋ณด ๋ฐ”๋””๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ์‹คํŒจ๋ฅผ ๋‹ค์Œ ์‹œ๋„์— ์ „๋‹ฌ ๋ชจ๋ธ์˜ ์ฒซ ์„ ํƒ๊ณผ ํƒ์ƒ‰ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋”ฐ๋กœ ์„ธ๋Š” ๊ตฌ์กฐ ๋งˆ๋ จ
์ž์ฒด Gooo ๋ชจ๋ธ Gooo ์ž๋ฃŒ๋กœ ์ƒˆ ๊ฐ€์ค‘์น˜๋ฅผ ์ดˆ๊ธฐํ™”ยทํ•™์Šต ์ž‘์€ ํŒ๋‹จ ๋‹จ์œ„์™€ ๊ณ ์ • ๋ฐฐ์—ด์˜ Go ์‹คํ–‰ ๊ฒฝ๋กœ ํ™•๋ณด
๊ณต์œ  ์†Œํ˜• ๋ชจ๋ธ 256โ†’8โ†’2 ํŒ๋‹จ๋ง์„ ์„ธ ๊ฒฐ์ •์— ์žฌ์‚ฌ์šฉ 2,072๊ฐœ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์—ฌ๋Ÿ ๊ฒฝ๋กœ์˜ ์ˆœ์œ„ ๊ตฌ์„ฑ
์ „์ฒด ์ž…๋ ฅ ํ‘œํ˜„ ๋น„๊ต ์œ„์น˜ ๊ธฐ๋ฐ˜ ํ‘œํ˜„ยท๋ฌธ์žฅ ์กฐ๊ฐ ๋นˆ๋„, ์›๋ฌธยท๋‹ค์–‘ํ•œ ํ‘œํ˜„์„ ๋น„๊ต ์˜๋„ ์•ž์˜ ๋ฌธ๊ตฌ ๋ฏผ๊ฐ๋„, ์ˆœ์„œ ์†์‹ค, ์–‘์žํ™” ํ›„ํ‡ด ๋ฐœ๊ฒฌ
SDK์™€ ์‹ค์ œ ์ƒ์„ฑ ์—ฐ๊ฒฐ ๊ณ„์‚ฐ ๊ทœ์น™์„ ๋ช…์‹œํ•˜๊ณ  ์ƒ์„ฑยท๋นŒ๋“œยท์‹คํ–‰ ๊ด€์ธก ํ”Œ๋žซํผ๋ณ„ ์žฌํ˜„์„ฑ๊ณผ ์ „์ฒด ์ฒ˜๋ฆฌ ๋น„์šฉ์„ ๊ฐ๊ฐ ํ™•์ธ
์ „์ฒด ํ›„๋ณด ํŒ๋‹จ๊ธฐ 4,096 ํŒŒ๋ผ๋ฏธํ„ฐยท16 KiB๋กœ ์‹ค์ œ ๋‘ ์—ฐ์‚ฐ์˜ ์ˆœ์„œ์™€ ์ „์ฒด ํ•œ์˜ ์˜๋„๋ฅผ ๋น„๊ต 64๊ฐœ ํ•™์Šต ์š”์ฒญ, ์ปดํŒŒ์ผ๋Ÿฌ ๋‚ด๋ถ€ ํŒ๋‹จยท์ฆ‰์‹œ ์‹คํ–‰, ๋™์ผ ํ›„๋ณด ์žฌ์‚ฌ์šฉ
์‹ค์ œ ํ•„๋“œ ํ›„๋ณด์‹ ๋ชจ๋ธ 18,656 ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์„ธ ํ•„๋“œ์˜ ์‹ค์ œ ํ›„๋ณด์™€ ํ•œ์˜ ์˜๋„๋ฅผ ์ž…๋ ฅ 480 GPU ํ•™์Šต, 192๊ฐœ ํ‰๊ฐ€ ์†Œ์Šค, 100ํšŒ ์‹ค์ œ ์กฐ๋ฆฝ๊ณผ ๋ฐ˜๋Œ€ ์˜๋„ ์‹คํŒจ ๊ณต๊ฐœ
์†Œ์Šค ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ 2,072 ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ Go CPU๋กœ ํ•™์Šต, ์„ธ ํ”„๋กœ๊ทธ๋žจยท576ํ–‰ ํ”„๋กœ๊ทธ๋žจ ์ œ์™ธ QAT ์ฒซ ์„ ํƒ 10~28/192, ์˜ˆ์‚ฐ๋ณ„ ๋ถ€๋ถ„ ์ถฉ์กฑ๊ณผ ์‹ค์ œ ์กฐ๋ฆฝยท์ €์žฅ ์žฌ์‹คํ–‰ ๊ณต๊ฐœ

ํ˜„์žฌ ์ž์ฒด ๋ชจ๋ธ์˜ ๊ณ„๋ณด๋Š” Gooo ๋ฐ์ดํ„ฐ์™€ ์ƒˆ๋กœ ์ดˆ๊ธฐํ™”ํ•œ ๊ฐ€์ค‘์น˜์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Laya๋Š” ์ดˆ๊ธฐ ๊ตฌ์กฐํ™”๋œ ์„ ํƒ ์‹คํ—˜์— ์‚ฌ์šฉํ–ˆ๊ณ , ๊ทธ ๊ฒฝํ—˜์ด ์ง€๊ธˆ์˜ ์„ ํƒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ์—ฐ๊ฒฐ๊ณผ ๊ฒฐ์ •๋ก ์  ์ง„ํ–‰

์ „์ฒด ํ›„๋ณด ํŒ๋‹จ๊ธฐ

์ƒˆ ๋ชจ๋ธ์€ ์†Œ์Šค ์กฐ๋ฆฝ ๊ณ„ํš์˜ ๋‘ ์ •์ˆ˜ ์—ฐ์‚ฐ๊ณผ ์„ธ ์ด์ง„ ์„ ํƒ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ชจ๋ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ weights.bin์„ ๊ฐ™์€ ํด๋”์— ๋‘๊ณ  ๋‹ค์Œ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ๋ช…์€ ์‚ฌ์šฉํ•  ์†Œ์Šค์™€ ๊ณ„ํš์— ๋งž์ถฐ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

gooo body-codegen --json --activity Compose \
  --path-plan recipe.json --path-model model/model.json source.gooo

์›๋ณธ ์†Œ์Šค๋ฅผ ํ™•์ธํ•œ ๋’ค ๋ชจ๋ธ์„ ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜๊ณ , ๊ทธ ์ˆœ์œ„๋Œ€๋กœ ์œ ํ•œ ์˜ˆ์‹œ๋ฅผ ํ‰๊ฐ€ํ•ด Go๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ›„๋ณด ์ˆœ์œ„์™€ ๋™์ผ ๊ตฌ์กฐ ์ƒ๋žต์€ body_paths.whole_candidate_judgment์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ด ์ดˆ๊ธฐ ๋ชจ๋ธ ๊ฒฝ๋กœ์—์„œ๋Š” ์‹œ๋“œยท๋ฐฐ์น˜ยทํ”ผ๋“œ๋ฐฑ ์˜ต์…˜๊ณผ ์ง€์› ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์ž…๋ ฅ์ด ๋ช…์‹œ์  ์˜ค๋ฅ˜๋กœ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋ฉด ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ง€์› ๋ชจ์–‘ยท์ž…๋ ฅ ํ•œ๋„ยทํ˜ธ์ถœ ์ˆœ์„œ.

main 98701e47์— ๋ฐ˜์˜๋์œผ๋ฉฐ, ์„ค์น˜๋ณธ์—์„œ ๋ชจ๋ธ ์‚ฌ์šฉยท๋ฏธ์‚ฌ์šฉ ์–‘์ชฝ์˜ ์‹ค์ œ ์‹คํ–‰์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ์˜ˆ์ œ์˜ ์†Œ์Šคยท๊ณ„ํšยท๋ช…๋ น์„ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ๊ณต์œ  ํŒ๋‹จ๊ธฐ์™€ ๋‹จ๊ณ„๋ณ„ ํ”ผ๋“œ๋ฐฑ

๋ชจ๋ธ์€ ๋ช…์‹œ์ ์œผ๋กœ ํŒŒ์ผ์„ ์ง€์ •ํ•ด ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์˜ ํŒŒ์ผ๋ช…์€ ํ˜ธ์ถœ ํ˜•ํƒœ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ž๋ฆฌํ‘œ์‹œ์ž์ด๋ฉฐ, ์‹ค์ œ ํŒŒ์ผ ๋ฌถ์Œ๊ณผ ์†Œ์Šค ๊ฒฐ์† ์กฐ๊ฑด์€ ์‚ฌ์šฉ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

gooo body-codegen --json \
  --path-plan plan.json --path-model model/model.json \
  --path-step-attempts 1 --path-feedback-rounds 7 \
  --activity ChoosePath source.gooo
  • ๋ชจ๋ธ์„ ์ƒ๋žตํ•˜๋ฉด ์„ ์–ธ๋œ ๊ฒฐ์ •๋ก ์  ๊ฒฝ๋กœ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ชจ๋ธ ํ˜ธ์ถœ ์ˆ˜๋Š” 0์ž…๋‹ˆ๋‹ค.
  • ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์„ ํƒ ๊ฐœ์ˆ˜๋‚˜ ์ž…๋ ฅ ๊ธธ์ด ์ดˆ๊ณผ๋Š” ์›๋ฌธ๊ณผ ํ•ด์‹œ๋ฅผ ๋ณด์กดํ•˜๊ณ , ์‚ฌ์œ ๋ฅผ ๊ธฐ๋กํ•œ ๋’ค ๊ฒฐ์ •๋ก ์  ์ง„ํ–‰์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ๋“œ๊ฐ€ ์žˆ๋Š” ํ™•๋ฅ ์  ์„ ํƒ์€ ๊ฐ™์€ ์›๋ณธยท๋ชจ๋ธยท๊ธฐ๋ก๋œ ๋ถ„ํฌ์—์„œ ์žฌํ˜„๋˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ ์ƒ์„ฑ ์ค‘ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๋Š” ๊ณ ์ •๋ฉ๋‹ˆ๋‹ค. ํ•™์Šต์€ ๋ณ„๋„ ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์žฅ์‹œ๊ฐ„ ์‚ฌ์šฉํ•˜๋Š” Go ์‹คํ–‰๊ธฐ๋Š” ๋ชจ๋ธ์„ ํ•œ ๋ฒˆ ๋กœ๋“œํ•˜๊ณ , ์š”์ฒญ๋งˆ๋‹ค ์ž‘์—… ๋ฐฐ์—ด๊ณผ ํƒ์ƒ‰ ์ƒํƒœ๋ฅผ ๋”ฐ๋กœ ๋‘ก๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ ๋ชจ๋ธ ์„ ํƒ์€ ํ›„๋ณด ํ‰๊ฐ€ ์ „์— ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์ด ๋๋‚˜๋ฉด ์‹คํ—˜ ์‹คํ–‰๊ธฐ๊ฐ€ ๋ฐ”๋กœ ๋นŒ๋“œ์™€ ์‹คํ–‰์„ ์ž‡์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๋™์‹œ ์š”์ฒญ์—์„œ์˜ ์ง€์—ฐ๊ณผ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‹ค์Œ ๊ด€์ธก ๊ณผ์ œ์ž…๋‹ˆ๋‹ค.

์„ฑ๊ณผ์™€ ํ˜„์žฌ์˜ ์–ด๋ ค์›€

์ฒซ ์„ ํƒ์˜ ํ’ˆ์งˆ, ์ถ”๊ฐ€ ํƒ์ƒ‰, ์ „์ฒด ์ƒ์„ฑ ์‹œ๊ฐ„์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์ „์ฒด ๋ฌธ์žฅ ์กฐ๊ฐ์„ ์“ฐ๋Š” FP32 ์กฐ๊ฑด์€ ์•Œ๋ ค์ง„ ๊ฐœ๋ฐœ ์ž…๋ ฅ 512๊ฐœ ์ค‘ 368๊ฐœ์—์„œ ์ฒซ ๋ฐ”๋””๊ฐ€ ๋ชจ๋“  ์˜ˆ์‹œ๋ฅผ ๋งŒ์กฑํ–ˆ๊ณ , ์ถ”๊ฐ€ ํ›„๋ณด ํ•ฉ๊ณ„๋Š” 186๊ฐœ์˜€์Šต๋‹ˆ๋‹ค. ๋Œ€์กฐ๊ตฐ์€ 113๊ฐœ์™€ 1,469๊ฐœ์˜€์Šต๋‹ˆ๋‹ค.

์ž‘์€ ํ†ตํ•ฉ ๊ณผ์ œ 16๊ฐœ์—์„œ ํ•ด๋‹น ์กฐ๊ฑด์˜ ์ฒซ ๊ฒฝ๋กœ๋Š” 16/16์„ ์ถฉ์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ํ†ตํ•ฉ ์‹คํ—˜์—์„œ๋Š” 400ํšŒ ์ƒ์„ฑ๊ณผ 800ํšŒ ์‹คํ–‰์„ ๊ด€์ธกํ–ˆ์Šต๋‹ˆ๋‹ค. compact FP32์˜ ์˜ˆ์ธก ์ค‘์•™๊ฐ’์€ 8.33ยตs, ์ „์ฒด ์ฝ”๋“œ ์ƒ์„ฑ์€ 10.00ms์˜€์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ๋ˆ ์กฐ๊ฑด์˜ ์ƒ์„ฑ ์ค‘์•™๊ฐ’์€ 9.80ms์˜€์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ํ™•์ธํ•œ ์ด๋“์€ ํ›„๋ณด ํƒ์ƒ‰ ๊ฐ์†Œ์ด๋ฉฐ, ์ด ๊ณผ์ œ ํฌ๊ธฐ์—์„œ ์ „์ฒด ์ง€์—ฐ์€ ๋น„์Šทํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ชจยทํ™˜๊ฒฝยท์ „์ฒด ๋ณ€ํ˜• ๊ฒฐ๊ณผ.

๋ฌธ์žฅ ์กฐ๊ฐ์˜ ๋นˆ๋„๋Š” ์—ฐ์‚ฐ ์ˆœ์„œ๋ฅผ ์žƒ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œยท์˜ ๋‘ ํ‘œํ˜„์ด ๊ฐ™์€ ์ž˜๋ชป๋œ ๊ฒฝ๋กœ๋ฅผ ๊ณ ๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์‚ผ์ง„ ์ €์žฅ์œผ๋กœ ํŒŒ์ผ์€ ์ž‘์•„์กŒ์ง€๋งŒ ์ผ๋ถ€ ์กฐ๊ฑด์˜ ํ’ˆ์งˆ์€ ๋‚ด๋ ค๊ฐ”์Šต๋‹ˆ๋‹ค. ์ด ๊ด€์ธก๋“ค์€ ๋‹ค์Œ ํ‘œํ˜„ยทํ•™์Šตยท์–ธ์–ด ๊ธฐ๋Šฅ์„ ๊ณ ๋ฅด๋Š” ๊ทผ๊ฑฐ๋กœ ๋‚จ๊น๋‹ˆ๋‹ค.

์–ธ์–ด๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐœ์ „ํ•ด์•ผ ํ•˜๋‚˜

๋‹ค์Œ ์ž‘์—…์€ ๋ชจ๋ธ์˜ ์ •๋‹ต๋ฅ ๊ณผ ์–ธ์–ด๊ฐ€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ํ•จ๊ป˜ ๋„“ํžˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์ˆœ์„œ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž‘์€ ์ž…๋ ฅ ๊ตฌ์กฐ: โ€œ๋”ํ•˜๊ณ  ๊ณฑํ•˜๊ธฐโ€์™€ โ€œ๊ณฑํ•˜๊ณ  ๋”ํ•˜๊ธฐโ€๋ฅผ ๊ตฌ๋ณ„ํ•˜๋ฉด์„œ ๋ฉ”๋ชจ๋ฆฌ ๋น„์šฉ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•œ๊ตญ์–ดยท์˜์–ด์™€ ์ƒˆ ๊ณผ์ œ: ๊ฐ™์€ ์˜ค๋‹ต๊ณผ ์–‘์ชฝ ๋ชจ๋‘ ์œ ํšจํ•œ ์„ ํƒ์„ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ธฐ์กด์— ๊ด€์ธกํ•œ ๊ณผ์ œ ๋ฐ–์—์„œ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋” ํ’๋ถ€ํ•œ ์กฐ๋ฆฝ ๊ณ„ํš: ๋” ๋„“์€ ํƒ€์ž…ยท์กฐ๊ฑดยท๊ณ„์‚ฐ์„ ํ‘œํ˜„ํ•˜๊ณ , ์ƒ์„ฑ๊ณผ ์—ญ๊ด€์ธก์˜ ๊ทœ์น™์„ ํ•จ๊ป˜ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.
  4. ์ž์—ฐ์–ด์—์„œ ๊ณ„ํš ์ฐพ๊ธฐ: ์‚ฌ์šฉํ•  ๊ธฐ๋Šฅ๊ณผ ์กฐ๋ฆฝ ํ›„๋ณด๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ๊ทธ ์ถœ์ฒ˜ยท์‹คํŒจยท๋ฏธํ•ด๊ฒฐ ํ•ญ๋ชฉ์„ ๊ณตํ†ต ๊ธฐ๋ก์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  5. ์„ฑ๊ณตํ•œ ๊ตฌ์กฐ ์žฌ์‚ฌ์šฉ: ๋ฐ˜๋ณต๋˜๋Š” ์กฐ๋ฆฝ๋ฒ•์„ ์„ค๋ช… ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ์œผ๋กœ ์ถ•์ ํ•ด ์ƒˆ ์ž‘์—…์˜ ํƒ์ƒ‰ ๋น„์šฉ์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค.

์™„์ „์„ฑ์€ ์ž‘์—… ์ง€์‹œ์„œ์˜ ์ฒดํฌ ๊ธฐ๋ก์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ๋ฒˆ์— ์™„์„ฑ๋˜์ง€ ์•Š์•„๋„, ๋ฌด์—‡์„ ์ถฉ์กฑํ–ˆ๊ณ  ๋ฌด์—‡์ด ๋‚จ์•˜๋Š”์ง€๊ฐ€ ๋‹ค์Œ ์‹œ๋„๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ ์—ฐ๊ตฌ์™€ ๊ฐ์‚ฌ ยท ํ˜„์žฌ ์ƒํƒœ ยท ๋ฌธ์„œ ํ™ˆ

์ƒ์„ฑ ์งํ›„ ์‹คํ–‰ํ•˜๊ณ  ๊ฐ™์€ ์กฐ๋ฆฝ๋ฌผ์„ ๋‹ค์‹œ ํ™•์ธํ•˜๊ธฐ

body-path-stream --execute๋Š” ์ƒˆ ๋ฐ”๋””๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฐ™์€ ์š”์ฒญ ์•ˆ์—์„œ ์‹ค์ œ ์‹คํ–‰์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ๋งˆ๋‹ค execution_cases๋กœ ๋…๋ฆฝ ๊ธฐ๋Œ€๊ฐ’์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์กฐ๋ฆฝ๋ฌผ์˜ ์‹คํ–‰ํŒŒ์ผ์€ ํ•˜๋‚˜๋งŒ ๋ณด๊ด€ํ•˜๊ณ , ํ˜„์žฌ ์†Œ์Šคยท๊ณ„ํšยท๋ถ€๋ชจ ๊ด€์ธก๊ณผ ์‹คํ–‰ํŒŒ์ผ์„ ๋‹ค์‹œ ํ™•์ธํ•œ ๋’ค ํ˜„์žฌ ์ž…๋ ฅ์„ ๋‘ ๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ๋Œ€๊ฐ’์„ ์ฃผ๋ฉด ์ƒˆ๋กœ์šด ์ถฉ์กฑยท๋ฏธ์ถฉ์กฑ ๊ฒฐ๊ณผ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ํŒ๋‹จ ๊ธฐ๋ก๊ณผ ์‹คํ–‰ ๊ด€์ธก์€ ๋ถ€๋ชจยท์ž์‹ ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐํ•˜๋ฉฐ, ์‹ค์ œ ์ƒˆ ๋นŒ๋“œ์™€ ์žฌ์‚ฌ์šฉํ•œ ์›๋ณธ ๋นŒ๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ์€ ์—ฌ๋Ÿฌ ์ž‘์—…์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  ์‹คํ–‰ ์Šฌ๋กฏ์€ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

Go ์˜ˆ์ œ์˜ --retain-native๊ฐ€ ์ด ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. --model์„ ๋นผ๋„ ๊ฐ™์€ ์‹คํ–‰ ๊ด€์ธก์„ ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ์–ป์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ํ•œ์˜ ์†Œ์Šค์˜ 512ํšŒ ์ƒ์„ฑยท1,024ํšŒ ์‹คํ–‰ ๋น„๊ต์—์„œ ๊ฒฐ๊ณผ์™€ ์ตœ์ดˆ ์‹คํŒจ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๋ฐ˜๋ณต ์‹คํ–‰ ๊ด€์ธก ๋น„์šฉ์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค. ์›๋ณธยท์ธก์ • ๋ฒ”์œ„์™€ ์‹คํŒจ. ํ˜„์žฌ ์ง€์›๋˜๋Š” ์ˆœ์ˆ˜ Integerโ†’Integer ๋ฐ”๋””์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.