이 글에서 다루는 것
앞 단계까지 규칙을 파일로 만들고, 먼저 읽히고, 도구로 만들고, 사람 없이 실행되는 검사를 만들고 설정했다(검사는 사람 없이 실행되게, 틀린 것은 넘어가지 못하게). 앞의 네 단계는 규칙을 만들고 그것을 문장으로 적는 단계였다.
이번 단계는 조금 다르다. 문장으로 바로 적을 수 있는 종류가 아니다. 그래서 문장으로 적을 수 없는 것을 예시로 보여 주고, 각자가 문장으로 구현하지 못한 것을 찾는다.
5단계는 앞의 네 단계와 조금씩 엮여 있고, 부분적으로 같이 쓰기도 한다. 즉 앞의 네 단계가 합쳐져 완성되는 것이다. 네 단계는 저마다 다른 것을 남기고 다른 결과를 낸다. 따로 놓고 보면 다르지만, 같이 놓고 보면 전체가 보인다.
이 단계에서 중요한 것은 학습을 실행하는 일이 아니다. AI를 어떻게 학습시킬지, 무엇을 학습시킬지, 얼마큼 학습시킬지를 정하는 일이다. 바로 학습에 넣을 재료를 만드는 일이다. 재료는 내 데이터고, 그 데이터를 가공해 나만의 데이터셋을 만든다.
그리고 그 재료인 데이터를 만드는 것만으로도 얻는 것이 있다. 데이터를 모아 같은 상황끼리 묶어 보면, 같은 상황에서 서로 반대로 고른 것들이 목록으로 나온다. 그러면 고칠 곳이 모델이 아니라 규약이라는 것을, 학습을 실행하기 전에 알게 된다.
처음은 아래 양식과 지시문을 그대로 해 볼 수 있다. 각자의 기록에 맞게 고쳐 써도 되고, 고쳐 쓰는 동안 자기 판단 기준이 실제로 무엇인지, 무엇을 기준으로 삼고 싶은지가 보인다.
언제 필요한가
규약에 적으려는데 문장이 안 나올 때.
「이건 되고 저건 안 된다」를 규칙으로 쓰려다 못 쓰는 것들이 있다. 문체, 어느 선까지가 과장인가, 어떤 근거를 받아들일 것인가. 보면 알겠는데 적을 수가 없다. 이때가 5단계다.
이런 것을 암묵지(tacit knowledge)라 부른다. 몸에 배어 쓰고는 있는데 말로는 안 나오는 것이다. 없어서 못 적는 것이 아니라, 그동안은 적을 필요가 없었던 것이다.
암묵지를 말로 꺼내는 일을 명시화(making explicit)라 한다. 5단계가 하는 일이 그것이다 — 다만 문장이 아니라 예시로 한다.
넷을 다 했는데도 어긴다는 것은 신호가 아니다. 그건 대개 규칙 문장이 약한 것이고, 문장을 고치면 해결된다. 진짜 신호는 「고칠 문장이 아예 안 만들어진다」는 것이다.
재료는 앞의 넷이 남긴다
여기가 이 단계의 핵심이다. 1~4단계를 실행하면 재료가 따로 모으지 않아도 쌓인다.
1단계에서 만든 지시서·결재지·교훈 로그·인수인계서가 그 재료다 (절차를 파일로, 규칙을 먼저 읽히게). 데이터를 모으려고 쓴 것이 아니라 작업을 이어가려고 쓴 것인데, 쌓이면 그 안에 판단이 들어 있다. 무엇을 골랐고 무엇을 버렸는지, 왜 그렇게 했는지가 작업하는 동안 쌓인다.
| 앞 단계가 남긴 것 | 데이터셋에서의 정체 |
|---|---|
| 결재지 — 가·나 중 사람이 고른 기록 | 선호 쌍 그 자체 |
| 교훈 로그 — 어긴 것과 고친 것 | 나쁜 예와 좋은 예의 쌍 |
| 정정 이력 — 고치기 전과 후 | 같은 대상의 전·후 |
| 판정 기록 — 같은 대상에 사람이 매긴 등급 | 기준의 실물 |
그러니까 여기서 할 일은 데이터를 새로 만드는 것이 아니라 이미 쌓인 판정 기록에서 쌍을 뽑아내는 것이다.
그래서 1~4단계를 건너뛰고 여기로 올 수 없다. 넷이 각각 다른 것을 대기 때문이다.
| 빠지면 | 무엇이 안 되나 |
|---|---|
| 1단계 — 절차를 파일로 | 고른 기록이 안 남아 뽑을 것이 없다 |
| 2단계 — 규약을 먼저 읽힌다 | 무엇을 기준으로 골랐는지가 없어 「이유」 칸이 빈다 |
| 3단계 — 반복을 도구로 | 쌓인 것을 손으로 훑어야 해서 개수가 늘면 멈춘다 |
| 4단계 — 사람 없이 실행되는 검사 | 쌓이는 동안 어긋난 것이 섞여도 걸리지 않는다 |
기록에 없는 쌍을 만들어 채우면, 그건 그때 새로 지어낸 판단이다. 실제로 그렇게 골라 본 적이 없으니 자기 기준인지 확인할 방법이 없고, 결국 「그럴듯해 보이는 쪽」을 고르게 된다. 그런 쌍이 섞이면 학습은 자기 기준이 아니라 그럴듯함을 배운다.
쌍 하나의 모양
상황 어떤 일에서 나온 것인가. 한 줄
입력 그때 주어진 것
고른 것 사람이 고른 쪽
버린 것 사람이 안 고른 쪽
이유 왜 그쪽을 골랐는가. 한 줄
날짜 언제 고른 것인가
「이유」 칸이 이 양식에서 가장 중요하다. 학습에 직접 쓰이지 않아도 넣는다. 이유를 못 적는 쌍은 기준이 없이 그때 기분으로 고른 것이고, 그런 쌍이 섞이면 학습은 기분을 배운다.
「날짜」도 넣는다. 기준은 시간이 지나면서 바뀐다. 옛 쌍과 새 쌍이 어긋날 때 어느 쪽이 지금 기준인지 날짜로 가른다.
지시문 — 기록에서 쌍 뽑기
아래 조건으로 기록을 훑어 선호 쌍 후보를 뽑아라.
■ 무엇을 결재 기록·수정 이력·교훈 로그에서, 두 갈래가 있었고
한쪽이 선택된 것을 찾는다
■ 출력 쌍 양식 6칸을 채운 목록. 「이유」를 못 채우면 빈칸으로 두고 표시해라
■ 하지 말 것
★ 쌍을 지어내지 마라. 기록에 없는 것은 만들지 마라
한쪽만 있는 것을 쌍으로 만들지 마라
애매한 것을 빼지 마라. 표시해서 함께 올려라
■ 완료 판정
뽑은 개수 · 이유가 빈 개수 · 애매 표시 개수를 각각 숫자로 보고
뽑고 나서 다음도 함께 해라 —
같은 상황에서 서로 반대로 고른 쌍이 있으면 짝지어 따로 목록으로 올려라.
마지막 두 줄이 이 지시문에서 가장 중요하다. 아래에서 따로 적는다.
얼마큼인가 — 개수보다 일관성
여기서 가장 자주 틀린다.
쌍이 서로 모순되면 많을수록 나빠진다. 같은 상황에서 한 번은 (가), 한 번은 (나)를 골랐다면 그건 학습시킬 것이 아니라 먼저 정할 것이다. 모순된 쌍 100개보다 일관된 쌍 20개가 낫다.
그래서 모순 쌍 목록이 항상 개수 목표보다 먼저다.
| 나온 것 | 뜻하는 것 | 할 일 |
|---|---|---|
| 모순 쌍이 여럿 | 기준이 아직 안 섰다 | 학습이 아니라 규약을 고친다 |
| 이유 빈칸이 많다 | 기준 없이 고른 것이 많다 | 그 쌍들을 다시 본다 |
| 애매 표시가 많다 | 경계가 안 정해졌다 | 경계를 문장으로 적어 본다 |
세 가지 다 학습을 실행하지 않고 얻는 결과다.
뽑은 쌍이 쓸 만한지 확인하는 법
뽑은 쌍이 정말 자기 기준인지 시험한다.
뽑은 쌍에서 20개를 무작위로 골라, 「고른 것·버린 것」 표시를 지운 채로 다시 준비해라.
그 20개를 내가 다시 고르겠다.
다시 골라서 원래와 어긋나는 것이 나오면 그것이 답이다. 어긋난 쌍이 곧 기준이 안 선 것이고, 어긋난 것이 절반에 가까우면 이 데이터셋은 아직 쓸 수 있는 단계가 아니다.
| 시험 | 알 수 있는 것 |
|---|---|
| 20개를 다시 골라 본다 | 어긋나면 기준이 안 섰다 |
| 이유 칸만 읽고 어느 쪽을 고를지 맞혀 본다 | 못 맞히면 그 칸은 이유가 아니라 변명이다 |
| 가장 오래된 쌍과 가장 새 쌍을 나란히 본다 | 어긋나면 기준이 바뀐 것이다. 날짜로 가른다 |
5단계가 못 하는 것
소량 학습으로 사실을 넣으려는 것이 가장 흔한 오해다. 예를 들면 「우리 회사 제품명은 이것이다」, 「이 프로젝트의 파일 구조는 이렇다」 같은 것을 데이터셋에 넣어 AI가 외우게 하려는 것이다.
그런데 두 가지 이유로 안 된다. 첫째는 데이터의 양인데, 데이터가 적으면 사실상 학습되지 않는다. 둘째는 고칠 수 없다는 것이다. 운 좋게 학습됐다 해도, 그 정보나 사실이 바뀌었을 때 되돌릴 방법이 없다.
그래서 사실은 이 단계로 옮겨 가지 않는다. 끝까지 2단계의 일이다 — AI가 가장 먼저 발견해서 읽을 수 있는 파일에 둔다. 파일은 고치면 즉시 바뀐다. 이 단계가 다루는 것은 나의 문체와 판단 기준이다. 매번 어느 쪽을 고르는가 하는 것이지, 무엇이 사실인가가 아니다. 그게 여기서는 내용이 아니라 곧 암묵지다.
그리고 되돌리기가 이 단계에서만 어렵다.
1~4단계는 잘못 만들면 파일을 지우면 된다. 규약을 잘못 썼으면 그 줄을 고치고, 도구를 잘못 만들었으면 스크립트를 지운다. 원래대로 돌아간다.
학습은 다르다. 잘못된 쌍을 넣고 학습을 실행하면 그것이 AI 안에 섞여 들어간다. 어느 쌍 때문에 그렇게 됐는지 찾을 수도 없고, 그 쌍만 빼낼 수도 없다. 지우는 것이 아니라 다시 학습시켜 덮는 수밖에 없다.
그래서 앞 단계의 검사가 먼저인 것은 순서 문제가 아니라 안전 문제다. 4단계 검사가 사실 오류나 모순이 섞이는 것을 미리 걸러 주어야 한다.
앞의 넷으로 되돌아간다
학습을 실행하기 전에 쌍만 뽑아 봐도 문제의 절반은 풀린다.
같은 상황에서 한 번은 (가), 한 번은 (나)를 골랐다면 그것은 AI가 잘못 배운 것이 아니다. 애초에 기준이 정해져 있지 않았던 것이다. 그러면 학습시킬 것이 아니라 규약에 「이런 경우에는 (가)로 간다」를 적어야 한다.
즉 모순 쌍 목록이 곧 규약의 빈칸 목록이다. 학습을 실행하지 않고도 얻는다. 이 단계가 앞으로만 가지 않고 앞의 4단계로 되돌아간다는 것이 이 말이다.
그리고 회차를 여러 번 하면 그다음이 보인다.
한 회차에서 나온 쌍 스무 개는 그 회차의 이야기다. 그런데 열 회차를 하면 같은 상황이 여러 번 나온다. 그때부터 세 갈래로 나뉜다.
매번 같은 쪽으로 고르는 것이 있으면 그것은 이미 정해진 기준이다. 규약에 문장으로 적으면 된다. 그러면 다음부터는 묻지 않아도 된다.
매번 갈리는 것이 있으면 상황에 따라 달라지는 것이니 규칙으로 적을 수 없다. 그것은 계속 사람이 판단하거나, 학습에 넣을 후보로 남긴다.
매번 같은 곳에서 막히면 확인을 매번 손으로 하고 있다는 뜻이다. 그것은 3단계에서 도구로 만들 것이다.
지난 실행들을 되짚어 보면 세 가지로 분류된다 — 규약에 적은 것, 도구로 만든 것, 학습에 넣은 것. 여러 번 하다 보면 자기만의 AI 사용 방식이 나오고, 어디를 사람 없이 실행되게 만들 수 있는지 알게 된다. 그런 과정을 여기에 적었다. 이 재료들을 어떻게 사용할지는 이제 각자의 몫이다.
이 글의 범위
- 데이터셋을 만드는 데까지다. 학습을 실행한 결과는 이 글에 없다
- 쌍의 칸 구성과 개수는 일마다 다르다. 이 과정은 각 상황에 따라 다시 달라진다. 여기서 얻을 정보는 어디에 무엇이 어떻게 필요한지를 아는 것뿐이다
- 학습 방식과 도구 이름을 적지 않았다. 방식마다 요구하는 형식이 다르고 이 글보다 빨리 바뀐다. 무엇을 모을지와 그것이 쓸 만한지 재는 법만 적었다