Skip to content

Continuing Constructed Helpers

kimjooyoon edited this page Oct 8, 2026 · 5 revisions

바뀐 보조 함수를 반영하며 조립 이어가기

업데이트: 2026-10-08 KST. PR #1351은 필수 CI 6개와 증빙 확인 후 dev 26daac53에 병합했습니다. main 반영 #1352도 별도 CI 통과 후 main 60fef5c0에 병합했습니다. 0.6.7 개발판에 포함된 기능입니다. 아래 고정 소스는 최초 관측 시점이며, 공개 실행 파일로 다시 확인한 결과는 현재 상태에 있습니다.

작은 부품을 바꾸면 그 부품을 사용하는 다음 단계도 확인해야 합니다. Gooo의 body-compose --resume-composition은 보조 함수를 먼저 이어 만들고, 변경된 함수를 호출하는 조립 후보를 다시 검사합니다. 이전 점수는 당시의 소스와 함께 재현하며, 현재 점수는 바뀐 부품으로 계산합니다.

따라 할 수 있는 예제

실행 순서와 Gooo 소스는 세 단계입니다.

  1. Checkpoint 정책으로 각 보조 함수의 첫 후보와 부분 결과를 저장합니다.
  2. Explain 정책으로 남은 후보를 조립합니다. 바뀐 보조 함수에 의존하는 기존 후보도 재검사합니다.
  3. 저장한 결과를 새 프로세스에서 다시 실행합니다.

모델은 처음 조립할 때 선택적으로 연결합니다. 이어 만들 때는 기존 제안 순서를 사용하므로 모델 파일과 추가 추론이 필요하지 않습니다. 선택지·기대값·누적 예산은 Gooo 선언에 유지됩니다.

실제로 관측한 변화

예제 처음 저장한 앱 출력 이어 만든 앱 출력 이어 만들면서 한 일
두 보조 함수 Seed → Wrap → Main 0/2 2/2 Seed에 새 후보 1개. Wrap의 기존 후보 1개를 재검사하고 새 후보 1개
진단 함수, 결정론 순서 2/4 4/4 기존 후보 1개 유지, 새 후보 3개
진단 함수, 자체 소형 모델 2/4 4/4 기존 후보 1개 유지, 새 후보 1개

진단 함수 자체의 조립 사례는 두 경로 모두 3/5에서 5/5가 됐습니다. 결정론·모델 경로의 최종 생성 코드가 같았고, 세 프로그램 모두 저장 재실행을 통과했습니다. 이어 조립하기와 재실행의 새 모델 호출은 0회입니다.

원본·측정·재현 방법은 깨끗한 컴파일러 소스 395fb538에서 실행한 아홉 명령을 기록합니다. 자체 QAT 모델의 가중치를 바꾸지 않고 사용했습니다. 판단은 11.375µs, 적재는 0.716167ms, 복원한 텐서는 2,096B였습니다.

결정론 이어 만들기는 0.33초, 모델 순서를 이어 쓰는 실행은 0.35초였습니다. 모델 경로의 첫 명령은 사용자 CPU 0.16초, 시스템 CPU 0.11초, 최대 RSS 약 86.0MB를 기록했습니다. Go 빌드와 실제 프로그램 실행이 포함된 값입니다. 캐시를 통제하지 않은 단일 순차 관측이며 모델 자체의 CPU 증가량은 미측정입니다.

기록을 읽는 기준

  • 유지한 후보: 이전에 시도했던 후보의 개수입니다.
  • 재검사한 후보: 보조 함수 변경 후 다시 점수를 계산한 기존 후보입니다.
  • 새 후보: 이번에 처음 시도한 후보입니다.

재검사는 계산을 사용하지만 새 후보 예산을 늘리지는 않습니다. 과거 기록을 확인하는 재실행 비용도 별도로 존재합니다. 이 세 수를 전체 CPU 작업량으로 해석하지 않습니다. 한때 모든 사례를 맞혔던 호출자가 보조 함수 변경 후 실패하는 경우도 회귀 검사에 넣었습니다.

현재 레코드 선택 조립에서 지원하며, 패키지 실행의 package resume에도 연결됐습니다. 패키지 예제와 보존 범위. 다른 조립 프로필과 후보를 검사하면서 발생한 중첩 호출의 입력 이력은 남은 범위입니다. 사용자가 명령을 시작하며, 도구가 스스로 다음 실행을 예약하는 기능은 후속 과제입니다.

이 기능은 작은 도구를 계속 고쳐 쓸 때 드러난 언어 요구에서 출발했습니다. 앞으로도 사용 가능한 도구, 구체적인 실패, 그 실패를 해결하는 언어 기능을 연결해 발전시킵니다.

성장 방향 · 앞선 배포 관측 · 문서 홈

Gooo

배우기

직접 다뤄 보기

원리와 개발

공개 코드와 모델

Clone this wiki locally