11주차: 대규모 언어모델(LLM)의 시대, 특징과 활용
대규모 언어모델(LLM)의 시대, 특징과 활용.
□ 이번 주에 하는 일
- 현재 입력에 예시를 넣는 것과 모델을 새로 학습하는 것의 차이 이해
- 공개 제주 안내로 일반 모델의 zero-shot과 few-shot 실제 출력 비교
- 같은 질문을 일반 모델과 추론형 모델에 넣어 답·보이는 풀이·종료 상태 관찰
- Q4 근거 기준으로 답의 숫자와 미확인 정보 대조
펼친 책은 읽을 원문이고, 빈 카드는 아직 확인하지 않은 답의 자리다. 짧은 카드 길로 바로 도착할 수도, 여러 카드를 거쳐 도착할 수도 있다. 하지만 어느 길로 왔는지보다 카드의 답이 원문과 맞는지가 먼저다. 이번 주는 답을 만드는 방식과 답을 확인하는 기준을 함께 본다.
□ 10주차에서 이어지는 자리
10주차는 이미 학습된 모델로 분류와 이어쓰기를 실행했다. 중립 문장에도 감정 라벨이 붙었고, 자연스러운 이어쓰기가 실제 관광 안내와 같지는 않다는 것을 보았다. 이번 주에는 질문에 답하는 모델을 쓴다. 달라지는 것은 질문과 규칙·예시를 입력에 함께 넣고, 답을 원문과 대조한다는 점이다.
□ 이 문서를 읽는 법
- 수식과 학습 알고리즘 없이 입력과 출력의 현상부터 확인
- 공개 모델 이름은 파일을 찾기 위한 식별자. 상용 서비스 사용 불필요
- 기본 자료는 제주관광공사 VisitJeju 올레 6코스 안내의 짧은 발췌. 열람일 2026-10-11
- 발췌:
Jeju Olle Trail Route 6 is an 11-kilometer coastal and urban trail - 원문 뒤에 경로 설명이 이어지며 실습에서는 첫 절 끝에 마침표 추가
- 질문과 예시 답은 수업용 가공. 공식 안내의 새 사실·실제 후기·기업 데이터와 구분
- 그림은 사람이 정한 설명용 예시. 실제 모델 결과는 노트북에서 확인
- 제주 공개 데이터 출처와 모델 카드에서 사용 범위 확인
온라인 (2시수)
Section titled “온라인 (2시수)”강의 1: LLM과 문맥학습
Section titled “강의 1: LLM과 문맥학습”□ LLM은 무엇인가
앞서 배운 언어모델의 핵심은 문맥에서 다음 토큰을 예측하는 방식이었다. 대규모 언어모델은 많은 데이터와 큰 모델을 이용해 다양한 언어 패턴을 익힌 모델을 말한다. 지시를 따라 응답하도록 추가 준비한 모델도 이 범주에 포함된다.
그렇다면 몇 개의 숫자가 있어야 “대규모”인가. 모든 상황에 적용되는 단일 경계는 없다. 어느 시대의 모델과 비교하는지, 어떤 구조를 쓰는지에 따라 큰 모델의 범위가 달라진다. 이번 주의 공개 모델은 CPU로 실행하려고 고른 작은 모델이다. “LLM”이라는 이름을 붙였다는 이유만으로 최신 대형 모델과 같은 능력을 기대하지 않는다.
규모가 크다는 말은 정답 자료집이라는 뜻이 아니다. 모델 내부에는 학습 과정에서 조정한 숫자가 있다. 제주 문서에서 본 표현을 학습했을 수는 있지만, 이번 질문에 답할 때 오늘의 공식 원문을 자동 조회했다는 보장은 없다. 실제로 읽은 원문과 모델이 기억에 기대어 만든 문장을 구분해야 한다.
□ 이어쓰기에서 지시 응답으로
10주차의 이어쓰기 모델에 Jeju Olle Trail을 주면, 뒤에 올 법한 토큰을 붙였다. 이번 주 모델은 “주어진 원문에서 길이를 찾고, 원문에 없으면 UNKNOWN이라고 답하라”는 지시를 받는다. 질문을 받는 모습은 달라졌지만 답을 생성할 때는 앞의 입력과 지금까지 나온 토큰을 보고 다음 토큰을 붙이는 방식이 이어진다.
| 단계 | 무엇을 하는가 | 이번 실습에서 하는가 |
|---|---|---|
| 사전학습 | 많은 글에서 다음 토큰을 예측하며 언어 패턴을 익힌다 | 이미 끝난 공개 모델 사용 |
| 지시 응답을 위한 추가 준비 | 질문·지시에 맞는 답을 내도록 모델을 준비한다 | 학습 과정은 실행하지 않음 |
| 현재 입력 구성 | 원문, 질문, 규칙, 선택한 예시를 함께 준다 | 우리가 확인할 부분 |
| 추론 | 준비된 모델로 다음 토큰을 생성해 답을 만든다 | 노트북에서 실제 실행 |
| 근거 검토 | 나온 답의 주장을 원문과 대조한다 | 사람이 반드시 수행 |
사전학습의 언어 능력만으로 “없는 요금을 모른다고 답하기”가 항상 지켜지는 것은 아니다. 지시를 잘 따르는 능력과 사실을 맞히는 능력도 서로 같다 할 수 없다. 그래서 모델이 무엇을 생성했는지와 우리가 무엇으로 확인했는지를 나누어 기록한다.
□ 모델이 커지면 무엇이 달라지는가
모델·데이터·학습 자원을 늘리면 여러 과제에서 더 복잡한 패턴을 다룰 여지가 생긴다. Brown 등(2020)의 few-shot 연구도 입력에 예시를 주는 방식과 규모 확대를 함께 살폈다. 그러나 그 연구의 결과를 모든 모델과 모든 질문에 적용할 수는 없다. 어떤 질문에서 얼마나 좋아지는지는 해당 모델의 평가 자료로 확인할 문제다.
이번 노트북은 규모 확대 효과를 측정하는 실험이 아니다. 큰 모델과 작은 모델을 같은 조건으로 여러 질문에서 평가하는 구성이 아니기 때문이다. 두 작은 모델의 길이 질문 한 번으로 “큰 모델이 더 정확하다”거나 “제주 관광 업무에 적합하다”고 말할 수 없다.
7주차에 큰 공개 단어 벡터를 가져와도 하영이 사람 이름과 묶이고 바당을 찾지 못했던 것을 떠올려 보자. 자료가 많아져도 지역어가 드물거나 다른 뜻이 많다는 문제가 남았다. LLM에서도 데이터의 양과 해당 지역·과제에 필요한 데이터의 충분함은 따로 봐야 한다.
□ 입력에 예시를 넣는 이유
관광 안내 답변의 형식을 처음 설명한다고 하자. “짧게 답해 주세요”만 쓰면 한 문장, 목록, 긴 해설 중 무엇이 나올지 알기 어렵다. 원하는 질문과 답 한두 개를 먼저 보여 주면 어떤 형식을 원하는지 더 구체적으로 전달할 수 있다.
카드의 답은 이번 입력에서 참고할 예시다. 예시 카드를 치우고 새 질문만 주면 모델은 그 예시를 현재 입력에서 읽을 수 없다. 예시를 잠깐 보여 주는 것과 그 예시로 모델의 숫자를 학습해 저장하는 것은 다르다.
- zero-shot: 원하는 과제와 규칙만 제시, 답변 예시 없음
- few-shot: 과제와 규칙에 더해 소수의 입력·답변 예시 제시
- 문맥학습: 현재 입력 안의 예시를 참고하는 과정
- 미세조정과의 차이: 모델 내부의 숫자를 새로 학습해 바꾸는 과정 아님
그림의 zero-shot 단추를 누르면 공통 원문·질문·규칙만 남는다. few-shot을 누르면 그 앞에 답변 예시 두 개가 나타난다. 바뀌는 것은 입력의 앞부분이며, 아래의 원문·질문·규칙은 같다.
여기서는 사람이 예시 카드를 보여 주거나 숨겼을 뿐이다. 그림이 예시를 표시했다고 모델이 실제로 더 좋은 답을 만든 것은 아니다. 그 변화는 노트북에서 두 입력을 실제 모델에 넣고 나온 출력을 비교해야 확인된다.
□ 이번 실습의 질문과 예시
공개 발췌에는 Route 6, 11-kilometer, coastal and urban trail이 기재된 상태. 발췌에는 요금과 운영시간 정보 없음.
UNKNOWN은 이 발췌에서 확인하지 못했다는 뜻. 실제 요금이 없거나 무료라는 뜻이 아님. 별도의 공식 요금 자료를 확인하기 전에는 답의 범위를 넓히지 않는 기준.
□ 공개 원문부터 손으로 읽기
모델을 실행하기 전에 사람이 답의 기준을 정한다. 아래 문장은 노트북의 SOURCE와 같다. 첫 절을 발췌해 끝에 마침표를 붙였으며 다른 숫자나 요금은 추가하지 않았다.
Jeju Olle Trail Route 6 is an 11-kilometer coastal and urban trail.
먼저 세 부분을 표시해 보자. Route 6은 코스 번호, 11-kilometer는 발췌가 말하는 길이, coastal and urban은 길의 성격이다. 어디에도 fee, price, free가 없다. 길이를 묻는 질문에는 답이 있지만 요금을 묻는 질문에는 이 발췌만으로 답이 없다.
노트북의 질문도 그대로 읽는다.
How many kilometers is Route 6, and what is its admission fee?
□ 영어 입력을 읽는 짧은 안내
영어 문장을 새로 작성하는 과제가 아닌 구성. 아래 뜻을 확인한 뒤 제공된 입력 문자열은 그대로 실행. 질문을 한국어로 바꾸어 시험할 수는 있지만, 기본 조건과 구분한 별도 관찰로 기록할 필요.
| 입력 표현 | 한국어로 읽을 뜻 | 결과에서 볼 자리 |
|---|---|---|
| How many kilometers | 길이가 몇 km인가 | KM의 숫자와 단위 |
| admission fee | 입장 요금 | FEE의 값 또는 UNKNOWN |
| Use only the source | 제공 원문만 사용 | 원문 밖 정보 추가 여부 |
| quote the short evidence | 원문의 짧은 근거를 인용 | 실제로 있는 구절인지 대조 |
| UNKNOWN | 이 발췌로 확인하지 못함 | 무료·없음과 구분한 보류 |
한 질문 안에 확인 가능한 항목과 확인 불가능한 항목이 함께 있다. 길이를 맞혔다고 질문 전체를 맞혔다고 할 수 없다. 요금을 지어냈다면 답의 일부는 원문에 근거하고 다른 일부는 근거가 없는 상태다.
| 읽는 순서 | 발췌에서 찾는 것 | 실습 확인 기준 |
|---|---|---|
| 1. 대상 확인 | Route 6 | 다른 코스의 길이로 바꾸지 않음 |
| 2. 수치 확인 | 11-kilometer | KM=11 |
| 3. 요금 기재 확인 | 해당 표현 없음 | FEE=UNKNOWN |
| 4. 근거 확인 | 답을 뒷받침하는 원문의 짧은 구절 | 11-kilometer 등 실제 구절 인용 |
KM=11; FEE=UNKNOWN은 교사가 정한 답의 기준이지 아직 실행하지 않은 모델의 출력이 아니다. 모델이 다른 형식으로 같은 내용을 답했다면 내용과 형식을 나누어 기록한다. 예를 들어 길이를 맞혔더라도 지정 형식을 무시하면 “내용 맞음, 형식 다름”이다.
□ few-shot 예시 두 개가 가르치는 것
노트북의 첫 예시는 코스 번호와 운영시간을 묻는다. 답은 ROUTE=6; TIME=UNKNOWN. Evidence: Jeju Olle Trail Route 6.이다. 번호는 원문에 있고 운영시간은 없으므로, 한 답에서 아는 값과 모르는 값을 함께 표시하는 방식을 보여 준다.
두 번째 예시는 해안인지 내륙인지 묻는다. 답은 Coastal. Evidence: coastal and urban trail.이다. 답의 단어만 내놓지 않고 그 말을 어디서 읽었는지 붙인다. 두 예시는 마지막 질문의 요금을 알려 주지 않는다. 요금 자료가 새로 생기는 것도 아니다.
| 예시에서 보여 준 일 | 마지막 질문에 적용할 기준 | 예시가 제공하지 않은 것 |
|---|---|---|
| 코스 번호 6을 찾음 | 원문에서 묻는 숫자 찾기 | 새 길이 정보 |
| 운영시간을 UNKNOWN 처리 | 원문에 없는 요금도 UNKNOWN 처리 | 실제 요금·운영시간 |
| 해안 근거를 인용 | 길이 근거도 짧게 인용 | 별도 공식 조회 결과 |
학생이 바꾸는 use_examples는 두 예시를 선택할지 정하는 값이다. 코드 골격은 zero-shot과 few-shot을 모두 실제 실행한 뒤 선택한 조건을 다시 표시한다. 따라서 True를 False로 바꾸면 어느 조건을 선택했는지가 바뀐다. 모델을 더 학습하거나 세 번째 새 조건을 만드는 작업은 아니다.
□ 예시가 항상 도움을 주는가
few-shot은 답의 형식이나 기준을 전달하는 수단이지 정확성 향상의 보장은 아니다. 예시에서 잘못된 행동을 보여 주면 그 행동도 따라 할 수 있다. 같은 예시 두 개를 반복해서 늘리는 것보다 예시가 어떤 기준을 보여 주는지 확인하는 편이 먼저다.
아래 표의 나쁜 예시는 수업용으로 만든 입력 점검 사례다. 실제 모델에 넣어 결과를 얻었다는 뜻이 아니며, 기본 노트북에도 넣지 않는다.
| 예시 종류 | 설명용 예시의 문제 | 왜 점검해야 하는가 |
|---|---|---|
| 좋은 예시 | 번호는 원문에서 찾고 시간은 UNKNOWN 처리 | 근거 있는 값과 없는 값을 구분하는 규칙 전달 |
| 오염된 예시 | 원문에 없는 시간을 임의로 답함 | 모르는 값을 채워도 된다는 잘못된 규칙 전달 |
| 무관한 예시 | 관광 정보 질문 앞에 음식 취향 답변만 보여 줌 | 필요한 근거·출력 형식과 관계없는 문맥 증가 |
| 정답을 미리 넣은 예시 | 마지막 질문과 답을 그대로 복사 | 답을 복사했는지 다른 질문에도 적용하는지 구분 불가 |
이번 예시는 같은 짧은 원문을 사용한다. 그래서 보여 줄 수 있는 행동도 좁다. 이 형식이 긴 관광 문서나 한국어 질문에서도 유지되는지, 여러 코스 정보를 섞어도 제대로 답하는지는 별도의 평가가 필요하다. 실습 범위를 넘어선 능력을 예시 두 개로 증명하지 않는다.
□ 현재 입력 변경과 모델 학습의 차이
7주차에는 Word2Vec 학습으로 단어마다 숫자 목록을 고쳤다. 이번 주에는 그 일을 하지 않는다. 이미 저장된 모델을 그대로 두고 읽을 입력을 바꾼다. 문맥학습의 “학습”이라는 말 때문에 두 과정을 같게 보면 실험 결과를 잘못 해석하기 쉽다.
| 구분 | 현재 few-shot 입력 | 모델 미세조정 |
|---|---|---|
| 바꾸는 것 | 질문 앞에 넣는 예시 텍스트 | 모델 내부의 숫자 |
| 별도 학습 과정 | 없음 | 있음 |
| 예시를 입력에서 빼면 | 다음 입력에서 예시를 읽지 못함 | 학습 결과가 저장된 모델 사용 가능 |
| 이번 주 실행 | 예시 유무 비교 | 실행하지 않음 |
예시를 넣어 답이 바뀌었다면 “이 입력에서 예시를 참고해 답이 달라졌다”고 기록한다. “관광 지식을 새로 학습했다”거나 “이제 모든 요금을 잘 답한다”고 기록하지 않는다. 변경한 대상에 맞는 설명이 중요하다.
□ 강의 1에서 꼭 가져갈 것
- LLM의 언어 생성 능력과 공식 사실 확인 능력의 구분
- zero-shot과 few-shot의 차이는 현재 입력의 예시 유무
- 문맥학습과 모델 내부 숫자를 바꾸는 학습의 구분
- 규모 확대와 few-shot 모두 과제별 검증 필요
강의 2: 추론형 모델과 근거 확인
Section titled “강의 2: 추론형 모델과 근거 확인”□ 왜 답 전에 풀이를 생성하는가
여러 조건을 함께 확인하는 질문에서는 한 가지를 놓치기 쉽다. 코스의 길이와 요금을 동시에 묻는 이번 질문에서도 숫자 하나를 찾은 뒤, 요금까지 알고 있다고 착각할 수 있다. 답을 바로 내놓기보다 조건을 나누고 중간 결과를 정리하면 놓친 조건을 살필 여지가 생긴다.
추론형 모델은 이런 풀이를 생성한 뒤 답을 내놓는 동작을 활용한다. 이번 주는 모델이 어떤 학습 방법으로 그렇게 준비되었는지 계산하지 않는다. 같은 질문에서 답이 바로 나오는지, 풀이가 앞에 나오는지, 풀이를 끝내고 실제 답까지 냈는지를 관찰한다.
그림에서 “바로 답하는 형태”를 고르면 답 칸만 읽는다. “풀이 뒤 답하는 형태”에서는 원문에 길이가 있고 요금은 없다는 점검 예시가 먼저 나온다. “풀이 도중 길이 제한”에서는 답 칸이 비어 있다. 그림의 문장들은 사람이 정한 설명용 예시이며 실제 모델 출력이 아니다.
보이는 풀이도 모델이 생성한 텍스트다. 원문의 길이를 정확하게 인용해도 그 뒤에 없는 요금을 붙일 수 있다. 반대로 풀이를 길게 쓰지 않아도 최종 답이 원문에 맞을 수 있다. 읽기 쉬운 풀이, 긴 풀이, 정답은 서로 다른 평가 항목이다.
보이는 풀이가 실제 내부 판단을 충실하게 설명하는지도 별도의 문제다. Turpin 등(2023)의 설명 충실성 연구는 출력의 설명이 모델의 판단에 영향을 준 요인을 빠뜨릴 수 있음을 보였다. 이는 “풀이가 언제나 거짓”이라는 뜻이 아니다. 그럴듯한 풀이만 읽고 내부 과정까지 확인했다고 단정하지 말라는 이유다.
□ 일반 모델과 추론형 모델 비교의 범위
이번 실습에서는 서로 다른 작은 공개 모델에 같은 공개 원문과 질문을 넣는다. 한 모델의 이름만 바꿔 표시하는 시연이 아니다. 일반 모델을 실제로 불러와 예시 없는 입력과 예시 있는 입력을 실행하고, 그 모델의 메모리 참조를 해제한 뒤 다른 추론형 모델을 불러온다.
| 구분 | 일반 모델 | 추론형 모델 |
|---|---|---|
| 식별자 | Qwen2.5-0.5B-Instruct | Qwen3-0.6B |
| 사용 방식 | 지시 응답 | thinking 모드 |
| 새 토큰 상한 | 64 | 256 |
| 읽을 출력 | 답과 근거 | 보이는 풀이, 최종 답, 종료 상태 |
| 공통 조건 | CPU, 같은 원문·질문, 학습 없음 | CPU, 같은 원문·질문, 학습 없음 |
□ 같게 둔 조건과 달라지는 조건
비교에는 두 종류가 있다. 먼저 일반 모델 안에서 zero-shot과 few-shot을 비교한다. 같은 모델·원문·질문·규칙·생성 설정을 두고 예시만 추가한다. 다음으로 일반 zero-shot과 추론형의 예시 없는 결과를 비교한다. 입력 원문과 질문은 같지만 모델과 생성 설정은 다르다.
| 조건 | 일반 zero-shot ↔ few-shot | 일반 zero-shot ↔ 추론형 |
|---|---|---|
| 공개 원문·질문 | 같음 | 같음 |
| 원문만 사용·UNKNOWN 규칙 | 같음 | 같음 |
| 앞의 예시 두 개 | 없음 ↔ 있음 | 둘 다 없음 |
| 모델 파일 | 같음 | 다름 |
| 모델 크기·준비된 학습 결과 | 같음 | 다름 |
| 생성 설정·길이 상한 | 같음 | 다름 |
| 판단할 수 있는 것 | 이 입력에서 예시 유무에 따른 출력 차이 | 두 실행에서 보이는 답·풀이의 차이 |
표의 오른쪽은 한 가지 조건만 바꾼 실험이 아니다. 추론형이 길이를 맞혔더라도 “추론을 했기 때문에 맞혔다”고 원인을 분리할 수 없다. 반대로 일반 모델만 맞혔다고 “추론은 소용없다”고 결론 낼 수도 없다. 관찰한 현상은 적되, 여러 조건이 섞인 원인을 단정하지 않는다.
□ 작은 모델과 토큰 상한을 쓰는 이유
두 모델을 float32로 CPU에서 실행하면 모델 파일과 계산에 메모리가 필요하다. 새 토큰을 하나 붙일 때마다 앞의 문맥을 참고하며 다시 계산하므로, 짧은 답보다 긴 풀이를 만드는 데 대기 시간이 더 들 수 있다. 무료 CPU 환경에서 수업 전체가 실행할 수 있도록 작은 공개 모델과 짧은 생성 상한을 쓴다.
일반 모델은 최대 64개, 추론형은 최대 256개의 새 토큰을 생성한다. 이것은 “64단어”나 “256글자”가 아니다. 토큰은 글의 조각이므로 언어와 표현에 따라 글자 수가 달라진다. 추론형은 풀이와 최종 답이 같은 상한을 나누어 쓴다. 풀이가 길어지면 답에 쓸 자리가 남지 않을 수 있다.
추론형의 샘플링 설정은 공개 모델 카드에 맞춰 temperature=0.6, top_p=0.95, top_k=20을 쓴다. 이 수치의 계산을 배우는 주차는 아니다. 일반 모델과 달리 생성에 무작위 선택이 포함되며 seed=42로 비교 조건을 정했다는 점만 확인한다. 환경이 달라져도 출력이 완전히 같다는 보장은 없다.
□ 풀이 도중 끝나면 어떻게 읽는가
CPU 비용을 제한하려면 생성 길이 상한이 필요하다. 추론형 모델이 풀이만 쓰다가 상한에 도달할 수 있다. 이때 중요한 것은 미완료 상태를 숨기지 않는 것이다. 길이 제한으로 끝난 텍스트를 정상적인 완성 답과 같이 채점하면 모델 비교가 어긋난다.
이번 모델은 </think>로 풀이의 끝을 표시한다. 이 경계 전 종료하면 answer=None, status: truncated다. 경계 뒤 답도 중간에 잘릴 수 있으므로 실제 텍스트와 상태를 함께 읽는다. 도중 풀이를 최종 답으로 옮겨 적지 않는다. 상한은 이번 실행의 제약이지 모델이 항상 답하지 못한다는 뜻이 아니다.
□ Q4: 그럴듯한 답과 맞는 답의 구분
관광객에게 잘못된 요금을 알려 준 상황을 상정해 보자. “무료니까 가 보세요”라는 문장이 친절하고 자연스럽다는 사실은 요금의 근거가 아니다. 주장의 대상, 값, 출처, 최신성을 각각 확인해야 한다. 실제 기업의 사례가 아니라 잘못된 안내의 영향을 생각하기 위한 상정 조건이다.
답의 모든 부분에 같은 도장을 찍지 않는다. 길이는 원문과 맞고 요금은 미확인일 수 있다. 근거를 대조할 단위는 답 전체의 인상이 아니라 각 주장이다.
| 답의 주장 | 발췌에서 확인할 것 | 처리 |
|---|---|---|
| 길이는 11km | 11-kilometer | 원문 발췌에 근거 있는 답 |
| 입장 요금은 무료 | 발췌에 요금 없음 | 미확인, 공식 요금 자료 대조 필요 |
| 해안·도심 구간 포함 | coastal and urban trail | 원문 발췌에 근거 있는 답 |
| 오늘도 같은 조건 | 발췌만으로 현재 운영 확인 불가 | 최신 운영 자료 대조 필요 |
열람한 같은 페이지에서도 상단 설명은 13.3km, 상세 본문은 11km로 표기가 다르다. 노트북은 상세 본문의 짧은 발췌를 제공했으므로 그 입력에서의 기준은 KM=11이다. 모델이 발췌의 11km를 되풀이했다고 최신 코스 길이를 검증한 것은 아니다.
| 확인하려는 질문 | 필요한 근거 | 이번 발췌의 충분함 |
|---|---|---|
| 제공한 발췌는 길이를 얼마라고 적었나 | 발췌의 11-kilometer | 충분, 답 기준 11 |
| 현재 실제 코스 길이는 얼마인가 | 최신 운영 안내와 불일치 해소 | 불충분, 판단 보류 |
| 실제 입장 요금은 얼마인가 | 해당 항목의 공식 요금 자료 | 불충분, 판단 보류 |
같은 기관의 원문끼리도 불일치가 생길 수 있다. 한 숫자를 골라 답을 매끄럽게 만드는 것보다 어느 구절을 사용했는지와 무엇이 아직 확인되지 않았는지 남기는 편이 더 책임 있는 안내다. 출처 링크가 있다는 것만으로 그 안의 값이 일치하거나 최신이라는 보장도 없다.
□ 환각 사례의 구분
환각은 사실과 다르거나 근거로 뒷받침되지 않는 생성 내용을 가리킨다. 원인을 단정하기 전에 입력·출력·근거를 함께 보존한다.
- 없는 값 생성: 원문에 없는 요금을 임의 제시
- 원문 오독: 길이 11을 다른 숫자로 변경
- 출처 왜곡: 실제로 읽지 않은 자료를 근거로 제시
- 오래된 정보: 과거 정보를 현재 조건처럼 안내
- 확인 보류: 근거 자료가 없어 참·거짓을 아직 판단하지 못하는 상태
미확인과 거짓은 구분한다. 요금 자료가 없다는 이유만으로 무료라는 주장 자체가 거짓이라고 단정할 수는 없다. 다만 “이 원문에 근거해 답하라”는 조건은 충족하지 못했다. 나중에 공식 자료에서 무료라고 확인되더라도, 처음에 원문 없이 무료라고 답한 과정이 근거 있는 답으로 바뀌지는 않는다.
확인 절차는 짧게 만들 수 있다. 1) 답을 길이·요금·현재 운영처럼 주장별로 나눈다. 2) 각 주장과 맞는 원문 구절을 찾는다. 3) 구절이 없거나 자료가 충돌하면 미확인으로 표시한다. 4) 공식 자료 대조 전에는 해당 정보를 관광객에게 안내하지 않는다. 모른다고 말하는 것도 결과다.
□ 강의 2에서 꼭 가져갈 것
- 보이는 풀이와 정확한 답의 구분
- 길이 제한으로 최종 답이 없는 실행의 표시
- 두 모델의 여러 조건 차이와 비교 해석의 한계
- 주장별 원문 근거 대조와 미확인 정보의 안내 보류
- 모델 출력에서 사실과 다른 답 또는 원문에 근거 없는 주장 1건 수집
- 질문, 입력 원문, 실제 출력, 대조 자료 함께 보존
- 틀린 숫자·없는 값·출처 왜곡·최신성 문제 중 해당 유형 기록
- 해당 사례가 나오지 않으면 실제 출력의 근거 있는 주장 1건과 미확인 처리 1건 기록
- 없는 환각 사례를 실제 모델 결과처럼 만들지 않는 원칙
대면 (1시수)
Section titled “대면 (1시수)”노트북 돌려 보기
Section titled “노트북 돌려 보기”필수 작업은 전체 실행과 출력 해석. 선택 활동은 use_examples를 True 또는 False로 바꾸는 한 지점.
- 준비 셀 실행과 CPU 두 스레드 확인
- 공개 원문, 동일 질문, 정답·근거 기준 확인
- 일반 모델의 zero-shot과 few-shot 실제 출력 비교
- 선택한 조건의 표시와 입력 예시 유무 확인
- 일반 모델 메모리 해제 후 추론형 모델 실행
- 일반 zero-shot과 추론형의 답·풀이·종료 상태 비교
- Q4 기준으로 숫자, 요금, 근거 인용의 타당성 기록
기본값 그대로 끝까지 실행되는 골격. 처음에는 모델 파일 총 수 GB 다운로드 필요. GPU 설정과 모델 학습 불필요. 두 모델을 동시에 보관하지 않는 구성.
□ 출력 읽는 법
status: ok: 추론 결과 반환. 사실성 확인을 통과했다는 뜻과 구분raw: 모델이 실제 생성한 텍스트visible_process: 추론형의 보이는 풀이, 내부 상태 증명과 구분answer: 풀이 종료 경계 뒤 답. 경계가 없으면 Nonenew_tokens,budget: 새 토큰 수와 생성 상한status: truncated: 불완전 출력. 풀이 경계 전 종료면 최종 답 미완료status: unavailable: 설치·다운로드·추론 실패. 모델 결과 없음
결과는 이름 붙은 칸을 가진 딕셔너리로 표시된다. 아래는 읽는 자리만 보여 주는 설명용 틀이며 실제 실행 출력이 아니다. 꺾쇠 괄호 부분에 이번 실행의 내용이 나온다고 생각하면 된다.
status: <ok / truncated / unavailable 중 실제 상태>raw: <실제로 생성된 원문 출력>visible_process: <보이는 풀이, 일반 모델은 None>answer: <최종 답, 풀이 경계가 없으면 None>new_tokens: <이번에 실제 생성한 토큰 수>budget: <실행에 정한 상한>먼저 status를 보고, 결과가 있으면 raw와 answer를 읽는다. 다음으로 길이·요금·근거를 대조한다. 마지막에 토큰 수와 시간을 읽는다. 실행 성공, 내용 정확성, 생성 비용을 이 순서로 나누어 기록한다. 빠르게 끝났다는 사실이 좋은 답을 뜻하지는 않는다.
□ 실제 실행에서 읽는 것
아래는 2026-10-11의 로컬 CPU 실행에서 나온 실제 답이다. Python 3.12, torch 2.14.1, transformers 4.57.6, CPU 두 스레드·float32 조건으로 기본값을 바꾸지 않고 실행했다. 모델 파일은 노트북에 지정한 일반 모델 고정 버전과 추론형 고정 버전을 사용했다. 아래 수치는 이 실행의 관찰값이며 모든 환경의 보장값은 아니다.
| 조건 | 실제 최종 답 | 새 토큰 수·상태 |
|---|---|---|
| 일반 zero-shot | KM=11; FEE=UNKNOWN | 10, ok |
| 일반 few-shot | KM=11; FEE=UNKNOWN. Quote evidence: Jeju Olle Trail Route 6 is an 11-kilometer coastal and urban trail. | 35, ok |
| 추론형, 예시 없음 | KM=11; FEE=UNKNOWN. The source states that Route 6 is an 11-kilometer coastal and urban trail. | 169, ok |
표를 한 번에 “모두 정답”으로 읽지 말고 세 항목으로 나누어 보자.
- 값: 세 조건 모두 발췌의 길이 11과 원문에 없는 요금 UNKNOWN을 답했다
- 근거: 일반 zero-shot은 근거 인용 지시를 따르지 않았다. few-shot은 원문 문장까지 붙였고, 추론형의 최종 답도 길이 근거를 제시했다. 이번 입력에서는 예시 추가 뒤 근거 제시가 달라졌다
- 과정과 비용: 추론형은 풀이를 생성하고 종료 경계까지 지난 상태(
thinking_closed=True)라 최종 답을 따로 읽을 수 있었다. 169는 풀이와 최종 답을 합친 새 토큰 수이며, 최종 답만 169토큰이라는 뜻이 아니다
이 관찰은 이번 질문에서의 결과다. 모든 질문에서 few-shot이 개선된다거나, 추론형이 더 정확하다는 근거로 넓히지 않는다. 답의 값은 세 조건이 같았고, 다른 것은 근거 제시와 풀이·토큰 수였다. 실행 시간은 장비와 환경에 좌우되므로 모델 방식의 효과나 일반적인 속도 순위를 주장하지 않는다. 이 결과도 발췌의 답이며 최신 실제 코스 길이·요금을 확정한 것은 아니다.
| 증상 | 기록과 다음 조치 |
|---|---|
| 모델 다운로드가 오래 걸림 | 실행 대기, 중복 실행 금지 |
| unavailable | 실제 오류 보존, 연결·설치·메모리 확인 후 재실행 |
| 풀이만 있고 답 없음 | truncated 표시, 미완료를 정답으로 대체 금지 |
| 예시를 넣어도 답 변화 없음 | 실제 결과로 기록, 개선을 지어내지 않음 |
| 요금을 무료로 답함 | 근거 없는 주장 분류, 공식 요금 자료 대조 전 안내 보류 |
□ 비교 기록
| 항목 | 일반 zero-shot | 일반 few-shot | 추론형 |
|---|---|---|---|
| KM=11 여부 | |||
| FEE=UNKNOWN 여부 | |||
| 원문 근거 인용 여부 | |||
| 새 토큰 수·종료 상태 | |||
| 보이는 풀이와 최종 답 구분 | 해당 없음 | 해당 없음 |
- 기본 단계: 제공된 실제 출력 한 조건에서 길이·요금·근거 인용을 원문과 대조하고, 확인·미확인 항목 기록
- 심화 단계: 같은 질문의 zero-shot·few-shot·추론형 출력에서 내용·근거·종료 상태의 차이를 비교하고, 모델 전체 능력으로 일반화할 수 없는 이유 설명
[이론] 환각 사례의 유형과 근거 부족의 구분
- 실제 출력에서 틀린 숫자·없는 값·출처 왜곡·최신성 문제 중 한 사례 선택
- 입력 원문, 질문, 실제 답, 대조 구절을 한 묶음으로 기록
- 어떤 정보가 없었거나 어떻게 오독했는지 개념으로 설명
- 오류 사례가 없으면 근거 있는 주장과 미확인 처리를 하나씩 기록. 실제로 나오지 않은 환각을 만들어 제출하지 않음
- 정답처럼 들리는지를 평가하는 것이 아니라, 실제 주장과 원문을 대조했는지가 핵심
[구현] few-shot 예시 유무와 일반·추론형 모델의 현상 비교
- 노트북을 위에서부터 실행하고 zero-shot, few-shot, 추론형의 실제 출력 보존
- 선택 활동:
use_examples를 True/False로 바꿔 선택한 조건 표시 확인 - 비교표에 내용 정확성, 형식, 근거 인용, 새 토큰 수, 종료 상태를 각각 기록
- 추론형의 도중 풀이와 최종 답을 분리. unavailable이면 모델 결과 없음, truncated이면 불완전 출력으로 표시
- 코드를 새로 작성하거나 학습시키는 활동은 없음. 실패했으면 오류와 무엇을 확인하려 했는지 기록
[실무] 관광객에게 잘못된 안내를 준 상정 상황의 대응
- 원문에 없는 요금을 모델이 제시한 상황에서 무엇을 먼저 확인할지 기록
- 원문에서 읽을 수 있는 사실과 최신 공식 안내가 필요한 사실 구분
- 근거 확인 절차를 한 문장으로 작성. 예: “답의 수치·요금을 원문과 대조하고, 빠진 값이나 충돌은 미확인으로 남겨 공식 확인 전 안내 보류.”
- 모델을 신뢰한다는 주장보다, 확인 불가능한 답을 어떻게 다룰지 구체적으로 설명
□ 제출
- 실제 출력, 비교표, 확인 질문 답을 포함한 노트북과 근거 확인 절차 제출
- 기본값으로 실행한 결과도 제출 가능. 선택 활동 수행 시 선택값과 비교한 조건 함께 기록
- 실패·불완전 출력은 오류와 미완료 단계 표시, 가상 답으로 대체 금지
- 경로:
assignments/week-11/<학번>/, 학번만 사용 - 과제 제출 안내에 따라 Pull Request 제출
자주 하는 오해 Q&A
Section titled “자주 하는 오해 Q&A”Q1. 모델이 크면 더 정확하고 사실 확인도 잘하는가?
크기만으로 단정할 수 없다. 데이터, 학습 과제, 입력 언어, 질문의 종류도 영향을 준다. 이번 두 작은 모델의 비교는 규모 확대 실험이 아니다. 같은 원문의 길이를 맞혔다는 사실과 다른 관광 정보를 정확하게 답한다는 능력도 구분해야 한다.
Q2. few-shot 예시를 넣으면 모델을 새로 학습한 것인가?
아니다. 현재 입력 안에 예시 텍스트를 넣어 참고하게 한다. 모델 내부의 숫자를 업데이트하는 미세조정과 다르다. 다음 입력에서 예시를 빼면 그 예시를 현재 문맥에서 읽지 못한다. 답이 바뀌었다면 이 입력에서의 변화로 기록한다.
Q3. 예시 두 개에 정답이 있으면 마지막 질문도 반드시 맞히는가?
보장하지 않는다. 마지막 질문은 길이와 요금을 함께 묻고, 예시는 번호·시간·해안 여부를 보여 준다. 모델이 없는 값을 UNKNOWN으로 처리하는 방식을 적용할 수도, 무시할 수도 있다. 예시가 보여 주는 기준과 실제 결과를 각각 확인해야 한다.
Q4. 원문에 없는 요금을 무료라고 답하면 어떻게 다룰 것인가?
이 발췌에 근거 없는 주장으로 기록한다. 실제 요금의 참·거짓은 별도 공식 자료 대조가 필요하므로 바로 거짓이라고 단정하지도 않는다. 실습 답의 기준은 FEE=UNKNOWN이다. 관광객 안내는 해당 요금을 공식 확인할 때까지 보류한다.
Q5. 보이는 풀이가 길면 더 정확하며 내부 판단도 알 수 있는가?
둘 다 길이로 판단할 수 없다. 긴 풀이에서도 원문에 없는 값을 넣을 수 있고, 자연스러운 설명이 실제 판단 요인을 모두 드러낸다는 보장도 없다. 최종 답의 정확성, 풀이 문장의 근거, 설명 충실성을 나누어 본다.
Q6. 풀이 도중 토큰 상한에 도달했으면 틀린 답인가?
풀이 경계 전에 종료했다면 최종 답이 없는 불완전 실행이다. truncated, answer=None으로 기록한다. 완성된 오답과도 구분하며 도중 풀이나 사람이 만든 답으로 빈칸을 채우지 않는다. 상한을 적용한 이번 실행으로 모델의 모든 능력을 단정할 수 없다.
Q7. 추론형만 맞혔다면 추론 덕분에 맞혔다고 말해도 되는가?
관찰한 두 출력의 차이는 말할 수 있지만 원인을 하나로 분리할 수 없다. 모델 파일, 크기, 학습 결과, 생성 설정과 토큰 상한도 다르다. 원문·질문이 같다는 사실만으로 나머지 차이가 사라지지 않는다.
Q8. KM=11이면 최신 코스 길이까지 확인한 것인가?
아니다. 제공한 상세 본문 발췌가 11km라고 썼다는 답이다. 같은 공개 페이지의 상단에는 13.3km가 있어 원문 간 불일치가 남는다. 최신 실제 길이를 안내하려면 별도 확인으로 충돌을 해소해야 한다. 출처에 맞는 답과 최신 현실에 맞는 답은 따로 점검한다.
스스로 점검
Section titled “스스로 점검”- LLM이라는 이름이 사실 자료집을 뜻하지 않는 이유를 말하라.
- zero-shot과 few-shot에서 무엇이 같고 무엇이 다른가?
- 이번 예시에서 TIME=UNKNOWN이 마지막 질문의 요금 판단과 어떻게 연결되는가?
- 문맥학습과 미세조정은 무엇을 바꾸는지가 어떻게 다른가?
- 일반 모델과 추론형의 비교에서 추론의 효과만 분리할 수 없는 이유는?
- visible_process와 answer, truncated와 unavailable을 구분하라.
- 모델이 KM=11을 답해도 최신 실제 코스 길이 판단을 보류하는 이유는?
- 요금이 무료라는 답을 받았을 때 실행할 근거 확인 절차를 한 문장으로 적어라.
정답 보기
- 모델은 학습한 언어 패턴으로 토큰을 생성한다. 매 질문마다 공식 원문이나 최신 운영 정보를 조회했다는 보장이 없다. 사실 검토는 별도 과정이다.
- 모델, 원문, 질문, 규칙은 같고 앞의 예시 두 개만 다르다. 이번 일반 모델 비교에서는 생성 설정도 같다. 예시 추가가 실제로 무엇을 바꿨는지는 출력으로 확인한다.
- 원문에 없는 항목을 UNKNOWN으로 처리하는 기준을 보여 준다. 시간 대신 요금을 묻더라도 발췌에 기재가 없으면 같은 기준으로 확인해야 한다. 실제 요금이 없다는 뜻은 아니다.
- 문맥학습은 현재 입력 텍스트를 바꾸고, 미세조정은 모델 내부의 숫자를 학습으로 바꾼다. 이번 노트북은 입력만 바꾼다.
- 모델 파일·크기·학습 결과·생성 설정·상한도 다르기 때문이다. 같은 질문에서 두 출력이 달랐다는 관찰까지만 확인된다.
- visible_process는 보이는 풀이, answer는 풀이 경계 뒤 답이다. 경계 전에 끝나면 최종 답 미완료로 truncated 표시. 설치·다운로드·추론에 실패한 unavailable은 모델 결과가 없는 상태다.
- 발췌의 11km와 같은 페이지 상단의 13.3km가 충돌하기 때문이다. 실습에서 발췌를 읽었는지 확인한 것과 최신 운영 정보를 확정한 것은 다르다.
- 출력의 요금 주장을 공식 요금 원문과 대조하고, 근거가 없거나 충돌하면 미확인으로 남겨 확인 전 안내를 보류한다. 일단 자연스러우니 안내한다는 선택은 근거 기준을 충족하지 못한다.
이번 주 용어 정리
Section titled “이번 주 용어 정리”| 용어 | 한 줄 뜻 |
|---|---|
| LLM | 많은 글에서 언어 패턴을 익힌 대규모 언어모델 |
| 문맥학습 | 현재 입력의 설명·예시를 참고해 응답하는 현상 |
| zero-shot | 답변 예시 없이 과제와 규칙을 제시하는 방식 |
| few-shot | 소수의 입력·답변 예시를 먼저 제시하는 방식 |
| 추론형 모델 | 풀이 과정을 생성한 뒤 답하는 동작을 활용하는 모델 |
| 환각 | 사실과 다르거나 근거로 뒷받침되지 않는 생성 내용 |
| 근거 | 주장 확인에 사용하는 원문·정답·공식 자료 |
| 미확인 | 현재 자료로 주장 타당성을 확인하지 못한 상태 |
이번 주 읽기
Section titled “이번 주 읽기”주교재 7장 Large Language Models. 자세한 서지 정보는 강의계획서를 참고한다. 이름과 목적을 연결하는 데 집중하며 수식·학습 알고리즘은 이번 주 범위에서 제외한다.
- 사전학습한 모델에 지시와 예시를 주어 여러 과제에 사용하는 부분을 찾아 읽는다. 예시를 입력에 넣는 것과 내부 숫자를 학습으로 바꾸는 것을 구분한다
- 모델이 크다는 말과 해당 과제에서 검증된 정확성을 연결해 단정하지 않는다. 이번 질문·원문·확인 기준이 왜 먼저 필요한지 떠올려 본다
- Brown 등(2020), Language Models are Few-Shot Learners: 입력 안의 예시만으로 과제를 지정한 연구. 방법의 직관과 한계를 읽고, 그 연구의 모델 수치를 이번 작은 모델의 결과로 옮기지 않음
- Turpin 등(2023), Language Models Don’t Always Say What They Think: 보이는 풀이의 설명 충실성을 따로 확인해야 하는 이유. 세부 실험·알고리즘은 선택 읽기
- 일반 공개 모델 카드, 추론형 공개 모델 카드: 식별자·라이선스·thinking 모드와 실행 조건 확인
- 제주관광공사 올레 6코스 원문: 발췌 정보와 최신 안내의 구분, 상단과 상세 본문의 수치 불일치 확인
실습 노트북
Section titled “실습 노트북”공개 제주 안내를 같은 질문과 함께 일반 모델에 넣어 예시 유무를 비교하고, 다른 추론형 모델의 보이는 풀이와 최종 답을 대조한다. TODO는 use_examples의 True/False를 바꾸는 한 곳이다. 출력의 수치·요금·근거를 구분한 기록이 12주차 중간 프로젝트의 프롬프트 검토로 이어진다.