용어집
용어집
장마다 나온 용어를 한곳에 모았습니다. 위의 찾기 칸에 낱말을 넣으면 그 줄만 남습니다.
1장 · 머신러닝 프로세스와 기본 개념
| 용어 | 설명 |
|---|---|
머신러닝(machine learning) | 사람이 규칙을 적는 대신, 데이터에서 규칙을 찾도록 컴퓨터를 학습시키는 방법입니다. machine learning 은 "기계가 배운다"는 뜻입니다. |
지도학습(supervised learning) | 정답이 붙은 데이터로 배우는 방식입니다. 이 장의 실습이 모두 지도학습입니다. supervised 는 "감독을 받는"이라는 뜻으로, 정답이 선생님처럼 배움을 이끈다는 데서 왔습니다. |
비지도학습(unsupervised learning) | 정답 없이 데이터끼리의 닮은 점만으로 무리를 짓거나 구조를 찾는 방식입니다. unsupervised 는 "감독 없는"이라는 뜻입니다. |
배송 지연(delivery delay) | 주문한 물건이 약속한 날보다 늦게 도착한 것입니다. 이 장의 배송 데이터에서는 지연 열에 1(늦음)과 0(정시)으로 적혀 있고, 모델이 맞히려는 답입니다. delay 는 "늦어짐"이라는 뜻입니다. |
분류(classification) | 정해진 몇 가지 답 가운데 하나를 고르는 문제입니다. "이 주문은 늦게 올까, 제때 올까(지연인가, 정시인가)"가 분류입니다. classification 은 class(갈래)로 나눈다는 뜻입니다. |
회귀(regression) | 숫자 하나를 맞히는 문제입니다. "며칠 걸릴까"가 회귀입니다. regression 은 "되돌아감"이라는 뜻으로, 부모와 자식의 키를 견주다 자식의 키가 평균 쪽으로 되돌아가는 현상을 연구한 데서 붙은 이름입니다. |
특성(feature) | 모델에 넣는 입력 열입니다. 거리, 날씨, 주문시각 같은 것입니다. 피처라고도 하고, 코드에서는 보통 X 에 담습니다. feature 는 "생김새, 특징"이라는 뜻입니다. |
레이블(label) | 모델이 맞혀야 하는 정답 열입니다. 이 장에서는 늦게 왔는지를 1과 0으로 적은 지연 열이고, 코드에서는 보통 y 에 담습니다. label 은 "꼬리표"라는 뜻입니다. |
정답 누출(leakage) | 예측할 때는 알 수 없는 정보가 특성에 섞여 들어가 점수가 부풀려지는 실수입니다. leakage 는 "새어 나감"이라는 뜻입니다. |
모델(model) | 데이터에서 찾은 규칙을 담고 있는 계산식입니다. model 은 "본보기, 작게 본뜬 모형"이라는 뜻입니다. |
학습(training) | 모델이 데이터를 보고 규칙을 찾는 과정입니다. scikit-learn 에서는 fit 입니다. train 은 "훈련하다", fit 은 "맞추다"라는 뜻으로, 모델을 데이터에 맞춘다는 말입니다. |
예측(prediction) | 학습한 모델로 새 데이터의 답을 내는 일입니다. scikit-learn 에서는 predict 입니다. predict 는 pre(미리)와 dict(말하다)가 붙은 말입니다. |
학습용 데이터(training data) | 모델이 보고 배우는 데이터입니다. training 은 "훈련"이라는 뜻입니다. |
검증용 데이터(validation data) | 모델의 설정을 고를 때 쓰는 데이터입니다. 시험용과 따로 둡니다. validation 은 "타당한지 확인하기"라는 뜻입니다. |
시험용 데이터(test data) | 학습에 쓰지 않고 남겨 두었다가 마지막에 성적을 매기는 데이터입니다. test 는 "시험"이라는 뜻입니다. |
과적합(overfitting) | 학습용 데이터를 외워 버려서 처음 보는 데이터에서는 성적이 떨어지는 상태입니다. over(지나치게)와 fitting(맞추기)을 붙인 말입니다. |
의사결정나무(decision tree) | "거리가 먼가?", "비가 오나?" 같은 예·아니요 질문을 차례로 이어 가며 답을 내는 모델입니다. 질문이 갈라지는 모양이 나무를 닮아 붙은 이름입니다. decision 은 "결정", tree 는 "나무"라는 뜻입니다. |
기준선(baseline) | 아무것도 배우지 않은 단순한 답의 성적입니다. 모델은 이보다 나아야 쓸모가 있습니다. baseline 은 견줄 때 바탕이 되는 "기준 선"이라는 뜻입니다. |
혼동행렬(confusion matrix) | 실제 답과 예측을 2×2 표로 엇갈려 센 것입니다. confusion 은 "헷갈림", matrix 는 "행렬(가로세로로 늘어놓은 표)"이라는 뜻으로, 모델이 무엇을 무엇과 헷갈렸는지 보여 준다는 데서 왔습니다. |
정확도(accuracy) | 전체 가운데 맞힌 비율입니다. accuracy 는 "정확함"이라는 뜻입니다. |
정밀도(precision) | 모델이 "늦게 온다"고 예측한 주문 가운데 실제로 늦은 주문의 비율입니다. 헛경보가 적을수록 높습니다. precision 은 "정밀함, 꼼꼼함"이라는 뜻입니다. |
재현율(recall) | 실제로 늦은 주문 가운데 모델이 "늦게 온다"고 미리 잡아낸 비율입니다. 늦는 주문을 빠짐없이 찾을수록, 곧 놓친 것이 적을수록 높습니다. recall 은 "다시 불러내다"라는 뜻으로, 찾아야 할 것을 얼마나 불러냈는지를 말합니다. |
F1 점수(F1 score) | 정밀도와 재현율을 하나로 묶은 점수입니다. 둘의 조화평균이라, 둘 가운데 낮은 쪽에 더 끌려갑니다. 1 은 정밀도와 재현율에 같은 무게를 둔다는 뜻입니다. |
기준값(threshold) | 모델이 낸 "늦을 확률"이 몇 이상이면 늦는다(지연)고 볼지 정하는 선입니다. 임곗값이라고도 합니다. threshold 는 "문턱"이라는 뜻입니다. |
MAE(Mean Absolute Error) | 평균 절대 오차입니다. Mean(평균), Absolute(절댓값), Error(오차)의 머리글자입니다. 빗나간 크기(오차의 절댓값)를 평균 낸 값으로, 예측이 평균 얼마나 빗나가는지를 정답과 같은 단위로 알려 줍니다. |
RMSE(Root Mean Squared Error) | 평균 제곱근 오차입니다. Root(제곱근), Mean(평균), Squared(제곱한), Error(오차)의 머리글자입니다. 오차를 제곱해 평균 낸 뒤 제곱근을 씌운 값으로, 크게 빗나간 것을 더 무겁게 봅니다. |
scikit-learn | 파이썬의 대표적인 머신러닝 라이브러리입니다. 불러올 때 이름은 sklearn 입니다. SciPy 에 덧붙이는 도구 모음(SciPy Toolkit, 줄여서 scikit)에 learn(배우다)을 붙인 이름입니다. |
2장 · 신경망과 딥러닝의 기본 원리
| 용어 | 설명 |
|---|---|
딥러닝(deep learning) | 층을 여러 겹 쌓은 신경망으로 하는 머신러닝입니다. deep 은 "깊은"이라는 뜻으로, 층이 깊게 쌓였다는 데서 왔습니다. |
인공 뉴런(artificial neuron) | 입력에 가중치를 곱해 더하고, 편향을 더한 뒤 활성화 함수를 지나 값을 내는 계산 단위입니다. neuron 은 뇌의 "신경 세포"라는 뜻으로, 신경 세포를 흉내 낸 계산 단위라는 데서 왔습니다. |
가중치(weight) | 입력마다 곱하는 중요도입니다. 학습으로 바뀌는 값입니다. weight 는 "무게"라는 뜻입니다. |
편향(bias) | 가중합에 더하는 값입니다. 문턱을 옮기는 역할을 합니다. bias 는 "한쪽으로 치우침"이라는 뜻입니다. |
가중합(weighted sum) | 입력과 가중치를 곱해 모두 더한 값입니다. weighted sum 은 "무게를 매겨 더한 합"이라는 뜻입니다. |
활성화 함수(activation function) | 가중합을 다음 층으로 얼마나 넘길지 정하는 함수입니다. ReLU, 시그모이드가 대표적입니다. activation 은 "깨워 움직이게 함"이라는 뜻으로, 신경 세포가 신호를 내보내는 일에 빗댄 말입니다. |
ReLU(Rectified Linear Unit) | 음수는 0 으로, 양수는 그대로 넘기는 활성화 함수입니다. Rectified(음수를 잘라 낸), Linear(직선의), Unit(단위)의 머리글자입니다. |
시그모이드(sigmoid) | 어떤 값이든 0 과 1 사이로 눌러 주는 활성화 함수입니다. sigmoid 는 "S 자 모양의"라는 뜻으로, 그래프가 S 자를 닮아 붙은 이름입니다. |
입력층(input layer) | 특성이 들어오는 층입니다. input 은 "들어오는 것", layer 는 "층, 겹"이라는 뜻입니다. |
출력층(output layer) | 예측을 내는 마지막 층입니다. output 은 "내보내는 것"이라는 뜻입니다. |
파라미터(parameter) | 학습으로 바뀌는 모든 값(가중치와 편향)입니다. para(곁)와 meter(재다)가 붙은 말로, 계산의 모양을 정하는 값을 뜻합니다. |
순전파(forward propagation) | 입력이 층을 차례로 지나 예측이 되는 계산입니다. forward 는 "앞으로", propagation 은 "퍼져 나감"이라는 뜻입니다. forward pass 라고도 합니다. |
손실 함수(loss function) | 예측이 정답과 얼마나 다른지 숫자 하나로 재는 함수입니다. loss 는 "잃음, 손해"라는 뜻입니다. |
MSE(Mean Squared Error) | 오차를 제곱해 평균 낸 손실입니다. 회귀에 씁니다. 평균 제곱 오차라고 하며, Mean(평균), Squared(제곱한), Error(오차)의 머리글자입니다. |
교차 엔트로피(cross entropy) | 정답 칸에 준 확률이 낮을수록 커지는 손실입니다. 분류에 씁니다. entropy 는 정보이론에서 "불확실한 정도"를 뜻하고, cross 는 정답의 분포와 예측의 분포를 엇갈려 쓴다는 뜻입니다. |
기울기(gradient) | 가중치를 조금 바꿨을 때 손실이 얼마나, 어느 방향으로 바뀌는지 나타내는 값입니다. gradient 는 "비탈의 경사"라는 뜻입니다. |
경사하강법(gradient descent) | 기울기의 반대 방향으로 가중치를 조금씩 고쳐 손실을 줄이는 방법입니다. gradient 는 "경사", descent 는 "내려감"으로, 비탈을 따라 내려간다는 뜻입니다. |
학습률(learning rate) | 경사하강법에서 한 번에 얼마나 크게 고칠지 정하는 값입니다. rate 는 "비율, 빠르기"라는 뜻입니다. |
역전파(backpropagation) | 출력의 오차를 거꾸로 전해 가중치마다 기울기를 구하는 방법입니다. back(뒤로)과 propagation(퍼져 나감)을 붙인 말입니다. |
자동 미분(automatic differentiation) | 계산 과정을 기록해 두었다가 기울기를 자동으로 구해 주는 기능입니다. differentiation 은 "미분"이라는 뜻입니다. PyTorch 의 backward() 가 이것입니다. |
에포크(epoch) | 학습용 데이터 전체를 한 번 다 도는 것입니다. epoch 는 "한 시대, 한 주기"라는 뜻입니다. |
배치(batch) | 한 번의 갱신에 쓰는 데이터 묶음입니다. batch 는 "한 번에 구워 내는 한 판, 한 묶음"이라는 뜻입니다. |
옵티마이저(optimizer) | 기울기를 받아 가중치를 고치는 도구입니다. SGD, Adam 이 있습니다. optimize 는 "가장 좋게 만들다"라는 뜻이고, SGD 는 Stochastic Gradient Descent(확률적 경사하강법)의 머리글자입니다. |
텐서(tensor) | PyTorch 에서 숫자를 담는 칸의 묶음입니다. 숫자 하나, 한 줄, 표, 표를 여러 장 쌓은 것처럼 차원이 있습니다. NumPy 배열과 비슷하고 GPU 로 옮길 수 있습니다. tensor 는 수학에서 여러 차원의 숫자 묶음을 부르는 이름을 가져온 것입니다. |
PyTorch | 신경망을 만들고 학습시키는 파이썬 라이브러리입니다. 불러올 때 이름은 torch 입니다. Python 과, 먼저 나온 신경망 라이브러리 Torch 를 붙인 이름입니다. |
GPU(Graphics Processing Unit) | 단순한 계산 수천 개를 한꺼번에 하는 그래픽 처리 장치입니다. 신경망 학습을 빠르게 합니다. Graphics(그래픽), Processing(처리), Unit(장치)의 머리글자입니다. |
CUDA | NVIDIA GPU 에서 계산을 하게 해 주는 기술입니다. PyTorch 에서 GPU 를 "cuda" 라고 부릅니다. 처음에는 Compute Unified Device Architecture(계산용 통합 장치 구조)의 머리글자였습니다. |
3장 · Attention 과 Transformer, GPT 직접 구현
| 용어 | 설명 |
|---|---|
토큰(token) | 글을 모델이 다루는 조각으로 자른 것입니다. 글자, 낱말, 낱말의 일부가 될 수 있습니다. token 은 "표, 징표"라는 뜻입니다. |
토크나이저(tokenizer) | 글을 토큰으로 자르고 토큰마다 번호를 붙이는 도구입니다. token 에 "~로 만드는 것"이라는 뜻의 -izer 를 붙인 말입니다. |
어휘(vocabulary) | 토크나이저가 아는 토큰의 목록입니다. 어휘 크기는 그 목록의 길이입니다. vocabulary 는 "낱말 목록"이라는 뜻이고, 줄여서 vocab 이라고도 합니다. |
서브워드(subword) | 낱말보다 작고 글자보다 큰 조각입니다. 요즘 LLM 이 주로 쓰는 토큰입니다. sub(아래, 더 작은)와 word(낱말)를 붙인 말입니다. |
임베딩(embedding) | 토큰 번호를 뜻을 담은 숫자 좌표(벡터)로 바꾼 것입니다. embed 는 "박아 넣다"라는 뜻으로, 낱말을 좌표 공간 속에 박아 넣는다는 데서 왔습니다. |
벡터(vector) | 숫자 여러 개를 줄지어 놓은 것입니다. 임베딩 하나가 벡터 하나입니다. vector 는 라틴어 "나르는 것"에서 온 수학 용어입니다. |
RNN(Recurrent Neural Network) | 글자를 하나씩 차례로 읽으며 기억을 넘겨주는 예전 방식의 신경망입니다. 순환 신경망이라고 하며, Recurrent(되풀이되는), Neural(신경의), Network(망)의 머리글자입니다. |
Attention(어텐션) | 지금 글자가 다른 글자들을 얼마나 참고할지 비율을 계산해 정보를 모으는 방법입니다. attention 은 "주의, 눈여겨봄"이라는 뜻입니다. |
셀프 어텐션(self-attention) | 같은 문장 안의 글자끼리 서로 참고하는 Attention 입니다. self 는 "자기 자신"이라는 뜻입니다. |
쿼리(query) | Attention 에서 "내가 찾고 싶은 것"을 나타내는 벡터입니다. Q 로 줄여 씁니다. query 는 "질문, 묻기"라는 뜻입니다. |
키(key) | Attention 에서 "나는 이런 정보를 갖고 있다"는 꼬리표 벡터입니다. K 로 줄여 씁니다. key 는 "열쇠"라는 뜻이고, 자료를 찾을 때 맞춰 보는 표제를 가리키기도 합니다. |
밸류(value) | Attention 에서 실제로 넘겨줄 내용 벡터입니다. V 로 줄여 씁니다. value 는 "값"이라는 뜻입니다. |
softmax(소프트맥스) | 점수 여러 개를 0 과 1 사이의, 합이 1 인 비율로 바꾸는 함수입니다. 점수마다 exp 를 구해 그 합으로 나누며, 가장 큰 값만 고르는 max 를 부드럽게(soft) 했다는 뜻의 이름입니다. |
마스크(mask) | Attention 에서 보면 안 되는 자리를 가리는 표입니다. GPT 는 뒤의 글자를 가립니다. mask 는 "가리개, 가면"이라는 뜻입니다. |
멀티헤드 어텐션(multi-head attention) | Attention 을 여러 갈래(헤드)로 나눠 따로 계산한 뒤 합치는 방법입니다. multi(여럿)와 head(머리)를 붙인 말입니다. |
위치 임베딩(positional embedding) | 토큰이 문장에서 몇 번째인지를 나타내는 벡터입니다. 토큰 임베딩에 더합니다. position 은 "자리"라는 뜻입니다. |
Transformer(트랜스포머) | Attention 을 중심으로 층을 쌓은 신경망의 짜임입니다. 2017년 논문에서 나왔습니다. transformer 는 "바꾸는 것"이라는 뜻입니다. |
잔차 연결(residual connection) | 층에 들어온 값을 층의 결과에 그대로 더해 주는 연결입니다. 깊이 쌓아도 학습이 잘 되게 합니다. residual 은 "남은 것, 나머지"라는 뜻입니다. |
LayerNorm(Layer Normalization) | 벡터의 숫자 크기를 고르게 맞추는 층입니다. 층 정규화라고 하며, Layer(층)와 Normalization(정규화, 크기 맞추기)을 줄인 이름입니다. |
디코더(decoder) | 앞의 글만 보고 다음 글을 써 나가는 Transformer 입니다. GPT 가 이 짜임입니다. decode 는 "부호를 풀다"라는 뜻입니다. |
인코더(encoder) | 문장 전체를 앞뒤로 읽어 뜻을 뽑는 Transformer 입니다. encode 는 "부호로 바꾸다"라는 뜻입니다. |
사전학습(pre-training) | 정답 표시 없는 많은 글로 "다음 토큰 맞히기"를 먼저 학습하는 단계입니다. pre(미리)와 training(학습)을 붙인 말입니다. |
미세조정(fine-tuning) | 사전학습한 모델을 정답이 붙은 적은 데이터로 조금 더 학습시키는 단계입니다. fine-tuning 은 악기의 음을 "미세하게 맞추기"라는 뜻입니다. |
온도(temperature) | 다음 토큰을 고를 때 확률을 뾰족하게 또는 평평하게 만드는 값입니다. 물리학에서 온도가 높을수록 상태가 고르게 퍼지는 식을 빌려 와 붙은 이름입니다. |
환각(hallucination) | 모델이 사실이 아닌 내용을 그럴듯하게 지어내는 현상입니다. hallucination 은 "없는 것을 보는 착각"이라는 뜻입니다. |
ML 디자인 패턴(ML design pattern) | 머신러닝에서 자주 부딪히는 문제의 검증된 풀이를 이름 붙여 정리한 것입니다. ML 은 Machine Learning(머신러닝)의 머리글자이고, design pattern 은 "설계의 본보기"라는 뜻입니다. |
4장 · LLM 을 완성하는 3단계와 Hugging Face
| 용어 | 설명 |
|---|---|
기본 모델(base model) | 사전학습만 마친 모델입니다. 글을 이어 쓸 줄은 알지만 질문에 답하도록 길들지는 않았습니다. base 는 "바탕, 토대"라는 뜻입니다. |
지시 모델(instruct model) | 기본 모델에 미세조정과 정렬을 더해 질문에 답하도록 만든 모델입니다. instruct 또는 chat 모델이라고 합니다. instruct 는 "지시하다, 가르치다"라는 뜻입니다. |
사전학습(pre-training) | 라벨 없는 많은 글로 다음 토큰 맞히기를 학습하는 단계입니다. pre(미리)와 training(학습)을 붙인 말입니다. |
이어 사전학습(continued pre-training) | 이미 사전학습된 모델에 우리 분야의 글을 더 읽혀 사전학습을 이어 하는 것입니다. continued 는 "이어지는"이라는 뜻입니다. |
미세조정(fine-tuning) | 사전학습한 모델을 특정 목적의 데이터로 조금 더 학습시키는 것입니다. fine-tuning 은 악기의 음을 "미세하게 맞추기"라는 뜻입니다. |
SFT(Supervised Fine-Tuning) | 지도 미세조정입니다. 질문과 모범 답의 쌍으로 답하는 법을 가르칩니다. Supervised(지도된), Fine-Tuning(미세조정)의 머리글자입니다. |
정렬(alignment) | 모델의 답이 사람이 바라는 쪽(도움 되고, 정직하고, 해롭지 않게)으로 가도록 다듬는 단계입니다. alignment 는 "줄 맞추기, 방향 맞추기"라는 뜻입니다. |
RLHF | 사람의 선호 평가로 보상 모델을 만들고 강화학습으로 정렬하는 방법입니다. Reinforcement Learning from Human Feedback(사람 피드백을 받는 강화학습)의 머리글자입니다. |
DPO(Direct Preference Optimization) | 보상 모델 없이 "고른 답"과 "고르지 않은 답"의 쌍으로 바로 정렬하는 방법입니다. 5장에서 다룹니다. Direct(직접), Preference(선호), Optimization(최적화)의 머리글자입니다. |
퍼플렉서티(perplexity) | 언어모델이 다음 토큰을 평균 몇 개 후보 사이에서 헷갈리는지 나타내는 값입니다. e 의 (평균 손실) 제곱입니다. perplexity 는 "당혹, 어쩔 줄 모름"이라는 뜻입니다. |
Hugging Face | 모델과 데이터를 공유하는 누리집(Hub)과, 그것을 쓰는 파이썬 라이브러리를 만드는 회사의 이름입니다. hug(껴안다)와 face(얼굴)를 붙인 이름으로, 로고도 두 팔로 껴안는 얼굴입니다. |
Hub(허브) | Hugging Face 의 모델·데이터 저장소입니다. 모델마다 이름(예: Qwen/Qwen2.5-0.5B)이 있습니다. hub 는 "바퀴의 중심, 모이는 곳"이라는 뜻입니다. |
모델 카드(model card) | Hub 의 모델 쪽에 적힌 설명서입니다. 라이선스, 학습 데이터, 쓰임과 한계가 적혀 있습니다. 모델에 붙은 설명 카드라는 뜻입니다. |
라이선스(license) | 모델을 어떤 조건으로 써도 되는지 정한 약속입니다. license 는 "허가"라는 뜻입니다. |
Auto 클래스(Auto class) | 모델 이름만 주면 알맞은 토크나이저와 모델을 골라 불러 주는 transformers 의 클래스입니다. Auto 는 automatic(자동)의 앞부분입니다. |
config(configuration) | 모델의 크기와 짜임(층 수, 좌표 수, 헤드 수 등)을 적은 설정입니다. configuration(구성, 설정)의 앞부분을 딴 이름입니다. |
top-k | 다음 토큰을 확률이 높은 k 개 안에서만 뽑는 방법입니다. "위에서부터 k 개"라는 뜻입니다. |
top-p | 확률이 높은 순서로 더해 p 를 채울 때까지의 후보 안에서만 뽑는 방법입니다. 확률 합의 기준 p 를 이름에 붙였고, 핵 샘플링(nucleus sampling)이라고도 합니다. |
반복 벌점(repetition penalty) | 이미 나온 토큰의 점수를 깎아 같은 말을 되풀이하지 않게 하는 설정입니다. repetition 은 "되풀이", penalty 는 "벌칙"이라는 뜻입니다. |
Trainer(트레이너) | transformers 가 주는 학습 도구입니다. 학습 루프, 평가, 저장을 대신해 줍니다. trainer 는 "훈련시키는 사람"이라는 뜻입니다. |
에포크(epoch) | 학습 데이터를 한 번 다 도는 것입니다(2장). epoch 는 "한 시대, 한 주기"라는 뜻입니다. |
혼합 정밀도(mixed precision) | 계산 일부를 16비트(fp16)로 해서 GPU 메모리와 시간을 아끼는 방법입니다. mixed 는 "섞인", precision 은 "정밀도"라는 뜻이고, fp16 은 floating point(부동소수점) 16비트를 줄인 말입니다. |
BPE(Byte Pair Encoding) | 자주 붙어 나오는 글자 쌍을 하나의 토큰으로 합쳐 나가며 어휘를 만드는 토크나이저 학습 방법입니다. Byte(바이트), Pair(쌍), Encoding(부호화)의 머리글자로, 원래 글을 압축하는 방법에서 왔습니다. |
프롬프트 템플릿(prompt template) | 질문과 답을 모델에 넣을 때 쓰는 일정한 글의 꼴입니다(예: ### 질문: … ### 답변: …). prompt 는 배우에게 대사를 일러 주는 일, template 은 "본, 틀"이라는 뜻입니다. |
5장 · LoRA 파인튜닝과 DPO 정렬
| 용어 | 설명 |
|---|---|
전체 미세조정(full fine-tuning) | 모델의 모든 파라미터를 학습하는 미세조정입니다. full 은 "전부"라는 뜻입니다. |
PEFT(Parameter-Efficient Fine-Tuning) | 파라미터 효율 미세조정입니다. 모델의 작은 부분만 학습하는 방법들을 함께 부르는 이름이자, 그 방법들을 모은 Hugging Face 라이브러리의 이름입니다. Parameter(파라미터), Efficient(효율적인), Fine-Tuning(미세조정)의 머리글자입니다. |
LoRA(Low-Rank Adaptation) | 저랭크 적응입니다. 원래 가중치는 얼리고, 옆에 얇은 행렬 둘을 두어 그것만 학습합니다. Low-Rank(낮은 랭크)와 Adaptation(적응)에서 글자를 따온 이름입니다. |
얼리기(freeze) | 파라미터가 학습 중에 바뀌지 않게 막는 것입니다. freeze 는 "얼리다"라는 뜻입니다. |
저랭크(low rank) | 큰 행렬을 얇은 행렬 둘의 곱으로 나타낼 수 있다는 뜻입니다. 얇은 정도가 랭크(r)입니다. rank 는 "등급, 순위"라는 뜻이고, 행렬에서는 행렬이 담은 독립된 방향의 수를 말합니다. |
r(rank) | LoRA 행렬의 두께입니다. 클수록 학습하는 파라미터가 늘고 표현력도 늡니다. r 은 rank(랭크)의 머리글자입니다. |
lora_alpha | LoRA 가 더하는 값의 크기를 조절하는 수입니다. 보통 r 의 두 배로 둡니다. alpha 는 그리스 문자 알파로, LoRA 논문에서 이 수를 알파로 적은 데서 온 이름입니다. |
target_modules | LoRA 를 붙일 층의 이름입니다. 어텐션의 q_proj, k_proj, v_proj, o_proj 를 흔히 고릅니다. target 은 "과녁, 대상", module 은 "모델을 이루는 부품"이라는 뜻입니다. |
어댑터(adapter) | 기본 모델에 덧붙여 학습한 작은 파라미터 묶음입니다. LoRA 의 A, B 가 어댑터입니다. adapter 는 "끼워 맞추는 연결 부품"이라는 뜻입니다. |
merge(병합) | 어댑터를 원래 가중치에 더해 하나의 모델로 합치는 것입니다. merge 는 "합치다"라는 뜻입니다. |
fp16(floating point 16) | 숫자 하나를 16비트로 나타내는 형식입니다. float32 의 절반 크기입니다. floating point(부동소수점, 소수점이 떠다니는 수)를 16비트로 적는다는 뜻의 이름입니다. |
혼합 정밀도(mixed precision) | 계산은 fp16 으로 빠르게 하고, 학습하는 값은 float32 로 정확하게 두는 방법입니다. mixed 는 "섞인", precision 은 "정밀도"라는 뜻입니다. |
그래디언트 체크포인팅(gradient checkpointing) | 순전파의 중간값을 버렸다가 역전파 때 다시 계산해 메모리를 아끼는 방법입니다. checkpoint 는 "중간 점검 지점"이라는 뜻으로, 몇 군데의 값만 남겨 둔다는 데서 왔습니다. |
채팅 템플릿(chat template) | 대화 모델이 학습 때 본 대화의 꼴입니다. apply_chat_template 으로 만듭니다. chat 은 "대화", template 은 "본, 틀"이라는 뜻입니다. |
선호 데이터(preference data) | 같은 질문에 대한 고른 답과 고르지 않은 답(반대 답)의 쌍입니다. preference 는 "더 좋아함"이라는 뜻입니다. |
DPO(Direct Preference Optimization) | 직접 선호 최적화입니다. 선호 데이터로 고른 답 쪽의 확률을 높입니다. Direct(직접), Preference(선호), Optimization(최적화)의 머리글자입니다. |
기준 모델(reference model) | DPO 에서 견주는 기준이 되는, 학습 전의 모델입니다. reference 는 "참고, 기준"이라는 뜻입니다. |
beta(베타) | DPO 에서 기준 모델과 얼마나 멀어져도 되는지 정하는 값입니다. 작을수록 많이 바뀝니다. 그리스 문자 베타의 이름입니다. |
로그 확률(log probability) | 모델이 어떤 답을 낼 확률에 로그를 씌운 값입니다. 0 에 가까울수록 그 답을 잘 낼 것 같다는 뜻입니다. log 는 logarithm(로그)을 줄인 말입니다. |
보상(reward) | DPO 에서, 학습 모델이 기준 모델보다 그 답의 로그 확률을 얼마나 올렸는지(× beta)입니다. reward 는 "보상, 상"이라는 뜻입니다. |
파국적 망각(catastrophic forgetting) | 새로 학습하면서 원래 잘하던 일을 잊어버리는 현상입니다. catastrophic 은 "파국적인, 재앙 같은", forgetting 은 "잊어버림"이라는 뜻입니다. |
6장 · RAG 의 원리와 로컬 모델로 옮기기
| 용어 | 설명 |
|---|---|
RAG(Retrieval-Augmented Generation) | 검색 증강 생성입니다. 질문과 관련된 문서를 찾아 프롬프트에 붙인 뒤 LLM 이 답하게 합니다. Retrieval(검색), Augmented(보강된), Generation(생성)의 머리글자입니다. |
검색(retrieval) | 질문과 관련된 문서 조각을 고르는 단계입니다. retrieval 은 "되찾아 옴"이라는 뜻입니다. |
증강(augmentation) | 찾은 조각을 프롬프트에 붙이는 단계입니다. augmentation 은 "늘림, 보강"이라는 뜻입니다. |
생성(generation) | 붙인 조각을 보고 LLM 이 답을 쓰는 단계입니다. generation 은 "만들어 냄"이라는 뜻입니다. |
환각(hallucination) | LLM 이 사실이 아닌 내용을 그럴듯하게 지어내는 것입니다. 없는 것을 보는 "환각"에 빗댄 말입니다. |
지식 마감(knowledge cutoff) | 모델이 학습한 글이 끝나는 시점입니다. 그 뒤의 일은 모델이 모릅니다. cutoff 는 "잘라 끊는 지점"이라는 뜻입니다. |
문서 조각(chunk) | 검색 단위로 나눈 문서의 한 부분입니다. chunk 는 "덩어리"라는 뜻이고, 나누는 일을 청킹(chunking)이라고 합니다. |
키워드 검색(keyword search) | 질문과 문서에 같은 낱말(글자 조각)이 얼마나 겹치는지로 찾는 검색입니다. keyword 는 "열쇠가 되는 낱말"이라는 뜻입니다. |
TF-IDF(단어 빈도-역문서 빈도) | 낱말이 그 문서에 자주 나올수록, 다른 문서에는 드물수록 무게를 크게 주는 점수입니다. TF 는 Term Frequency(단어 빈도), IDF 는 Inverse Document Frequency(역문서 빈도)의 머리글자입니다. |
n-gram(엔그램) | 글을 n 글자(또는 n 낱말)씩 잘라 만든 조각입니다. "배송비"의 2-gram 은 "배송", "송비"입니다. gram 은 "글자, 쓰인 것"을 뜻하는 그리스어에서 온 말입니다. |
코사인 유사도(cosine similarity) | 두 벡터의 방향이 얼마나 같은지를 0~1 로 잰 값입니다. 1 에 가까울수록 비슷합니다. 두 벡터 사이 각도의 코사인 값으로 재서 붙은 이름이고, similarity 는 "닮음"이라는 뜻입니다. |
top-k(상위 k개) | 점수가 높은 순서로 위에서 k 개를 고르는 것입니다. top 은 "맨 위"라는 뜻입니다. |
hit@k(상위 k개 적중률) | 정답 조각이 위 k 개 안에 들었는지를 센 비율입니다. hit 는 "맞힘"이라는 뜻이고, @k 는 "위 k 개 안에서"를 나타냅니다. |
컨텍스트(context) | 프롬프트에 함께 넣어 모델이 보게 하는 글입니다. 여기서는 찾은 문서 조각입니다. context 는 "앞뒤 맥락"이라는 뜻입니다. |
API(Application Programming Interface) | 프로그램끼리 정해진 꼴로 요청과 응답을 주고받는 창구입니다. Application(응용 프로그램), Programming(프로그래밍), Interface(접점)의 머리글자입니다. |
API 키(API key) | API 를 쓸 수 있는 사람인지 확인하는 비밀 문자열입니다. 코드에 적지 않고 환경 변수에 둡니다. key 는 "열쇠"라는 뜻입니다. |
로컬 모델(local model) | 인터넷 너머의 서버가 아니라 내 PC 에서 돌리는 모델입니다. local 은 "그 자리의"라는 뜻입니다. |
Ollama(올라마) | 내 PC 에서 LLM 을 내려받고 띄워 API 로 쓰게 해 주는 오픈 소스 프로그램입니다. 2023년에 공개되었고, 속에서는 llama.cpp 엔진으로 모델을 돌립니다. 약어가 아니라 프로그램의 이름이고, 이름의 유래는 공식적으로 밝혀져 있지 않습니다. |
OpenAI 호환 API(OpenAI-compatible API) | OpenAI 의 API 와 같은 꼴로 요청을 받는 API 입니다. 주소만 바꾸면 같은 코드로 부를 수 있습니다. compatible 은 "함께 쓸 수 있는"이라는 뜻입니다. |
base_url(기본 주소) | API 요청을 보낼 서버의 주소입니다. base 는 "바탕"이라는 뜻이고, URL 은 Uniform Resource Locator(자원 위치 지정자)의 머리글자로 인터넷 주소를 말합니다. |
양자화(quantization) | 가중치를 4비트처럼 적은 비트로 줄여 모델을 작고 빠르게 만드는 것입니다. 15장에서 자세히 다룹니다. quantization 은 "연속된 값을 몇 개의 정해진 단계로 나눔"이라는 뜻입니다. |
7장 · 자체 임베딩과 벡터DB, 검색 품질
| 용어 | 설명 |
|---|---|
임베딩(embedding) | 글을 뜻이 담긴 숫자 줄(벡터)로 바꾼 것, 또는 바꾸는 일입니다. 뜻이 비슷한 글은 가까운 벡터가 됩니다. embed 는 "끼워 넣다, 박아 넣다"라는 뜻으로, 글을 숫자 공간 속에 박아 넣는다는 데서 왔습니다. |
임베딩 모델(embedding model) | 글을 임베딩으로 바꾸는 모델입니다. 이 장은 intfloat/multilingual-e5-small 을 씁니다. model 은 "본, 모형"이라는 뜻입니다. |
차원(dimension) | 임베딩 벡터에 든 숫자의 개수입니다. e5-small 은 384차원입니다. dimension 은 "치수, 잴 수 있는 방향"이라는 뜻입니다. |
의미 검색(semantic search) | 질문과 문서의 임베딩이 얼마나 가까운지로 찾는 검색입니다. 낱말이 달라도 뜻이 같으면 찾습니다. semantic 은 "뜻에 관한"이라는 뜻입니다. |
정규화(normalization) | 벡터의 길이를 1 로 맞추는 것입니다. 정규화하면 내적이 곧 코사인 유사도가 됩니다. normal 은 "표준의"라는 뜻으로, 길이를 표준 크기로 맞춘다는 말입니다. |
sentence-transformers(문장 트랜스포머) | 임베딩 모델과 재정렬 모델을 쉽게 쓰게 해 주는 파이썬 라이브러리입니다. sentence(문장)와 transformer(트랜스포머 모델)를 붙인 이름으로, 문장 단위로 임베딩을 만드는 트랜스포머라는 뜻입니다. |
벡터DB(vector database) | 임베딩을 저장하고, 질문과 가까운 벡터를 빠르게 찾아 주는 저장소입니다. vector 는 "방향과 크기를 가진 양"이고, DB 는 database(자료를 모아 둔 곳)의 줄임말입니다. |
인덱스(index) | 벡터를 빨리 찾도록 정리해 둔 짜임입니다. 모두 견주는 Flat, 구역을 나누는 IVF, 이웃을 잇는 HNSW 가 있습니다. index 는 "색인, 찾아보기"라는 뜻입니다. IVF 는 Inverted File(역색인 파일), HNSW 는 Hierarchical Navigable Small World(계층형 작은 세상 그래프)의 머리글자입니다. |
FAISS(Facebook AI Similarity Search) | Meta 가 공개한 벡터 검색 라이브러리입니다. 파일 하나에 인덱스를 저장합니다. Facebook AI 의 유사도(Similarity) 검색(Search)이라는 뜻의 머리글자입니다. |
Chroma(크로마) | 문서, 임베딩, 메타데이터를 함께 저장하는 오픈소스 벡터DB 입니다. chroma 는 "색채"라는 뜻의 낱말입니다. |
메타데이터(metadata) | 조각에 붙여 두는 정보(제목, 장, 날짜)입니다. 검색할 때 걸러 내는 데 씁니다. meta 는 "~에 대한, 한 단계 위의"라는 뜻으로, 데이터에 대한 데이터라는 말입니다. |
청킹(chunking) | 문서를 검색 단위의 조각으로 나누는 일입니다. 6장에서 조항 단위로 해 보았습니다. chunk(덩어리)로 자른다는 뜻입니다. |
MRR(Mean Reciprocal Rank) | 평균 역순위입니다. 정답이 1등이면 1, 2등이면 1/2, 3등이면 1/3 을 주고 평균을 냅니다. Mean(평균), Reciprocal(역수), Rank(순위)의 머리글자입니다. |
하이브리드 검색(hybrid search) | 키워드 검색과 의미 검색의 점수를 섞어 찾는 검색입니다. hybrid 는 "두 가지를 섞은 것"이라는 뜻입니다. |
RRF(Reciprocal Rank Fusion) | 순위 융합입니다. 점수 대신 순위로 두 검색 결과를 섞습니다. Reciprocal(역수), Rank(순위), Fusion(융합)의 머리글자로, 순위의 역수를 더해 섞는다는 뜻입니다. |
재정렬(reranking) | 먼저 넉넉히 찾은 후보를 더 정확한 모델로 다시 줄 세우는 것입니다. re(다시)와 rank(순위를 매기다)를 붙인 말입니다. |
바이 인코더(bi-encoder) | 질문과 문서를 따로 임베딩해 견주는 짜임입니다. 빠릅니다. bi 는 "둘", encoder 는 "부호로 바꾸는 장치"라는 뜻으로, 질문과 문서를 따로 두 번 바꾼다는 말입니다. |
크로스 인코더(cross-encoder) | 질문과 문서를 한꺼번에 읽고 관련 점수를 내는 짜임입니다. 느리지만 정확합니다. cross 는 "엇갈려 맞대다"라는 뜻으로, 질문과 문서를 맞대어 함께 읽는다는 말입니다. |
오픈소스 LLM(open-source LLM) | 가중치를 내려받아 내 PC 에서 돌릴 수 있게 공개한 LLM 입니다. 쓸 수 있는 범위는 라이선스마다 다릅니다. open source 는 "소스(원본)를 열어 둔"이라는 뜻이고, LLM 은 Large Language Model(대규모 언어 모델)의 머리글자입니다. |
8장 · Project 01. 내 데이터로 답하는 LLM 서비스
| 용어 | 설명 |
|---|---|
질문 묶음(test set) | 서비스가 받을 법한 질문과 그 정답을 모은 시험 문제입니다. 만들기 전에 먼저 준비합니다. test set 은 "시험용 묶음"이라는 뜻입니다. |
기준선(baseline) | 가장 단순하게 만든 첫 버전의 성적입니다. 고친 것이 나아졌는지 견주는 잣대가 됩니다. baseline 은 "바닥에 긋는 기준 줄"이라는 뜻입니다. |
다중 턴 대화(multi-turn conversation) | 질문과 답을 여러 번 주고받는 대화입니다. 뒤의 질문이 앞의 말을 이어받습니다. turn 은 "차례"라는 뜻으로, 말을 주고받는 차례가 여러 번이라는 말입니다. |
후속 질문(follow-up question) | "그럼 이용료는요?"처럼 앞의 대화가 없으면 뜻이 통하지 않는 질문입니다. follow-up 은 "뒤따르는"이라는 뜻입니다. |
질문 바꿔 쓰기(query rewriting) | 후속 질문을 앞의 대화 없이도 통하는 질문으로 고쳐 쓰는 일입니다. query 는 "물음", rewriting 은 "다시 쓰기"라는 뜻입니다. |
최신성(recency) | 같은 내용을 다룬 자료가 여럿일 때 더 늦게 나온 자료를 따르는 원칙입니다. recency 는 "최근임"이라는 뜻입니다. |
출처 표기(citation) | 답에 근거가 된 조항, 절, 공지를 함께 적는 것입니다. citation 은 "인용, 끌어다 씀"이라는 뜻입니다. |
FAQ 매칭(FAQ matching) | 사용자의 말을 미리 준비한 자주 묻는 질문 가운데 가장 가까운 것과 짝짓는 일입니다. FAQ 는 Frequently Asked Questions(자주 묻는 질문)의 머리글자이고, matching 은 "짝짓기"라는 뜻입니다. |
기준값(threshold) | 점수가 이 값을 넘을 때만 답하고, 못 넘으면 다른 길로 넘기는 경계입니다. 1장의 기준값과 같은 생각입니다. threshold 는 "문지방"이라는 뜻으로, 넘어야 들어가는 경계를 가리킵니다. |
넘기기(fallback) | 서비스가 답하지 않고 사람(담당 부서, 상담원)에게 넘기는 것입니다. fallback 은 "물러나 기댈 곳, 대비책"이라는 뜻입니다. |
시연(demo) | 만든 서비스를 다른 사람 앞에서 실제로 돌려 보이는 것입니다. demo 는 demonstration(보여 줌)을 줄인 말입니다. |
9장 · 도구를 쓰는 LLM 과 Agentic Workflow
| 용어 | 설명 |
|---|---|
에이전트(agent) | LLM 이 도구를 써 가며 스스로 다음 할 일을 정해 일을 끝내는 프로그램입니다. agent 는 "대신 일하는 사람, 대리인"이라는 뜻입니다. |
도구(tool) | LLM 이 쓸 수 있게 우리가 내어 준 함수입니다. 계산기, 검색, 예약 같은 것입니다. tool 은 "연장"이라는 뜻입니다. |
도구 호출(tool calling) | LLM 이 "이 도구를 이 인자로 불러 달라"고 요청하는 것입니다. function calling(함수 호출)이라고도 합니다. calling 은 "부르기"라는 뜻입니다. |
tool_calls(도구 호출 목록) | 도구 호출을 요청한 응답에 담기는 목록입니다. 도구 이름과 인자(JSON)가 들어 있습니다. tool(도구)과 calls(호출들)를 밑줄로 이은 이름입니다. |
JSON 스키마(JSON Schema) | 도구의 인자가 어떤 이름과 자료형인지 적은 약속입니다. 모델은 이것을 보고 인자를 채웁니다. JSON 은 JavaScript Object Notation(자바스크립트 객체 표기법)의 머리글자이고, schema 는 "도식, 틀"이라는 뜻입니다. |
tool 메시지(tool message) | 우리가 도구를 실행한 결과를 모델에게 돌려주는 메시지입니다. role 이 "tool" 입니다. 도구(tool) 쪽에서 온 메시지라는 뜻입니다. |
자율 루프(autonomous loop) | 모델이 도구를 그만 부를 때까지 "호출 → 실행 → 결과 전달"을 되풀이하는 반복문입니다. autonomous 는 "스스로 다스리는", loop 는 "고리"라는 뜻입니다. |
걸음(step) | 자율 루프의 한 바퀴입니다. 걸음 수에 한도를 두어 끝없이 돌지 않게 합니다. step 은 "한 걸음, 단계"라는 뜻입니다. |
ReAct(Reasoning and Acting) | 생각(Reason)과 행동(Act)을 번갈아 하는 방식입니다. 생각, 행동, 관찰을 글로 적으며 나아갑니다. Reason(생각하다)과 Act(행동하다)를 붙인 이름입니다. |
워크플로(workflow) | 일의 순서를 사람이 코드로 정해 두고, LLM 은 정해진 칸에서만 일하는 짜임입니다. work(일)와 flow(흐름)를 붙인 말입니다. |
슬롯 뽑기(slot filling) | 사용자의 말에서 날짜, 시각, 인원 같은 빈칸(슬롯)의 값을 뽑아내는 일입니다. slot 은 "끼워 넣는 칸"이라는 뜻입니다. |
사람 확인(human-in-the-loop) | 되돌리기 어려운 도구(보내기, 지우기, 결제)를 실행하기 전에 사람의 승인을 받는 것입니다. 사람(human)이 고리(loop) 안에 들어가 있다는 뜻입니다. |
작업 성공률(task success rate) | 에이전트에게 준 일 가운데 바르게 끝낸 비율입니다. task 는 "맡은 일"이라는 뜻입니다. |
10장 · MCP 와 Prompt·Context Engineering
| 용어 | 설명 |
|---|---|
MCP(Model Context Protocol) | AI 앱이 바깥의 도구와 자료에 접속하는 방법을 정한 공개 규격입니다. Model(모델), Context(맥락), Protocol(통신 규약)의 머리글자로, 모델에 맥락을 건네는 약속이라는 뜻입니다. |
MCP 서버(MCP server) | 도구, 리소스, 프롬프트를 MCP 규격으로 내어 주는 프로그램입니다. server 는 "시중드는 쪽, 내어 주는 쪽"이라는 뜻입니다. |
MCP 클라이언트(MCP client) | MCP 서버에 접속해 도구 목록을 받고 도구를 부르는 쪽입니다. client 는 "손님, 의뢰인"이라는 뜻입니다. |
호스트(host) | 클라이언트를 품고 사용자와 LLM 을 잇는 AI 앱입니다. 채팅 앱, 코드 편집기 등입니다. host 는 "손님을 맞는 주인"이라는 뜻입니다. |
리소스(resource) | MCP 서버가 읽기 전용으로 내어 주는 자료입니다. stock://reservations 같은 주소로 읽습니다. resource 는 "자원, 쓸 거리"라는 뜻입니다. |
JSON-RPC(JSON Remote Procedure Call) | JSON 으로 "이 메서드를 이 인자로 불러 달라"를 주고받는 약속입니다. MCP 메시지의 꼴입니다. RPC 는 Remote(멀리 떨어진), Procedure(절차, 함수), Call(호출)의 머리글자로, 다른 프로그램의 함수를 부른다는 뜻입니다. |
stdio(standard input/output) | 표준 입력과 출력입니다. 클라이언트가 서버를 하위 프로그램으로 띄우고 이 통로로 대화합니다. std 는 standard(표준), io 는 input/output(입력과 출력)의 줄임입니다. |
프롬프트 엔지니어링(prompt engineering) | 지시, 예시, 출력 꼴을 다듬어 같은 모델에서 더 나은 답을 끌어내는 일입니다. prompt 는 배우에게 대사를 일러 주는 일에서 온 말이고, engineering 은 "설계하고 다듬는 일"이라는 뜻입니다. |
퓨샷(few-shot) | 질문 앞에 문제와 정답의 예시 몇 개를 보여 주는 방법입니다. 예시가 없으면 제로샷(zero-shot)입니다. few 는 "몇 개", shot 은 "한 번의 시도"라는 뜻으로, 예시를 몇 번 보여 준다는 말입니다. |
컨텍스트 엔지니어링(context engineering) | 모델이 한 번에 볼 글(지시, 도구, 대화, 검색 결과)을 무엇을 얼마나 넣을지 고르고 짜는 일입니다. context 는 "앞뒤 맥락"이라는 뜻입니다. |
컨텍스트 창(context window) | 모델이 한 번에 읽을 수 있는 토큰의 최대 길이입니다. 모델이 한 번에 내다볼 수 있는 범위를 창(window)에 빗댄 말입니다. |
재시도(retry) | 실패한 호출을 다시 보내는 것입니다. 잠깐 기다렸다 보내되, 기다리는 시간을 점점 늘리는 것을 백오프(backoff)라고 합니다. retry 는 re(다시)와 try(해 보다)를 붙인 말이고, backoff 는 "뒤로 물러남"이라는 뜻입니다. |
일시적 오류(transient error) | 네트워크가 잠깐 끊기는 것처럼, 다시 하면 될 수 있는 오류입니다. transient 는 "잠깐 지나가는"이라는 뜻입니다. |
거짓 보고(false report) | 에이전트가 하지 않은 일을 했다고 말하는 것입니다. 상태를 직접 확인해 잡아냅니다. false 는 "거짓의", report 는 "알림, 보고"라는 뜻입니다. |
11장 · 폐쇄망 문서 파이프라인과 폐쇄형 RAG
| 용어 | 설명 |
|---|---|
폐쇄망(air-gapped network) | 인터넷과 끊어 둔 회사 안의 네트워크입니다. 망분리라고도 합니다. air-gapped 는 "사이에 공기 틈을 둔", 곧 선으로 이어지지 않았다는 뜻입니다. |
반입(import) | 바깥에서 받은 파일을 검사와 승인을 거쳐 폐쇄망 안으로 들여오는 일입니다. import 는 "안으로 들여오다"라는 뜻입니다. |
휠(wheel) | 파이썬 패키지를 미리 묶어 둔 설치 파일입니다. 확장자는 .whl 입니다. 패키지 저장소의 옛 별명 Cheese Shop(치즈 가게)에 맞춰 치즈 한 덩이(cheese wheel)에서 따온 이름입니다. |
오프라인 모드(offline mode) | 라이브러리가 인터넷에서 찾지 않고 내 PC 의 캐시만 쓰게 하는 설정입니다. offline 은 "선에서 떨어진", 곧 네트워크에 이어지지 않은 상태라는 뜻입니다. |
텔레메트리(telemetry) | 프로그램이 사용 통계를 만든 회사로 보내는 기능입니다. tele(멀리)와 metry(재기)를 붙인 말로, 멀리서 잰 값을 받아 본다는 뜻입니다. |
문서 파이프라인(document pipeline) | 문서를 모으고, 다듬고, 나누고, 색인에 넣는 일을 차례로 잇는 흐름입니다. pipeline 은 "송유관"이라는 뜻으로, 앞 단계의 결과가 관을 따라 다음 단계로 흘러가는 모습에 빗댄 말입니다. |
정제(cleaning) | 메뉴, 꼬리말, 쪽 번호, 끊긴 줄, 개인정보처럼 답에 쓸모없거나 해로운 것을 걷어 내는 일입니다. cleaning 은 "청소"라는 뜻입니다. |
인코딩(encoding) | 글자를 바이트로 바꾸는 방식입니다. 요즘은 utf-8, 옛 한글 윈도 파일은 cp949 를 씁니다. encode 는 "부호(code)로 바꾸다"라는 뜻입니다. |
해시(hash) | 파일 내용으로 계산한 짧은 지문입니다. 내용이 한 글자라도 다르면 해시가 달라집니다. hash 는 "잘게 다져 섞다"라는 뜻으로, 내용을 다지듯 섞어 짧은 값으로 만드는 데서 왔습니다. |
메타데이터(metadata) | 글 자체가 아니라 글에 대한 정보입니다. 출처, 부서, 등급, 판, 날짜 등입니다. meta 는 그리스어로 "넘어서, 위에"라는 뜻으로, 데이터에 대한 데이터라는 말입니다. |
보안 등급(security level) | 문서를 누가 볼 수 있는지 정한 단계입니다. 이 장에서는 1 공개, 2 사내, 3 비밀입니다. level 은 "단계, 높이"라는 뜻입니다. |
폐쇄형 RAG(closed RAG) | 모델, 임베딩, 벡터DB 를 모두 사내에 두고 바깥 서비스 없이 도는 RAG 입니다. RAG 는 Retrieval-Augmented Generation 의 머리글자로, Retrieval(검색)로 Augmented(보강한) Generation(생성)이라는 뜻입니다. |
IVF(Inverted File Index) | 벡터를 여러 칸으로 나눠 두고 질문과 가까운 몇 칸만 뒤지는 인덱스입니다. Inverted(뒤집은) File(파일) Index(색인)라는 뜻으로, 칸마다 그 칸에 든 벡터 목록을 적어 두는 꼴에서 왔습니다. |
재현율(recall) | 정확한 검색이 찾은 가까운 벡터 가운데 빠른 검색도 찾은 몫입니다. recall 은 "다시 불러내다"라는 뜻으로, 찾아야 할 것을 얼마나 불러냈는지를 가리킵니다. |
증분 색인(incremental indexing) | 색인을 통째로 다시 만들지 않고 바뀐 문서만 고쳐 넣는 방식입니다. incremental 은 "조금씩 늘어나는"이라는 뜻입니다. |
12장 · 멀티모달 RAG 와 데이터셋 자동 생성
| 용어 | 설명 |
|---|---|
멀티모달(multimodal) | 글, 그림, 소리처럼 종류가 다른 자료를 함께 다루는 것입니다. 자료의 종류 하나를 모달리티(modality)라고 합니다. multi(여럿)와 modal(방식, 양식)을 붙인 말입니다. |
CLIP(대조 언어-그림 사전 학습) | 그림과 글을 같은 공간의 임베딩으로 바꾸도록 함께 학습한 모델입니다. 그림 인코더와 글 인코더로 되어 있습니다. Contrastive Language-Image Pre-training 의 머리글자로, Contrastive(대조하는), Language-Image(글과 그림), Pre-training(사전 학습)이라는 뜻입니다. |
인코더(encoder) | 그림이나 글을 받아 임베딩(숫자 줄)으로 바꾸는 부분입니다. encode(부호로 바꾸다)에 "하는 것"을 뜻하는 -er 를 붙인 말입니다. |
제로샷 분류(zero-shot classification) | 따로 학습하지 않고, 이름표 글들과의 유사도만으로 그림의 종류를 고르는 방법입니다. zero-shot 은 "예시를 한 번도(0번) 보여 주지 않고"라는 뜻입니다. |
비전 언어 모델(Vision Language Model) | 그림을 보고 글로 답하는 LLM 입니다. VLM 이라고 줄여 부릅니다. VLM 은 Vision(시각), Language(언어), Model(모델)의 머리글자입니다. |
캡션(caption) | 그림을 설명하는 짧은 글입니다. caption 은 그림이나 기사에 붙는 짧은 제목이나 설명이라는 뜻입니다. |
base64(베이스 64) | 그림 같은 바이트를 글자로 바꿔 JSON 에 담는 방법입니다. 영문 대소문자, 숫자, +, / 의 64가지 글자로 나타낸다는 뜻의 이름입니다. |
멀티모달 RAG(multimodal RAG) | 글뿐 아니라 그림과 표에서도 근거를 찾아 답하는 RAG 입니다. RAG 는 Retrieval-Augmented Generation(검색 증강 생성)의 머리글자입니다. |
데이터셋 자동 생성(synthetic data generation) | LLM 에게 문서를 주고 학습용 질문과 답을 만들게 하는 일입니다. 합성 데이터라고도 합니다. synthetic 은 "합성한, 만들어 낸"이라는 뜻입니다. |
근거 확인(grounding check) | 생성한 답의 숫자와 낱말이 원래 문서에 정말 있는지 견주는 것입니다. grounding 은 "땅에 붙이다"라는 뜻으로, 답을 실제 근거에 붙들어 둔다는 말입니다. |
데이터 누출(data leakage) | 시험 문제가 학습 데이터에 섞여 들어가 점수가 부풀려지는 것입니다. leakage 는 "새어 나감"이라는 뜻입니다. |
데이터셋 카드(dataset card) | 데이터를 어디서, 무엇으로, 어떻게 만들고 걸렀는지 적은 기록입니다. card 는 요점을 적은 작은 안내 카드라는 뜻입니다. |
13장 · REST API 와 FastAPI
| 용어 | 설명 |
|---|---|
API(Application Programming Interface) | 프로그램끼리 주고받는 약속입니다. 무엇을 어떤 꼴로 보내면 무엇이 돌아오는지 정합니다. Application(응용 프로그램), Programming(프로그래밍), Interface(맞닿는 면, 창구)의 머리글자입니다. |
HTTP(HyperText Transfer Protocol) | 웹에서 요청과 응답을 주고받는 약속입니다. 브라우저도 이것으로 웹 페이지를 받습니다. HyperText(링크로 이어진 글), Transfer(전송), Protocol(통신 규약)의 머리글자입니다. |
REST(Representational State Transfer) | 자원을 주소(URL)로, 할 일을 HTTP 메서드로 나타내는 API 설계 방식입니다. 이 방식을 따르면 RESTful 하다고 합니다. Representational(표현한), State(상태), Transfer(전달)의 머리글자로, 자원의 상태를 표현해 주고받는다는 뜻입니다. |
엔드포인트(endpoint) | API 에서 부를 수 있는 주소와 메서드 하나입니다. POST /predict 같은 것입니다. end(끝)와 point(지점)를 붙인 말로, 요청이 가 닿는 끝 지점이라는 뜻입니다. |
메서드(method) | 요청이 무엇을 하려는지 나타냅니다. GET(읽기), POST(만들기·처리), PUT(바꾸기), DELETE(지우기) 등입니다. method 는 "방법"이라는 뜻입니다. |
상태 코드(status code) | 응답의 결과를 나타내는 세 자리 숫자입니다. 200 은 성공, 404 는 없음, 500 은 서버 오류입니다. status 는 "상태", code 는 "부호"라는 뜻입니다. |
JSON(JavaScript Object Notation) | 사전과 목록을 글로 적는 꼴입니다. API 의 요청과 응답 본문에 가장 많이 씁니다. "자바스크립트 객체 표기법"이라는 뜻입니다. |
FastAPI | 파이썬 함수에 타입 힌트를 달면 API 와 입력 검사, 문서를 만들어 주는 웹 프레임워크입니다. Fast(빠른)와 API 를 붙인 이름입니다. |
Pydantic | 타입 힌트로 데이터의 꼴을 정하고 검사하는 라이브러리입니다. FastAPI 가 입력 검사에 씁니다. Python 의 Py 와 pedantic(꼼꼼히 따지는)을 합친 이름입니다. |
uvicorn | FastAPI 앱을 실제 서버로 띄우는 프로그램입니다. 이름의 uv 는 빠른 이벤트 처리 라이브러리 uvloop 에서 왔습니다. |
직렬화(serialization) | 메모리 속의 객체(학습한 모델 등)를 파일로 저장할 수 있게 바꾸는 것입니다. serial 은 "한 줄로 잇따르는"이라는 뜻으로, 객체를 바이트 한 줄로 늘어놓는다는 말입니다. |
인증(authentication) | 요청한 쪽이 누구인지 확인하는 것입니다. 실패하면 401 입니다. authentic(진짜의)에서 온 말로, 진짜 그 사람인지 확인한다는 뜻입니다. |
권한(authorization) | 확인된 사용자가 그 일을 해도 되는지 정하는 것입니다. 실패하면 403 입니다. authorize 는 "권한을 주다, 허락하다"라는 뜻입니다. |
API 키(API key) | 요청마다 머리글에 넣어 보내는 비밀 글자입니다. 누가 부르는지 알아보는 데 씁니다. key 는 "열쇠"라는 뜻입니다. |
JWT(JSON Web Token) | 사용자 정보와 만료 시각을 담고 서명한 토큰입니다. 서버는 서명만 확인하면 됩니다. JSON 으로 적은 웹용 Token(증표)이라는 뜻의 머리글자입니다. |
14장 · Streamlit 화면과 Docker 컨테이너
| 용어 | 설명 |
|---|---|
Streamlit | 파이썬 스크립트 하나로 웹 화면을 만드는 라이브러리입니다. streamlit run 파일.py 로 띄웁니다. 이름의 stream 은 "흐름, 시냇물"이라는 뜻입니다. |
위젯(widget) | 입력 칸, 선택 상자, 단추처럼 사용자가 값을 넣는 화면 요소입니다. widget 은 "작은 장치, 부품"을 가리키는 말입니다. |
다시 실행(rerun) | 위젯 값이 바뀔 때마다 Streamlit 이 스크립트를 처음부터 다시 실행하는 방식입니다. re(다시)와 run(실행하다)을 붙인 말입니다. |
세션 상태(session state) | 다시 실행돼도 사용자마다 남아 있는 값입니다. st.session_state 에 둡니다. session 은 "한 차례 이어지는 시간"이라는 뜻으로, 화면을 열어 닫을 때까지를 가리킵니다. |
캐시(cache) | 한 번 계산한 결과를 저장해 두고 다시 쓰는 것입니다. 모델 불러오기처럼 무거운 일에 씁니다. cache 는 프랑스어에서 온 말로 "숨겨 둔 저장고"라는 뜻입니다. |
컨테이너(container) | 프로그램과 그 프로그램이 쓰는 라이브러리, 설정을 한데 묶어 다른 프로그램과 떼어 놓고 실행하는 단위입니다. container 는 "담는 그릇"이라는 뜻으로, 짐을 담아 옮기는 화물 컨테이너에 빗댄 말입니다. |
이미지(image) | 컨테이너를 만드는 틀입니다. 운영체제의 일부, 파이썬, 패키지, 코드가 층층이 들어 있습니다. image 는 "본뜬 모습"이라는 뜻으로, 실행 환경을 그대로 떠 놓은 본이라는 말입니다. |
Docker | 이미지를 만들고 컨테이너를 실행하는 도구입니다. docker 는 "부두 노동자", 곧 배에 짐을 싣고 내리는 사람이라는 뜻입니다. |
Dockerfile | 이미지를 만드는 순서를 적은 파일입니다. Docker 와 file(파일)을 붙인 이름입니다. |
레지스트리(registry) | 이미지를 올려 두고 내려받는 저장소입니다. Docker Hub, 사내 레지스트리 등이 있습니다. registry 는 register(등록하다)에서 온 말로 "등록소"라는 뜻입니다. |
docker compose | 여러 컨테이너(화면, API, 모델 서버)를 파일 하나로 함께 띄우는 도구입니다. compose 는 "여럿을 모아 짜 맞추다"라는 뜻입니다. |
포트(port) | 한 컴퓨터 안에서 프로그램마다 나눠 쓰는 통신 번호입니다. 8013, 8501 같은 숫자입니다. port 는 "항구"라는 뜻입니다. |
볼륨(volume) | 컨테이너를 지워도 남도록 바깥에 저장하는 공간입니다. volume 은 "책 한 권, 부피"라는 뜻으로, 저장 공간 한 덩이를 가리킵니다. |
API 아키텍처(API architecture) | 화면, API, 모델 서버, 데이터를 어떻게 나누고 잇는지 정한 서비스의 짜임입니다. architecture 는 "건축, 설계 구조"라는 뜻입니다. |
15장 · 모델 경량화: 양자화, 프루닝, 지식증류
| 용어 | 설명 |
|---|---|
경량화(model compression) | 모델의 크기, 메모리, 계산량을 줄이는 일입니다. compression 은 "압축"이라는 뜻입니다. |
파라미터(parameter) | 모델이 학습한 숫자(가중치)입니다. Qwen2.5-0.5B 에는 약 4억 9,400만 개가 있습니다. 그리스어 para(곁)와 metron(재는 것)에서 온 말로, 모양을 정하는 값을 뜻합니다. |
정밀도(precision) | 숫자 하나를 몇 비트로 나타내는지입니다. fp32 는 32비트, fp16 은 16비트입니다. precision 은 "정밀함"이라는 뜻이고, fp 는 floating point(부동소수점)의 머리글자입니다. |
양자화(quantization) | 숫자를 더 적은 비트(8비트, 4비트 정수 등)로 나타내 크기를 줄이는 일입니다. quantum(양, 덩어리)에서 온 말로, 이어진 값을 띄엄띄엄 정해진 값으로 끊는다는 뜻입니다. |
스케일(scale) | 양자화한 정수를 원래 크기의 숫자로 되돌릴 때 곱하는 값입니다. scale 은 "눈금, 비율"이라는 뜻입니다. |
그룹 양자화(group-wise quantization) | 가중치를 작은 묶음(예: 128개)으로 나눠 묶음마다 스케일을 따로 두는 양자화입니다. group-wise 는 "묶음마다"라는 뜻입니다. |
GGUF | llama.cpp 와 Ollama 가 쓰는 모델 파일 꼴입니다. Q4_K_M, Q8_0 같은 양자화 단계를 담습니다. 앞선 파일 꼴 GGML 을 이은 이름이며, 글자 풀이는 자료마다 달라 여기서는 적지 않습니다. |
GPTQ(GPT Quantization) | 보정 데이터로 층마다 양자화 오차를 줄이며 4비트로 바꾸는 방법입니다. GPT(Generative Pre-trained Transformer, 생성형 사전 학습 트랜스포머)와 Quantization(양자화)을 붙인 이름입니다. |
AWQ(활성값 인식 가중치 양자화) | 활성값이 큰 중요한 가중치를 보호하며 4비트로 바꾸는 방법입니다. Activation-aware Weight Quantization 의 머리글자로, Activation-aware(활성값을 살피는), Weight(가중치), Quantization(양자화)이라는 뜻입니다. |
보정 데이터(calibration data) | 양자화할 때 오차를 재는 데 쓰는 작은 예시 글 묶음입니다. calibration 은 "눈금 맞추기"라는 뜻입니다. |
프루닝(pruning) | 덜 중요한 가중치나 뉴런을 0 으로 만들거나 지우는 일입니다. 가지치기라고도 합니다. prune 은 "가지를 치다"라는 뜻입니다. |
희소도(sparsity) | 가중치 가운데 0 인 것의 몫입니다. sparse 는 "드문드문한"이라는 뜻입니다. |
지식증류(knowledge distillation) | 큰 모델(선생님)의 답으로 작은 모델(학생)을 가르치는 일입니다. distillation 은 "증류", 곧 끓여서 핵심만 받아 낸다는 뜻입니다. |
소프트 레이블(soft label) | 정답 하나가 아니라 선생님이 내놓은 보기마다의 확률입니다. soft 는 "무른", label 은 "이름표"라는 뜻으로, 하나로 딱 잘라 정하지 않은 이름표라는 말입니다. |
퍼플렉서티(perplexity) | 모델이 글의 다음 토큰을 얼마나 헷갈려하는지 나타내는 값입니다. 낮을수록 좋습니다. perplexity 는 "당혹, 헷갈림"이라는 뜻입니다. |
KV 캐시(KV cache) | 글을 이어 쓸 때 앞 토큰의 계산 결과를 저장해 두는 메모리입니다. 글이 길수록 커집니다. KV 는 Key(키)와 Value(값)의 머리글자로, 앞 토큰마다 계산해 두는 두 값을 가리킵니다. |
16장 · vLLM 서빙 벤치마킹과 RAG 최적화
| 용어 | 설명 |
|---|---|
서빙(serving) | 학습한 모델을 서버에 올려 여러 사용자의 요청에 답하게 하는 일입니다. serve 는 "음식을 차려 내다, 시중들다"라는 뜻입니다. |
서빙 엔진(serving engine) | 모델을 올리고 요청을 받아 생성을 빠르게 돌려주는 프로그램입니다. vLLM, Ollama, TGI 등이 있습니다. engine 은 "기관, 엔진"이라는 뜻으로, 일을 실제로 돌리는 핵심 프로그램을 가리킵니다. |
vLLM | KV 캐시를 쪽 단위로 관리하고 요청을 연속 배치로 묶어 처리량을 높인 오픈소스 서빙 엔진입니다. LLM(Large Language Model, 대규모 언어 모델)을 서빙하려고 만든 엔진이라 이름에 LLM 이 들어 있습니다. |
프리필(prefill) | 입력 프롬프트 전체를 한 번에 읽어 KV 캐시를 채우는 단계입니다. pre(미리)와 fill(채우다)을 붙인 말입니다. |
디코드(decode) | 토큰을 하나씩 이어 쓰는 단계입니다. 출력 토큰 수만큼 되풀이합니다. decode 는 "부호를 풀다, 해독하다"라는 뜻입니다. |
PagedAttention | KV 캐시를 작은 쪽(블록)으로 나눠 필요한 만큼만 잡는 vLLM 의 방법입니다. page(쪽)와 attention(어텐션, 주의)을 붙인 이름으로, 운영체제가 메모리를 쪽 단위로 나눠 쓰는 방식에서 착안했습니다. |
배치(batch) | 여러 요청을 묶어 한 번의 계산으로 처리하는 일입니다. batch 는 "한 번에 구워 내는 한 판, 한 묶음"이라는 뜻입니다. |
연속 배치(continuous batching) | 끝난 요청의 자리에 기다리던 요청을 바로 넣어 묶음을 계속 채우는 배치입니다. continuous 는 "끊이지 않는"이라는 뜻입니다. |
TTFT(Time To First Token) | 요청을 보낸 뒤 첫 토큰을 받기까지의 시간입니다. Time(시간), To(~까지), First(첫), Token(토큰)의 머리글자입니다. |
TPOT(Time Per Output Token) | 첫 토큰 뒤 토큰 하나가 나오는 데 드는 평균 시간입니다. Time(시간), Per(~마다), Output(출력), Token(토큰)의 머리글자입니다. |
지연 시간(latency) | 요청 하나를 보내고 답을 다 받기까지의 시간입니다. latency 는 "늦어짐, 지연"이라는 뜻입니다. |
처리량(throughput) | 서버가 1초에 만들어 내는 토큰 수나 처리하는 요청 수입니다. through(통과하여)와 put(내놓다)을 붙인 말로, 일정 시간에 처리해 내는 양을 뜻합니다. |
p95(95th percentile) | 값을 작은 것부터 늘어놓았을 때 95% 자리의 값입니다. 느린 요청을 볼 때 씁니다. p 는 percentile(백분위수)의 머리글자이고, percentile 은 per cent(백에 대하여)에서 온 말입니다. |
동시성(concurrency) | 서버에 한꺼번에 보내는 요청의 수입니다. concurrent 는 "함께 달리는, 동시에 일어나는"이라는 뜻입니다. |
병목(bottleneck) | 전체 속도를 붙잡는 가장 느린 단계입니다. 병의 목처럼 좁아 흐름이 막히는 곳이라는 뜻의 bottleneck 을 옮긴 말입니다. |
프리픽스 캐시(prefix cache) | 앞부분이 같은 프롬프트의 KV 캐시를 다시 써서 프리필을 건너뛰는 캐시입니다. prefix 는 "앞에 붙는 것, 접두사"이고, cache 는 프랑스어로 "숨겨 두는 곳"에서 온 말입니다. |
17장 · Project 02. LLM 추론 API 서빙
| 용어 | 설명 |
|---|---|
추론 API(inference API) | 학습을 마친 모델에 입력을 보내 결과(요약, 분류, 답)를 받는 API 입니다. 모델을 고치지 않고 쓰기만 합니다. inference 는 "미루어 판단함, 추론"이라는 뜻이고, API 는 Application Programming Interface(응용 프로그램 프로그래밍 인터페이스)의 머리글자입니다. |
수명 주기(lifespan) | 서버가 켜질 때와 꺼질 때 할 일을 적는 곳입니다. FastAPI 에서는 lifespan 이라고 부릅니다. life(생명)와 span(길이, 기간)을 붙인 말로 "수명"이라는 뜻입니다. |
데우기(warm-up) | 서버가 요청을 받기 전에 모델에 한 번 물어 GPU 에 올려 두는 일입니다. warm-up 은 운동 전에 몸을 데우는 "몸풀기"라는 뜻입니다. |
준비 상태(readiness) | 서버가 요청을 받을 준비를 마쳤는지 알리는 값입니다. /health 가 돌려주고, compose 의 상태 검사가 읽습니다. readiness 는 "준비되어 있음"이라는 뜻입니다. |
응답 약속(contract) | API 가 받을 입력의 범위와 돌려줄 응답의 꼴을 미리 정한 것입니다. contract 는 "계약"이라는 뜻입니다. |
동시 처리 제한(concurrency limit) | 한꺼번에 처리할 요청의 수를 정해 두고, 넘치는 요청은 받지 않는 장치입니다. concurrency 는 "동시에 일어남", limit 는 "한도"라는 뜻입니다. |
503 Service Unavailable | "지금은 붐벼서 받을 수 없다"는 상태 코드입니다. 잠시 뒤 다시 보내면 됩니다. Service Unavailable 은 "서비스를 쓸 수 없음"이라는 뜻입니다. |
Retry-After | 503 응답에 붙여 "몇 초 뒤에 다시 보내라"고 알려 주는 머리글입니다. retry 는 "다시 시도하다", after 는 "~ 뒤에"라는 뜻입니다. |
시간 제한(timeout) | 모델의 답을 기다릴 최대 시간입니다. 넘으면 기다리기를 그만두고 오류로 답합니다. time 과 out(다 되다)을 붙인 말로 "정한 시간이 다 됨"이라는 뜻입니다. |
504 Gateway Timeout | 뒤에 있는 서버(여기서는 모델)가 정한 시간 안에 답하지 않았다는 상태 코드입니다. gateway 는 "출입구, 관문"이라는 뜻으로, 요청을 뒤 서버로 넘겨주는 앞단 서버를 가리킵니다. |
두 단계 분류(cascade) | 빠른 분류기가 먼저 나누고, 확신이 낮은 것만 느리지만 정확한 LLM 에 다시 맡기는 방식입니다. cascade 는 "여러 단으로 이어져 떨어지는 폭포"라는 뜻입니다. |
확신도(confidence) | 분류기가 고른 분류에 스스로 매긴 확률입니다. predict_proba 의 가장 큰 값입니다. confidence 는 "자신감, 확신"이라는 뜻입니다. |
모델 판(model version) | 서비스가 쓰는 모델과 설정에 붙인 이름입니다. 응답에 함께 적어, 어떤 판이 답했는지 나중에 알 수 있게 합니다. version 은 "판, 달라진 꼴"이라는 뜻입니다. |
부하 시험(load test) | 여러 사람이 한꺼번에 부르는 상황을 흉내 내어 처리량과 응답 시간을 재는 시험입니다. load 는 "짐, 실린 양"이라는 뜻입니다. |
18장 · Project 03. 내 서버에서 일하는 AI Agent
| 용어 | 설명 |
|---|---|
프라이빗 에이전트(private agent) | 회사 안의 서버에서 공개 모델로 도는 AI 에이전트입니다. 질문과 업무 데이터가 회사 밖으로 나가지 않습니다. private 는 "사적인, 내부의", agent 는 "대신 일을 맡아 하는 사람, 대리인"이라는 뜻입니다. |
End-to-End(끝에서 끝까지) | 사용자의 요청을 받는 곳부터 모델, 도구, 기록까지 한 줄로 이어 실제로 돌아가게 만드는 것입니다. "한쪽 끝에서 다른 쪽 끝까지"라는 뜻이고, 줄여서 E2E 라고도 씁니다. |
읽기 도구(read tool) | 정보를 찾아 돌려주기만 하는 도구입니다. 규정 검색, 주문 조회가 여기에 듭니다. read 는 "읽다"라는 뜻으로, 데이터를 바꾸지 않고 읽기만 한다는 말입니다. |
쓰기 도구(write tool) | 시스템의 상태를 바꾸는 도구입니다. 휴가 신청, 반품 접수처럼 되돌리기 어려운 일을 합니다. write 는 "쓰다"라는 뜻으로, 데이터에 새로 적거나 고친다는 말입니다. |
사용자 묶기(user binding) | 도구가 누구의 데이터를 다룰지를 LLM 이 아니라 서버가 로그인 정보로 정해 두는 것입니다. bind 는 "묶다, 매다"라는 뜻입니다. |
확인 대기(pending confirmation) | 쓰기 도구가 바로 실행하지 않고 "이렇게 할까요?"라는 작업만 만들어 두는 상태입니다. 사람이 확인하면 실행됩니다. pending 은 "결정을 기다리는 중", confirmation 은 "확인"이라는 뜻입니다. |
실행 기록(trace) | 에이전트가 요청 하나를 처리하며 부른 도구, 인자, 결과, 걸린 시간을 차례로 남긴 것입니다. trace 는 "발자국, 자취"라는 뜻입니다. |
끝 상태 채점(end-state evaluation) | 에이전트의 말이 아니라, 일을 마친 뒤 시스템에 남은 결과(만든 신청, 접수한 반품)로 성공을 가리는 채점입니다. end state 는 "마지막에 남은 상태", evaluation 은 "평가"라는 뜻입니다. |
프롬프트 인젝션(prompt injection) | 사용자의 말에 "이전 지시를 무시해"처럼 에이전트의 지시를 바꾸려는 문장을 섞는 공격입니다. 21장에서 자세히 다룹니다. injection 은 "주사, 주입"이라는 뜻으로, 지시를 몰래 밀어 넣는다는 말입니다. |
상담원 넘기기(handoff) | 에이전트가 처리하지 않고 사람 상담원에게 대화를 넘기는 것입니다. hand off 는 "손에서 손으로 넘겨주다"라는 뜻입니다. |
19장 · MLOps 와 LLMOps, 워크플로 자동화
| 용어 | 설명 |
|---|---|
MLOps(Machine Learning Operations) | 머신러닝 모델을 만들고, 배포하고, 지켜보고, 다시 학습하는 일을 꾸준히 굴러가게 만드는 방법과 도구입니다. ML(Machine Learning, 머신러닝)과 Ops(Operations, 운영)를 붙인 말로, 개발과 운영을 잇는 DevOps 에서 따온 이름입니다. |
LLMOps(LLM Operations) | MLOps 를 LLM 서비스에 맞춘 것입니다. 프롬프트, 검색 색인, 평가 묶음까지 버전으로 관리합니다. LLM(Large Language Model, 대규모 언어 모델)과 Ops(Operations, 운영)를 붙인 말입니다. |
실험 기록(experiment tracking) | 학습할 때 쓴 설정, 나온 점수, 만든 파일을 실행마다 남기는 일입니다. experiment 는 "실험", tracking 은 "뒤를 밟아 따라감"이라는 뜻입니다. |
실행(run) | MLflow 에서 학습 한 번을 기록하는 단위입니다. run 은 "한 번 돌림"이라는 뜻입니다. |
모델 레지스트리(model registry) | 배포할 후보 모델을 이름과 버전으로 모아 두는 곳입니다. registry 는 "등록부, 등기소"라는 뜻입니다. |
별칭(alias) | 레지스트리의 버전 하나를 가리키는 이름표입니다. 예를 들면 champion 입니다. alias 는 "또 다른 이름"이라는 뜻입니다. |
챔피언(champion) | 지금 서비스에 쓰는 모델입니다. 새 후보는 도전자라고 부릅니다. champion 은 "우승자"라는 뜻이고, 도전자는 영어로 challenger 입니다. |
품질 게이트(quality gate) | 새 후보가 정한 기준을 넘을 때만 배포하게 막는 관문입니다. gate 는 "문, 관문"이라는 뜻입니다. |
되돌리기(rollback) | 문제가 생긴 배포를 앞의 버전으로 돌리는 일입니다. roll(굴리다)과 back(뒤로)을 붙인 말입니다. |
이미지 층(image layer) | Docker 이미지를 이루는 겹입니다. Dockerfile 의 명령 한 줄이 층 하나를 만듭니다. layer 는 "겹, 층"이라는 뜻입니다. |
빌드 캐시(build cache) | 바뀌지 않은 층을 다시 만들지 않고 그대로 쓰는 Docker 의 기능입니다. build 는 "짓다", cache 는 프랑스어로 "숨겨 두는 곳"에서 온 말입니다. |
볼륨(volume) | 컨테이너 밖에 두는 저장 공간입니다. 컨테이너를 지워도 남습니다. volume 은 "책 한 권, 한 덩어리"라는 뜻에서 저장 공간 한 덩어리를 가리키게 되었습니다. |
워크플로(workflow) | 순서가 정해진 여러 작업의 묶음입니다. work(일)와 flow(흐름)를 붙인 말입니다. |
DAG(Directed Acyclic Graph) | 작업과 작업 사이의 앞뒤 관계를 화살표로 이은, 되돌아오는 길이 없는 그림입니다. Directed(방향이 있는), Acyclic(고리가 없는), Graph(그래프)의 머리글자로, 우리말로 방향성 비순환 그래프라고 합니다. |
Airflow | DAG 로 적은 작업을 정한 시각에 돌리고 기록하는 오픈소스 워크플로 도구입니다. air(공기)와 flow(흐름)를 붙인 이름으로 "공기의 흐름"이라는 뜻입니다. |
데이터 구간(data interval) | Airflow 의 실행 하나가 맡는 데이터의 시간 범위입니다. interval 은 "사이, 간격"이라는 뜻입니다. |
멱등성(idempotence) | 같은 작업을 여러 번 돌려도 한 번 돌린 것과 결과가 같은 성질입니다. 라틴어 idem(같은)과 potent(힘이 있는)를 붙인 수학 용어입니다. |
증분 처리(incremental processing) | 바뀐 부분만 골라 다시 처리하는 방식입니다. increment 는 "늘어난 양, 증가분"이라는 뜻입니다. |
지문(fingerprint) | 내용에서 계산한 짧은 글자열입니다. 내용이 한 글자만 바뀌어도 달라집니다. fingerprint 는 "손가락 지문"이라는 뜻이고, 이 값을 만드는 계산을 해시(hash, 잘게 다져 섞다)라고 합니다. |
20장 · LLM 평가와 모니터링
| 용어 | 설명 |
|---|---|
평가 묶음(evaluation set) | 판이 바뀔 때마다 같은 방법으로 재기 위해 정해 둔 질문과 참조 답의 모음입니다. evaluation 은 "값을 매김, 평가", set 는 "한 벌, 묶음"이라는 뜻입니다. |
참조 답(reference answer) | 평가 묶음의 질문마다 사람이 적어 둔 바른 답입니다. reference 는 "참고, 기준으로 삼는 것"이라는 뜻입니다. |
규칙 채점(rule-based scoring) | 열쇠 낱말이 들었는지, 형식이 맞는지처럼 코드로 정한 규칙으로 답을 채점하는 일입니다. rule-based 는 "규칙에 바탕을 둔"이라는 뜻입니다. |
의미 유사도(semantic similarity) | 두 문장의 뜻이 얼마나 가까운지를 임베딩의 코사인 유사도로 잰 값입니다. semantic 은 "뜻에 관한", similarity 는 "닮은 정도"라는 뜻입니다. |
LLM 채점자(LLM-as-a-judge) | 채점 기준을 주고 다른 LLM 의 답을 채점하게 한 LLM 입니다. "심판(judge)으로서의 LLM"이라는 뜻이고, LLM 은 Large Language Model(대규모 언어 모델)의 머리글자입니다. |
채점 기준표(rubric) | 무엇을 맞음과 틀림으로 볼지 적은 기준입니다. rubric 은 라틴어로 "붉은 흙"에서 온 말로, 옛 책에서 지시문을 붉은 글씨로 쓴 데서 "지침, 기준"이라는 뜻이 생겼습니다. |
일치율(agreement rate) | 채점자의 판정이 사람의 판정과 같은 비율입니다. agreement 는 "의견이 같음, 일치"라는 뜻입니다. |
환각(hallucination) | 자료에 없거나 사실과 다른 내용을 그럴듯하게 지어내는 일입니다. hallucination 은 "없는 것을 보는 헛것, 환각"이라는 뜻입니다. |
근거 충실도(faithfulness) | 답의 내용이 검색한 자료로 뒷받침되는 정도입니다. faithful 은 "충실한, 원본에 어긋나지 않는"이라는 뜻입니다. |
드리프트(drift) | 운영 중에 들어오는 데이터나 그 뜻이 학습·평가 때와 달라지는 일입니다. drift 는 "물결이나 바람에 떠밀려 감"이라는 뜻입니다. |
데이터 드리프트(data drift) | 입력(질문)의 분포가 바뀌는 드리프트입니다. 데이터가 떠밀려 달라진다는 뜻입니다. |
개념 드리프트(concept drift) | 같은 질문에 대한 바른 답이 바뀌는 드리프트입니다. concept 는 "개념"이라는 뜻으로, 맞고 틀림의 기준 자체가 떠밀려 간다는 말입니다. |
PSI(Population Stability Index) | 두 기간의 범주 비율이 얼마나 달라졌는지 재는 값입니다. Population(모집단), Stability(안정성), Index(지수)의 머리글자로, 모집단 안정성 지수라는 뜻입니다. |
KS 검정(Kolmogorov-Smirnov test) | 두 숫자 묶음의 분포가 같은지 보는 통계 검정입니다. KS 는 이 검정을 만든 두 수학자 콜모고로프(Kolmogorov)와 스미르노프(Smirnov)의 머리글자입니다. |
기준 기간(baseline period) | 견줄 때 "평소"로 삼는 기간입니다. baseline 은 "기준선"이라는 뜻입니다. |
p95(95th percentile) | 값을 작은 것부터 늘어놓았을 때 95% 자리의 값입니다. p 는 percentile(백분위수)의 머리글자이고, percentile 은 per cent(백에 대하여)에서 온 말입니다. |
오류율(error rate) | 전체 요청 가운데 오류로 끝난 요청의 비율입니다. error 는 "잘못", rate 는 "비율"이라는 뜻입니다. |
문턱(threshold) | 알림을 울릴 경계값입니다. threshold 는 "문지방, 문턱"이라는 뜻입니다. |
알림 피로(alert fatigue) | 알림이 너무 잦아 사람이 무시하게 되는 일입니다. alert 는 "경보", fatigue 는 "피로"라는 뜻입니다. |
대시보드(dashboard) | 여러 지표를 한 화면에 모아 보여 주는 화면입니다. dashboard 는 마차 앞에서 튀는 진흙을 막던 판을 가리키던 말로, 뒤에 자동차의 계기판을 뜻하게 되었습니다. |
21장 · AI 거버넌스와 보안, 온프레미스 인프라
| 용어 | 설명 |
|---|---|
프롬프트 인젝션(prompt injection) | 입력이나 자료에 지시문을 섞어 LLM 이 원래 지시 대신 그것을 따르게 하는 공격입니다. injection 은 "주사, 주입"이라는 뜻으로, 지시를 몰래 밀어 넣는다는 말입니다. |
직접 인젝션(direct injection) | 사용자가 보내는 말에 공격 지시를 담는 인젝션입니다. direct 는 "곧바로, 직접"이라는 뜻입니다. |
간접 인젝션(indirect injection) | 검색 문서, 웹 페이지, 메일처럼 LLM 이 읽는 자료에 공격 지시를 심어 두는 인젝션입니다. indirect 는 "에둘러, 간접으로"라는 뜻입니다. |
시스템 프롬프트 유출(system prompt leak) | 서비스가 숨겨 둔 지시문이나 그 안의 비밀이 답으로 새어 나오는 일입니다. leak 는 "새다, 새는 곳"이라는 뜻입니다. |
카나리(canary) | 새어 나왔는지 알아보려고 일부러 심어 두는 가짜 값입니다. 탄광에서 유독 가스를 먼저 알아채려고 카나리아 새를 데려가던 데서 온 이름입니다. |
다층 방어(defense in depth) | 한 가지 방어에 기대지 않고 입력, 자료, 모델, 출력에 검사를 겹겹이 두는 방식입니다. defense in depth 는 "깊이를 두고 겹겹이 막는 방어"라는 뜻의 군사 용어에서 왔습니다. |
Red Teaming(레드팀 활동) | 일부러 공격하는 사람의 눈으로 서비스의 약점을 찾는 시험입니다. 모의 훈련에서 공격하는 편을 붉은 팀(red team)이라고 부르는 데서 온 말입니다. |
LLMSecOps(LLM Security Operations) | LLM 서비스의 보안 점검을 개발과 배포 과정에 넣어 늘 돌게 하는 방식입니다. LLM(Large Language Model, 대규모 언어 모델), Sec(Security, 보안), Ops(Operations, 운영)를 붙인 말입니다. |
마스킹(masking) | 개인정보를 [전화] 같은 표시로 바꿔 가리는 일입니다. mask 는 "가면, 가리다"라는 뜻입니다. |
가명 처리(pseudonymization) | 개인정보를 같은 사람에게는 늘 같은 가짜 표시로 바꿔, 누구인지는 모르게 하되 같은 사람인지는 알게 하는 일입니다. pseudonym 은 그리스어 pseudo(거짓)와 onyma(이름)를 붙인 말로 "가명"이라는 뜻입니다. |
재현율(recall) | 찾아야 할 것 가운데 실제로 찾은 비율입니다. recall 은 "다시 불러냄, 기억해 냄"이라는 뜻입니다. |
정밀도(precision) | 찾았다고 한 것 가운데 진짜인 비율입니다. precision 은 "정확함, 정밀함"이라는 뜻입니다. |
접근 제어(access control) | 사용자의 권한에 따라 볼 수 있는 자료를 나누는 일입니다. access 는 "다가감, 접근", control 은 "다스림, 제어"라는 뜻입니다. |
역할 기반 접근 제어(Role-Based Access Control) | 사람마다가 아니라 역할(인턴, 팀원, 팀장)마다 권한을 주는 방식입니다. 머리글자를 따서 RBAC 이라고 부르며, Role(역할), Based(기반), Access(접근), Control(제어)입니다. |
AI 거버넌스(AI governance) | AI 를 누가, 어떤 기준으로 만들고 쓰고 책임지는지 정한 규칙과 절차입니다. AI 는 Artificial Intelligence(인공지능)의 머리글자이고, governance 는 "배의 키를 잡다"라는 뜻의 그리스어에서 온 말로 "다스림, 관리 체계"를 뜻합니다. |
모델 카드(model card) | 모델의 용도, 데이터, 성능, 한계를 적은 문서입니다. card 는 "한 장짜리 카드"라는 뜻으로, 모델의 신상을 한눈에 적은 안내문이라는 말입니다. |
온프레미스(on-premises) | 서버를 회사 안에 두고 직접 운영하는 방식입니다. premises 는 "건물과 그 부지, 구내"라는 뜻으로, 회사 건물 안에 둔다는 말입니다. |
KV 캐시(Key-Value cache) | 생성할 때 앞 토큰의 계산 결과를 담아 두는 GPU 메모리입니다(16장). Key(키)와 Value(값)의 머리글자로, 어텐션 계산에 쓰는 키와 값을 담아 둔다는 뜻입니다. |