AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

LangSmith 토큰 추적으로 LLM API 비용 50% 줄이는 방법

LLM API를 호출할 때마다 토큰이 곧 비용입니다. 프롬프트 하나를 1,500 토큰에서 800 토큰으로 줄이면 비용이 거의 절반으로 떨어집니다. 하지만 어디서 토큰이 낭비되는지 모른다면 최적화도 불가능하죠. LangSmith는 LLM 애플리케이션의 모든 호출을 추적하고 토큰 사용량을 시각화해주는 옵저버빌리티(observability) 플랫폼입니다. 이 가이드는 LangSmith를 활용해 토큰 사용량을 추적하고 비용을 절감하는 실전 방법을 단계별로 안내합니다.

LLM 토큰 추적
LLM 애플리케이션의 토큰 추적 개념도 (출처: KDnuggets)

핵심 포인트:

  • 토큰 추적으로 비용 50% 절감 가능: 프롬프트 최적화만으로도 요청당 토큰을 절반으로 줄일 수 있어 API 비용이 급감. 비효율적인 프롬프트, 불필요한 컨텍스트, 중복 요청이 조용히 비용을 증가시키는 주범
  • LangSmith는 LLM 전용 옵저버빌리티 플랫폼: 모든 LLM 호출을 단계별로 추적하고 토큰, 비용, 레이턴시를 실시간 대시보드로 시각화. LangChain, LangGraph뿐만 아니라 어떤 프레임워크와도 사용 가능하며 환경 변수 하나로 간단히 연동
  • 대시보드에서 병목 지점 한눈에 파악: 시간별 토큰 사용 추이, 입력 대 출력 토큰 비율, 평균 레이턴시를 그래프로 확인. 토큰을 가장 많이 소비하는 단계를 찾아내 즉시 최적화 가능

토큰 추적이 중요한 이유

GPT-4 같은 LLM으로 작업해본 적 있다면 청구서를 보고 깜짝 놀란 경험이 있을 겁니다. “어떻게 이렇게 높지?!” API 호출마다 토큰이 소비되고, 이게 곧 비용과 레이턴시에 직접 영향을 미칩니다. 하지만 추적하지 않으면 어디서 토큰이 쓰이는지 알 수 없습니다.

토큰 비용이 지속적으로 하락하고 있는 건 사실입니다. 하지만 프로덕션 환경에서 수천 명의 사용자가 사용하면 비용이 기하급수적으로 증가합니다. 10~20%의 토큰 낭비도 1년치 누적하면 상당한 금액이 되죠. 게다가 토큰이 많을수록 응답 시간도 길어져 사용자 경험에 직접 영향을 미칩니다.

토큰 추적이 중요한 이유는 간단합니다. LLM과의 모든 상호작용은 처리된 토큰 수에 직접 연동된 비용이 발생합니다. 입력과 출력 모두 해당하죠. 모니터링 없이는 프롬프트의 작은 비효율, 불필요한 컨텍스트, 중복 요청이 조용히 비용을 부풀립니다.

예를 들어볼까요? 챗봇이 요청당 1,500 토큰을 사용한다면, 이걸 800 토큰으로 줄이면 비용이 거의 절반으로 떨어집니다. 토큰을 추적하면 정확히 어디서 소비되는지 볼 수 있고, 프롬프트를 최적화하고 워크플로우를 간소화하며 비용을 통제할 수 있습니다.

토큰 추적 개념
토큰 추적의 작동 원리 (출처: KDnuggets)

LangSmith 설정하기

LangSmith는 LangChain 팀이 만든 LLM 애플리케이션 전용 옵저버빌리티 플랫폼입니다. 모든 LLM 호출을 단계별로 추적하고 토큰, 비용, 레이턴시를 실시간으로 시각화합니다. LangChain이나 LangGraph 없이도 어떤 프레임워크와도 사용할 수 있고, 환경 변수 하나만 설정하면 바로 연동됩니다.

설정은 생각보다 간단합니다. 필요한 패키지를 설치하고 환경 변수를 설정한 뒤 모델을 연결하면 끝입니다.

LangSmith 에이전트 트레이싱
LangSmith의 에이전트 트레이싱 기능 (출처: LangChain)

먼저 필수 패키지를 설치하세요.

pip3 install langchain langsmith transformers accelerate langchain_community

필요한 라이브러리를 임포트합니다.

import os
from transformers import pipeline
from langchain.llms import HuggingFacePipeline
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langsmith import traceable

LangSmith를 설정합니다. API 키는 LangSmith 설정 페이지에서 발급받을 수 있습니다.

# API 키를 실제 키로 교체하세요
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"
os.environ["LANGCHAIN_PROJECT"] = "HF_FLAN_T5_Base_Demo"
os.environ["LANGCHAIN_TRACING_V2"] = "true"

# 옵션: 토크나이저 병렬 처리 경고 비활성화
os.environ["TOKENIZERS_PARALLELISM"] = "false"

Hugging Face 모델을 로드합니다. CPU에서도 작동하는 google/flan-t5-base 모델을 사용하고 샘플링을 활성화해서 더 자연스러운 출력을 얻습니다.

model_name = "google/flan-t5-base"
pipe = pipeline(
   "text2text-generation",
   model=model_name,
   tokenizer=model_name,
   device=-1,      # CPU 사용
   max_new_tokens=60,
   do_sample=True, # 샘플링 활성화
   temperature=0.7
)
llm = HuggingFacePipeline(pipeline=pipe)

프롬프트 템플릿을 정의하고 Hugging Face 파이프라인과 연결합니다.

prompt_template = PromptTemplate.from_template(
   "Explain gravity to a 10-year-old in about 20 words using a fun analogy."
)

chain = LLMChain(llm=llm, prompt=prompt_template)

@traceable 데코레이터를 사용해서 입력, 출력, 토큰 사용량, 런타임을 자동으로 로깅합니다.

@traceable(name="HF Explain Gravity")
def explain_gravity():
   return chain.run({})

함수를 실행하고 결과를 출력합니다.

answer = explain_gravity()
print("\n=== Hugging Face Model Answer ===")
print(answer)

출력 결과는 다음과 같습니다.

=== Hugging Face Model Answer ===
Gravity is a measure of mass of an object.

대시보드에서 토큰 사용량 확인하기

설정이 끝났으면 이제 smith.langchain.com에 접속해서 Tracing Projects로 가보세요. 프로젝트 목록과 각 프로젝트에 연결된 비용을 볼 수 있습니다. 청구 분석이 가능하죠.

LangSmith 대시보드 프로젝트 목록
LangSmith 트레이싱 프로젝트 목록 (출처: KDnuggets)

프로젝트를 클릭하면 실행(run) 목록이 나타납니다. 빨간 박스 부분을 보세요. 프로젝트에 몇 번의 실행이 있었는지 보여줍니다.

LangSmith 실행 목록
프로젝트별 실행 횟수 (출처: KDnuggets)

실행 중 하나를 클릭하면 상세 정보를 볼 수 있습니다. 총 토큰, 레이턴시 등 다양한 메트릭이 표시됩니다.

LangSmith 토큰 인사이트
개별 실행의 토큰 사용량 상세 정보 (출처: KDnuggets)

대시보드를 클릭하면 시간에 따른 그래프를 볼 수 있습니다. 토큰 사용 추세를 추적하고, 요청당 평균 레이턴시를 확인하고, 입력 대 출력 토큰을 비교하고, 피크 사용 시간대를 파악할 수 있습니다. 이런 인사이트로 프롬프트를 최적화하고 비용을 관리하며 모델 성능을 개선할 수 있죠.

LangSmith 그래프
시간별 토큰 사용량 추이 그래프 (출처: KDnuggets)

페이지를 아래로 스크롤하면 프로젝트와 관련된 모든 그래프를 볼 수 있습니다.

대시보드에서 할 수 있는 것들은 많습니다. 예제 트레이스를 보고 원시 입력, 생성된 출력, 성능 메트릭을 포함한 상세 실행 정보를 확인할 수 있습니다. 개별 트레이스를 검사해서 실행의 모든 단계를 탐색하고 프롬프트, 출력, 토큰 사용량, 레이턴시를 볼 수 있습니다. 토큰 수와 처리 시간을 상세히 확인해서 병목 지점을 찾고 성능을 최적화할 수 있죠. 평가 체인을 사용해서 시나리오를 테스트하고 모델 성능을 추적하며 출력을 비교할 수 있습니다. 플레이그라운드에서 실험하면서 temperature, 프롬프트 템플릿, 샘플링 설정 같은 파라미터를 조정해 모델 동작을 미세 조정할 수 있습니다.

토큰 낭비 발견하고 해결하기

로깅이 설정되면 이제 최적화를 시작할 수 있습니다. 프롬프트가 너무 긴지 확인하세요. 모델이 과도하게 생성하는 호출을 찾아내세요. 저렴한 작업에는 더 작은 모델로 전환하세요. 중복 요청을 피하려면 응답을 캐싱하세요.

이건 긴 체인이나 에이전트를 디버깅할 때 정말 유용합니다. 토큰을 가장 많이 소비하는 단계를 찾아서 고치면 됩니다.

LangSmith 외 다른 토큰 추적 도구들

LangSmith가 유일한 선택지는 아닙니다. 용도와 예산에 따라 선택할 수 있는 다양한 도구들이 있습니다.

오픈소스 옵션을 원한다면 Langfuse가 좋습니다. MIT 라이선스로 무료 셀프 호스팅이 가능하고 월 50,000 단위(units)까지 무료로 사용할 수 있습니다. 프롬프트 버전 관리와 평가 기능이 강력하며 OpenTelemetry 백엔드로도 작동합니다. PostHog도 주목할 만합니다. LLM 옵저버빌리티를 제품 분석, 세션 리플레이, A/B 테스트와 결합해서 LLM 데이터를 비즈니스 데이터와 함께 볼 수 있습니다. 월 100,000 LLM 이벤트까지 무료입니다.

경량 프록시 방식이 필요하다면 Helicone을 고려하세요. OpenAI 호환 API를 위한 프록시로 작동해서 엔드포인트만 변경하면 바로 사용할 수 있습니다. 월 10,000 로그까지 무료이고 가상 API 키와 팀별 비용 분석을 지원합니다. 특히 빠른 통합이 필요한 스타트업에 적합합니다.

엔터프라이즈급 기능이 필요하다면 Arize AI나 WhyLabs를 살펴보세요. Arize는 임베딩 드리프트 모니터링과 RAG 파이프라인 건강도 추적에 강점이 있고, WhyLabs LangKit은 환각, 편향, 유해 언어 같은 출력 품질 리스크 감지에 특화되어 있습니다. 규제가 있는 환경이나 고객 대면 애플리케이션에서 유용합니다.

토큰 추적은 단순히 돈을 아끼는 것만이 아닙니다. 더 똑똑하고 효율적인 LLM 앱을 만드는 일입니다. 이 가이드가 기초를 제공했다면, 이제 여러분의 워크플로우를 탐색하고 실험하며 분석해보세요.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다