친구 Markov에게 문자 보내기 — 100% 해석 가능한 다음 토큰 생성기
문자 보내기
오래전, 저와 친구들은 휴대폰을 들고 추천된 다음 단어만 사용해서 친구에게 메시지를 작성하는 게임을 하곤 했습니다. 여러분도 이런 걸 해보셨을지도 모르겠네요.
여기 약간의 콘텐츠로 "학습된" 시뮬레이터가 있습니다. 한번 해보세요!
빌드 고치는 방법 아는 사람 있나요
i think
우리는 이것을 마치 "Me-bot"인 것처럼 이야기했습니다. 우리는 그것이 우리 개개인의 사용 패턴을 기반으로 단어를 추천하고 있다는 것을 알았고, 개인화된 추천 속에서 우리 자신의 목소리를 볼 수 있었습니다.
당시에는 그냥 기술 마법이라고 치부하고 넘어갔습니다. 그 알고리즘이 얼마나 단순할 수 있는지는 깨닫지 못했던 것 같습니다.
저와 함께 하나 만들어보고 싶다면 계속 읽어보세요 :)
모델 "학습"하기
몇 개의 메시지로 학습해 봅시다. 우리가 해야 할 일은 단어 간의 연결을 집계하는 것뿐입니다. 한 번에 한 메시지씩 해봅시다.
- 1.“i think we should probably ship it”
- 2.“i think that sounds good”
- 3.“i think we should probably wait”
- 4.“we should check with the team”
- 5.“that sounds good to me”
전이 행렬
행렬 구성을 시작하려면 위에 메시지를 추가하세요.
단어 간 연결을 완성한 이 지도를 빈도표라고 부릅니다. 각 행을 정규화하면 다음에 올 단어에 대한 확률 분포를 얻게 됩니다.
지금까지 가진 것을 바탕으로 다음 단어를 고르는 행위를 샘플링이라고 합니다. 우리는 Claude와 같은 현대 언어 모델에서도 이 과정에 동일한 용어를 사용합니다.
샘플링 해보기
5개의 텍스트를 기반으로 한 동일한 행렬을 사용해서, 이번에는 더 많은 정보를 가지고 우리 게임을 해보세요. 확률을 보여드리겠습니다.
i
강조된 행이 현재 컨텍스트입니다. 계속하려면 사용 가능한 선택지 중에서 단어를 골라보세요.
100년 된 기술
"이게 진짜 기술인가요?" 좋은 질문입니다, 독자님."
Markov는 1906년에 이 아이디어를 발표했습니다. 한 세기 후인 2010년, 이와 같은 n-gram 모델이 휴대폰의 다음 단어 예측(SwiftKey, 그다음 Apple의 QuickType)을 구동하고 있었습니다. 2015년경, 신경망 — 처음에는 RNN, 그다음 2017년에는 transformer — 이 테이블 조회 방식을 학습된 함수로 대체하기 시작했고, 그 나머지는... 뭐, 지금 우리가 작업하고 있는 바로 그것입니다.