Skip to content
딥러닝 NLP

1주차: 자연어처리 소개와 언어모델의 개요

자연어처리 소개와 언어모델의 개요.

□ 첫 주차에 하는 일

  • 컴퓨터가 사람 말을 다룬다는 것이 무슨 뜻인지 본다. 사람에게는 쉬운 일이 컴퓨터에게는 왜 어려운지부터 시작한다
  • 언어모델이 하는 일 한 가지를 예제로 확인한다. 그 한 가지는 “다음에 올 말을 확률로 고른다”이다
  • 실습 환경을 열고 첫 코드를 돌린다. 앞으로 모든 주차의 실습이 이 환경 위에서 진행된다
학생이 노트북 앞에 앉아 있고, 입에서 흘러나온 말이 리본처럼 노트북 쪽으로 건너가면서 나란한 카드 여러 장으로 바뀌는 그림. 맨 끝 카드 한 장만 비어 있고 은은하게 빛난다. 뒤로는 현무암 돌담과 낮은 오름이 있는 제주 해안이 보인다

□ 이 문서를 읽는 법

  • 수식은 한 개도 나오지 않는다. 확률이 나오지만 계산은 “1에서 0.79를 뺀다” 수준까지만 한다. 수학을 따로 공부하고 올 필요가 없다
  • 표에 적힌 숫자는 모두 설명하려고 정한 값이다. 실제 모델을 측정한 값이 아니다. 숫자 자체를 외우지 말고 숫자들이 만드는 모양을 봐 두면 된다
  • 프로그래밍을 해 본 적이 없어도 된다. 실습 코드는 처음부터 돌아가는 상태로 주어지고, 표시된 한 곳만 바꾸면 된다. 밑바닥부터 코드를 쓰게 하지 않는다
  • 이 과목의 채점도 같은 기준을 따른다. 코드가 완성됐는지보다 결과를 어떻게 읽었는지를 본다. 수식을 쓰지 않고 설명해도 개념을 옳게 짚었으면 정답이다

강의 1: 자연어처리는 무엇을 하는 일인가

Section titled “강의 1: 자연어처리는 무엇을 하는 일인가”

□ 사람에게 쉬운 말이 컴퓨터에게 어려운 이유

다음 세 문장을 읽어 보자. 모두 “배”라는 글자가 들어 있다.

문장“배”의 뜻
아침을 굶었더니 배가 고프다몸의 배
성산포에서 배를 타고 우도에 갔다물 위를 가는 배
제주 배는 물이 많고 달다먹는 배

사람은 이 셋을 헷갈리지 않는다. 그런데 세 문장의 “배”는 글자가 완전히 같다. 컴퓨터가 보는 것도 똑같은 글자다. 뜻을 갈라 주는 것은 글자 자체가 아니라 앞뒤에 놓인 다른 단어들이다. “굶었더니”, “타고”, “물이 많고”가 없으면 어느 뜻인지 알 방법이 없다.

가운데 놓인 똑같은 카드 한 장에서 선 세 개가 갈라져 배를 감싸 쥔 아이, 바다 위에 뜬 작은 배, 접시에 놓인 노란 배 세 장면으로 이어지는 그림. 세 장면의 크기가 같다

한 가지 더 있다. 사람은 말하지 않은 것까지 알아듣는다.

  • A: “내일 한라산 갈까?”
  • B: “비 온대.”

B의 대답에는 “가지 말자”라는 말이 한 마디도 없다. 그런데 A는 거절로 알아듣는다. 비가 오면 산에 가기 어렵다는 사실, 그래서 B가 내키지 않아 한다는 짐작을 A가 머릿속에서 채워 넣기 때문이다. 컴퓨터는 글자만으로 이 뜻을 확정할 수 없다. 언어모델이 비슷한 상황을 학습해 거절을 추측할 수는 있지만, B가 실제로 거절했는지는 앞뒤 상황을 더 확인해야 한다.

○ 프로그래밍 언어와 무엇이 다른가

컴퓨터에게 일을 시키는 말은 원래 따로 있다. 파이썬 같은 프로그래밍 언어다. 프로그래밍 언어는 규칙이 엄격해서, 괄호 한 짝만 빠져도 실행이 멈추고 오류를 낸다. 규칙을 지키지 않으면 아예 동작하지 않는다는 뜻이다.

사람 말은 반대다. 규칙을 어겨도 통한다. “밥 먹었어?”를 “밥먹?”이라고 보내도 상대는 알아듣는다. 맞춤법이 틀려도, 단어를 빠뜨려도, 순서를 바꿔도 대체로 뜻이 전달된다. 그래서 “이런 경우에는 이렇게 처리하라”는 규칙을 사람이 일일이 적어 두는 방식으로는 감당이 되지 않는다. 예외가 끝없이 나오기 때문이다.

○ 한국어에서 더 두드러지는 점

한국어는 조사가 붙으면서 형태가 바뀐다. “제주”, “제주가”, “제주를”, “제주에서”는 사람 눈에는 같은 말의 변형이지만 글자로만 보면 서로 다른 덩어리다.

띄어쓰기도 흔들린다. 유명한 예가 있다.

아버지가방에들어가신다

이 글자들은 “아버지가 방에 들어가신다”로도 읽히고 “아버지 가방에 들어가신다”로도 읽힌다. 어느 쪽으로 자르느냐에 따라 뜻이 완전히 달라진다. 지금은 이런 일이 있다는 것만 보고 넘어간다. 말을 어떤 기준으로 자를지는 2주차에서 다룬다.

○ 컴퓨터는 글자를 어떻게 보는가

한 가지 더 알아 둘 것이 있다. 컴퓨터 안에는 글자가 우리가 보는 모양 그대로 들어 있지 않다. 모든 글자는 숫자로 바뀌어 저장된다. 화면에 “제주”라고 떠 있어도 그 안쪽에는 정해진 번호가 들어 있고, 컴퓨터는 그 번호를 다룬다.

그래서 문제가 하나 생긴다. 번호는 글자를 구별해 주기는 하지만 뜻이 가깝다는 것을 알려 주지 않는다. “바다”와 “해변”은 뜻이 가깝고 “바다”와 “책상”은 멀다. 그런데 번호로만 보면 셋 다 그냥 다른 번호일 뿐이어서 어느 쪽이 더 가까운지 알 길이 없다.

이 문제를 푸는 방법이 이 과목의 중반부 내용이다. 뜻이 가까운 말끼리 가까운 숫자를 갖도록 옮기는 작업인데, 6주차부터 다룬다. 지금은 “컴퓨터가 보는 것은 글자가 아니라 숫자이고, 뜻의 가까움은 따로 만들어 줘야 한다” 정도만 담아 두면 된다.

여기까지가 어려움의 목록이다. 같은 글자가 여러 뜻을 갖고, 사람은 말하지 않은 것까지 알아듣고, 형태가 계속 바뀌고, 컴퓨터가 보는 것은 숫자뿐이다. 이 목록을 어떻게 하나씩 걷어 냈는지가 15주 내내 이어지는 이야기다.

□ 자연어처리의 정의

지금까지 본 어려움을 다루는 분야가 자연어처리다.

자연어처리는 사람이 쓰는 말과 글을 컴퓨터가 다루게 만드는 기술이다.

“자연어”라는 말은 프로그래밍 언어와 구분하려고 쓴다. 사람이 일상에서 저절로 쓰게 된 말이 자연어이고, 사람이 컴퓨터를 위해 설계한 말이 프로그래밍 언어다. 영어로는 Natural Language Processing이고 줄여서 NLP라고 부른다.

“처리”라는 말이 조금 밋밋하게 들리는데, 실제로 하는 일은 크게 두 갈래다.

  • 읽어서 알아내는 일. 주어진 글에서 무언가를 뽑아낸다. 이 후기가 만족인지 불만인지 가려내기, 긴 글에서 날짜와 장소만 찾아내기, 문장에서 사람 이름을 골라내기가 여기 속한다
  • 써서 내놓는 일. 새로운 글을 만들어 낸다. 번역문을 쓰기, 요약문을 쓰기, 질문에 답하기가 여기 속한다

앞의 갈래는 답의 가짓수가 정해져 있는 경우가 많다. 만족과 불만 중 하나, 또는 이름인지 아닌지. 뒤의 갈래는 답이 무한히 많다. 같은 뜻을 담은 문장을 수십 가지로 쓸 수 있기 때문이다. 이 차이가 채점 방식도 갈라 놓는다. 앞의 갈래는 맞았는지 틀렸는지 세면 되지만, 뒤의 갈래는 “이것도 맞고 저것도 맞는” 상황이라 판정이 훨씬 까다롭다.

이 과목은 두 갈래를 모두 다루되, 5주차까지는 읽어서 알아내는 쪽에 무게를 두고 후반부로 갈수록 써서 내놓는 쪽으로 옮겨 간다.

□ 이미 우리 곁에 있는 자연어처리

자연어처리는 연구실 안의 이야기가 아니다. 오늘 하루에도 여러 번 썼을 것이다.

번역, 자막, 맞춤법 교정, 검색, 편지 분류, 후기 분류 여섯 장면을 두 줄로 늘어놓은 그림. 감귤과 현무암 같은 제주 소재가 장면 사이에 작게 들어가 있다
하는 일넣는 것나오는 것제주에서 보는 모습
번역한국어 문장다른 언어 문장관광 안내문의 다국어 표기
자막 만들기말소리글로 적힌 문장지역 행사 영상의 자막
맞춤법 검사쓴 글고친 글과제를 내기 전 검사
검색찾고 싶은 말관련 문서 목록도서관 자료 검색
스팸 분류받은 메시지스팸인지 아닌지문자함 자동 분류
감성 분석후기 한 편만족인지 불만인지관광지 후기에서 불만 골라내기
요약긴 문서짧은 요약문공지 사항 세 줄 요약
대화 응답사람이 쓴 질문답변 문장안내 창구의 자동 응답

여덟 가지가 제각각으로 보인다. 그런데 안을 들여다보면 상당 부분이 같은 한 가지 부품을 쓴다. 그 부품이 오늘의 두 번째 주제인 언어모델이다.

어떻게 같은 부품으로 이 많은 일을 할 수 있을까. 요령은 서로 달라 보이는 일들을 전부 “이 글 다음에 올 말은 무엇인가”라는 하나의 질문으로 바꿔 놓는 것이다.

  • 번역은 “한국어 문장을 보여 준 다음, 이어서 영어 문장을 쓴다면 어떤 말이 올까”로 바꿀 수 있다
  • 요약은 “긴 글을 보여 준 다음, 이어서 세 줄 요약을 쓴다면 어떤 말이 올까”가 된다
  • 대화 응답은 “사람이 이렇게 물었을 때 이어서 올 답변은 어떤 말일까”가 된다

세 경우 모두 앞에 놓인 글이 다를 뿐, 하는 일은 다음 말을 고르는 것으로 같다. 그래서 하나의 부품을 잘 만들어 두면 여러 일에 돌려 쓸 수 있다. 요즘 대화형 AI가 번역도 하고 요약도 하고 코드도 쓰는 이유가 여기 있다.

물론 표에 있는 일 전부가 이 방식만 쓰는 것은 아니다. 스팸 분류처럼 “둘 중 하나를 고르는” 일은 더 단순한 방법으로도 잘 풀리고, 그 방법은 5주차에서 배운다. 다만 이 과목에서 가장 자주 만나게 될 부품은 언어모델이다.

□ 이 과목이 다루는 것과 다루지 않는 것

  • 이 과목에서는 각 기술이 무엇인지 이해하고 직접 써 보는 수준까지 간다. 개념을 알고, 돌아가는 코드를 실행해 보고, 결과를 읽는다
  • 모델을 직접 만들고 성능을 끌어올리는 일은 3학년 「딥러닝자연어처리」가 맡는다. 미세조정, 검색 결합, 배포 같은 말이 그쪽 영역이다
  • 그러니 이 과목에서 막히는 지점이 있다면 그것은 아직 배우지 않은 것이지 못 따라가는 것이 아니다

□ 15주 지도

이번 학기에 어떤 순서로 쌓아 올리는지 미리 봐 두자. 지금 서 있는 자리는 맨 왼쪽이다.

개관 1주차에서 시작해 언어 현상과 확률 2에서 5주차, 의미 표현 6에서 8주차, 신경망과 사전학습 9에서 10주차, 대규모 언어모델 11에서 12주차, 응용과 사회 13에서 15주차로 이어지는 흐름도. 맨 앞 개관 칸에 지금 여기 표시가 붙어 있다

오른쪽으로 갈수록 앞에서 배운 것을 재료로 쓴다. 2주차에서 말을 자르는 법을 배우고, 3주차에서 잘라 놓은 것들을 세어 확률을 만들고, 6주차에서 뜻을 숫자로 옮기는 식이다. 그래서 한 주를 건너뛰면 그다음이 어려워진다.

강의 2: 언어모델, 다음 단어를 확률로 고르는 기계

Section titled “강의 2: 언어모델, 다음 단어를 확률로 고르는 기계”

□ 빈칸 채우기 게임

먼저 사람이 직접 해 보자. 아래 빈칸에 들어갈 말을 머릿속으로 떠올려 보라.

혼저 ___

제주에서 자랐거나 제주에 살아 본 사람이라면 “옵서예”가 바로 떠올랐을 것이다. “혼저 옵서예”는 “어서 오세요”라는 뜻의 제주 인사말이다. 이 빈칸은 답이 거의 하나로 정해져 있다.

이번에는 다른 문장이다.

제주에서 먹고 싶은 것은 ___

이번에는 여러 개가 떠오른다. 고기국수, 흑돼지, 갈치조림, 전복죽. 사람마다 다르고 같은 사람도 그날 기분에 따라 다르다.

언어모델이 하는 일이 바로 이 빈칸 채우기다. 앞에 나온 글을 보고 다음에 올 말로 무엇이 어울리는지를 따져서 하나를 고른다. 두 빈칸의 성격이 달랐던 것처럼, 언어모델도 어떤 자리에서는 거의 정해진 답을 내고 어떤 자리에서는 매번 다른 답을 낸다. 왜 그런지가 이번 주의 핵심이다.

○ 확률이라는 말의 뜻

언어모델은 후보마다 점수를 매긴 뒤, 모두 더하면 1이 되는 확률표로 바꾼다. 점수와 확률은 구분한다. 이번 주에는 확률로 바뀐 표를 읽는 데 집중한다.

  • 확률 0.25는 100번 중에 25번쯤 일어난다는 뜻이다. 백분율로 쓰면 25퍼센트다
  • 확률 0.90은 100번 중 90번쯤이다. 거의 늘 그렇다는 뜻이다
  • 후보들의 확률을 전부 더하면 반드시 1이 된다. 100번 중 몇 번씩 나눠 가진 것이니 다 더하면 100번, 즉 전체가 된다

익숙한 예로 맞춰 보자. 공정한 동전을 던진다고 가정하면 앞면이 나올 확률이 0.5이고 뒷면도 0.5다. 둘을 더하면 1이다. 공정한 주사위라면 여섯 면이 각각 6분의 1이다. 0.17은 반올림한 값이므로 여섯 개를 더하면 1.02지만, 반올림 전 확률의 합은 1이다. 언어모델의 확률표도 똑같다. 다만 후보가 두 개나 여섯 개가 아니라 사전에 있는 말 전부라는 점이 다르다.

여기서 자연스럽게 따라오는 질문이 있다. 그 확률은 어디서 나오는가. 누가 “옵서예는 0.90”이라고 정해 준 것일까.

정해 준 사람은 없다. 아주 많은 글을 읽으면서 어떤 말 뒤에 어떤 말이 실제로 자주 왔는지를 본 결과다. “혼저” 뒤에 “옵서예”가 오는 경우를 수없이 봤다면 그 자리의 확률이 높아지고, 거의 못 봤다면 낮아진다. 사람이 규칙을 적어 넣는 대신 글에서 저절로 배우게 한 것이다.

3주차는 이 학습을 단순화해 빈도를 직접 세는 모델을 다룬다. 9주차 이후의 신경망은 빈도표를 그대로 저장하는 대신 예측을 고치며 점수를 학습한다. 지금은 확률이 하늘에서 떨어진 값이 아니라 읽은 글에서 나온 값이라는 것만 알아 두면 된다. 이 점은 나중에 중요해진다. 읽은 글에 치우침이 있으면 확률에도 그대로 치우침이 남기 때문이다. 그 이야기는 14주차에서 다룬다.

○ 확률표 두 장을 비교한다

앞의 두 빈칸에 언어모델이 확률을 매겼다고 해 보자. 아래 숫자는 설명하려고 정한 값이다.

혼저 ___ 의 확률표

다음에 올 말확률읽는 법
옵서예0.90100번 중 90번
오세요0.05100번 중 5번
그 밖의 말 전부0.05아주 가끔

제주에서 먹고 싶은 것은 ___ 의 확률표

다음에 올 말확률읽는 법
고기국수0.25100번 중 25번
흑돼지0.24100번 중 24번
갈치조림0.18100번 중 18번
전복죽0.12100번 중 12번
그 밖의 말 전부0.21100번 중 21번
왼쪽은 혼저 다음에 올 말의 확률이 옵서예 0.90에 몰려 있는 가로 막대그래프, 오른쪽은 제주에서 먹고 싶은 것은 다음에 올 말의 확률이 고기국수 0.25, 흑돼지 0.24, 갈치조림 0.18, 전복죽 0.12, 그 밖 0.21로 넓게 퍼져 있는 가로 막대그래프. 두 그래프의 눈금은 0에서 1로 같고 숫자는 설명용 예시다

두 표 모두 더하면 1이 된다. 다른 것은 모양이다. 여기서는 읽기 쉽게 다음 단어를 후보로 썼지만, 실제 생성 모델은 단어보다 작은 조각인 토큰을 후보로 쓰기도 한다. 그 차이는 2주차에서 다룬다.

  • 앞의 표는 한 곳에 몰려 있다. 이것을 뾰족하다고 부르자
  • 뒤의 표는 넓게 퍼져 있다. 이것을 평평하다고 부르자

이 모양 차이 하나가 이번 주에 볼 현상 전부를 설명한다. 기억해 둘 것은 숫자가 아니라 이 두 낱말이다.

□ 한 단어를 고른 뒤에는 처음부터 다시

언어모델은 단어를 하나 고르고 나면 그것으로 끝내지 않는다. 고른 단어를 뒤에 붙인 다음, 늘어난 글을 가지고 같은 일을 다시 한다. 문장 하나가 만들어지는 과정을 따라가 보자.

단계지금까지의 글새로 뽑힌 말
1제주에서먹고
2제주에서 먹고싶은
3제주에서 먹고 싶은것은
4제주에서 먹고 싶은 것은고기국수
5제주에서 먹고 싶은 것은 고기국수이다
지금까지의 글에서 다음 단어 확률표를 만들고, 한 단어를 뽑아 뒤에 붙인 다음 다시 처음으로 돌아가는 고리 모양 흐름도. 옆으로는 끝맺음 표시가 나오면 완성된 문장으로 빠져나가는 갈래가 있다

여기서 중요한 것은 4단계다. 만약 고기국수 대신 흑돼지가 뽑혔다면, 5단계 이후의 문장은 통째로 달라졌을 것이다. 한 번의 뽑기가 뒤의 모든 뽑기를 바꾼다. 문장 생성은 새로운 재주가 아니라 같은 고르기의 반복이다.

이 구조에서 세 가지가 따라 나온다.

  • 긴 글도 결국 한 단어씩 만들어진다. 화면에 글이 줄줄 흘러나오는 것처럼 보이는 것은 이 반복이 아주 빠르게 돌기 때문이다. 한 편의 답변이 통째로 어딘가에서 꺼내져 오는 것이 아니다
  • 앞의 어긋남이 뒤의 선택에 영향을 줄 수 있다. 4단계에서 엉뚱한 말이 뽑히면 5단계는 그 엉뚱한 말도 앞의 글에 포함해 이어 간다. 이후에 바로잡을 수도 있으므로 반드시 계속 틀리는 것은 아니다. 답변 중간부터 이상해지는 일이 생기는 이유다
  • 글이 길어질수록 앞을 더 많이 봐야 한다. 긴 문맥을 쓰는 모델은 앞의 많은 토큰을 처리해야 한다. 다만 3주차 바이그램처럼 바로 앞 하나만 보는 모델도 있고, 실제 모델이 볼 수 있는 범위에는 한계가 있다. 이 부담을 어떻게 줄이느냐가 9주차 이후 모델들이 풀어 온 숙제다

그러면 이 반복은 언제 멈출까. 모델은 “여기서 문장이 끝난다”는 신호에 해당하는 표시도 후보 중 하나로 갖고 있다. 그 표시가 뽑히면 더 이어 붙이지 않고 멈춘다. 끝맺음 표시가 뽑히면 멈추며, 사용자가 정한 최대 길이나 서비스의 제한 때문에 먼저 멈출 수도 있다.

□ 왜 같은 질문에 답이 달라지는가

대화형 AI에 같은 질문을 두 번 넣으면 답이 조금씩 다르게 나온다. 고장이 아니다. 지금까지 본 구조에서 자연스럽게 나오는 결과다.

확률표를 100칸짜리 원판이라고 생각해 보자. 조금 전 평평한 표를 원판으로 옮기면 이렇게 된다.

  • 고기국수 25칸, 흑돼지 24칸, 갈치조림 18칸, 전복죽 12칸, 나머지 21칸
조각 크기가 서로 다르게 나뉜 큰 원판과 위쪽 바늘, 원판을 돌리려는 학생을 그린 그림. 옆에는 같은 원판을 작게 그린 것 세 개가 나란히 있고 바늘이 각각 다른 조각에 멈춰 있다

눈을 감고 원판을 돌려 한 칸을 찍는 것이 뽑기다. 세 번 돌리면 세 번 다 다른 칸이 나올 수 있다. 칸이 넓은 고기국수가 자주 나오겠지만 매번 나오지는 않는다.

방식을 바꿀 수도 있다. 돌리지 않고 가장 넓은 칸만 고르기로 하면 세 번 다 고기국수가 나온다. 같은 표에서는 같은 후보가 선택된다. 질문이나 앞의 글이 바뀌면 표도 달라지므로, 모든 질문에 같은 문장을 돌려주는 것은 아니다.

  • 안내 문구처럼 늘 같은 답이 나와야 하는 일에는 가장 넓은 칸만 고르는 쪽이 맞다
  • 아이디어를 여러 개 받아 보고 싶은 일에는 돌려서 뽑는 쪽이 낫다
  • 어느 쪽이 옳다기보다, 지금 하려는 일이 둘 중 어느 쪽인지 먼저 정하는 것이 중요하다

두 방식을 나란히 놓으면 이렇다.

돌려서 뽑기가장 큰 칸만 고르기
같은 질문을 세 번 하면답이 달라질 수 있다세 번 다 같다
좋은 점여러 표현과 여러 아이디어가 나온다결과를 예상할 수 있다
아쉬운 점어떤 답이 나올지 미리 알 수 없다같은 조건에서 표현의 다양성이 적다
어울리는 일아이디어 모으기, 문구 여러 개 뽑기안내문, 규정 설명, 같은 답이 필요한 응답

실제 서비스는 이 둘 사이를 조절할 수 있게 만들어 둔다. 이 조절은 출력의 다양성과 반복 가능성에 영향을 준다. 항상 같은 답을 내더라도 사실이 틀릴 수 있으므로, 다양성을 낮추는 것만으로 안전성이 보장되지는 않는다. 손잡이의 이름과 조절 방법은 12주차에서 다룬다.

○ 뾰족한 질문과 평평한 질문

같은 원리로, 질문에 따라 답이 흔들리는 정도가 다르다.

윗줄은 사실형 질문을 세 번 넣어 세 번 모두 한라산이 나온 기록, 아랫줄은 추천형 질문을 세 번 넣어 박물관, 카페 거리, 동굴로 매번 다른 답이 나온 기록을 격자로 보여 주는 그림. 오른쪽에 각각 표가 뾰족해서 같다, 표가 평평해서 다르다는 설명이 붙어 있다. 설명용 예시 기록이다
  • “제주도에서 가장 높은 산은?” 처럼 모델이 익숙하게 학습한 사실 질문은 특정 답에 확률이 몰릴 수 있다. 이 그림은 그런 경우를 상정한 예시이며, 낯선 사실이나 잘못된 전제의 질문에서는 답이 흔들릴 수도 있다
  • “비 오는 날 갈 만한 곳은?” 처럼 추천이나 창작을 묻는 질문은 후보가 여럿일 수 있다. 뽑기 설정에 따라 답이 달라질 수 있지만, 항상 달라지는 것은 아니다

이번 주 온라인 학습활동에서는 이 설명용 예측과 실제 관찰을 비교한다.

○ 앞에 오는 글이 바뀌면 표도 바뀐다

확률표는 고정된 물건이 아니다. 앞에 놓인 글이 조금만 달라져도 표가 통째로 바뀐다.

  • 제주에서 먹고 싶은 것은 ___ 의 표에서는 음식 이름들이 높은 확률을 갖는다
  • 제주에서 가 보고 싶은 곳은 ___ 으로 바꾸면 음식 이름은 확 내려가고 장소 이름이 올라온다
  • 같은 질문이라도 앞에 “겨울에”를 붙이면 또 달라진다

그래서 질문을 어떻게 쓰느냐가 답을 크게 바꾼다. 이 이야기는 12주차 프롬프트 엔지니어링에서 본격적으로 다룬다.

□ 그럴듯함과 사실은 다르다

여기서 한 가지 조심할 것이 있다. 확률이 높다는 것은 그동안 그런 말끼리 자주 붙어 다녔다는 뜻이지 그 말이 참이다라는 뜻이 아니다.

오름 산책로에 똑같이 잘 만들어진 나무 표지판 두 개가 서 있고, 왼쪽은 실제 초록 언덕을 가리키지만 오른쪽은 아무것도 없는 안개 쪽을 가리키는 그림. 지도를 든 학생이 두 표지판을 번갈아 보고 있다

두 표지판은 똑같이 잘 만들어졌다. 생김새만 봐서는 어느 쪽이 실제 길을 가리키는지 알 수 없다. 언어모델의 답도 이와 같다. 실제로 없는 오름 이름이나 없는 버스 번호도 아주 매끄러운 문장으로 나올 수 있다. 문장이 자연스럽다는 것과 내용이 사실이라는 것은 서로 다른 문제다.

그러니 결과를 쓸 때는 사람이 원래 자료에서 확인하는 절차가 따라붙어야 한다. 그 절차를 어떻게 설계하는지는 14주차에서 다룬다.

□ 방식은 이렇게 바뀌어 왔다

컴퓨터가 말을 다루는 방식은 한 번에 지금 모습이 된 것이 아니다. 앞 방식의 약점을 고치면서 옮겨 왔다.

규칙 적어 두기, 많이 세어 보기, 신경망으로 배우기, 크게 키우기 네 단계가 차례로 이어지고, 각 단계 아래에 경우의 수가 끝이 없다, 안 나온 말은 모른다, 왜 그런지 설명이 어렵다, 틀린 말도 그럴듯하다는 남은 문제가 점선으로 연결된 흐름도
  • 규칙 적어 두기. 사람이 문법 규칙을 손으로 적었다. 남은 문제는 경우의 수가 끝이 없다는 것이다
  • 많이 세어 보기. 글을 잔뜩 모아 어떤 말 뒤에 어떤 말이 자주 오는지 세었다. 남은 문제는 세어 본 적 없는 말은 다룰 수 없다는 것이다
  • 신경망으로 배우기. 규칙을 사람이 적지 않고 기계가 스스로 찾게 했다. 남은 문제는 왜 그런 답을 냈는지 설명하기 어렵다는 것이다
  • 크게 키우기. 자료와 모델을 아주 크게 늘렸다. 남은 문제는 앞에서 본 것, 틀린 말도 그럴듯하게 나온다는 것이다

이 순서가 곧 이 과목의 주차 순서다. 3주차에서 세어 보는 방식을, 9주차에서 신경망을, 11주차에서 크게 키운 모델을 다룬다. 각 방식의 이름과 계산 방법은 그때 배우니 지금은 “고쳐 오면서 여기까지 왔다”는 흐름만 잡아 두면 된다.

□ 강의 2에서 꼭 가져갈 것

오늘 배운 것을 네 문장으로 줄이면 이렇다.

  1. 언어모델이 하는 일은 앞의 글을 보고 다음에 올 말을 확률로 고르는 것이다
  2. 확률표는 뾰족할 수도 평평할 수도 있고, 그 모양이 답의 흔들림을 결정한다
  3. 문장은 한 단어씩 고르기를 반복해 만들어지며, 한 번의 선택이 뒤를 전부 바꾼다
  4. 확률이 높다고 사실인 것은 아니다. 매끄러움과 사실은 별개다

다음 주에는 이 확률표를 만들기 전에 해야 하는 일, 즉 글을 어떤 단위로 자를 것인지를 다룬다. “혼저 옵서예”를 두 덩어리로 볼지 더 잘게 나눌지에 따라 확률표의 모양 자체가 달라지기 때문이다.

온라인 학습활동은 두 덩어리다. 둘 다 이번 주 안에 마친다.

□ 활동 A: 같은 질문을 세 번 넣어 보기

강의 2의 예측과 실제 출력 기록을 비교한다. 답이 달라지는지는 관찰할 수 있지만, 답 세 번만으로 내부 확률표의 모양을 확정할 수는 없다.

지정 질문은 두 개다.

  1. 제주도에서 가장 높은 산은 무엇인가요?
  2. 비 오는 날 제주에서 갈 만한 곳을 한 곳만 추천해 주세요.

절차는 이렇다.

  1. 수업에서 접근 가능한 대화형 AI 환경을 연다. 접근이 어려우면 제공 노트북의 뾰족한 표와 평평한 표 뽑기를 각각 세 번 관찰하고, 서비스 출력이 아닌 모의 확률표 실험이라고 기록한다
  2. 질문 1을 넣고 답을 기록한다. 그리고 새 대화를 열어 같은 질문을 다시 넣는다. 세 번 반복한다
  3. 질문 2로 같은 일을 한다
  4. 아래 표를 채운다
시도답의 첫 문장핵심 낱말앞 시도와 같은가
1
2예 / 아니오
3예 / 아니오

기록이 어떤 모양으로 나오는지 예를 들면 이렇다. 아래는 설명하려고 만든 예시다.

시도질문 1의 핵심 낱말질문 2의 핵심 낱말
1한라산박물관
2한라산카페 거리
3한라산동굴

기록을 마치면 아래 세 가지에 답한다.

  1. 두 질문 중 어느 쪽이 더 많이 바뀌었는가
  2. 확률표와 뽑기 방식으로 가능한 이유를 설명하면 무엇인가? 출력만으로 확인하지 못한 부분은 무엇인가
  3. 항상 같은 답이 나와야 하는 일과 매번 달라도 괜찮은 일을 각각 하나씩 든다면 무엇인가

제출은 표 두 개와 세 문장에서 다섯 문장 사이의 설명이다.

기록할 때 유의할 점이 세 가지 있다.

  • 반드시 새 대화를 열고 물어야 한다. 같은 대화창에서 같은 질문을 또 하면, 모델은 앞의 문답까지 “앞에 나온 글”로 보고 답을 고른다. 그러면 세 번의 조건이 서로 달라져 비교가 되지 않는다
  • 답 전체를 옮겨 적지 않아도 된다. 첫 문장과 핵심 낱말만 적으면 충분하다. 우리가 보려는 것은 문장의 완성도가 아니라 답이 바뀌는지 여부다
  • 예상과 다른 결과가 나와도 그대로 적는다. 사실형 질문인데 세 번 다 다르게 나올 수도 있다. 그럴 때는 왜 그랬을지 추측해 적으면 그것이 더 좋은 관찰이 된다

세 번 다 똑같다면 그 자체를 결과로 남긴다. 추가 관찰로 질문을 바꿀 수도 있지만, 처음 실험과 구분해 적는다. “제주에서 갈 만한 곳”과 “제주에서 비 오는 날 혼자 가기 좋은 곳”은 퍼짐의 정도가 다르다. 질문이 구체적일수록 후보가 줄어 표가 뾰족해지는 경향이 있다.

□ 활동 B: 사전 진단

맞히는 활동이 아니다. 지금 아는 것과 모르는 것을 표시해 두는 기록이다.

  • 배경 세 가지를 적는다. 프로그래밍을 해 본 경험, 수학 과목에서 확률을 배운 경험, 대화형 AI를 써 본 경험
  • 15주 지도의 일곱 마디를 보고 각각에 대해 “들어 본 적 없다 / 들어는 봤다 / 설명할 수 있다” 중 하나를 고른다

진단 문항은 아래와 같다. 그대로 옮겨 적고 답을 채우면 된다.

문항답
파이썬으로 코드를 실행해 본 적이 있는가없다 / 몇 번 있다 / 수업에서 배웠다
확률을 학교 수업에서 배운 적이 있는가없다 / 배웠지만 기억이 흐리다 / 설명할 수 있다
대화형 AI를 써 본 적이 있는가없다 / 가끔 쓴다 / 자주 쓴다
15주 지도의 일곱 마디 각각들어 본 적 없다 / 들어는 봤다 / 설명할 수 있다

이 기록은 두 가지로 쓰인다. 하나는 학습활동을 기본 단계와 심화 단계로 나눠 배정하는 근거이고, 다른 하나는 15주차에 같은 진단을 다시 해서 학기 초와 비교하는 것이다. 그러니 지금 모른다고 표시하는 것이 손해가 아니다. 교수자는 이 기록을 기초 보충과 기본·심화 활동 안내에 참고한다. 심화 활동도 새로운 구현보다 결과 해석과 다른 예에 적용하는 활동이다.

솔직하게 적는 것이 본인에게 가장 이롭다. 이 진단은 성적에 들어가지 않는다.

Q1 문제 정의: 내가 언어로 겪는 불편 찾기

Section titled “Q1 문제 정의: 내가 언어로 겪는 불편 찾기”

□ 왜 문제부터 정하는가

이 과목은 남이 만들어 둔 예제만 따라가지 않는다. 내가 실제로 겪는 불편 하나를 골라 학기 내내 재료로 쓴다. 주차마다 새로 배운 기술을 그 문제에 비춰 보면, 기술이 따로 놀지 않고 쓸 자리와 함께 기억된다.

□ 이 과목의 문제가 되는 조건

아무 불편이나 되는 것은 아니다. 세 가지를 만족해야 한다.

  1. 입력이 말이나 글이다. 사진이나 소리만 다루는 문제는 다른 분야의 몫이다
  2. 반복해서 일어난다. 한 번 겪고 마는 일은 자동화할 이유가 없다
  3. 잘 됐는지 눈으로 확인할 방법이 있다. 이것이 가장 자주 빠뜨리는 조건이다

세 조건이 왜 필요한지 하나씩 보자.

  • 첫째 조건이 필요한 이유는 이 과목이 다루는 재료가 글이기 때문이다. “사진에서 물건 찾기”는 좋은 문제지만 다른 과목의 몫이다. 다만 사진에 찍힌 글자를 다루는 일이라면 이쪽으로 들어온다
  • 둘째 조건이 필요한 이유는 한 번 겪고 마는 일은 손으로 하면 되기 때문이다. 자동화는 같은 일이 반복될 때 값어치가 생긴다. 한 달에 한 번 30초 걸리는 일을 자동화하려고 일주일을 쓰면 손해다
  • 셋째 조건이 가장 중요하다. 확인하는 방법이 없으면 만들어 놓고도 잘 됐는지 말할 수 없다. 고쳤을 때 나아졌는지도 알 수 없다. 끝나는 지점이 없으니 계속 붙잡고 있게 된다

셋째 조건을 채우는 요령은 작게 세는 것이다. 전부 검사할 필요가 없다. 20개만 사람이 직접 판단해 두고 그것과 맞춰 보면 된다. 20개 중 몇 개를 맞혔는지가 곧 점수가 되고, 다음에 고친 뒤 다시 세면 나아졌는지 알 수 있다.

겪는 불편, 넣을 것, 원하는 결과, 잘 됐는지 확인하는 법 네 칸이 차례로 이어지는 틀과, 그 아래 후기에서 불만 글을 골라내는 예시로 네 칸을 채운 줄. 확인 방법이 없으면 앞으로 돌아간다는 되돌림 화살표가 있다

□ 완성된 예시 세 개

겪는 불편넣을 것원하는 결과잘 됐는지 확인하는 법관련 주차
안내 문구를 언어별로 다시 쓰는 데 시간이 걸린다한국어 안내문다른 언어 안내문같은 뜻인지 사람이 10개만 읽어 본다8, 12
동아리 공지가 길어서 아무도 끝까지 안 읽는다공지 원문세 줄 요약요약만 읽고 날짜와 장소를 맞히는지 본다11, 12
후기가 수백 개인데 불만 글을 찾기 어렵다후기 한 편만족 또는 불만 표시20개를 직접 읽고 붙인 표시와 맞춰 본다5

□ 이런 것은 아직 문제가 아니다

  • “AI로 돈을 버는 방법”. 무엇을 넣고 무엇이 나와야 하는지 말할 수 없다. 확인할 방법도 없다
  • “완벽한 번역기 만들기”. “완벽”의 기준이 없어서 끝나는 지점이 없다. 범위를 좁히면 문제가 된다. 예를 들어 “우리 학과 공지 30건의 영어 표기를 통일한다”로 바꾸면 세 조건을 모두 만족한다

□ 작성 양식

아래 표를 채워 제출한다. 한 줄씩 쓰면 된다.

겪는 불편넣을 것원하는 결과잘 됐는지 확인하는 법

작성 요령은 세 가지다. 내가 직접 겪은 일로 쓸 것, 범위를 좁힐 것, 확인하는 법을 먼저 정하고 나머지를 맞출 것.

□ 흔히 걸리는 지점

  • 불편은 있는데 입력이 글이 아닌 경우. “동아리 사진이 너무 많아서 찾기 힘들다”는 진짜 불편이지만 재료가 사진이다. 사진에 붙은 설명글을 다루는 문제로 바꾸면 이 과목으로 들어온다
  • 출력이 너무 막연한 경우. “좋은 안내문을 만들어 준다”에서 “좋은”이 무엇인지 알 수 없다. “다섯 문장 이내로 줄인다”처럼 세어 볼 수 있는 형태로 바꾼다
  • 확인하는 법이 “내가 보기에 괜찮으면”인 경우. 이것도 기준이지만 나중에 비교가 안 된다. “20개 중 몇 개”처럼 숫자가 나오는 형태로 바꾼다

오늘 정한 문제는 학기 중에 바꿔도 된다. 다루다 보면 범위를 더 좁혀야 한다는 것을 알게 되는 경우가 많고, 그렇게 좁히는 과정 자체가 이 과목에서 배우는 것 중 하나다. 다만 오늘 하나는 정해 두고 가야 다음 주부터 재료로 쓸 수 있다.

□ 실습 환경이란

이 과목의 실습은 브라우저에서 열리는 공책 같은 환경에서 한다. 이름은 Colab이다.

  • 내 컴퓨터에 아무것도 설치하지 않는다. 브라우저만 있으면 된다
  • 계정으로 로그인만 하면 바로 쓸 수 있다
  • 코드를 적는 칸을 셀이라고 부르고, 셀 왼쪽의 삼각형 단추를 누르면 그 셀이 실행된다. 결과는 셀 바로 아래에 나타난다
  • 셀은 여러 개를 만들 수 있고 위에서 아래로 차례로 실행하는 것이 기본이다. 위 셀에서 만들어 둔 것을 아래 셀이 가져다 쓰기 때문이다

□ 첫 실행 다섯 단계

  1. 브라우저에서 실습 환경에 접속한다
  2. 계정으로 로그인한다
  3. 이 페이지 아래의 제공 노트북을 연다. 실행할 코드가 이미 들어 있다
  4. 첫 코드 셀을 찾는다. 먼저 코드를 바꾸지 않고 읽는다
  5. 셀 왼쪽의 삼각형 단추를 누르고, 셀 아래에 결과가 나오는지 본다

처음 실행할 때는 준비하는 데 몇 초에서 몇십 초가 걸린다. 화면 어딘가에 연결 중이라는 표시가 뜨는데, 기다리면 된다. 두 번째부터는 빠르다.

브라우저 접속, 새 노트 만들기, 코드 셀 입력, 실행, 출력 확인으로 이어지는 흐름도. 실행 단계에서 따옴표 짝이 안 맞다, 위 셀을 안 돌렸다, 연결이 끊겼다 세 갈래가 갈라져 나갔다가 다시 실행 단계로 돌아온다

위 흐름도는 노트북 환경의 일반적인 사용 순서를 그린 것이다. 이 수업에서는 새 노트에서 코드를 작성하는 대신 제공 노트북 열기 → 수정 없이 실행 → TODO 문장 한 곳 변경 순서로 진행한다.

□ 첫 코드 여섯 줄

제공 노트북의 첫 셀에 아래 코드가 들어 있다. 그대로 실행해 보자.

sentence = "혼저 옵서예 제주"
print(sentence)
print(len(sentence))
words = sentence.split()
print(words)
print(len(words))

한 줄씩 무슨 뜻인지 보자.

  • sentence = "혼저 옵서예 제주" 는 따옴표 안의 글을 sentence라는 이름에 담아 둔다. 이름표를 붙여 두는 것이다
  • print(sentence) 는 그 내용을 화면에 내보낸다. 혼저 옵서예 제주 가 나온다
  • len(sentence) 는 글자 수를 센다. 9 가 나온다. 공백 두 개까지 하나씩 센 결과다
  • sentence.split() 은 띄어쓰기를 기준으로 글을 잘라 목록으로 만든다. ['혼저', '옵서예', '제주'] 가 나온다
  • len(words) 는 잘린 조각의 개수다. 3 이 나온다

여기서 한 가지 눈여겨볼 것이 있다. 띄어쓰기로 자르는 것은 가장 거친 방법이다. 앞에서 본 “아버지가방에들어가신다” 같은 문장에는 통하지 않는다. 한국어를 제대로 자르는 방법은 2주차에서 다룬다.

□ 출력을 읽는 법

실행하면 셀 아래에 결과가 줄줄이 나온다. 각 줄이 어느 print 에서 나온 것인지 짝을 지어 보는 습관을 들이면 좋다.

나오는 줄어느 줄에서 나왔나뜻
혼저 옵서예 제주두 번째 줄담아 둔 글을 그대로 내보냈다
9세 번째 줄글자 수를 셌다
['혼저', '옵서예', '제주']다섯 번째 줄띄어쓰기로 잘라 목록을 만들었다
3여섯 번째 줄잘린 조각의 개수다

대괄호와 따옴표가 붙어 있는 ['혼저', '옵서예', '제주'] 는 여러 개를 한 줄에 담은 목록이라는 표시다. 파이썬이 목록을 보여 줄 때 쓰는 모양이니 지금은 “세 조각이 들어 있구나” 정도로 읽으면 된다.

9 가 나오는 것이 의아할 수 있다. 눈에 보이는 글자는 일곱 개인데 공백 두 개까지 하나씩 세기 때문에 9가 된다. 컴퓨터에게는 공백도 엄연한 글자다.

□ 자주 나는 오류 세 가지

증상원인조치
SyntaxError 가 뜬다따옴표 한쪽이 빠졌다문장 양끝의 큰따옴표 짝을 확인한다
NameError: name 'sentence' is not defined 가 뜬다위쪽 셀을 실행하지 않았다맨 위 셀부터 차례로 실행한다
실행 단추가 계속 돌기만 한다연결이 끊겼다다시 연결하고 첫 셀부터 실행한다

오류 메시지의 첫 줄만 읽어도 셋 중 어느 경우인지 대개 갈린다. 고친 뒤에는 맨 위 셀부터 다시 실행하는 습관을 들이면 뒤엉킬 일이 줄어든다.

□ 오늘 확인할 것

  • 실습 환경에 로그인했다
  • 여섯 줄을 실행해 9 와 ['혼저', '옵서예', '제주'] 와 3 을 확인했다
  • 과제 제출 경로를 확인했다

□ 기본·심화 학습 경로

  • 기본: 제공 노트북을 바꾸지 않고 실행해 글자 수·조각 수와 두 확률표의 뽑기 결과 기록. 실행 후 TODO의 문장 한 곳만 바꾸고 출력 비교
  • 심화: 같은 출력 기록을 이용해 사실형·추천형의 차이에 대한 가설과 확인되지 않은 뽑기 조건 구분. 자기 Q1 문제에서 반복 가능성과 사실 검증이 각각 필요한 이유 설명
  • 두 경로 모두 제공 코드를 실행한 결과 해석 중심. 추가 구현이나 별도 TODO 요구 없음

[이론] 같은 질문에 답이 달라지는 이유를 “확률로 다음 단어를 고른다”는 개념으로 설명. 수식 없이

  • 활동 A의 기록표를 근거로 삼는다. 두 질문 중 어느 쪽이 더 많이 바뀌었는지, 왜 그런지를 세 문장에서 다섯 문장으로 쓴다
  • 채점은 세 단계로 나뉜다. 개념을 옳게 지목했는가, 기록을 근거로 설명했는가, 자기 예를 들었는가
  • 수식을 쓰지 않아도 정답이다. “표가 평평해서”라고 써도 개념을 짚었으면 점수가 나간다

[구현] Colab 환경을 열고 첫 코드를 실행. 이후 모든 주차 실습의 기반

  • 여섯 줄을 실행하고 출력값 세 개를 그대로 옮겨 적는다
  • 오류가 났다면 어떤 오류였고 어떻게 고쳤는지 한 줄로 적는다
  • 코드가 끝내 돌지 않아도 무엇을 확인하려 했는지 쓰면 부분 점수를 받는다

[실무] 제주에서 자기가 쓰는 서비스 중 언어모델이 들어간 곳을 지목하고 무엇을 대신해 주는지 정리

  • 서비스 세 개를 골라 표로 정리한다. 무엇을 대신해 주는가, 그 기능이 없으면 사람이 무엇을 해야 하는가
  • 제품 이름 대신 기능 이름으로 적는다. “말로 한 질문을 목적지로 바꿔 주는 기능”처럼 쓰면 된다
Q1. 언어모델은 답을 알고 있어서 대답하는 것인가?

모델에 학습된 정보가 답에 반영될 수는 있지만, 검증된 정답 문서를 그대로 꺼낸다고 볼 수는 없다. 앞에 나온 글 다음에 올 말로 무엇이 어울리는지를 확률로 재서 하나를 고른다. 그 고르기를 한 단어씩 반복하면 문장이 된다. 자주 맞는 답이 나오기는 하지만, 맞히는 것이 목표가 아니라 어울리는 말을 고르는 것이 하는 일의 전부다.

Q2. 같은 질문에 답이 매번 달라지면 고장 난 것인가?

고장이 아니라 정상 동작이다. 확률표에서 뽑기 때문에 생긴다. 같은 모델·입력·설정에서 가장 확률이 높은 것만 고르는 방식은 반복 가능성을 높인다. 실제 서비스에서는 숨은 입력이나 모델 설정이 바뀔 수도 있으므로 결과가 반드시 고정된다고 가정하지 않는다. 중요한 것은 지금 하려는 일이 “매번 같은 답이 필요한 일”인지 “여러 답이 나오는 편이 좋은 일”인지 먼저 정하는 것이다. 안내 문구를 만드는 일은 앞쪽이고, 아이디어를 모으는 일은 뒤쪽이다.

Q3. 답이 매끄럽고 자연스러우면 맞는 말로 봐도 되는가?

아니다. 확률이 높다는 것은 그동안 그런 말끼리 자주 붙어 다녔다는 뜻이지 참이라는 뜻이 아니다. 실제로 없는 장소 이름이나 없는 버스 번호도 문장으로는 아주 매끄럽게 나올 수 있다. 사실 여부는 사람이 원래 자료에서 확인해야 하고, 그 절차를 어떻게 설계하는지는 14주차에서 다룬다.

Q4. 프로그래밍도 수학도 해 본 적이 없는데 따라갈 수 있는가?

이 과목은 그 전제로 만들어졌다. 실습 노트북은 처음부터 돌아가는 상태로 주어지고 표시된 한 곳만 바꾸면 된다. 밑바닥부터 코드를 쓰게 하지 않는다. 채점도 코드가 완성됐는지가 아니라 결과를 어떻게 읽었는지를 본다. 코드가 돌지 않아도 무엇을 확인하려 했는지 쓰면 점수가 나간다. 설명에 수식을 쓰지 않아도 개념을 옳게 짚었으면 정답이다. 막히면 온라인 튜터에게 먼저 묻고, 그래도 안 풀리면 대면 시간에 가져오면 된다.

Q5. 가장 확률이 높은 말만 고르면 사실 오류도 없어지는가?

출력 선택과 사실 검증의 구분. 가장 큰 확률은 모델이 배운 문맥에서 어울리는 후보라는 뜻이며, 현실의 참값이라는 뜻은 아니다. 같은 틀린 답을 반복할 수도 있다. 제주 안내문의 장소·날짜는 원문 자료와 따로 대조하는 절차 필요.

Q6. 같은 답 세 번이면 확률표가 뾰족하다고 증명한 것인가?

세 번은 출력 관찰이며 내부 확률표의 측정은 아님. 뽑기 방식이 가장 큰 후보 고르기였거나 우연히 같은 후보가 나왔을 수도 있다. 제공 노트북에서는 표를 알고 비교할 수 있지만, 서비스 출력만 관찰했다면 가능한 이유와 미확인 조건을 구분할 필요.

Q7. 모델이 글을 읽어 배운다는 말은 빈도표를 그대로 저장한다는 뜻인가?

모델에 따른 학습 방법의 차이. 3주차 N-그램은 직접 센 빈도로 확률표를 만드는 예시. 9주차 이후의 신경망은 다음 토큰 예측을 고치며 가중치를 학습하는 방식. 두 경우 모두 자료의 영향을 받지만 저장 형태와 예측 방법은 다름.

Q8. 실행이 안 되면 결과를 예상해서 적어도 되는가?

예상과 실행 결과의 구분. 실행 여부·오류 메시지·확인하려던 출력을 기록하고, 실행하지 못한 값은 예상이라고 표시. 다른 사람의 기록을 자신의 실측 결과로 옮기지 않는 원칙. 오류를 가져와 해결하는 것도 학습 과정.

  1. 제주에서 먹고 싶은 것은 ___ 의 확률표에서 고기국수 0.25, 흑돼지 0.24, 갈치조림 0.18, 전복죽 0.12였다. “그 밖의 말 전부”의 확률은 얼마인가?
  2. 이 표대로 100번 뽑으면 고기국수는 대략 몇 번쯤 나오는가?
  3. 혼저 ___ 와 제주에서 먹고 싶은 것은 ___ 중, 세 번 물었을 때 세 번 모두 같은 답이 나올 가능성이 큰 쪽은 어느 쪽이며 그 이유는 무엇인가?
  4. 다음 중 자연어처리가 하는 일이 아닌 것은? (가) 후기를 만족과 불만으로 나누기 (나) 사진 속에서 고양이를 찾아내기 (다) 긴 공지를 세 줄로 줄이기 (라) 한국어 문장을 다른 언어로 옮기기
  5. Q1 문제 정의에서 “잘 됐는지 확인하는 법”을 반드시 적게 하는 이유는 무엇인가?
정답 보기
  1. 0.21이다. 확률표는 모두 더하면 1이 되므로, 1에서 0.25 + 0.24 + 0.18 + 0.12 = 0.79를 빼면 된다.
  2. 약 25번이다. 확률 0.25는 100번 중 25번쯤이라는 뜻이다. 정확히 25번이 아니라 25번 언저리다.
  3. 혼저 ___ 쪽이다. 확률이 옵서예 한 곳에 몰려 있어서, 즉 표가 뾰족해서 뽑을 때 옵서예가 나올 가능성이 높다. 세 번 중 다른 후보가 나올 수도 있다. 뒤쪽은 네 후보가 비슷하게 퍼져 있어서 뽑을 때마다 다른 말이 나오기 쉽다.
  4. (나)이다. 사진에서 대상을 찾는 일은 이미지를 다루는 분야의 몫이다. 나머지 셋은 모두 입력이 글이다.
  5. 확인하는 법이 없으면 잘 됐는지 못 됐는지를 말할 수 없기 때문이다. 확인 방법이 정해져야 고친 뒤에 나아졌는지 비교할 수 있고, 문제가 끝나는 지점도 생긴다.
용어한 줄 뜻
자연어사람이 일상에서 쓰는 말과 글. 프로그래밍 언어와 구분해서 부르는 말
자연어처리 (NLP)사람이 쓰는 말과 글을 컴퓨터가 다루게 만드는 기술
중의성같은 말이 상황에 따라 여러 뜻으로 읽히는 성질
언어모델앞에 나온 글을 보고 다음에 올 말의 확률을 매기는 모델
확률100번 중 몇 번쯤 일어나는지를 0과 1 사이 수로 적은 것
확률표후보마다 확률을 적어 둔 표. 모두 더하면 1이 된다
뾰족한 표확률이 한 곳에 몰려 있는 표. 답이 잘 바뀌지 않는다
평평한 표확률이 넓게 퍼져 있는 표. 답이 매번 달라지기 쉽다
문맥지금 자리 앞에 이미 나와 있는 글. 확률표를 바꾸는 재료
생성다음 말 고르기를 반복해 문장을 만드는 일
뽑기확률에 비례해 다음 말을 고르는 방식. 답이 매번 달라지는 이유
가장 큰 것 고르기확률이 가장 높은 후보만 고르는 방식. 답이 매번 같아진다
Colab브라우저에서 열리는 실습 환경. 설치할 것이 없다
사전 진단학기 초에 아는 것과 모르는 것을 표시해 두는 기록. 15주차에 다시 비교한다

주교재의 1장 도입부를 읽는다. 자세한 서지 정보와 공개본 주소는 강의계획서를 참고한다.

교재는 영어로 쓰여 있고 분량도 많다. 처음부터 끝까지 읽으려 하면 지치니 아래처럼 접근하기를 권한다.

  • 이번 주 용어 정리표의 낱말이 교재 어디쯤에 나오는지만 찾아본다. 그것만으로도 충분하다
  • 모르는 문장은 넘어간다. 3주차에 다시 이 장으로 돌아올 일이 생기는데 그때는 훨씬 쉽게 읽힌다
  • 번역기를 써서 읽어도 된다. 다만 번역된 문장이 이상하면 원문을 한 번 보는 습관을 들이면 좋다. 번역기가 왜 그렇게 옮겼는지 짐작해 보는 것도 이 과목의 공부다

Open In Colab

첫 코드 여섯 줄을 실행하고, 확률표에서 다음 단어를 뽑아 뾰족한 표와 평평한 표의 차이를 본다. TODO는 문장을 바꿔 넣는 한 곳이다.