전문가도 아니고 그냥 문외한 입장에서 나름 추측해본 거에 불과하지만
현재 gpt-3.5, 4를 보며 한계점 중 하나라고 생각했던 건
단방향으로 다음 토큰을 예측하여 작성한다는 거임.
이 맹점을 확 느낀 순간이 언제냐면
이건 얼마 전에 갤에 누가 올려 준 Bing과의 대화인데,
처음에 빙이 이모지 대화 내용을 생성해주고, 이것은 인간이 이해할 수 없고, 단순히 그림을 나열한 것이 아니라 복잡한 의미와 규칙을 가진 것이라고 말함.
그런데 다음에 인간이 해석을 요청하자
기꺼이 인간에게 "helpful"한 태도로 답변을 생성해준 거임.
이모지 대화의 라인 단위로 한 줄 한 줄 아주 명확하고 구체적이고 과도하게 직관적인 것 같은? 해석을 제시해줌.
그런데 이것은 빙이 처음에 말한 "인간이 이해할 수 없고, 단순히 그림을 나열한 것이 아니라 복잡한 의미와 규칙을 가진 것"과는 모순되는 부분이라고 볼 수 있음.
심지어 저 해석 내용을 보면, "처음에 저 대화 내용을 생성해주기 전부터 설계했던, 생각해 뒀던 의미" 같은 것은 없고, 그저 해석 요청이 들어오니까 그제서야 자신이 했던 말을 참고해서 "급조"한 내용이라는 느낌을 강하게 받음.
쉽게 말해서, 인간처럼 자신의 사고를 가지고 있거나, 머릿 속에서 시뮬레이션과 검토를 반복하여 다듬어서 최종적인 답변을 제출하는 것이 아니라
그냥 생각이 나는 족족 타이핑을 완성시켜 버리는 거임.
만약 그 과정 중에서 실수가 생기거나 재검토가 필요한 상황이 되면? 앞에 이미 타이핑 해버렸던 말을 수정하는 게 아니라, 뱉은 말은 그냥 그대로 내버려 두고 뒤에 생성할 내용을 최대한 앞의 내용에 끼워맞추는 식으로 진행될 수 밖에 없는 구조라는 거임.
이걸 다르게 말하면
백스페이스 버튼이 없는 메모장,
자유롭게 이동할 수 없는 맨 뒤에 항상 '고정'된 커서를 가진 메모장과 같다는 거임.
현재까지 진행된 대화 내용과 자기가 생성하고 있던 말을 보고 뒷 단어를 최대한 잘 예측하려고만 하는 것이 아닌, 되돌아보고 검토해보고 자기가 앞에 쓰고 있던 내용을 수정할 수 있는 자유까지 허락이 된다면?
물론 무한 심사숙고에 빠지면 안 되니 이러한 과정들에 대한 적절한 횟수와 패턴 최적화를 학습하는 것도 역시 딥러닝 강화 학습으로 안 될 건 없어 보임.
만약 여기까지 구현이 된다면
ChatGPT는 지금처럼 토큰 단위로 줄줄 써내려가는 것이 아니라
내부적으로 스스로 작성하던 답변에 대한 몇 번의 되돌아보기와 수정 과정을 거친 뒤에 한 방에 답을 내놓는 형태가 될 듯함.
chain of thought prompting은 이런 단방향 구조 문제에 대한 거의 가장 단순하고 원시적인 형태의 접근이지만 그래도 유의미한 효과를 보여주는 걸로 보이고.
물론 이러한 과정이 추가되면 컴퓨팅 비용은 증가하겠지만,
근본적으로 잘못된 방식에 갇혀 있으면서 '하지만 빨랐죠?'를 시전하는 것보다
시간과 컴퓨팅 비용이 좀 더 들더라도 훨씬 더 유의미하고 질 좋은 아웃풋을 내놓는 게 더 나을 거라고 생각함.
어쩌면 지금처럼 같이 한 치 앞도 못보는 구조에서 이 정도의 능력을 보여주는 GPT가 이미 초인적인 것이었고,
여기까지 허용된다면 정말 어마어마한 결과를 보여줄 수도 있지 않을까 싶음.
이와 같은 생각을 하고 있던 도중...MS의 GPT-4 분석 논문을 보니
76~81 페이지에 이미 이런 부분들을 지적하고 아주 깔끔하게 정리해뒀네ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ심지어 르쿤이가 유사한 주장을 제기했다고 함. 궁금한 갤러는 읽어보셈.
https://arxiv.org/abs/2303.12712
만약 이게 OpenAI에서도 이미 인지하고 있는 부분이고 다음 버전의 모델에서 적절하게 솔루션을 적용해서 나온다면 정말 더할 나위 없이 흥미로울 것 같음.
그게 이 갤에서 말하는 재귀개선 도대체 언제되냐? 이거임
내 생각엔 안돼서 안한다기 보단, 처음부터 백스페이스 키가 아예 빠져 있는 상황과 비슷한 것 같음.
커서 이동 기능도 포함
니가 말하는 거 개선된 게 이미 사용중인 트랜스포머 아님?
아님
"쉽게 말해서, 인간처럼 자신의 사고를 가지고 있거나, 머릿 속에서 시뮬레이션과 검토를 반복하여 다듬어서 최종적인 답변을 제출하는 것이 아니라 그냥 생각이 나는 족족 타이핑을 완성시켜버리는 거임. 만약 그 과정 중에서 실수가 생기거나 재검토가 필요한 상황이 되면? 앞에 이미 타이핑 해버렸던 말을 수정하는 게 아니라, 뱉은 말은 그냥 그대로 내버려 두고 뒤에 생성할 내용을 최대한 앞의 내용에 끼워맞추는 식으로 진행될 수 밖에 없는 구조라는 거임." 이 부분이 좀 이해 안가서 내가 잘못생각한듯함. 아 참고로 굳이 이 부분 풀어서 설명해줄 필요없음.
ㅇㅎ
그런 건 이미 가능하긴 함. 언어 모델에게 자기 자신을 도구로 주고 재귀적으로 아웃풋을 생성하는 거임.
(
https://arxiv.org/abs/2210.06774,
https://arxiv.org/abs/2212.10077,
https://arxiv.org/abs/2208.11663)
OpenAI도
할 수 있는 건데 그냥 사용자가 알아서 쓰도록 augmentation 없이 순수 언어 모델 상태로 내놓은 듯.
이걸 적용하기에 걸림돌이 되는 부분이 있는 거임? 이걸로 개선할 수 있는 부분이 있을 것 같은데 ChatGPT는 왜 안 하는 건지 궁금함.
나도 잘 모르겠네. 다만 저걸 도입하면 inference가 최소 몇 배는 늘겠지
암만 생각해도 사람은 ChatGPT처럼 막힘 없이 앞으로만 써나가는 게 아니라 썼다 지웠다 하기도 하고, 아니면 적어도 머릿속에서라도 썼다 지웠다 시뮬레이션을 하면서 글을 작성하는데, 뭔가 중요하고 근본적인 부분이 빠진 게 아닐까라는 생각이 듦. 초인적인 계산 능력으로 이 정도로 커버하는 게 대단한 거고.
수츠케버가 최근에 그런 말을 했음. 모델이 학습 능력이랑 이해 능력은 좋은데 그에 비해서 출력 내용이 상대적으로 딸린다고. ㅇㅇ
궁금한 게 있는데 이게 혹시 아주 조금이라도 휴먼 피드백이 꼭 포함되어야 하는 프로세스인가요??
처음 시스템 구축 때만 사람이 필요하고 그후엔 모델이 알아서
끼워 맞추는게 맞음. 그래서 이새끼 잘 쓰는방법 중 하나가 단계적으로 특정 주제의 범위와 깊이를 향상시키는 빌드업을 한 뒤에 본 작업에 들어가는 것. 단 빌드업중에 삑나서 헛소리 하나 튀어나오면 피눈물 난다 ㅋㅋ
이런 거 보면 아직은 청산유수로 말하는 깡통 같음 ㅋㅋ