데이터가 자산이 되는 구조
순환을 만든다는 것
24편 마지막에서 순서를 정리했다. 전통 계산으로 서비스를 만들고, 사용 데이터에서 조건 분포를 파악하고, 그 범위에서 학습해 탐색 단계에 투입한다.
이 순서에는 구조가 하나 들어 있다. 사용이 데이터를 만들고, 데이터가 도구를 좋아지게 하고, 좋아진 도구가 사용을 늘린다.
이런 순환은 여러 서비스가 추구하는 것이다. 그런데 실제로 작동하게 만드는 데는 조건이 있고, 잘못 만들면 순환이 아니라 함정이 된다.
이 편에서 그 조건과 함정을 짚는다.
무엇이 데이터인가
먼저 우리 경우에 무엇이 쌓이는지 정리하자.
① 조건. 사용자가 어떤 문제를 물었는지. 형상, 재료, 온도 범위, 관심 지점.
② 답. 그 조건에 대한 계산 결과.
③ 반복 궤적. 사용자가 어떤 순서로 조건을 바꿔갔는지. 처음에 무엇을 시도하고, 결과를 보고 무엇을 바꿨는지.
④ 종료 지점. 열 번의 시도 중 어디서 멈췄는지. 즉 어떤 조건을 채택했는지.
⑤ 번역 이력. 어떤 문장이 어떤 DSL로 옮겨졌는지, 사용자가 그것을 고쳤는지.
①과 ②는 예상 가능한 항목이다. 그런데 ③④⑤가 실제로는 더 가치 있을 수 있다.
③④⑤가 왜 가치 있나
반복 궤적(③)은 사고 과정을 담고 있다.
사용자가 “두께를 늘려봤다가 안 되니까 재료를 바꿨다”면, 그 순서에는 판단이 들어 있다. 어떤 조건이 서로 대안 관계인지, 어떤 것이 먼저 검토되는지.
이 정보로 다음 시도를 제안할 수 있다. 10편에서 “결과 아래에 다음 시도를 버튼으로 둔다”고 했다. 그 버튼에 무엇을 넣을지가 이 데이터에서 나온다.
종료 지점(④)은 암묵적인 평가다.
사용자가 어떤 조건에서 멈췄다면, 그 조건이 만족스러웠다는 뜻이다. 명시적으로 “좋아요”를 누르지 않아도 행동이 답을 준다.
이건 21편에서 말한 “실제 쓰이는 영역”을 파악하는 직접적인 근거다. 학습을 어디에 집중할지 정해준다.
번역 이력(⑤)은 시스템의 오류 기록이다.
사용자가 DSL을 고쳤다면, 그건 번역층이 틀렸다는 뜻이다. 12편에서 만든 “제시” 단계가 여기서 이중 역할을 한다. 사용자에게 감사받는 창구이면서, 동시에 오류를 수집하는 창구다.
어떤 표현을 자주 잘못 번역하는지 알면 그 부분을 고칠 수 있다. 사용자가 고친 행동 자체가 정답 데이터가 된다.
순환의 세 단계
이 데이터가 실제로 도구를 좋아지게 하는 경로를 정리하면 이렇다.
단계 1: 즉시 반영되는 것
번역 오류 목록, 자주 쓰이는 조건 조합. 이건 데이터가 조금만 있어도 개선에 쓸 수 있다. 기본값을 조정하고, 자주 쓰는 재료를 목록 위로 올리고, 자주 틀리는 표현에 대응을 넣는다.
단계 2: 어느 정도 쌓여야 하는 것
다음 시도 제안, 조건 분포 파악. 수백 건 이상의 사용 이력이 필요하다.
단계 3: 많이 쌓여야 하는 것
FNO 학습. 수만 건 규모의 (조건, 답) 짝이 필요하다. 다만 24편에서 말했듯 답 자체는 솔버로 생성할 수 있으므로, 사용 데이터에서 필요한 것은 “어떤 조건을 학습할지”다.
이 구분이 중요하다. 순환이 돌기 시작하는 문턱이 낮다. FNO까지 가지 않아도 단계 1과 2의 개선이 먼저 일어난다. 사용자가 체감하는 개선이 초기부터 있다는 뜻이다.
함정 1: 자기 강화의 좁아짐
여기부터 함정을 본다.
사용 데이터에 맞춰 도구를 개선하면, 도구가 현재 사용자에게 최적화된다. 그리고 그 최적화가 새로운 사용자를 배제할 수 있다.
예를 들어 초기 사용자가 대부분 조리기구를 다뤘다면, 기본값과 제안이 그쪽으로 기운다. 그러면 전자기기 방열을 다루려는 사용자에게 도구가 어색해진다. 그 사용자는 떠나고, 데이터는 더욱 조리기구로 기운다.
순환이 좁아지는 방향으로 돈다.
이건 NumTerra 프로젝트의 12편에서 다룬 문제와 구조가 같다. 신뢰 점수가 다수 동조자를 우대해서 최초 발견자를 배제하는 것. 자기 강화 순환의 일반적인 위험이다.
완화책은 두 가지다.
의도적으로 넓게 유지한다. 사용 빈도가 낮은 영역도 기본값을 관리하고, 제안 목록에 다양성을 남긴다.
좁아지고 있는지 감시한다. 다루는 문제 유형의 분포를 주기적으로 확인해서, 한쪽으로 쏠리는지 본다.
함정 2: 데이터가 목적이 되는 것
두 번째 함정은 방향이 뒤집히는 것이다.
“데이터가 자산”이라는 말이 사업계획서에 들어가면, 데이터를 모으는 것 자체가 목표가 되기 쉽다. 그러면 설계가 왜곡된다.
사용자에게 불필요한 입력을 요구한다. 학습에 쓸모 있으니까. 가벼운 시도를 막고 완결된 문제를 요구한다. 데이터 품질을 높이려고. 결과를 덜 보여주고 더 시도하게 만든다. 사용 횟수를 늘리려고.
전부 3편의 목표 — 시도의 비용을 낮추는 것 — 와 반대 방향이다.
원칙을 정해뒀다. 데이터 수집이 사용 경험을 나쁘게 하는 결정은 하지 않는다. 데이터는 좋은 도구를 쓰는 과정에서 자연히 쌓이는 것이어야 하고, 그렇게 쌓이지 않는 데이터는 포기한다.
함정 3: 사용자의 것을 가져오는 것
가장 신중해야 할 부분이다.
사용자가 넣은 조건에는 그 사람의 설계 정보가 들어 있다. 어떤 제품을 개발 중인지, 어떤 재료를 검토하는지, 어떤 치수를 고민하는지.
이건 영업 비밀일 수 있다. 특히 기업 사용자라면 확실히 그렇다.
그래서 지켜야 할 선이 있다.
- 개별 조건을 그대로 학습에 쓰지 않는다. 통계적 분포만 쓴다. “이 범위의 두께가 자주 쓰인다” 수준.
- 식별 가능한 형태로 저장하지 않는다.
- 사용자가 거부할 수 있게 한다. 그리고 거부해도 도구의 기능이 줄지 않게 한다.
- 기업용은 아예 분리한다. 데이터가 외부로 나가지 않는 모드를 제공한다.
마지막 항목이 실무적으로 중요하다. 데이터를 못 얻는 사용자를 받아들일 수 있어야 한다. 그렇지 않으면 정작 돈을 낼 사용자가 못 쓰는 도구가 된다.
순환의 진짜 조건
정리하면, 이 순환이 작동하는 조건은 하나로 압축된다.
도구가 먼저 쓸모 있어야 한다.
데이터가 도구를 좋아지게 하는 것은 그다음 일이다. 처음부터 쓸모 없는 도구는 데이터를 얻지 못하고, 따라서 좋아질 기회도 없다.
이건 NumTerra 프로젝트에서 “1단계가 그 자체로 쓸모 있어야 한다”고 한 것과 같은 이야기다(7편). 두 프로젝트가 서로 다른 문제를 다루면서 같은 결론에 도달한 지점이다.
다음 편에서 4부의 가장 중요한 문제를 다룬다. AI가 낸 답을 어떻게 믿을 것인가.
다음 편 예고 — 틀린 답을 걸러내는 설계 — 신뢰의 문제. 예측된 답에 대한 검증 체계를 어떻게 세우는지, 그리고 못 걸러내는 것은 무엇인지.