2000개의 문장으로 나만의 미니 LLM 만들기
IT 회사에서 프로덕트 매니저(PM)로 일하면서 최신 인공지능(AI) 기술에 관심이 많다. 최근 주목받고 있는 언어 모델의 원리를 이해하고 싶어 작은 언어 모델 'TinyGPT'를 직접 만들어보았다. 이 글은 TinyGPT를 만들면서 경험한 내용과 느낀 점을 정리한 것이다.
평소 ChatGPT와 같은 최신 AI 서비스를 자주 사용하지만, 실제로 이런 기술이 어떻게 동작하는지 궁금했다. 특히 뉴스에서 자주 나오는 어렵게 느껴지는 개념들을 좀 더 쉽게 이해하고 싶었다. 복잡한 이론보다는 작은 모델이라도 직접 만들어보는 것이 더 효과적이라고 생각했다.
우선 모델이 한국어 문장을 배우게 하려고 약 2000개의 일상적인 문장을 준비했다. 이렇게 준비한 문장으로 모델을 학습시키면서 어떻게 작동하는지 확인했다.
모델의 작동 과정은 크게 다음과 같다.
입력된 글자를 컴퓨터가 이해할 수 있는 숫자로 바꾸기
글자들의 패턴을 파악하기
다음 글자가 무엇일지 예측하기
처음에는 어려웠지만 직접 구현해 보니 생각보다 이해가 쉬웠다.
학습을 시작하고 시간이 지날수록 점점 더 자연스러운 문장을 만들어냈다. 처음에는 무작위로 글자를 생성했지만, 점차 의미 있는 문장을 구성하는 모습이 신기했다.
[학습 초기]
나는 다. 다. 다. 죽 나 다. 커 다. 다.
[학습 중간]
나는 찾아온다. 죽은 속이 편할 때 좋다.
[학습 완료]
나는 무를 먹는다. 죽은 속이 편할 때 좋다.
모델이 얼마나 다양한 문장을 만들어낼 수 있는지 여러 가지 실험을 해봤다.
[시작 문장: '나는 ']
나는 영화를 감상한다. 여름 하늘은 높고 파랗다. 양자컴퓨터가 세상을 바꾼다.
[시작 문장: '고양이는 ']
고양이는 강렬하게 내리쬔다. 호랑이는 날렵하고 강하다. 비빔밥은 다양한 재료가 어
[시작 문장: '사랑은 ']
사랑은 아름답다. 미래를 바꿀 지킨다. 천둥이 요란하게 울린다. 호랑이는 날렵하
[시작 문장: '인공지능이 ']
인공지능이 작곡을 한다. 호랑이는 날렵하고 강하다. 두루미는 우아하게 날아간다.
추가로 온도(temperature)를 다르게 설정해 문장 변화를 확인했다. 온도가 높을수록 더 창의적이고 예측하기 어려운 문장을 만들어냈다.
[온도: 0.5]
나는 무를 먹는다. 두루미는 우아하게 날아간다. 고슴도치는 몸을 말아 방어한다
[온도: 1.0]
나는 무를 먹는다. 설렘은 일상을 특별하게 만든다. 호랑이는 날렵하고 강하다.
[온도: 1.5]
나는 설렘은 일상을 특별하게 만든다. 디저트는 식사 는 한서운동을 음악과 연다
직접 작은 모델을 만들어보니 다음과 같은 점을 배울 수 있었다.
인공지능은 의미를 진짜로 이해하는 게 아니라 데이터의 패턴을 학습해서 예측하는 방식으로 동작한다.
모델의 성능은 얼마나 좋은 데이터를 많이 학습했느냐에 따라 크게 달라진다.
복잡한 이론보다 직접 실험해보는 것이 이해에 가장 도움이 된다.
이번 실험이 인공지능 기술을 이해하는 데 좋은 첫걸음이 되었다.
프로젝트 코드는 GitHub에 공유했습니다.