초급 마지막 글에서는 문의 문장을 분류하는 작은 프로그램을 완성했습니다. 중급에서는 모델 앞뒤에서 생기는 문제를 하나씩 다뤄보겠습니다. 첫 주제는 입력 데이터입니다. 상품 수가 비어 있거나 처음 보는 포장 종류가 들어오면, 학습 때 잘 돌던 코드도 멈출 수 있습니다. 이번에는 초급 05편의 포장 시간 예측을 가져와 숫자와 문자열이 섞인 주문표로 확장합니다. 입력을 다듬는 규칙까지 모델과 함께 묶어두는 것이 목표입니다.1. 빈칸을 채우기 전에 자료부터 나눈다주문표의 입력은 상품 수와 포장 종류, 정답은 실제 포장에 걸린 시간이라고 가정하겠습니다. 상품 수에는 빈칸이 있고, 포장 종류는 일반과 완충 두 가지입니다. 이 표와 시간 값은 설명을 위해 직접 만들었습니다. 학습 주문 8건과 별도 테스트 주문 3건을..
배송 문의를 읽고 담당 업무를 나누는 작은 프로그램을 만들어 보겠습니다. 문장을 넣으면 배송, 환불, 기타 가운데 하나를 고르는 분류기입니다. 답변을 작성하거나 주문을 처리하지는 않습니다. 마지막 실습은 별도 API 없이 실행할 수 있는 문장 분류기입니다. 03–07편의 데이터·학습·평가 과정을 하나로 묶어 보겠습니다. 자료를 준비하고 모델을 학습한 뒤, 예측 결과와 틀린 문장을 확인하는 순서로 진행합니다.1. 먼저 무엇을 맞힐지 정한다분류 기준부터 정해 봅시다. 택배 위치와 출고 일정은 배송, 반품과 결제 취소는 환불, 회원 정보와 쿠폰은 기타로 묶습니다. 여기서는 이 세 가지 중 하나만 선택합니다. “택배가 늦어서 취소하고 싶어요”처럼 여러 의도가 섞인 문의의 처리 기준은 따로 필요하지만, 이번 자료..
배송 문의에 답하는 프로그램을 만든다고 해 봅시다. 언어 모델에 “친절하게 답해 줘”라고 요청하면 문장은 자연스러울 수 있습니다. 그런데 주문 상태를 주지 않았다면 언제 도착하는지는 알 수 없습니다. 이번에는 요청을 구체적으로 쓰는 방법과, 돌아온 답을 그대로 쓰기 전에 확인할 부분을 살펴보겠습니다. 모델을 호출하는 대신 직접 만든 예시와 짧은 파이썬 검사 코드로 연습합니다.1. 친절하게 답하라는 말에 빠진 것프롬프트는 모델에 전달하는 요청과 문맥입니다. “이 배송 문의에 친절하게 답해 줘”에는 할 일이 들어 있지만, 어떤 자료를 참고해야 하는지와 모를 때 어떻게 답해야 하는지가 빠져 있습니다. 말투만 정해 놓으면 필요한 사실까지 채워 준다고 기대하기 쉽습니다. 먼저 작성할 답변의 목적과 사용할 자료의 ..
배송 문의에 답하는 챗봇을 보면 문장이 한 번에 완성되는 것처럼 느껴집니다. “주문한 물건이 언제 도착하나요?”라고 물으면 배송 안내가 이어집니다. 그런데 비슷한 질문을 다시 했을 때 표현이 바뀌기도 하고, 확인하지 않은 날짜를 자신 있게 말하기도 합니다. 답변이 만들어지는 흐름을 따라가며 두 현상을 살펴보겠습니다. 거대한 모델을 내려받는 대신, 선택 과정만 작은 파이썬 예제로 확인합니다.1. 다음 토큰을 고르고, 다시 이어 붙인다09편에서 문장을 토큰으로 나누고 숫자로 표현하는 과정을 봤습니다. 여기서는 앞에 나온 내용을 바탕으로 다음 토큰을 생성하는 언어 모델에 집중합니다. 모델은 입력과 지금까지 만든 토큰을 받아, 다음 자리에 올 수 있는 후보들의 점수를 계산합니다. 그 점수에서 얻은 확률을 이용해..
배송 문의가 쌓였다고 해 봅시다. “택배가 언제 오나요?”와 “배송 예정일을 알고 싶어요”는 표현이 다르지만 비슷한 내용을 묻습니다. 문자열이 정확히 같은지만 비교하면 둘을 연결하기 어렵습니다. 앞 글에서는 신경망에 숫자 두 개를 넣었습니다. 이번에는 문장을 계산에 사용할 숫자로 바꾸는 과정을 살펴보겠습니다. 토큰, 벡터, 임베딩이라는 이름을 한꺼번에 외우기보다 각각 맡은 일을 구분하면 흐름이 보입니다.1. 토큰은 모델이 읽는 조각문장을 모델에 넣기 전에 토크나이저가 작은 조각으로 나눕니다. 이 조각을 토큰이라고 합니다. 한 토큰이 단어 하나일 수도 있지만, 단어의 일부나 문장부호일 수도 있습니다. 어떤 토크나이저를 쓰느냐에 따라 같은 문장이 다른 조각으로 나뉩니다. 한국어 문장의 띄어쓰기 개수만 세어 ..
신경망을 설명하는 그림에는 동그라미와 연결선이 많이 나옵니다. 처음에는 어느 선을 따라가야 할지부터 막힐 수 있습니다. 이번에는 택배 상자의 무게와 부피를 입력하고 숫자가 어떻게 바뀌는지 살펴보겠습니다. 입력을 받아 중간 계산을 거친 뒤 결과를 내는 흐름만 이해하면 됩니다. 복잡한 미분이나 라이브러리 설치는 필요하지 않습니다. 앞에서 살펴본 모델 평가도 여전히 필요하지만, 이번에는 평가할 결과가 만들어지는 과정에 집중합니다.1. 입력에 가중치를 곱하고 편향을 더한다택배에 추가 포장이 필요한지 판단하는 가상의 모델을 생각해 봅시다. 입력은 무게와 부피 두 가지입니다. 서로 단위가 다르므로 일정한 기준으로 크기를 맞췄다고 가정하고, 이번 상자의 입력값을 각각 0.8과 0.4로 놓겠습니다. 이 숫자는 실제 배..