전체 글 70

모델은 256K인데 자꾸 128K로 나온다 — 로컬 LLM 컨텍스트 길이 함정

모델은 256K인데 자꾸 128K로 나온다 — 로컬 LLM 컨텍스트 길이 함정같은 모델을 쓰는데 어떤 세션에선 128K로, 또 어떤 세션에선 256K로 인식되는 일이 있었습니다. 모델이 바뀐 것도 아니고, 설정이 꼬인 것도 아닙니다. 클라이언트가 최대 컨텍스트 길이를 알아내는 방식에 구멍이 있었습니다. 원인과 해결 방법을 정리해 봅니다. 같은 모델인데 세션마다 다르게 보인다모델을 직접 붙이는 대신 프록시를 거쳐 여러 모델을 붙여 쓰는 구성입니다. 그래서 실제 최대 컨텍스트 길이가 262,144(256K)인 모델을 두고도, 세션에 따라 128K로 잡히는 일이 생겼습니다. 모델 스펙은 그대로인데 클라이언트가 "이 모델은 131,072까지"라고 알고 있는 셈이죠. 그 모델을 처음 붙였을 때부터 256K로 잘 ..

공부/인공지능 2026.10.06

모델은 256K인데 자꾸 128K로 나온다 — 로컬 LLM 컨텍스트 길이 함정

모델은 256K인데 자꾸 128K로 나온다 — 로컬 LLM 컨텍스트 길이 함정같은 모델을 쓰는데 어떤 세션에선 128K로, 또 어떤 세션에선 256K로 인식되는 일이 있었습니다. 모델이 바뀐 것도 아니고, 설정이 꼬인 것도 아닙니다. 클라이언트가 최대 컨텍스트 길이를 알아내는 방식에 구멍이 있었습니다. 원인과 해결 방법을 정리해 봅니다. 같은 모델인데 세션마다 다르게 보인다모델을 직접 붙이는 대신 프록시를 거쳐 여러 모델을 붙여 쓰는 구성입니다. 그래서 실제 최대 컨텍스트 길이가 262,144(256K)인 모델을 두고도, 세션에 따라 128K로 잡히는 일이 생겼습니다. 모델 스펙은 그대로인데 클라이언트가 "이 모델은 131,072까지"라고 알고 있는 셈이죠. 그 모델을 처음 붙였을 때부터 256K로 잘 ..

공부/인공지능 2026.10.06

게이트를 만들었다가 걷어냈다 — 로컬 LLM 멈춤의 진짜 원인 찾기

게이트를 만들었다가 걷어냈다 — 로컬 LLM 멈춤의 진짜 원인 찾기 컨텍스트가 큰 로컬 LLM을 여러 세션으로 나눠 쓰다 보면, 세션을 셋째 개 열 때쯤 전체 요청이 뻗어버리는 일이 반복됐습니다. 대부분의 운영 이야기에서 이 시점의 결론은 하나로 정해져 있습니다. 「KV 캐시가 부족해서 그렇다」는 것. 저도 그랬습니다. 하지만 이번에는 그 결론이 틀렸습니다. 그래서 원인을 고치겠다고 게이트웨이를 먼저 만들었고, 한참을 돌고 나서 그 게이트를 통째로 걷어냈습니다. 만들었다가 지운, 그 과정과 이유를 적어봅니다.증상과 오진: 「컨텍스트를 줄이자」가 아니라 「접수 창구를 만들자」멈춤 현상은 이렇게 옵니다. 한두 개 세션은 거뜬히 돌아가는데, 세 번째 세션에 요청이 들어오면 전체가 미적대다가 폴백 모델로 떨어집..

공부/인공지능 2026.10.05

세담 V2 — 열 살 아이를 위한 레고 브릭봇 액션 플랫포머

세담 V2 — 열 살 아이를 위한 레고 브릭봇 액션 플랫포머열 살 아이를 위한 레고 브릭봇 액션 플랫포머를 만들고 있습니다. 화려한 오픈월드도,난이도를 올려서 도전 정신을 북돋우는 것도 아닙니다. 제가 아이에게 맞춰 내세운 기준은딱 하나였습니다. "지나치게 어렵지 않고, 자극이 낮고, 난이도가 부드러운 게임."그 기준을 지키면서 지난 사이클 동안 스테이지 15개, 보스 6종, 캐릭터 4종, 그리고로컬 2인 협동까지 이리저리 손을 봤습니다. 어떤 것을 어떻게 다듬었는지, 아이가 화면앞에서 느끼게 될 결과를 중심으로 정리해봅니다. 작은 목차 발밑 세계 만들기 — 물·무너지는 블록·바람보스전의 온도 — 경직과 페이즈 2아이가 보는 화면 — 표정, 눈동자, 레고 브릭"점프가 왜 안 돼요?" — 고친 두 가지 ..

카테고리 없음 2026.09.16

라즈베리파이 5 + 7인치 터치 LCD로 만든 연구실 모니터 대시보드

한동안 모니터링 웹사이트 하나만 띄워 두기엔 아깝다는 라즈베리파이 5(8GB) 한 대가 생겼습니다. 거기에 7인치 터치 LCD까지 붙어 있어서, 창 하나 켜 두기엔 정말 아깝다는 생각이 들었습니다. 그래서 GPU 사용량, LLM 사용량, 에어컨 제어, 오늘 일정, 날씨를 한 화면에 몰아넣은 '연구실 모니터'를 만들어 봤습니다. 스크롤 한 번 없이, 터치로 바로 보고 조작하는 화면입니다. 왜 벽에 걸 웹 하나를 새로 만들었나각 서버마다 모니터링 페이지가 이미 있습니다. 하지만 그 화면을 켜 놓으려면 새 탭을 열고 스크롤을 내려야 합니다. 서버실(연구실)에 걸어 두고 터치로 바로 보고 조작하려면, 스크롤 없이 한 화면에 다 들어오는 페이지가 필요했습니다. 처음엔 기존 페이지를 iframe으로 붙여 넣을까 생..

공부/인공지능 2026.09.16

Why? 어드벤처 — 아들에게 3D 픽셀 RPG를 만들어 줬습니다

예림당 「Why?」 시리즈 100권을 한 게임에 담고 싶었습니다.아들이 직접 걸어 다니며 궁금이(호기심)를 쫓고, NPC를 만나 퀴즈를 풀고 배지를 모으는브라우저 3D 복셀 교육 RPG입니다. 순수 HTML/CSS/JS 한 페이지에 Three.js로 만들었고,v5부터는 외부 에셋이 0개라 100% 오프라인에서도 돌아갑니다. 아들이 저에게 물었습니다. "아빠, 나 3D 게임 만들어줘." 저는 그동안 화면을 몇 번 보여줬던 터라용기를 얻은 모양입니다. 2D 게임이라도 만드는 건 오래 걸리는 일인데, 3D는 처음부터 막연했습니다.다만 아이에게 줄 게임이라 골랐습니다. 왜냐면, 그때 아들이 읽고 있던 책이 예림당 「Why?」 시리즈였기때문입니다. 100권짜리 자연·사회 지식 백과를, 아이가 책장을 넘기던 것..

공부/잡소리 2026.09.14

27B 로컬 LLM을 vLLM → llama.cpp로 갈아끼우며 동시성·속도 끌어올리기

연구실에 공용 LLM 서버를 돌리면서 생긴 일입니다. 27B짜리 dense(hybrid linear-attn) 모델을 워크스테이션과 리모트 서버에 올려서, 교수와 학생 7명이 매일같이 붙들고 썼는데, 문제가 하나 있었습니다. vLLM으로 FP8 양자화를 걸면 안정적이긴 한데 응답 속도가 아쉽고, 요청이 몰리면 속도가 급격히 떨어졌습니다. 그래서 저는 하드웨어를 더 사는 대신, 서빙 레이어만 통째로 바꾸는 쪽을 택했습니다. 왜 갈아탔나 — vLLM의 벽vLLM은 정말 잘 만들었습니다. 다만 이 모델이 hybrid linear-attention 구조라서, 카드 세 장을 TP=3으로 한 덩어리로 묶는 게 애초에 안 됩니다. "16 not divisible by 3"이라는 에러가 뜨면서 죽네요. 그래서 TP=2..

공부/인공지능 2026.09.09

빈 출력은 벤치 오류였습니다 — DS Vision-Exp 2×Spark 정착기 (속도 1.7배 + 유일한 JSON 통과)

왜 갈아탔나flash-next를 반년 넘게 메인 모델로 굴려 왔습니다. 큰 불만은 없었는데, 최근 장문 작업에서 답이 어긋나는 기미가 보이고, 같은 질문을 되풀이받으면 살짝 허둥대는 모습이 눈에 띄더라고요. 그런데 8월 말, DS(DeepSeek) 정식 후속인 DeepSeek-V4-Flash-Vision-Exp(305B, MIT, 네이티브 비전)가 등장했습니다. 과거 DS 계열의 약점은 명확했습니다. 1M 컨텍스트는 되는데 비전이 없는 것이요. 텍스트는 강한데 이미지를 못 보니까, 제 작업의 절반쯤은 이 모델로 못 넘기는 셈이었죠. 그런데 Vision-Exp는 네이티브 비전을 내장으로 들고 나와서 그 약점이 그냥 사라졌습니다. 컨테이너도 이미 로컬에 있어서 재구축 부담이 최소였고요. 한쪽은 무료·빠른데..

공부/인공지능 2026.09.06

thinking 기본값 xhigh의 세금 — 17배 태우고 같은 오답을 냈다 (GB10 듀얼 실측)

GB10 듀얼에서 메인 서빙을 flash-next로 바꾼 뒤, 체감이 조금 느려졌습니다. xhigh 때문인 것 같다는 직감이 가시지 않아서, 서버에 올라가 있는 chat template 원문을 직접 열어 봤습니다. 원인은 서빙 설정이 아니라, 모델의 chat template 안에 있었습니다. 결국 17배를 태우면서 같은 오답을 내고 있었던 거죠.의심에서 추적까지 flash-next 2×Spark(GB10 듀얼) 서빙의 체감이 안 좋았던 건 사실입니다. 첫 번째 의심은 서빙 설정이었죠. 그런데 xhigh로 해서 그런 것 같기도 하다는 직감이 남아 있어서, 서버에 올라가 있는 tokenizer_config.json(8.9KB)을 그대로 열어 봤습니다. 발견은 빨랐습니다. reasoning_effort 허용값..

공부/인공지능 2026.09.03

LLM 에이전트 메모리가 꽉 찼다 — 4계층 구조로 풀기까지

LLM 에이전트 메모리가 꽉 찼다 — 4계층 구조로 풀기까지에이전트를 매일 쓰다 보면 어느 날 문득 '상주 메모리'라는 게 눈에 들어옵니다. 매 턴마다 모델이 처음부터 읽어야 하는 2,200자짜리 작은 파일인데, 어느 순간 그 파일이 꽉 차 버렸습니다. 그 파일 하나에 취향과 환경 설정, 경고 문구는 물론이고 시한부 정보까지 전부 몰아넣고 있었습니다. 저장 규칙이 없으니 새 정보는 전부 제일 위에 쌓였고, 한도가 2,200자니 금방입니다. 꽉 차면 뭔가가 밀려나고, 밀려난 게 나중에 꼭 필요해집니다. 잊힘이 생기는 구조였습니다.2,200자가 90%까지 찼다실측을 해보니 90%까지 차 있었습니다. 남는 자리가 220자, 그러니까 한두 문장이었고, 그때 새 사실 하나가 들어오면 기존 항목을 밀어내야 했습니다..

공부/인공지능 2026.09.01