Claude Code의 추천 메시지 기능, 진짜 고객은 사용자가 아니라 모델이라는 분석
- Claude Code가 작업을 마친 뒤 입력창에 "run the tests", "commit this" 같은 다음 메시지를 미리 채워 넣는 기능을 넣었고, 글쓴이는 사용자 편의가 아니라 모델 학습용 데이터 수집이 진짜 목적이라고 추정함
- 제안을 그대로 보내면 긍정 라벨, 고쳐 쓰면 원본과 수정본이 선호 쌍을 이뤄 diff가 예측이 틀린 지점을 드러내는 구조라, RLHF에서 가장 비싼 단계인 선호 데이터 수집이 사용자의 실제 업무에서 공짜로 나옴
- 합성 벤치마크가 아니라 실제 저장소에서 나온 데이터라 모델이 앞으로 맡을 작업 분포에 맞고, 다음 사용자 턴 예측 자체가 리팩터링 후 테스트, 통과 후 커밋 같은 작업 순서를 배우는 훈련 목표가 됨
- 글쓴이는 Anthropic 내부 사정을 모른다고 밝혔고, 세션 데이터를 학습에 쓰는지는 요금제와 개인정보 설정에 따라 다름
- 해커뉴스에서는 제안을 굳이 보여줄 필요 없이 실제 다음 프롬프트와 예측을 비교하면 된다는 반론과 함께, 이 기능이 몇 달 전부터 있었고 2.0.69 버전부터 회색 텍스트로 뜨며 Tab+Enter로 수락한다는 확인이 나옴
Hacker News opinions
제안을 굳이 보여줄 필요가 있나 싶음. 모델한테 다음에 뭐라고 보낼지 예측시켜 놓고 실제 다음 프롬프트랑 비교하면 그만인데. 보여주는 이유는 사용자의 다음 입력을 유도하려는 것 아닌가.
나 이거 아직 못 봤는데 최근에 추가된 거임?
아니 몇 달 됐음. 회색 글씨로 떠 있고 Tab이나 화살표를 눌러야 실제로 들어감. 2.0.69부터였고 .70에서 버그를 잔뜩 고쳤더라.
이론은 맞는 것 같은데 나는 제안 메시지를 한 번도 쓴 적이 없음.
어제부터 Claude Code에서 'claude는 잘하고 있나요' 같은 질문이 따로 뜨기 시작함. 세션 만족도를 직접 물어보는 것 같음.
그거 3-4개월은 받았는데.
어제? 나는 6개월 넘게 봤음.
피드백을 주면 세션도 같이 수집함. 프롬프트랑 답변, 전체 평가를 한꺼번에 모으는 셈임.
짜증나는 건 제안이 나쁜 아이디어는 아닌데 내가 다음에 하려던 게 아닐 때가 많음. 그런데 화면을 방해하니까 가끔 그냥 따라가게 됨. 예측이라기보다 자기실현적 예언에 가까움.
문장 자동완성하는 인터페이스는 원래 싫어함. 메일이나 메신저 추천 답장부터 시작됐는데 LLM 채팅에 들어온 뒤로 더 거슬림.
여기는 예외로 괜찮음. 사람한테 보내는 추천 답장은 관계를 싸구려로 만드는 느낌인데, 상대가 로봇이고 내가 뭘 원하는지 꽤 잘 알고 기분 상할 일도 없으니까.
최악은 Gmail이 메일 한 통을 통째로 지어내는 거임. '가족은 잘 지내?' 같은 질문에 없던 디테일까지 넣어서 여러 문단을 다 써줌. Clippy가 웃는 스킨워커를 보내줄까 한다는 느낌.
여기 제안은 사용을 방해하지 않음. 그냥 떠 있고 버튼 하나만 누르면 됨. 구현 단계에서는 3분의 1 정도 턴에서 타이핑을 아껴줌. 설계 단계에서는 안 쓰지만.
제안 답변을 사용자한테 보여주는 게 학습에 왜 도움이 됨? 제안 없는 대화만 있어도 사용자 메시지 직전까지 잘라서 예측시키고 실제 답변과의 차이로 학습하면 되는데.
RL 단계는 '내가 X 했는데 좋았나 나빴나' 그 1비트가 학습 데이터임. 제안을 수락하면 좋음, 거절하고 다른 걸 타이핑하면 나쁨. 고품질 학습 데이터를 얼마나 얻느냐가 성능을 가르는데, 자기 제품에 바로 맞는 데이터라 품질이 높음.
제안을 보면 판단이 달라짐. 제안을 본 뒤의 답변과 안 본 답변은 서로 다른 데이터임.
스레드 하나에 사용자가 수락했을 만한 후속 메시지가 여러 개 있을 수 있으니, 실제 메시지와 다른 예측을 벌주는 건 틀렸다는 논리임.
raw LLM 만져본 사람은 아는데, 프롬프트 끝에 'user 시작' 토큰을 붙이면 그럴듯한 다음 질문이 나옴. 다음 토큰 예측 손실이 대화 양쪽을 구분하지 않으니까. 훈련 데이터 때문에 필요하다기보다 훈련 방식에서 공짜로 나온 걸 최근에 노출한 것 같음.
이상한 건 제안이 항상 전부 소문자임. 나는 그렇게 안 치는데.
쓸 때마다 좀 무례한 느낌임. 나는 절대 그렇게 안 치니까. Claude 본체는 대소문자랑 구두점을 다 지키는데 왜 이러는지 모르겠음. 채팅 기록에서 어떤 답이 추천이었는지 티 나게 하려는 건가 싶음.