콘텐츠로 이동

10 kieuk

confabulation

  • 뜻: 사실처럼 들리지만 근거 없이 지어낸 내용을 자신 있게 구성하는 생성 오류입니다. 단순 오타나 문장 파손이 아니라, 문장 모양은 그럴듯한데 실제 근거와 확인 가능성이 비어 있는 내용을 자연스럽게 이어 붙이는 현상에 가깝습니다. 특히 모른다고 멈추지 않고 빈자리를 매끈한 문장으로 메워 버린다는 점이 핵심입니다.
  • 왜 중요한가: 한국어 본문에서 흔히 환각(hallucination)이라 부르는 현상을 더 정확하게 이해하고, 자연스러움과 사실성을 구분하게 해 주기 때문입니다. 이 개념이 있어야 문장이 매끄럽다는 평가와 내용이 사실이다는 평가를 분리하고, 왜 출처 확인과 사람 검토가 계속 필요한지도 설명할 수 있습니다. 또한 confabulation을 이해해야 검색 후보가 있더라도 답변 단계에서 근거를 넘는 일반화가 다시 생길 수 있다는 점, 그래서 검색과 답변 검증을 같은 문제로 뭉개면 안 된다는 점도 더 분명해집니다.
  • 함께 볼 개념: 환각(hallucination), 근거(evidence), 사실성(factuality), 검토(review)
  • 중심 Section: P1-10.3
  • 등장 Section: P1-12.3, P1-13.2, P7-5.2

k-NN(k-nearest neighbors)

  • 뜻: 새 입력과 가장 가까운 k개의 사례를 찾아 그 이웃의 다수결이나 평균으로 예측하는 모델입니다. 별도의 복잡한 파라미터를 많이 학습하기보다, 저장된 사례와의 가까움을 직접 활용해 판단하는 방식에 가깝습니다. 즉 k-NN은 전역 규칙 하나를 만든다보다 주변의 비슷한 사례를 먼저 본다는 발상으로 읽는 편이 더 정확합니다.
  • 왜 중요한가: 학습된 복잡한 식보다 가까운 사례를 근거로 판단한다는 가장 직접적인 사례 기반 직관을 보여 줍니다. 그래서 거리 개념, 특징 스케일, 이웃 수 k가 결과에 얼마나 큰 영향을 주는지 설명하기 좋은 출발점이 됩니다. 예를 들어 새 고객을 볼 때 공통 공식 하나로 바로 분류하기보다, 비슷한 기존 고객 몇 명의 결과를 먼저 참고하는 방식이 바로 k-NN의 직관에 가깝습니다. 결국 k-NN을 이해해야 모델이 언제는 식을 배우고, 언제는 비교할 기준 사례를 준비하는 방식으로 작동할 수 있다는 점도 더 또렷하게 보게 됩니다.
  • 함께 볼 개념: 최근접 이웃(nearest neighbor), 거리(distance), 스케일(scale)
  • 중심 Section: P4-12.1
  • 등장 Section: P4-12.2

KV cache

  • 뜻: 이미 계산한 이전 토큰의 key/value 표현을 저장해 두고, 다음 토큰 생성 때 다시 전부 계산하지 않도록 재사용하는 장치입니다. 즉 매 step마다 과거 문맥 전체를 처음부터 다시 풀지 않고, 이미 계산한 중간 표현을 붙여 이어 가게 만드는 추론 최적화 장치라고 볼 수 있습니다.
  • 왜 중요한가: 대화형 생성에서 긴 문맥을 매 step 처음부터 다시 계산하면 지연 시간이 크게 늘어나므로, 실제 서비스 속도와 비용을 좌우하는 핵심 최적화 감각이기 때문입니다. 이 개념이 있어야 긴 문맥 처리가 단순 모델 성능 문제가 아니라, 이전 계산을 어떻게 재사용하느냐의 시스템 문제이기도 하다는 점을 읽게 됩니다. 또한 KV cache를 이해해야 문맥이 길어질수록 왜 느려지는가를 막연한 인상으로 두지 않고, 어떤 계산을 저장하고 어떤 계산을 새로 하는지의 관점에서 더 구체적으로 설명하게 됩니다.
  • 함께 볼 개념: 쿼리-키-값(query-key-value, QKV), 문맥 창(context window), 롱 컨텍스트(long-context)
  • 중심 Section: P6-4.3
  • 등장 Section: P5-14.2

QLoRA

  • 뜻: LoRA 조정 방식에 양자화(quantization)를 함께 써서, 큰 기반 모델을 더 낮은 메모리 조건에서 다루기 쉽게 하려는 실무 확장입니다. 핵심은 기반 모델 본체를 더 가볍게 들고 있으면서, 적응에 필요한 작은 조정분은 LoRA처럼 따로 학습해 메모리 부담과 적응 유연성을 함께 잡으려는 데 있습니다. 즉 효율적 조정효율적 저장을 결합한 형태라고 볼 수 있습니다.
  • 왜 중요한가: LoRA 자체와 메모리 제약 완화가 어떻게 결합되는지 이해해야 제한된 자원에서 어떤 조정 전략을 고를지 설명할 수 있기 때문입니다. 이 개념이 있어야 조정 가능성메모리 가능성을 따로 보지 않고 함께 판단하게 되고, 같은 기반 모델도 하드웨어 제약에 따라 현실적인 조정 방법이 달라진다는 점을 더 분명히 읽게 됩니다. 또한 QLoRA는 모델이 너무 커서 조정은 불가능하다는 판단이 절대적인 것이 아니라, 어떤 저장 형식과 적응 방식을 쓰느냐에 따라 현실 조건이 달라질 수 있음을 보여 주는 대표 사례이기도 합니다.
  • 함께 볼 개념: LoRA, 양자화(quantization), 미세조정(fine-tuning)
  • 중심 Section: P6-9.5

캐싱(caching)

  • 뜻: 반복해서 필요한 입력, 조회 결과, 계산 결과를 다시 쓰기 위해 중간 결과를 임시로 저장해 두는 방식입니다. 즉 다시 계산할 것인가, 전에 만든 결과를 재사용할 것인가를 가르는 운영 전략입니다. 한 번 만든 답이나 계산 조각을 가까운 곳에 두고, 같은 요청이 오면 다시 비싼 계산을 하지 않게 만드는 장치라고 볼 수 있습니다.
  • 왜 중요한가: 같은 프롬프트 일부나 같은 조회 결과가 자주 반복될 때 매번 처음부터 다시 계산하지 않으면 비용과 지연 시간을 함께 줄일 수 있습니다. 동시에 캐시가 너무 오래되면 최신성과 정확성이 떨어질 수 있으므로, 캐싱은 단순 속도 기법이 아니라 성능신선도 사이의 균형 문제로 읽어야 합니다. 또한 캐싱을 이해해야 느린 시스템을 무조건 모델 속도 문제로 보지 않고, 어떤 결과를 재사용할 수 있는지 설계하는 문제로도 해석하게 됩니다. 예를 들어 긴 시스템 지시문이나 반복되는 조회 결과를 재사용하면 비용을 크게 줄일 수 있지만, 정책 문서가 자주 바뀌는 장면에서는 오래된 캐시가 오히려 잘못된 답의 원인이 될 수 있습니다.
  • 함께 볼 개념: 비용(cost), 지연 시간(latency), 배치(batch)
  • 중심 Section: P1-14.6

커밋(commit)

  • 뜻: 의미 있는 변경 묶음을 메시지와 함께 저장소 이력에 남긴 기록 단위입니다. 단순히 현재 파일 상태를 덮어쓰는 것이 아니라, 이 시점에 어떤 의도로 무엇을 바꿨는가를 이력으로 고정하는 행위에 가깝습니다. 즉 커밋은 파일 저장보다 더 좁은 기술 동작이 아니라, 나중에 다시 읽고 검토할 수 있는 변경 사건 하나를 만드는 일입니다.
  • 왜 중요한가: 파일을 저장하는 것만으로는 변경 이유와 범위를 설명하기 어렵습니다. 커밋 단위가 분명해야 나중에 이력을 읽고 비교하고, 문제가 생겼을 때 어느 수정이 영향을 주었는지 추적할 수 있고, 협업에서도 검토 가능한 변경 묶음을 만들 수 있습니다. 이 개념이 있어야 작업했다이력으로 남겼다를 구분하게 되고, 커밋 메시지가 왜 단순 메모가 아니라 변경 의도를 복원하는 설명문 역할을 하는지도 이해하게 됩니다.
  • 함께 볼 개념: Git, 스테이징 영역(staging area), 저장소(repository)
  • 중심 Section: P2-14.1
  • 등장 Section: P2-14.2

코드 셀(code cell)

  • 뜻: 노트북에서 실제 코드를 입력하고 실행하는 셀입니다. 문서 안의 한 단락처럼 보이지만, 실행하면 런타임 상태를 바꾸는 작은 프로그램 단위이기도 합니다. 따라서 코드 셀은 단순 예시 박스가 아니라, 변수와 출력, 메모리 상태를 실제로 바꾸는 실행 조각으로 이해해야 합니다.
  • 왜 중요한가: 셀 단위 실행이 가능하다는 점이 스크립트와 노트북의 차이를 만들고, 실행 순서 문제도 여기서 생기기 때문입니다. 코드 셀을 이해해야 노트북이 왜 설명 문서이면서 동시에 상태를 가진 실행 공간인지 잡히고, 위 셀을 다시 돌리지 않아 생긴 오류 같은 상황도 더 자연스럽게 해석할 수 있습니다. 이 개념이 있어야 보이는 코드 순서실제로 상태를 바꾼 순서가 다를 수 있다는 점도 함께 읽게 됩니다. 결국 노트북 실습에서는 셀 내용만 읽는 것보다, 어떤 셀이 언제 실행되어 현재 상태를 만들었는지 추적하는 습관이 중요해집니다.
  • 함께 볼 개념: 노트북(notebook), 마크다운 셀(markdown cell), 출력(output)
  • 중심 Section: P2-10.1
  • 등장 Section: P2-10.2, P2-10.3, P2-11.2

코사인 유사도(cosine similarity)

  • 뜻: 두 벡터가 같은 방향을 얼마나 비슷하게 향하는지 보는 유사도 기준입니다. 벡터의 절대 길이보다, 두 벡터가 만드는 각도가 얼마나 작은지를 통해 가까움을 읽는 방식이라고 볼 수 있습니다. 즉 절대 크기 차이는 잠시 접어 두고, 의미 방향이 얼마나 비슷한가에 더 초점을 맞추는 비교 방식입니다.
  • 왜 중요한가: 텍스트 임베딩 검색에서는 길이가 큰 벡터보다 방향이 비슷한 벡터가 더 중요한 경우가 많습니다. 이 개념이 있어야 왜 어떤 검색 시스템은 유클리드 거리보다 코사인 유사도를 쓰는지, 그리고 비슷한 의미비슷한 방향으로 해석하는 직관이 어떻게 작동하는지 이해할 수 있습니다. 또한 코사인 유사도를 이해해야 문서 길이나 벡터 크기가 조금 달라도 핵심 주제가 비슷하면 가깝게 잡히는 이유를 더 자연스럽게 해석하게 됩니다. 반대로 길이 차이 자체가 중요한 문제라면 코사인 유사도만으로는 충분하지 않을 수 있다는 경계도 함께 읽어야 합니다.
  • 함께 볼 개념: 유사도(similarity), 거리(distance), 유사도 검색(similarity search)
  • 중심 Section: P1-13.2
  • 등장 Section: P1-13.1, P2-3.2, P2-3.4

콜랩(Colab)

  • 뜻: 브라우저에서 노트북을 실행할 수 있게 해 주는 Google의 호스팅형 Jupyter 환경입니다. 로컬 설치 없이 바로 시작할 수 있지만, 실행 자원이 내 컴퓨터 바깥의 임시 세션에 있다는 점이 특징입니다. 즉 콜랩은 설치 없이 바로 쓰는 편의성내 컴퓨터 밖에서 도는 세션이라는 특성을 함께 가진 환경입니다.
  • 왜 중요한가: 설치 부담을 줄여 실습 시작을 쉽게 하지만, 런타임 초기화와 파일 지속성 같은 조건을 함께 이해해야 하기 때문입니다. 즉 쉽게 시작하는 환경이면서도 세션이 끊기면 상태가 사라질 수 있는 환경이라는 양면을 함께 알아야 하고, 로컬 환경과 달리 파일 경로와 패키지 상태가 매번 같지 않을 수 있다는 점도 읽어야 합니다. 이 개념이 있어야 브라우저에서 잘 되던 코드가 로컬에서는 왜 다르게 보일 수 있는지도 환경 차이로 설명할 수 있습니다. 결국 콜랩을 이해해야 실습 편의성과 재현성 제약이 동시에 있는 환경이라는 점을 읽게 됩니다.
  • 함께 볼 개념: 주피터(Jupyter), 실행 환경(runtime), 재현성(reproducibility)
  • 중심 Section: P2-10.2
  • 등장 Section: P2-3.5, P2-7.1, P2-10.1

쿼리-키-값(query-key-value, QKV)

  • 뜻: attention 계산에서 현재 위치가 무엇을 찾는지 나타내는 query, 각 위치가 어떤 정보인지 알려 주는 key, 실제로 섞어 올 내용을 담는 value를 함께 묶어 부르는 표현입니다. 즉 query는 무엇을 찾고 싶은가, key는 어디가 그 조건에 맞는가, value는 그래서 실제로 무엇을 가져올 것인가를 나누어 맡는 구조입니다.
  • 왜 중요한가: attention 직관을 질문하고, 맞는 위치를 찾고, 그 내용을 가져온다는 계산 흐름으로 다시 읽게 해 주어, Transformer 설명에서 반복되는 QKV 이름을 덜 추상적으로 만들기 때문입니다. 이 개념이 있어야 attention이 단순 가중합이 아니라, 조회 기준과 내용 전달이 분리된 구조라는 점을 이해하게 됩니다. 또한 QKV를 이해해야 같은 attention 블록 안에서도 유사도 계산용 정보실제 전달 내용이 서로 다른 역할이라는 점을 더 분명하게 읽게 됩니다.
  • 함께 볼 개념: 셀프 어텐션(self-attention), 멀티헤드 어텐션(multi-head attention), 트랜스포머(Transformer)
  • 중심 Section: P5-13.3
  • 등장 Section: P5-14.1, P6-4.3

큐(queue)

  • 뜻: 먼저 들어온 값을 먼저 꺼내는 규칙으로 작동하는 자료구조 또는 추상 자료형입니다. 줄 서기와 비슷하게, 앞에서 기다리던 항목이 먼저 처리되는 선입선출(FIFO, first-in first-out) 구조로 이해하면 됩니다. 즉 도착 순서를 보존한 채 처리 순서를 정하고 싶을 때 쓰는 기본 장치입니다. 컴퓨터에서는 보통 뒤에 넣고(enqueue) 앞에서 꺼내는(dequeue) 흐름으로 설명하며, 이 두 동작이 큐의 핵심을 이룹니다.
  • 왜 중요한가: 요청 처리 순서, 작업 대기열, 메시지 전달처럼 도착한 순서 자체가 중요한 시스템을 설명할 때 가장 기본적인 모델이 되기 때문입니다. 스택처럼 가장 최근 것을 먼저 꺼내는 구조와 구분해야 작업 흐름과 병목 위치를 더 정확히 읽을 수 있고, 큐 길이가 길어진다는 말이 곧 처리 속도보다 유입 속도가 더 빠르다는 운영 신호라는 점도 함께 이해하게 됩니다. 이 개념이 있어야 운영체제의 작업 스케줄링, 서버의 요청 대기열, 데이터 처리 파이프라인의 버퍼를 볼 때 무엇이 얼마나 밀리고 있는가를 순서 관점에서 해석할 수 있습니다.
  • 함께 볼 개념: 스택(stack), 선형 구조(linear structure), 자료구조(data structure)
  • 중심 Section: P2-9.4
  • 등장 Section: P3-4.2

클라이언트(client)

  • 뜻: 어떤 서버나 서비스에 요청을 보내고 응답을 받는 쪽 구성요소입니다. 웹 브라우저, API 호출 코드, 데스크톱 앱처럼 사용자의 요청을 만들어 바깥 시스템에 전달하는 쪽이 여기에 해당하며, 연결을 실제로 열고 데이터를 주고받는 통로 역할을 맡습니다. 즉 사용자의 의도나 상위 앱의 요구를 실제 네트워크 요청 형태로 바깥에 전달하는 앞단이라고 볼 수 있습니다.
  • 왜 중요한가: 같은 시스템 설명에서도 누가 요청을 시작하는가누가 요청을 처리하는가를 구분해야 구조가 분명해집니다. 특히 MCP 문맥에서는 사용자가 만나는 앱 전체, 실제 연결을 여는 클라이언트, 도구를 제공하는 서버를 나눠 읽어야 요청 흐름과 책임 위치를 더 정확히 설명할 수 있고, 문제 발생 지점도 더 잘 분리할 수 있습니다. 또한 클라이언트를 이해해야 오류가 서버 내부 계산 문제인지, 요청 형식이나 인증이나 연결 관리 문제인지 더 정확히 나눠 보게 됩니다.
  • 함께 볼 개념: 호스트(host), 서버(server), 모델 컨텍스트 프로토콜(Model Context Protocol, MCP), 앱(application)
  • 중심 Section: P1-14.4
  • 등장 Section: P1-14.6, P6-11.1

클래스(class)

  • 뜻: 어떤 종류의 객체가 어떤 속성과 메서드를 가질지 정하는 설계도 또는 틀입니다. 실제로 코드에서 다루는 객체는 이 틀을 바탕으로 만들어진 구체적 대상이라고 볼 수 있습니다. 즉 클래스는 개별 객체 하나가 아니라, 비슷한 객체들을 어떤 구조와 동작으로 만들지 정한 공통 정의입니다.
  • 왜 중요한가: 클래스 개념이 있어야 같은 종류의 객체들이 왜 비슷한 동작을 공유하는가를 이해할 수 있습니다. 이 감각은 DataFrame, Tokenizer, Model 같은 이름을 단순 라벨이 아니라, 비슷한 객체를 만드는 정의로 읽게 해 주고, 인스턴스와 메서드 호출을 구조적으로 해석하는 출발점이 됩니다. 또한 클래스를 이해해야 객체지향 코드에서 무엇이 설계도이고 무엇이 실제 대상인가를 구분하게 되고, 메서드 호출도 더 구조적으로 읽게 됩니다. 결국 클래스는 실제 값 하나보다 그런 값들을 어떤 규칙으로 만들 것인가를 정한 공통 틀입니다.
  • 함께 볼 개념: 객체(object), 메서드(method), 속성(attribute)
  • 중심 Section: P2-8.6
  • 등장 Section: P2-9.1, P2-12.3

클러스터 라벨(cluster label)

  • 뜻: 군집화 알고리즘이 각 묶음을 구분하려고 붙인 번호나 표식입니다. 이 번호는 보통 0번 군집, 1번 군집처럼 식별용으로만 쓰이며, 그 자체에 사람 언어 의미가 들어 있지는 않습니다. 즉 라벨이라는 이름이 붙어 있어도, 정답 이름표보다는 서로 다른 묶음을 구분하기 위한 내부 표식에 가깝습니다.
  • 왜 중요한가: 알고리즘이 만든 군집 번호를 사람이 미리 붙인 지도학습 라벨과 같은 의미로 오해하지 않게 해 줍니다. 군집 결과는 먼저 각 묶음의 특징을 해석하고 나서 사람이 의미를 붙여야 하므로, 번호의미 이름을 분리해서 읽게 해 주는 기준이 됩니다. 이 개념이 있어야 2번 군집이라는 표기가 곧 해석된 의미 범주를 뜻하는 것은 아니라는 점을 이해하게 되고, 비지도학습 결과 뒤에 사람 해석 단계가 필요하다는 점도 자연스럽게 연결됩니다. 결국 클러스터 라벨은 의미가 붙은 정답 이름이 아니라 묶음을 구분하기 위한 임시 표식으로 읽어야 합니다.
  • 함께 볼 개념: 군집화(clustering), 라벨(label), 비지도학습(unsupervised learning)
  • 중심 Section: P1-8.2

키(key)

  • 뜻: 딕셔너리 같은 매핑 구조에서 값을 찾기 위해 사용하는 기준 이름 또는 식별자입니다. 리스트의 인덱스가 위치 표식이라면, 키는 의미 이름표에 더 가깝습니다. 즉 몇 번째에 있나보다 어떤 이름으로 불러야 하나를 중심으로 값을 찾는 방식이라고 볼 수 있습니다.
  • 왜 중요한가: 설정값, JSON, 메타데이터에서는 값보다 먼저 키 이름을 읽어야 의미가 드러나기 때문입니다. 키 개념이 잡혀야 위치 기반 접근과 이름 기반 접근을 자연스럽게 구분할 수 있고, 같은 값 8080port라는 키가 붙을 때와 timeout이라는 키가 붙을 때 의미가 전혀 달라진다는 점을 이해하게 됩니다. 즉 키는 값을 담는 통로가 아니라, 그 값의 역할을 해석하게 만드는 이름표입니다. 또한 키를 이해해야 순서가 조금 바뀌어도 의미가 유지되는 데이터 구조와, 위치가 바뀌면 의미가 달라지는 데이터 구조를 더 정확히 구분하게 됩니다.
  • 함께 볼 개념: 딕셔너리(dictionary), 매핑(mapping), 값(value)
  • 중심 Section: P2-8.3
  • 등장 Section: P2-8.4, P2-9.4