Sequential Field Updates - kimjooyoon/meta-ontology-go GitHub Wiki

ν•„λ“œλ₯Ό μˆœμ„œλŒ€λ‘œ μ‘°λ¦½ν•˜κΈ°

Goooμ—μ„œ κΈ°λ‘κ°’μ˜ ν•„λ“œλ₯Ό ν•˜λ‚˜μ”© λ°”κΎΈκ³ , 바뀐 값을 λ‹€μŒ ν•„λ“œμ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ κ°œλ°œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 제λͺ©κ³Ό μƒνƒœλ₯Ό λ¨Όμ € μ •ν•œ λ’€, 두 값을 합쳐 μ„€λͺ…을 λ§Œλ“œλŠ” μ‹μž…λ‹ˆλ‹€. 개발 PR1233κ³Ό main PR1234을 전체12개 검사와 독립 확인 ν›„ λ³‘ν•©ν–ˆμŠ΅λ‹ˆλ‹€. 순차 μ‹€ν—˜ λ‹Ήμ‹œ μ„€μΉ˜λ³Έμ€ main a5f6e8c668ff9fc7cfe3367a5019b50fbcadc1faΒ·Go1.27.1Β·SDKv0.2.23μ˜€μŠ΅λ‹ˆλ‹€. 예제 받기·생성·결과 μ½κΈ°Β·μž¬μ‹€ν–‰μ„ 따라할 수 μžˆμŠ΅λ‹ˆλ‹€.

let copy = input0
let saved = copy
copy.title = input0.title
copy.state = "ready"
copy.reason = saved.reason + ":" + copy.state
return copy

savedλŠ” μ €μž₯ν•œ μ‹œμ μ˜ κ°’μž…λ‹ˆλ‹€. 이후copyλ₯Ό 바꾸어도savedλŠ” μ›λž˜ ν•„λ“œλ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμžμ—΄ ν•˜λ‚˜λ₯Ό μ €μž₯ν•œ λ³€μˆ˜λ„ κ·Έ μ‹œμ μ˜ 값을 μœ μ§€ν•©λ‹ˆλ‹€. Gooo의 μ‹€μ œ μ‹€ν–‰κ³Ό μƒμ„±λœ Goκ°€ 같은 λ³΅μ‚¬Β·μˆœμ„œ 의미λ₯Ό λ”°λ₯΄λ„둝 μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

두 후보식 μ€‘μ—μ„œ 쑰립

assembling 선언에field_updateλ₯Ό 적으면 λŒ€μž…μ‹μ˜ 였λ₯Έμͺ½μ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

choice "state" field_update at "1" alternative "\"ready\"" intent "μƒνƒœλ₯Ό ready둜 λ§Œλ“ λ‹€."

at "1"은 κΈ°λ³Έ λ³Έλ¬Έμ—μ„œ 두 번째 ν•„λ“œ λŒ€μž…μ‹μž…λ‹ˆλ‹€. μƒμ„±μž ν•„λ“œμ— μ“°λŠ” field_value와 번호λ₯Ό λ”°λ‘œ μ„Έλ―€λ‘œ κΈ°μ‘΄ μƒμ„±μž μ„ νƒμ˜ μœ„μΉ˜κ°€ μœ μ§€λ©λ‹ˆλ‹€. ν›„λ³΄μ‹μ˜ νƒ€μž…κ³Ό μ§€μ—­ λ³€μˆ˜ λ²”μœ„λŠ” μ‹€μ œ 본문의 μœ„μΉ˜μ—μ„œ κ²€μ‚¬ν•©λ‹ˆλ‹€. 제λͺ©Β·μƒνƒœΒ·μ„€λͺ…μ²˜λŸΌ μ„Έ 선택이 있으면 μž‘μ€ 곡유 λͺ¨λΈμ΄ μ—¬λŸ μ‘°ν•©μ˜ μˆœμ„œλ₯Ό ν•œ 번 νŒλ‹¨ν•©λ‹ˆλ‹€. λͺ¨λΈμ„ μƒλž΅ν•˜λ©΄ μ •ν•΄μ§„ μˆœμ„œλŒ€λ‘œ μ‹œλ„ν•©λ‹ˆλ‹€.

이번 관츑을 μ½λŠ” 방법

μ—¬μ„― μ½”λ“œ ν˜•νƒœΒ·ν•œκΈ€/μ˜μ–΄Β·λ‘ λ°©μ‹Β·μ‹œλ„1/2/8둜72개 μœ νš¨ν•œ κ·Έλž˜ν”„λ₯Ό λ§Œλ“€κ³ , λ„€ μž…λ ₯으둜 두 λ²ˆμ”© μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈ κ°€μ€‘μΉ˜λ₯Ό μΆ”κ°€ ν•™μŠ΅ 없이 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 각 μ‹œλ„ μ˜ˆμ‚°μ˜12개 κ·Έλž˜ν”„μ—μ„œ 첫 λͺ¨λΈ ν›„λ³΄λŠ” μ‹€ν–‰ ν•„λ“œ144/144개, ν™œλ™ 좜λ ₯96/96개λ₯Ό λ§žμ·„μŠ΅λ‹ˆλ‹€. 결정둠적 μ‹œλ„1/2/8은 ν•„λ“œ12/56/144개λ₯Ό λ§žμ·„μŠ΅λ‹ˆλ‹€. 전체 μƒμ„±Β·λΉŒλ“œΒ·μ‹€ν–‰μ€ 두 방식 λͺ¨λ‘ μ•½310msμ˜€μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  λͺ©ν‘œκ°€ μ„Έ λŒ€μ•ˆμ‹μ„ κ³ λ₯΄λŠ” 같은 μ‘°ν•©μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 이 μ μˆ˜μ—λŠ” ν•œ 선택을 μ„ ν˜Έν•˜λŠ” λͺ¨λΈμ˜ 편ν–₯도 μž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ‘œ λ‹€λ₯Έ μš”κ΅¬λ₯Ό κ΅¬λΆ„ν•˜λŠ” λŠ₯λ ₯은 μ•žμ„  ν˜Όν•©Β·μƒˆ ν‘œν˜„ 결과와 ν•¨κ»˜ μ½μŠ΅λ‹ˆλ‹€. μ²˜μŒμ— κΈ°λ³Έμ‹μ—μ„œ μ‚¬μš©ν•˜μ§€ μ•Šμ€ μ €μž₯ λ³€μˆ˜λ‘œ24개 μ†ŒμŠ€κ°€ μ‹€νŒ¨ν•œ 기둝도 λ‚¨κ²ΌμŠ΅λ‹ˆλ‹€. 이λ₯Ό 고친 κ³„νšΒ·μ›λ³ΈΒ·μ§‘κ³„μ™€ λΉ„μš©μ€ GitHub μ‹€ν—˜κ³Ό Hugging Face에 κ³΅κ°œν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ— λͺ¨λΈμ΄ μ•Œμ•„μ•Ό ν•  것

곡개 v1 νŠΉμ§• 배열은copy.state와saved.stateλ₯Ό 같은 λͺ¨μ–‘μœΌλ‘œ λ΄…λ‹ˆλ‹€. ν‘œν˜„ μ „μ²΄λŠ” κΈ°λ‘ν•˜μ§€λ§Œ, λͺ¨λΈ κ³„μ‚°μ—λŠ” 값이 μ–΄λŠ μ§€μ—­ λ³€μˆ˜ μ •μ˜μ—μ„œ μ™”λŠ”μ§€ λ“€μ–΄κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν˜„μž¬ κ°’κ³Ό μ €μž₯값을 κ΅¬λΆ„ν•˜κ³  이전 갱신을 λ”°λΌκ°ˆ 수 μžˆλ„λ‘ μƒˆ κ°’μ˜ 좜처 μž…λ ₯을 κ΅¬ν˜„ν•΄ main에 μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€. μƒˆ κ°€μ€‘μΉ˜ ν•™μŠ΅μ€ λ‹€μŒ λ‹¨κ³„μž…λ‹ˆλ‹€. μ‹€ν–‰μ—μ„œ ν™•μΈν•œ μ™„μ „μ„±κ³Ό 남은 ν•„λ“œλ₯Ό 계속 뢄리해 κΈ°λ‘ν•©λ‹ˆλ‹€.

Linuxμ—μ„œ μƒˆλ‘œ μ‹€ν–‰ν•œ72개 κ·Έλž˜ν”„Β·144회 싀행도 λͺ¨λ“  ν›„λ³΄Β·μ‹€μ œ κ°’κ³Ό μΆ©μ‘± μˆ˜κ°€ Macκ³Ό κ°™μ•˜μŠ΅λ‹ˆλ‹€. 원본을 λ‚΄λ €λ°›μ•„ 독립 μž¬κ³„μ‚°ν–ˆκ³  연ꡬCI27개 μž‘μ—…μ΄ ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€. 각 ν™˜κ²½μ˜ μ‹œκ°„μ€ λ”°λ‘œ κ³΅κ°œν•©λ‹ˆλ‹€. μ„€μΉ˜λ³Έμ€ 선택 ν•„λ“œ15/15κ°œΒ·μ‹€μ œ 좜λ ₯14/14κ°œμ™€ μΆ”κ°€ μΆ”λ‘  μ—†λŠ” μ €μž₯ κ²°κ³Ό μž¬μ‹€ν–‰μ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

μ„€μΉ˜ ν›„72개 κ·Έλž˜ν”„λ₯Ό μΆ”κ°€λ‘œ μ‹€ν–‰ν•΄ 이전 ν›„λ³΄Β·μ‘λ‹΅Β·μ‹€μ œ 값이 같은지 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. 두 μž‘μ—…μžμ˜4회 관츑은 각각32개 μš”μ²­Β·384/384 선택 ν•„λ“œλ₯Ό μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ‘ μž…λ ₯ μ’…λ£Œ 전에 첫 응닡이 λ‚˜μ™”μŠ΅λ‹ˆλ‹€. 첫 κ΄€μΈ‘525.86ms, 반볡6.7110.37msΒ·μž‘μ—…μžRAM22.8823.41MiBμž…λ‹ˆλ‹€. μΆ”κ°€ 원본을 λͺ¨λ‘ ν•©μΉ˜λ©΄18.98MiB둜 처음16MiB λͺ©ν‘œλ₯Ό λ„˜μ—ˆμŠ΅λ‹ˆλ‹€. 원본과 μš©λŸ‰μ„ ν•¨κ»˜ λ³΄μ‘΄ν•©λ‹ˆλ‹€.

λ‹€μŒ μ‹€ν—˜ κ³„νšμ€ ν˜„μž¬ κ°’Β·μ €μž₯κ°’μ˜ 좜처 κ΄€μΈ‘κ³Ό ν˜Όν•© μš”κ΅¬λ₯Ό λ‹€λ£Ήλ‹ˆλ‹€. 아직 ν•™μŠ΅ 결과둜 κ³„μ‚°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.