Search
moon
sun

[ AI-DLC 사례 2: 추천 ] AI로 코딩은 빨라졌는데, 왜 실험은 여전히 어려웠을까?

URL
생성 일시
2026/08/25 03:06
최종 편집 일시
2026/08/25 03:06
태그
GS리테일
파일과 미디어
목차 [ AI-DLC 사례 1: 검색 ] AI-DLC로 3일, 뷰티 자연어 검색을 만드는 여정 [ AI-DLC 사례 2: 추천 ] AI로 코딩은 빨라졌는데, 왜 실험은 여전히 어려웠을까? AI로 코딩은 빨라졌는데, 왜 실험은 여전히 어려웠을까? AI-DLC에서 시작한 3일간의 추천 실험 앞선 글에서 검색 과제팀은 3일 만에 자연어 검색을 구현해봤습니다. 그 과정에서 크게 남은 것은, AI와 일할 때 사람이 무엇을 얼마나 또렷하게 정의해야 하는가에 대한 경험이었습니다. 같은 3일, 저희는 5명이 한 팀이 되어 AI-DLC를 통해 추천 문제를 풀기로 했습니다. 사실 AI와 함께 개발하는 일은 이미 꽤 익숙했습니다. 저희 검색추천파트도 평소 Claude, Cursor 같은 Coding Agent를 자주 사용하고 있었고, 아이디어를 구상하고나면 코드를 만들고, 오류를 고치고, 테스트를 붙이는 속도는 예전보다 확실히 빨라졌습니다. 이번에는 그 방식을 추천 모델 문제에도 적용해보고 싶었습니다. 2026년 7월 7일부터 9일까지, 저희는 실제 업무인 상품 상세 하단(단품하단) 추천의 후보군 개선을 주제로 잡았습니다. 여기서 추천 후보군이란 추천할 만한 상품을 넓게 모아둔 상품 집합을 말합니다. 워크숍은 앞선 검색 과제와 마찬가지로 AI-DLC의 흐름에서 시작했습니다. Inception에서 풀고 싶은 문제와 목표를 정리하고, 여러 아이디어를 구체화한 뒤 Construction으로 이어갔습니다. 처음에는 대상만 달라졌을 뿐, 비슷한 흐름으로 진행할 수 있을 거라고 생각했습니다. 여러 아이디어를 빠르게 구현하고 비교할 수 있다면, 좋은 추천 모델을 찾는 속도도 자연스럽게 빨라질 것 같았습니다. 그래서 저희가 확인해보고 싶었던 것은 하나였습니다. AI로 구현이 빨라지면, 추천 실험도 그만큼 빨라질까? 실제로 여러 아이디어를 구현하고 실험 결과를 만드는 건 예상만큼 빨랐습니다. 하지만 결과가 쌓이자 병목은 구현이 아니라 판단으로 옮겨갔습니다. 어떤 결과가 더 좋은지, 그 숫자를 믿어도 되는지, 어디까지 더 볼지를 결정하는 일이었습니다. 그렇게 저희의 3일은 조금 다른 방향으로 흘러가기 시작했습니다. 모델이 많아질수록, 답은 오히려 흐려졌다 여러 후보를 빠르게 만들면 답도 빨리 찾을 수 있을 거라고 생각했습니다. 그런데 실제 결과가 쌓이자 이상한 일이 생겼습니다. 1등이 하나가 아니었습니다. 어떤 후보는 실제 주문 상품을 더 많이 찾아왔고, 어떤 후보는 주문 상품을 더 앞쪽에 배치했습니다. 또 어떤 후보는 기존 방식이 놓친 상품을 새롭게 찾아왔습니다. 모두 좋은 결과처럼 보였지만, 사실 서로 다른 질문에 답하고 있었습니다. 주문 상품을 얼마나 많이 찾아오는가 찾아온 주문 상품을 얼마나 앞쪽에 배치하는가 기존 방식이 놓친 주문 상품을 얼마나 새롭게 보완하는가 문제는 이 결과를 한 줄로 세워놓고 단순히 "이 모델이 더 좋다"고 말하기 어렵다는 것이었습니다. 처음 주요 판단 기준으로 정했던 지표에서도 문제가 발견됐습니다. 저희는 추천 상품이 노출된 이후 실제 주문으로 이어진 행동을 보는 내부 지표를 주요 기준으로 사용하고 있었습니다. 모델이 과거 데이터에서 얼마나 잘 맞는지만 보기보다, 실제 고객 행동에 가까운 기준으로 평가하고 싶었기 때문입니다. 그런데 데이터를 돌려보니 이 지표는 기존에 어떤 상품이 노출됐는지의 영향을 받고 있었습니다. 새로운 후보끼리 순수하게 비교하는 기준으로 쓰기에는 한계가 있었습니다. 그래서 실험 도중, 상위 16개 결과에서 주문 상품이 얼마나 앞쪽에 배치되는지를 보는 지표(order_NDCG@16)를 주요 판단 축에 추가했습니다. 기존 내부 지표는 후보를 직접 비교하는 기준이라기보다 결과를 해석하는 보조 지표로 역할을 조정했습니다. 흥미로운 점은 평가 기준 역시 실험의 결과물이었다는 것입니다. 모델을 구현하고 결과를 확인한 뒤, 무엇을 좋은 결과로 볼 것인지도 함께 조정해나가야 했습니다. 구현을 마치고 다음 단계로 넘어가기보다, 결과를 보고 다시 가설과 평가