LLM을 직접 띄우는 게 싸지는 지점은 어디일까요

“API 대신 LLM을 직접 띄우는 게 언제부터 더 싸질까요?” 이 질문에 대한 답은 간단합니다. 하루에 처리하는 토큰량이 GPU 임대료를 상쇄하는 지점을 넘어서는 순간부터입니다. 문제는 이 지점이 어떤 GPU를, 몇 시간 켜두는지에 따라 달라진다는 점인데요, 감으로 판단하지 말고 계산식 하나로 정리해보겠습니다. API 토큰 요금과 GPU 임대료, 뭘 비교해야 할까요? API를 쓸 때는 사용한 토큰 수만큼 요금이 … Read more

LLM이 느리다는 말을 쪼개기: TTFT·토큰당 시간·큐 대기 따로 재는 법

운영 중인 챗봇에 “응답이 느려요”라는 문의가 쌓이면, 어디부터 손대야 할지 막막합니다. 이럴 때는 LLM이 느리다는 말을 쪼개서 첫 토큰이 나오기까지 걸리는 시간, 토큰 하나를 생성하는 데 걸리는 시간, 요청이 처리되기 전 대기열에 머무는 시간을 따로 측정해야 원인이 보입니다. 세 구간을 나누지 않고 “전체 응답 시간”만 재면, 프롬프트가 길어서 느린 건지 GPU가 포화된 건지 요청이 몰려서 … Read more

추론 모델로 바꾸고 비용이 뛰었다면? 사고 토큰과 effort 조절부터 확인하세요

“왜 추론 모델로 바꾸고 나서 API 요금이 갑자기 뛰었을까요?” 결론부터 말씀드리면, 화면에는 보이지 않는 ‘사고 토큰(reasoning tokens)’이 출력 토큰 단가로 그대로 청구되기 때문입니다. 같은 질문을 던져도 일반 모델보다 추론 모델 쪽 응답에 보이지 않는 계산 과정이 훨씬 길게 붙는 구조라, 프롬프트와 답변 길이는 비슷한데 비용이 눈에 띄게 뛰었을 때 대부분 이 사고 토큰이 원인입니다. 이 … Read more

모든 요청에 최상위 모델을 쓰고 있다면 짚어야 할 라우팅 기준

요청 하나하나에 GPT-4급이나 Claude Opus급 최상위 모델을 그대로 물리고 있다면, 지금 이 구조가 맞는 건지 궁금해서 검색해 보셨을 것입니다. 답을 먼저 말씀드리면, 모든 요청에 최상위 모델을 쓰고 있다면 응답 품질은 지킬 수 있어도 토큰 비용은 필요 이상으로 커지는 구간이 반드시 생깁니다. 이 글에서는 어느 시점부터 모델 라우팅을 도입하는 게 손익상 유리한지, 실제 비교 기준으로 짚어보겠습니다. … Read more

LLM에게 코드 리뷰를 시켰더니 없는 함수를 지적하는 이유

LLM에게 코드 리뷰를 맡겼는데, 왜 있지도 않은 함수를 썼다고 지적할까요? 답은 생각보다 단순합니다 — 리뷰를 하는 모델이 여러분의 실제 코드베이스가 아니라, 붙여넣은 몇 줄과 학습 당시 기억만 보고 판단하기 때문입니다. LLM에게 코드 리뷰를 시켰더니 없는 함수를 지적하는 현상은 모델 성능 문제라기보다 ‘컨텍스트 부족’ 문제에 가깝습니다. 이 글에서는 이 현상이 왜 생기는지, 그리고 프롬프트 구조를 어떻게 … Read more

워드프레스 API로 이미지 업로드가 느릴 때, 리사이즈와 병렬 처리로 해결하기

워드프레스 API로 이미지를 올리다 보면 유독 업로드가 느릴 때가 있지 않나요? 원인은 대부분 업로드하는 원본 파일이 너무 크거나, 여러 장을 한 장씩 순서대로 보내고 있기 때문입니다. 업로드 전에 이미지를 리사이즈하고 여러 장을 동시에 전송하면 같은 작업을 훨씬 짧은 시간에 끝낼 수 있습니다. 다만 REST API가 열려 있고 애플리케이션 비밀번호를 쓸 수 있는 워드프레스 5.6 이상 … Read more

LLM이 생성한 코드를 실행하면 안 되는 이유, 샌드박싱으로 막기

“일단 돌려보고 문제 있으면 고치죠.” AI 코딩 도구가 뽑아준 스크립트를 터미널에 바로 붙여넣고 엔터를 눌렀다가 등골이 서늘해진 경험, 한 번쯤 있으실 거예요. LLM이 생성한 코드를 검토 없이 곧바로 실행하면 안 되는 이유는 명확합니다. 모델은 코드가 ‘그럴듯하게’ 보이도록 만드는 데는 뛰어나지만, 그 코드가 실제로 여러분의 파일 시스템과 네트워크에서 안전하게 동작할지는 보장하지 않기 때문이에요. 그래서 실무에서는 코드를 … Read more

LLM에게 번역을 시켰더니 숫자와 단위가 틀릴 때 — 검증 후처리 설계

LLM에게 번역을 시켰더니 문장은 자연스러운데 숫자와 단위가 틀리는 경험, 한 번쯤 있으실 겁니다. 원인을 파고들어 보면 번역기가 맥락을 오해해서가 아니라, 숫자를 다루는 방식 자체가 자연어 생성 방식과 잘 맞지 않기 때문인 경우가 많습니다. 이 글에서는 정규식과 파이썬 단위 변환 라이브러리 pint를 조합해서, 원문과 번역문의 숫자·단위를 자동으로 대조하는 검증 후처리 로직을 실제 코드로 보여드립니다. 번역 결과에서 … Read more

파이썬 requests 세션을 재사용 안 하면 생기는 성능 손실

크롤러 스크립트를 돌릴 때마다 응답이 점점 느려지는 걸 보고 원인을 찾아본 적 있으신가요? 파이썬 requests 세션을 재사용 안 하면 매 요청마다 TCP 연결과 TLS 핸드셰이크를 처음부터 다시 맺어야 해서, 같은 서버에 반복 요청을 보내는 코드일수록 손해가 커집니다. 특히 requests.get()처럼 모듈 레벨 함수를 반복 호출하는 코드에서 이 손실이 눈에 띄게 쌓이는데, 정확히 어디서 비용이 생기는지 하나씩 … Read more

디스코드 봇이 레이트리밋에 걸려 응답이 밀릴 때, 백오프와 큐로 잡는 법

디스코드 개발자 문서에는 봇 토큰 하나가 쓸 수 있는 전역 요청 한도가 초당 50회로 명시돼 있습니다. 이 숫자 자체는 크지 않아 보이지만, 슬래시 명령어 응답·역할 부여·메시지 전송이 한꺼번에 몰리는 순간에는 금방 채워집니다. 그 결과가 바로 디스코드 봇이 레이트리밋에 걸려 응답이 밀릴 때 나타나는 그 지연입니다. 이 글에서는 어떤 요청이 어떤 한도에 먼저 걸리는지 구분하고, 실제로 … Read more