벡터 DB의 함정 — 임베딩 모델과 검색 엔진이 RAG 성능을 지배하는 방식

RAG(Retrieval-Augmented Generation) 파이프라인을 구축하다 보면 어느 순간 묘한 벽에 부딪힌다. LLM은 GPT-4급을 쓰고 있고, 문서도 수만 건을 인덱싱했는데, 정작 사용자가 던진 질문에 대해 모델은 엉뚱한 답변을 내놓는다. 이때 대부분의 개발자는 프롬프트를 고치거나 더 큰 모델로 교체하는 방향을 먼저 떠올린다. 하지만 진짜 문제는 대체로 다른 곳에 있다. 검색 단계가 엉망이면 LLM에 무엇을 집어넣어도 소용없다. 검색 품질이 … 더 읽기

작은 모델이 큰 모델을 이기는 방법 — SLM과 파라미터 효율적 학습의 현재

AI 개발의 지배적 내러티브는 오랫동안 단순했다. 더 크게, 더 많은 데이터, 더 많은 컴퓨팅. 그런데 지금 현장에서 실제로 쓰이는 모델들을 들여다보면 그 방향이 적어도 일부에서는 정반대로 흐르고 있다. Scaling Law의 균열 — 데이터가 파라미터를 이기는 경우 신경망 연구자들이 오랫동안 믿어온 공식이 있다. 파라미터를 두 배로 늘리면 성능이 예측 가능한 방식으로 향상된다는 이른바 스케일링 법칙(Scaling Law)이다. … 더 읽기

On-Device AI의 현실적 한계 — 스마트폰과 노트북이 LLM을 담기 위해 넘어야 할 벽

스마트폰에서 LLM이 돌아간다는 말은 이제 새롭지 않다. Qualcomm은 Snapdragon 8 Gen 3부터 온디바이스 AI를 마케팅 전면에 내세웠고, Apple은 iPhone 15 Pro 이후로 줄곧 “기기 내 AI 처리”를 강조하고 있다. 그런데 실제로 써보면 늘 뭔가 어설프다는 인상을 지우기 어렵다. 느리거나, 금방 뜨거워지거나, 모델 크기가 너무 작아서 쓸 만한 답변이 안 나오거나. NPU는 GPU의 축소판이 아니다 NPU(Neural … 더 읽기

로컬 LLM이 도구를 고르는 방법 — Function Calling 내부를 뜯어보면

ChatGPT나 Claude를 쓰면서 AI가 자연스럽게 웹 검색을 하거나 코드를 실행하는 걸 보면, 마치 모델이 스스로 판단해 적절한 도구를 꺼내 쓰는 것처럼 느껴진다. 그런데 그 안을 들여다보면, “지능적 선택”이라고 부르기에는 꽤 기계적인 과정이 담겨 있다. Function Calling이라는 이름에는 뭔가 특별한 메커니즘이 있을 것 같은 뉘앙스가 있다. 하지만 현재 대부분의 LLM에서 Function Calling은 특수한 회로나 별도의 모듈이 … 더 읽기

KV 캐시가 터지지 않으려면 — 압축 기법들이 실제로 하는 일

컨텍스트 길이가 늘어날수록 KV 캐시가 메모리를 잡아먹는다는 사실은 이제 어느 정도 알려져 있다. 그런데 그 문제를 해결하겠다고 나온 기법들이 실제로 어떤 원리로 동작하는지는 의외로 피상적으로만 알려진 경우가 많다. PagedAttention이 “페이지 테이블에서 착안했다”는 설명은 들어봤어도, 정확히 어느 지점에서 어떤 이득이 생기는지, GQA가 MHA와 구체적으로 무엇이 다른지, H2O가 어떤 토큰을 어떤 기준으로 버리는지는 실제 논문이나 구현 코드를 … 더 읽기

GPU 한 장을 어떻게 쓸 것인가 — AI 추론 서버 아키텍처의 근본적 선택

AI 모델을 서비스에 얹는 순간, 엔지니어는 불편한 진실 하나와 마주하게 된다. Throughput(처리량)을 높이려 할수록 Latency(지연)가 나빠지고, Latency를 줄이려 하면 GPU가 놀게 된다는 것이다. 이 둘은 단순히 설정값을 조정하면 해결되는 문제가 아니라, GPU가 동작하는 방식 자체에서 비롯된 구조적 긴장관계다. GPU는 수천 개의 코어가 동시에 동일한 연산을 처리하는 병렬 프로세서다. 이 구조가 최대 효율을 낼 수 있는 … 더 읽기

128K 컨텍스트 창의 진짜 병목 — Attention의 이차 복잡도와 그 너머

128K 토큰짜리 컨텍스트 창이 이제는 흔한 사양이 됐다. Claude, GPT-4o, Gemini 1.5는 이미 그 선을 넘었고, 일부 모델은 백만 토큰을 공언하기도 한다. 그런데 이 숫자들이 실제로 얼마나 잘 “작동”하는지는 별개의 이야기다. 컨텍스트 창 확장의 병목은 두 갈래다. 하나는 이미 많이 알려진 KV 캐시(Key-Value Cache) 메모리 비용이고, 다른 하나는 Attention 연산 자체의 계산 복잡도다. 전자는 얼마나 … 더 읽기

Speculative Decoding: 작은 모델이 큰 모델의 속도를 높이는 원리

거대 언어 모델(LLM)을 사용할 때 가장 답답한 순간은 무엇일까요? 아마도 텍스트가 한 글자씩 느릿하게 출력되는 ‘자기회귀적(Autoregressive) 생성’의 속도일 것입니다. 모델이 커질수록 이 문제는 더욱 심각해지며, 이는 실시간 대화형 AI 서비스의 가장 큰 기술적 장벽이 됩니다. 최근 이 문제를 해결하기 위해 등장한 Speculative Decoding(추측적 디코딩)은 매우 영리한 접근 방식을 취합니다. “작고 빠른 모델이 미리 예측하고, 큰 … 더 읽기

Apple Neural Engine은 LLM 추론에 실제로 쓰이나 — ANE의 역할과 한계

맥북 스펙표에 “38 TOPS Neural Engine”이라고 적혀 있으면, 자연스럽게 이런 생각이 든다. 저 칩이 LLM 추론을 가속해주는 거 아닐까. 그런데 실제로 Ollama를 돌려보면 ANE 사용률은 거의 0에 가깝다. ANE(Apple Neural Engine)는 Apple이 A11 Bionic부터 도입한 전용 추론 가속기다. M4 칩 기준으로 38 TOPS(Tera Operations Per Second)의 연산 처리 능력을 갖추고 있고, 설계 철학은 명확하다. 전력을 … 더 읽기

Apple Silicon으로 로컬 LLM 1년, API 비용을 실제로 얼마나 아꼈나

LLM을 매일 쓰는 개발자라면 한 번쯤 이 계산을 해봤을 것이다. “내가 매달 API에 얼마를 쓰고 있지?” 그리고 그 다음 질문은 자연스럽게 이어진다. “맥북 한 대 사서 로컬로 돌리면 본전은 뽑을 수 있을까?” 막연한 질문이지만, 숫자를 직접 뽑아보면 생각보다 선명한 그림이 나온다. 이 글에서는 하루 약 100K 토큰을 소비하는 개인 개발자·연구자 시나리오를 기준으로, API 비용과 로컬 … 더 읽기