SONUB
KO English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

알림을 켜는 방법

이 브라우저 또는 주소에서는 알림을 사용할 수 없습니다. 지원되는 브라우저로 보안 연결된 SONUB 사이트에 접속해 주세요.

알림이 차단되어 있으면 브라우저 설정에서 허용해 주세요.

  1. 주소 표시줄 옆의 사이트 설정 또는 브라우저의 사이트 설정을 열고, 이 사이트의 알림을 허용으로 바꾸세요.
  2. 기기 설정에서 브라우저 알림을 허용하고 방해 금지 또는 집중 모드를 확인하세요.
  3. SONUB으로 돌아와 페이지를 새로고침하세요. 알림이 켜지면 벨은 사라집니다.

iPhone 또는 iPad에서는 SONUB을 홈 화면에 추가하고 거기에서 연 뒤 알림을 허용하세요.

로그인 로그아웃 화면 테마 기본 테마 다크 테마 핑크 테마 채팅 1:1 채팅 그룹 채팅 게시판 공지사항 뉴스 게시판 건의 게시판 자기소개 게시판 메인 메뉴

자, 이제 여러분들만의 인공지능을 만들어 봅시다.

나 외부 없이, 이 에서 작은 를 직접 타이핑해 학습시키고 ·으로 대화해요. 먼저 전체 흐름부터 살펴보세요.

단어 블록이 한 줄로 놓여 있고 끝에 빈칸이 있다. 빈칸 위에 높이가 다른 막대를 단 후보 블록 세 개가 있고, 그중 하나가 골라져 줄 끝에 붙은 뒤 화살표가 다시 처음으로 돌아가 다음 칸을 고른다.
1

XSLM 개요

은 Extra Small Language Model이라는 뜻으로, SONUB에서 개발을 배우기 위해 직접 만든 용어입니다. thruthesky.github.io/xslm

웹 브라우저 안에서만 인공지능을 개발합니다

본 강좌에서 XSLM을 개발할 때에는 반드시 웹 만 100% 사용합니다. 의 이나 다른 터미널 같은 다른 프로그램을 사용하면 안 되고, 모든 것을 웹 브라우저 안에서 합니다.

XSLM 개발은 처음부터 끝까지 모두 sonub.com 인공지능 페이지 안에 있는 이 터미널로만 합니다. 여기서 만드는 은 아주 작아서 휴대폰에서도 웹 브라우저만으로 개발할 수 있습니다.

더 알아보기
  1. XSLM은 여러 가지 방식으로 만들 수 있고, 각자의 컴퓨터에서도 개발할 수 있습니다.

  2. 하지만 SONUB은 XSLM을 처음 고안할 때 학습용으로 설계했습니다. 웹 브라우저 안의 만으로 모든 것을 개발할 수 있습니다.

  3. 누구나 쉽게 인공지능을 직접 만들어 볼 수 있도록, 공부하는 모든 과정을 웹 브라우저 안에서만 합니다.

  4. 터미널은 웹 브라우저 안에서 도는 리눅스(v86)라서 컴퓨터·태블릿·휴대폰 어디서나 같은 터미널을 씁니다. 휴대폰 화면 키보드에 없는 Tab· 같은 키는 터미널 위의 키 막대로 누릅니다.

웹 브라우저 안에서 여러분이 직접 만든 XSLM 인공지능 을 를 통해 전 세계 사람들이 모두 쓸 수 있게 공개할 것입니다. 내 모델 공개하기

언어 모델을 처음부터 직접 완성하고, 준비와 학습부터 텍스트 생성, 나만의 챗봇 연결까지 모든 단계를 이해합니다. 아주 작은 학습용 모델이라 첫 답은 뒤죽박죽이지만, 모든 부품이 어떻게 움직이는지 알게 됩니다.

글을 로 바꾸고, 가 다음 번호를 예측하도록 학습합니다. 는 학습한 숫자를 읽어 실행하고, 은 Runner에 질문을 보냅니다. 각 부분을 직접 만듭니다. 이 제공하는 것은 계산과 파일 기능이지, 이미 학습된 두뇌가 아닙니다.

XSLM 이란 — LLM·SLM 보다 한 단계 더 작은 언어 모델

XSLM(Extra Small Language Model, 초소형 언어 모델)은 대규모 언어 모델(LLM)과 소형 언어 모델(SLM)보다 한 단계 더 작은, 파라미터가 수백만~수억 개 수준인 아주 작은 인공지능 모델을 뜻합니다. sonub.com 이 자체적으로 고안한 용어입니다.

  • LLM: 파라미터 수백억~수천억 개. 의 에서 돌아갑니다.
  • SLM: 파라미터 수십억 개 안팎. 성능 좋은 컴퓨터나 GPU 한 장에서 돌아갑니다.
  • XSLM: 파라미터 수백만~수억 개. 스마트폰 같은 작은 기기에서도 돌아갑니다.

XSLM 의 핵심 특징은 세 가지입니다.

  • 온디바이스() 최적화: 모델이 아주 가벼워서 스마트폰·웨어러블 기기· 장비처럼 연산 능력이 크게 제한된 기기에서도 연결 없이 혼자 돌아갑니다.
  • 아주 낮은 비용: 보통의 SLM 은 모델을 올리는 데 수 (GB)의 이 필요하지만, XSLM 은 수백 메가바이트(MB) 이하의 로 돌아갑니다. 그래서 ·운영 비용이 거의 들지 않습니다.
  • 한 가지 일의 전문가(Specialized Worker): 백과사전처럼 많이 아는 LLM 과 달리, XSLM 은 문장 요약·텍스트 분류·함수 ()·AI 의 제어(Router)처럼 한 가지 일만 아주 잘하도록 만듭니다.

이 과정에서 직접 만드는 XSLM 은 그보다도 훨씬 작은, 파라미터 1,248개짜리 학습용입니다. 원리를 눈으로 따라가려고 가장 작게 줄였을 뿐 부품은 같습니다. 같은 구조를 키우고 한 가지 일의 자료로 학습하면 위에서 말한 실용 XSLM 이 됩니다.

언어 모델이란 — 다음 토큰의 확률을 내는 함수

언어 모델은 앞에 나온 글을 보고 다음에 올 조각(토큰)마다 을 매기는 함수입니다. "the sun is" 다음이라면 예를 들어 warm 에 0.6, hot 에 0.2, blue 에 0.01 을 주고, 남은 0.19 는 의 다른 토큰들에 나눠 줍니다. 어휘 전체의 확률을 모두 더하면 1입니다.

글을 쓰는 것은 이 함수를 되풀이하는 일입니다.

  • 지금까지의 글을 토큰 번호로 바꿉니다.
  • 모델이 다음 토큰의 확률을 계산합니다.
  • 확률에 따라 토큰 하나를 고릅니다.
  • 고른 토큰을 글 뒤에 붙이고 처음으로 돌아갑니다.

· 같은 거대 모델도 바탕은 같습니다. 다른 것은 크기(가중치 수천억 개), 학습 자료의 양, 그리고 대화를 잘하도록 더한 추가 학습입니다. XSLM 은 이 바탕을 가장 작은 크기로 처음부터 만들어 부품마다 하는 일을 눈으로 확인하는 과정입니다.

처음부터 만든다는 것 — 무작위 숫자에서 시작

처음부터(from scratch) 만든다는 것은 남이 학습한 를 받지 않는다는 뜻입니다. XSLM 의 가중치 1,248개는 모두 random.gauss(0, 0.1) 로 뽑은 작은 무작위 숫자에서 시작합니다. 이때 모델은 아무것도 모르므로 어휘 40개에 거의 같은 확률을 줍니다.

학습이 하는 일은 하나뿐입니다. 자료에 실제로 나온 다음 토큰의 확률이 올라가도록 숫자를 조금씩 고칩니다. 이 다음 토큰 맞히기()만으로 문법·형식·자주 나오는 내용이 숫자 안에 쌓입니다. 정답 표시를 따로 붙일 필요가 없습니다. 글 자체가 문제이자 정답입니다.

그래서 모델이 무엇을 잘하게 되는지는 보다 자료의 형식이 정합니다. XSLM 자료는 모든 줄이 Q: 질문 다음 A: 답 형식이므로, 모델은 A: 뒤에 답 같은 글을 잇는 습관을 배웁니다. 대화하는 능력을 따로 넣는 는 없습니다.

직접 파이썬으로 만듭니다

여러분이 직접 파이썬 프로그래밍을 해서 인공지능을 개발하게 됩니다.

그래서 파이썬 코딩하는 법도 조금 배웁니다.

파이썬 프로그램은 하나로 실행합니다. 뒤에 파일 이름을 쓰면 그 파일의 코드가 실행됩니다.

python3 [파일이름.py]
직접 실습하기

터미널에서 첫 파이썬 프로그램 만들기

아래 명령을 터미널에 차례로 직접 입력해 보세요. 명령마다 Enter 를 누릅니다.

  1. 버전 확인하기

    터미널에 이 명령을 입력합니다. Python 3 으로 시작하는 번호가 나오면 준비가 끝났습니다.

    python3 --version
  2. 파이썬 열기

    python3 만 입력합니다. >>> 표시가 나오면 파이썬이 명령을 기다리는 것입니다.

    python3
  3. 첫 명령 입력하기

    >>> 뒤에 이 명령을 입력하고 Enter 를 누릅니다. 화면에 Hello 가 나옵니다.

    print("Hello")
    Hello
  4. 파이썬 나가기

    이 명령을 입력하면 파이썬을 닫고 터미널로 돌아옵니다.

    exit()
  5. 파일 만들기

    는 터미널에서 쓰는 로, 파이썬 코드에 색을 입혀 보여 줍니다. 이 명령으로 hello.py 를 만들어 엽니다.

    micro hello.py
  6. 코드 입력하기

    이 네 줄을 그대로 입력합니다. 마지막 줄 맨 앞의 빈칸 네 개는 for 가 되풀이할 줄이라는 표시이므로 꼭 넣습니다. Tab 을 눌러도 빈칸 네 개가 됩니다.

    name = "XSLM"
    print("Hello,", name)
    for step in range(1, 4):
        print("Step", step)
  7. 저장하고 닫기

    +S 를 누르면 저장됩니다. Ctrl+Q 를 누르면 micro 가 닫힙니다.

    Ctrl+S Ctrl+Q

  8. 프로그램 실행하기

    터미널로 돌아왔으면 이 명령으로 실행합니다. 아래처럼 나오면 성공입니다.

    python3 hello.py
    Hello, XSLM
    Step 1
    Step 2
    Step 3
  9. 직접 바꿔 보기

    micro hello.py 로 다시 열어 XSLM 을 내 이름으로 바꾸고, 저장한 뒤 다시 실행합니다. 화면에 내 이름이 나옵니다.

터미널에서 실습하기

전체 흐름 — 프로그램이 파일을 넘겨준다

XSLM 은 프로그램마다 앞 프로그램이 만든 파일을 읽어 다음 파일을 만드는 사슬입니다.

  • prepare.py — data/raw.txt 를 읽어 data/train.txt 와 data/val.txt 를 만듭니다.
  • tokenizer.py — train.txt 로 을 배워 data/tokenizer.json 을 만듭니다.
  • engine.py·model.py — 계산 도구와 GPT 구조입니다. 혼자 파일을 만들지 않고 다른 프로그램이 불러 씁니다.
  • train.py — 자료와 로 GPT 를 학습해 checkpoints/model.json 을 만듭니다.
  • generate.py — model.json 을 읽어 글을 이어 씁니다.
  • runner.py — generate 를 로 엽니다.
  • xchat.py — Runner 에 질문을 보내고 답을 보여 줍니다.

앞 파일이 바뀌면 그 뒤를 다시 만들어야 합니다. 예를 들어 raw.txt 를 고치면 prepare → tokenizer → train 을 차례로 다시 실행합니다.

XSLM 전체 흐름 — 파일과 프로그램
  1. raw.txt 원본 질문·답
  2. prepare.py 정리하고 학습·검증으로 나누기
  3. tokenizer.py 글을 토큰 번호로 바꾸는 규칙
  4. train.py 다음 토큰 맞히기 학습
  5. model.json 학습한 저장
  6. runner.py HTTP 로 생성 제공
  7. xchat.py 터미널 대화 화면

얼마나 작은가 — 크기 비교

모델의 크기는 학습하는 숫자(파라미터)의 개수로 셉니다.

  • XSLM: 1,248개 — 어휘 40, 폭 8, 1개, 1개.
  • 작은 연습용 GPT(예): 약 2,800만 개 — 어휘 24,000, 폭 384, 블록 6개, 헤드 6개.
  • Small(2019): 약 1억 2천만 개.
  • GPT-3(2020): 약 1,750억 개.

XSLM 이 이렇게 작은 데는 까닭이 있습니다. 모든 숫자를 Python 하나(Value)로 다루고, 브라우저 안의 가상 에서 계산하기 때문입니다. 크기를 키우면 학습 한 번에 몇 분이 걸립니다. 대신 숫자 하나하나의 계산을 직접 읽을 수 있습니다. 구조는 GPT 와 같고, 크기와 계산 방식만 다릅니다.

같은 방법으로 키우면 SLM 이 됩니다

XSLM 을 배우면 끝이 아닙니다. 같은 방법으로 크기만 키워 가면 됩니다.

  1. sonub.com 에서 XSLM 배우기 웹 브라우저 안에서
  2. 내 컴퓨터에서 더 큰 XSLM 만들기 똑같은 방법으로, 크기를 키워서
  3. 더 크게 만들면 SLM 똑같은 방법으로, 더 크게

만드는 단계는 같습니다. 크기가 커질수록 학습 자료와 컴퓨터, 시간이 더 필요하고, 계산은 같은 도구에 맡깁니다.

실제로 쓰이는 XSLM — 공개 모델과 줄이는 기법

이 크기의 모델은 이미 공개되어 쓰이고 있습니다.

  • SmolLM2-135M(Hugging Face, 2024): 파라미터 약 1억 3,500만 개. 글을 이어 쓰는 GPT 형 모델로, 스마트폰에서도 돌아갑니다.
  • MobileBERT(Google, 2020): 파라미터 약 2,500만 개. 글을 쓰기보다 문장을 이해해 분류하거나 글 속에서 질문의 답을 찾는 모델입니다.

큰 모델을 XSLM 크기로 줄이는 대표 기법은 두 가지입니다.

  • (Knowledge Distillation): 큰 모델(선생)이 낸 확률을 작은 모델(학생)이 따라 배웁니다. 정답 하나만 보고 배울 때보다 더 많은 것을 배웁니다.
  • (Quantization): 파라미터 하나를 소수 대신 8bit·4bit 숫자로 저장합니다. 메모리가 4~8배 줄고, 정확도는 조금 떨어집니다.

두 기법 모두 이 과정에서 만드는 학습 루프(6단계)와 가중치 저장(체크포인트)을 바탕으로 합니다. 과정을 마치면 이런 기법의 문서와 코드를 읽을 준비가 됩니다.

핵심 개념 아홉 가지 — 한 줄씩

과정에서 만나는 개념을 미리 한 줄씩 봅니다. 단계마다 자세히 다룹니다.

  • 데이터 형식: 모델이 무엇을 할지 정합니다(3단계).
  • 토크나이저: 글을 토큰 번호로 바꾸고 되돌립니다(4단계).
  • : 토큰 번호를 숫자 벡터로 바꾸는 표입니다(5단계).
  • : 몇 번째 자리인지 알려 주는 벡터입니다(5단계).
  • : 앞자리 중 어디를 얼마나 볼지 정해 정보를 섞습니다(5단계).
  • (): 섞은 정보를 자리마다 다시 가공합니다(5단계).
  • 잔차 연결·: 원래 정보를 지키고 숫자 크기를 안정시킵니다(5단계).
  • 다음 토큰 예측·: 정답 토큰의 확률로 잘한 정도를 잽니다(6단계).
  • : 확률에서 실제 토큰을 고릅니다(7단계).

흔한 오해 네 가지

처음 만들 때 자주 하는 오해를 바로잡고 시작합니다.

  • 모델 안에 문장이 저장되어 있다? 아닙니다. 지식은 모든 가중치의 숫자 패턴에 흩어져 있습니다. 숫자 하나를 열어 보아도 문장은 없습니다.
  • 다음 단어를 에서 찾는다? 아닙니다. 모델은 매번 계산으로 어휘 전체의 점수를 냅니다. 검색은 하지 않습니다.
  • 손실이 낮으면 사실을 말한다? 아닙니다. 학습 자료와 비슷한 글을 낼 확률이 높다는 뜻일 뿐입니다.
  • 작은 모델은 원리가 다르다? 아닙니다. XSLM 과 거대 모델은 같은 부품을 씁니다. 크기·자료·추가 학습이 다를 뿐입니다.

하나 더 있습니다. 학습한 내용은 학습을 마친 순간에 굳습니다. 새 소식을 알려면 다시 학습하거나, 실제 서비스처럼 질문할 때 최신 문서를 찾아 함께 넣어야 합니다(, 9단계).

직접 타이핑하며 실습하기

터미널을 열고 아래 명령을 직접 입력하세요. 다섯 부분이 하는 일을 말로 설명해 보세요. 첫 실험은 타이핑을 줄이려고 짧은 영어 자료를 씁니다. 나중에 원하는 언어의 자료로 바꿀 수 있습니다.

python3 -c "print('XSLM: text -> tokens -> GPT -> Runner -> XChat')"
터미널에서 실습하기

여기까지 이해했나요?

토크나이저·모델·Runner·대화 화면의 역할을 구별할 수 있나요? 내가 학습한 가중치를 저장하고 다시 읽어 XChat에서 사용하면 완성입니다. 답이 엉뚱해도 전체 개발 과정을 배운 것입니다.

막혔을 때 확인하기

Python이 처음이라면 파이썬 과정에서 ····를 먼저 연습하세요. 아래 준비 운동에서 단어를 세어 다음 말을 고르는 원리를 먼저 볼 수도 있습니다.

자주 묻는 질문

이렇게 작은 모델을 만들어서 어디에 쓰나요?

이 과정에서 만드는 1,248개짜리 모델은 실용성이 거의 없습니다. 목적은 엔진을 직접 조립해 보는 것입니다. 토크나이저·임베딩·어텐션·손실··샘플링·서버를 한 번씩 손으로 만들어 보면, 큰 모델의 문서·논문·코드에 나오는 이름이 무엇을 가리키는지 알게 됩니다. PyTorch 로 넘어가도 개념은 그대로입니다. 같은 부품을 수백만~수억 개로 키워 한 가지 일의 자료로 학습하면 요약·분류·라우터처럼 실제로 쓰이는 XSLM 이 됩니다.

답이 엉뚱한데 실패한 건가요?

아닙니다. 기본 학습 20회는 모든 부품이 실제로 연결되어 도는지 확인하는 양입니다. 이 정도로는 확률이 거의 고르게 퍼져 있어 글이 뒤죽박죽입니다. 학습 손실이 처음 값(약 3.7)보다 내려가고, 체크포인트를 읽은 Runner 가 XChat 에 실제 생성 결과를 돌려주면 과정은 완성입니다. 품질을 올리는 실험은 6·7단계에서 합니다.

미리 학습된 모델을 받아 쓰면 안 되나요?

이 과정은 받지 않습니다. 받은 가중치는 이미 다 계산된 결과라서 학습이 어떻게 숫자를 바꾸는지 볼 수 없기 때문입니다. 실제 개발에서는 공개된 모델을 받아 내 자료로 조금 더 학습하는 미세 조정(fine-tuning)을 많이 씁니다. XSLM 에서 배운 학습 루프가 미세 조정에도 그대로 쓰입니다.

선택 준비 운동: 바이그램으로 단어 세어 보기

직접 개발로 이어지는 계획

처음에는 장난감처럼 작게 만들고, 원리를 이해한 뒤 점점 키웁니다.

1

문장 모으기

내가 배우고 싶은 주제의 문장을 모읍니다. 처음에는 10문장만 있어도 됩니다.

처음이면 이렇게 따라 해 보세요

이 실습은 바로 앞 단어 하나만 보는 아주 을 만들어요. 어떤 단어 뒤에 어떤 단어가 왔는지 세고, 그 횟수를 로 바꾼 뒤, 확률만큼 기운 주사위를 굴려 다음 단어를 골라요.

왼쪽에는 어떤 색 점 뒤에 어떤 색 점이 왔는지 빗금으로 센 표가 있고, 화살표가 색깔 면이 있는 큰 주사위로 이어지며, 주사위가 차례로 굴린 점들이 작은 타일로 줄지어 있다.
세어 둔 표(왼쪽)가 주사위의 무게가 돼요. 자주 이어진 단어일수록 주사위에서 더 자주 나와요.
  1. 을 그대로 두고 "다시 생성"을 누르세요. 훈련 문장에 있던 단어로만 이루어진 새 문장이 나와요.
  2. 확률 공식 칸을 보세요. 앞 단어 뒤에 그 단어가 온 횟수를 앞 단어가 나온 전체 횟수로 나눈 값이 확률이에요.
  3. 이어짐 횟수 표에서 줄은 앞 단어, 칸은 다음 단어예요. 칸이 진할수록 그 짝이 자주 나왔어요.
  4. 방식을 으로 바꾸고 다시 누르면 늘 같은 문장이 나와요. 으로 돌아가 를 올리면 문장이 점점 엉뚱해져요.
  5. 훈련 문장에 내 문장을 한 줄 더해 보세요. 은 이 횟수가 전부라서 표와 확률이 바로 바뀌어요.

더 깊이 배우고 싶다면 파이썬으로 직접 만들기 (AI 과정) 다음 단어는 어떻게 고를까

작은 확률 계산기

생성된 문장 방식을 고르고 다시 생성을 누르세요.
확률은 이렇게 계산해요
앞 단어 다음 단어 이어진 횟수 뒤에 온 전체 횟수 확률

시작 문장의 마지막 단어 뒤에 이어진 후보가 아직 없습니다.

다음 단어 후보

백분율은 반올림하므로 표시 합계가 100%와 조금 다를 수 있어요.

어떤 단어 뒤에 무엇이 몇 번 왔을까요?
앞 단어다음 단어

단어가 많아 처음 나온 8개만 보여요

핵심 개념

생각은 간단합니다. 문장을 많이 읽고, 어떤 낱말 바로 뒤에 어떤 낱말이 오는지 — 문장이 끝나는 자리까지 — 세어 봅니다. 그 횟수가 작은 표가 되고, 이 표만으로도 이 다음 낱말을 짐작할 수 있습니다. 이 화면에서 만드는 모델이 바로 그것입니다.

진짜 도 같은 생각으로 움직입니다. 다만 훨씬 큽니다. 작은 횟수 표 대신 예시에서 수십억에서 수천억 개의 숫자()를 익히고, 바로 앞 낱말 하나만이 아니라 질문 전체와 지금까지의 대화를 봅니다. 저장해 둔 문장을 찾아 꺼내는 것도 아닙니다. 그래도 마지막 단계는 여러분이 만드는 것과 같습니다 — 후보마다 점수를 매기고, 하나를 고릅니다.

이 실습과 실제 언어모델 비교

이 실습과 실제 언어모델 비교
이 실습 ()
보는 범위 바로 앞 단어 하나 주어진 긴
배우는 것 이어진 횟수 표 숫자
· 아니요 예
스스로 사실 확인 아니요 아니요
참고 문서

이 과정의 과 관련된 공식 문서입니다. 확인일: 2026-10-18.

가이드라인

인공지능

에이전트 툴

바이브코딩

AI 활용

AI 자격증

화상 수업

IT 기초

채팅

게시판

만들기

소통

더보기

용어 사전

모르는 말을 골라 보세요. 쉬운 설명과 관련 용어를 볼 수 있어요.

찾는 용어가 아직 없어요.

용어를 고르면 설명이 보여요.