Skip to content

Assembly Feedback

kimjooyoon edited this page Oct 9, 2026 · 2 revisions

조립된 결과를 다음 조립에 연결하기

Gooo에서 소스의 작은 사례를 통과했어도 새로운 호출에서는 일부 필드가 틀릴 수 있습니다. 작업장은 이전 결과를 저장하고, 실패한 입력을 다음 조립에 넘깁니다. 컴파일러가 만든 부품을 실제로 연결해 본 뒤, 맞지 않은 부품의 조립 조건을 더하는 흐름입니다.

작업장 PR52에 construct --assembly를 공개했습니다. 원본 전체 CI 37930939295를 통과해 main 83cbe449에 병합·설치했습니다. 설치본에서도 같은 모델의 4회차·13번 시도와 최종 필드 6/6을 확인했습니다. 같은 사례의 재실행으로 기록합니다. 공개 Gooo 0.6.22·Go1.27.2와 기존 자체 소스 그래프 QAT 모델을 사용합니다. 실행 안내. CI·병합·설치 원본.

gooo-workbench construct --assembly out/first \
  --holdout-cases examples/assembly-feedback/holdout-cases.json \
  --max-program-budget 8 --max-rounds 4 --out out/next

이전 assemble 폴더 하나를 지정합니다. 소스 안의 조립용 사례를 원래 값으로 호출 형식에 옮기고, Gooo 규칙이 고른 실패한 호출의 전체 행을 추가합니다. 기존 construct의 반복을 사용합니다. 원본 소스와 기대값은 보관하며, 준비한 반례가 실제 다음 조립에서 읽혔는지를 따로 기록합니다.

작은 예제의 관측

세 필드의 후보를 가진 한 프로그램으로 입력과 기대값을 먼저 정했습니다. 첫 소스 사례에서는 모든 후보가 같은 답을 내므로 조립용 필드는 3/3입니다. 새 호출의 결과와 이후의 조립은 아래와 같았습니다.

처음 순서 처음 호출 필드 후속 순서 후속 총 시도 새 후속 모델 호출 최종 별도 입력
고정 2/6 고정 15 0 호출 2/2·필드 6/6
자체 모델 4/6 고정 15 0 호출 2/2·필드 6/6
자체 모델 4/6 같은 모델 13 4 호출 2/2·필드 6/6

모델을 생략하면 이전 조립의 모델 설정을 물려받지 않고 고정 순서로 진행합니다. 회차마다 새로 조립하므로 중복한 시도도 셉니다. 재생과 마지막 평가의 새 추론은 0회입니다. 정수 9007199254740993과 한글·영문 문구를 원래 값으로 유지했습니다. 관측 계획과 원본.

호출의 실패를 선택에 사용했으므로 적응 평가로 읽습니다. 마지막 두 입력은 선택 뒤 재생하며 조립용 입력과의 중복은 0입니다. 모델 학습 자료의 노출은 확인되지 않았습니다. 같은 작은 프로그램을 반복한 결과는 한 프로그램의 관측으로 설명합니다.

사용하는 범위

루트 레코드 뒤에 고정 활동을 bind로 연결하는 흐름도 지원합니다. 마지막 활동을 --entry, 루트 조립 활동을 --assembly-activity로 지정합니다. 연결 활동과 보조 함수에서 같은 저장 폴더를 이어 씁니다. 여러 패키지에는 기존 construct --workspace를 사용합니다. 이미 충족한 결과는 새 조립을 시작하지 않고, 별도 최종 입력이 있으면 저장된 프로그램으로 평가합니다. 작업장의 assemble는 호출 기대값을 사용합니다. 기대값을 나중에 붙이는 native 개발판 경로는 입력부터 실행하기에 따로 설명합니다. 실행 실패 뒤에도 원본과 부분 진행 기록이 새 폴더에 남습니다.

최근 도구에서 참고한 원리는 작은 기능의 연결, 필요한 원본 읽기, 모델과 결정론적 처리의 역할을 다룹니다. 저장한 검사를 시간만으로 재사용하는 캐시는 추가하지 않았습니다.

Gooo

배우기

직접 다뤄 보기

원리와 개발

공개 코드와 모델

Clone this wiki locally