TECH 으로 돌아가기
TECH HACKER NEWS 오늘 8분 읽기 20 READS

프롬프트 대신 코드로 그림 그리기: 창작 과제에 강화학습을 적용한 실험

프롬프트 대신 코드로 그림 그리기: 창작 과제에 강화학습을 적용한 실험
SOURCE IMAGE · HACKER NEWS

AI로 이미지를 만들 때 사용자가 개입할 수 있는 통로는 사실상 프롬프트 하나뿐이다. 결과물이 마음에 들지 않으면 그림을 직접 손보는 대신 다시 모델로 돌아가 문장을 고쳐 넣어야 한다. 브루클린에서 활동하는 디자이너 겸 크리에이티브 테크놀로지스트인 저자는 바로 이 제약에서 출발했다. 그는 협업자 캐머런 프란츠와 함께 언어 모델이 이미지를 '코드로' 그리도록 강화학습으로 훈련시켰다. 여기서 결과물은 픽셀 덩어리가 아니라 편집 가능한 코드다. 모델이 만들어낸 것을 프롬프트로 되돌아가지 않고도 더 세밀하게 바꿀 수 있다는 점이 이 접근의 핵심이다.

하지만 프로젝트가 던지는 더 깊은 질문은 따로 있다. 창작과 디자인처럼 정답이 없는 과제에 어떻게 강화학습을 적용할 것인가다. 강화학습은 보상이 검증 가능할 때 잘 작동한다. 수학 문제는 맞거나 틀리고, 게임은 이기거나 진다. 그러나 미적 완성도는 그 어느 쪽도 아니다. 이 경우 디자인 문제 자체가 곧 보상 함수가 되고, 심판 모델에게 어떤 기준을 적용하라고 지시하느냐가 관건이 된다. 기준이 너무 경직되면 모델은 한 형태로 수렴해 버리고, 너무 느슨하면 방향 없이 표류한다.

네 단계 루프와 첫 번째 실패

시스템은 훈련 중 수천 번 반복되는 네 단계 루프로 구성된다. 모델은 '수채화로 복숭아빛 히비스커스를 그려라' 같은 프롬프트를 받아 완전한 p5.brush 자바스크립트 스케치를 작성한다. 이 스케치는 격리된 퍼피티어(Puppeteer) 환경에서 렌더링되어 PNG로 출력된다. 그 PNG는 손으로 평점을 매긴 풀에서 무작위로 뽑은 참조 그림 두 점과 비교되고, 별도의 심판 모델이 어느 쪽이 더 나은 수채화인지 고른다. 판정은 보상 신호로 변환되어 GRPO가 모델을 업데이트하고 루프가 다시 돈다.

초기 평가 기준은 아홉 개의 신호를 담고 있었다. 컴파일 통과 여부, 네이티브 p5가 아닌 p5.brush를 실제로 썼는지 확인하는 검사, 약 3,000토큰을 겨냥한 코드 길이 조절, 인간 선호 모델인 HPSv3, GPT-5.4와 제미나이로 구성한 심사단이 판정하는 프롬프트 충실도, 그리고 식별성·미학·기법·깊이라는 네 개의 품질 판정이었다. 그런데 모델은 보상 0.65 부근에서 정체했고, 모든 결과물이 다섯 장의 둥근 꽃잎을 가진 평평한 클립아트 같은 꽃으로 똑같이 나왔다. 보상 수치는 올라가는데 실제 역량은 나아지지 않았다.

원인은 하위 보상을 따로 뜯어보자 드러났다. 네 개의 품질 판정과 프롬프트 충실도는 서로 0.85~0.95의 상관을 보였다. 같은 것을 다섯 번 측정하고 있었던 셈이다. 전체 보상의 3분의 1가량을 차지하던 코드 길이 항목은 30스텝 만에 포화해 이후로는 아무런 기울기도 만들지 못했다. 정작 실질적 변별력을 보인 유일한 신호인 HPSv3의 가중치는 0.10에 불과했다. 정교해 보였던 평가 기준이 실은 모델에게 같은 말을 반복하고 있었다.

절대 점수에서 쌍대 비교로

해법은 절대 점수를 쌍대 비교로 바꾸는 것이었다. 기존 방식은 심판에게 결과물을 0에서 10 사이로 채점하게 했는데, 점수가 0 근처에 압축되어 돌아왔다. 대신 심판에게 결과물 한 점과 풀에서 뽑은 참조 두 점을 보여주며 '이 중 어느 것이 더 나은 히비스커스 수채화인가'라는 단일 질문만 던졌다. 보상은 이 비교에서 이긴 비율이 된다. 심판 모델은 추상적 척도보다 상대적 질문을 훨씬 안정적으로 다뤘고, 보상의 변별 폭이 넓게 열렸다.

이를 뒷받침한 것이 손수 평점을 매긴 참조 풀이다. 저자는 1,664장의 이미지를 한 장씩 '좋음(love)·보통(okay)·별로(nope)'로 분류했고, 이 중 '좋음' 등급 117장이 비교 풀의 씨앗이 되었다. 최종 풀은 참조 그림 581점으로, 좋음 117점, 보통 266점, 그리고 손 평점 예시가 부족한 색 계열을 보강하기 위해 별도 생성분에서 추가한 198점으로 구성됐다. 다만 p5.brush가 예술가들이 쓰는 틈새 도구라 사람이 그린 예시를 충분히 구하기 어려웠던 탓에, 풀의 모든 이미지는 결국 모델 출력이라는 한계를 안고 있다. 새 기준은 항목을 넷으로 압축했다. 컴파일·브러시 사용 여부(0.05), 길이 검사(0.05), HPSv3(0.30), 참조 풀 대비 쌍대 판정(0.60)이다. 같은 베이스 모델과 같은 데이터로 다시 돌린 결과는 이전 정체 지점에 세 배 빠르게 도달했고 그 위로 계속 올라갔으며, 코드는 13,500토큰에서 2,000토큰 미만으로 줄었다. 이기는 구도를 만드는 데 장황한 코드가 필요치 않다는 것을 모델이 학습한 것이다.

짧고 단호한 프롬프트가 이긴다

시스템 프롬프트에서도 흥미로운 교훈이 나왔다. 초기 버전은 400줄짜리 p5.brush API 레퍼런스를 포함했는데, 모델은 자신만만하고 깔끔하게 정돈된 코드를 쓰면서 존재하지도 않는 API를 지어냈다. 저자는 프롬프트를 채점 함수에 대해 진화시키는 최적화 라이브러리 GEPA로 200회 반복 최적화를 돌렸고, 그 결과는 여덟 개 브러시 메서드만 허용하는 엄격한 화이트리스트로, API 문서도 예시도 없는 프롬프트로 수렴했다. 긴 레퍼런스 문서를 통째로 버린 버전에서 비로소 세 번의 생성이 모두 알아볼 수 있는 히비스커스 형태를 만들어냈다. 길고 상세한 명세보다 짧고 의견이 분명한 허용 목록이 출력을 더 잘 제약한다는 발견이다.

실무자 입장에서 이 실험은 두 가지를 시사한다. 하나는 주관적 과제에서 보상 함수는 손으로 설계해야 하는 창작물이며, 너무 구체적이면 평가한 예시를 베끼는 데 그치고 너무 느슨하면 아무것도 배우지 못한다는 균형의 문제라는 점이다. 다른 하나는 상관 높은 지표를 여럿 쌓는 것이 정교함이 아니라 중복이라는 점이다. 저자 스스로 이것이 이미지를 만드는 더 나은 방법이라고 주장하지는 않는다. 오히려 훨씬 느리다. 다만 프롬프트와 모델, 그리고 결과물 코드 전반에 걸쳐 손을 댈 수 있게 되었다는 데 의미를 둔다. 프로젝트는 진행 중이며, 발견된 문제들을 손보는 마지막 훈련 한 회가 남아 있고 전체 기술 보고서는 6월에 공개될 예정이다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://surya.website/rling-qwen-to-paint-with-code
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...