LLM 앱에서 토큰 사용을 추적하기 위한 초보자 가이드


작성자별 이미지 | Ideogram.ai
# 소개
대규모 언어 모델 애플리케이션을 구축할 때 토큰은 돈입니다. GPT-4와 같은 LLM에서 일한 적이 있다면 아마도 청구서를 확인하고 다음과 같이 생각하는 순간이 있었을 것입니다. “어떻게 이렇게 높아졌어?!” API를 호출할 때마다 토큰이 소비되며 이는 지연 시간과 비용 모두에 직접적인 영향을 미칩니다. 하지만 이를 추적하지 않으면 어디에 지출되고 있는지, 어떻게 최적화할지 알 수 없습니다.
바로 그곳이다 랭스미스 LLM 호출을 추적할 뿐만 아니라 워크플로의 모든 단계에서 토큰 사용을 기록, 모니터링 및 시각화할 수 있습니다. 이 가이드에서는 다음 내용을 다룹니다.
- 토큰 추적이 중요한 이유는 무엇입니까?
- 로깅을 설정하는 방법은 무엇입니까?
- LangSmith 대시보드에서 토큰 소비를 시각화하는 방법은 무엇입니까?
# 토큰 추적이 중요한 이유는 무엇입니까?
대규모 언어 모델과의 모든 상호 작용에는 입력과 모델 출력 모두에서 처리된 토큰 수와 관련된 직접적인 비용이 있기 때문에 토큰 추적이 중요합니다. 모니터링하지 않으면 프롬프트의 작은 비효율성, 불필요한 컨텍스트 또는 중복된 요청으로 인해 비용이 자동으로 증가하고 성능이 저하될 수 있습니다.
토큰을 추적하면 토큰이 소비되는 위치를 정확하게 파악할 수 있습니다. 이렇게 하면 프롬프트를 최적화하고 워크플로우를 간소화하며 비용 통제를 유지할 수 있습니다. 예를 들어, 챗봇이 요청당 1,500개의 토큰을 사용하는 경우 이를 800개의 토큰으로 줄이면 비용을 거의 절반으로 줄일 수 있습니다. 토큰 추적 개념은 다음과 같이 작동합니다.
# 토큰 로깅을 위한 LangSmith 설정
// 1단계: 필수 패키지 설치
pip3 install langchain langsmith transformers accelerate langchain_community
// 2단계: 필요한 모든 가져오기 수행
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
// 3단계: Langsmith 구성
API 키와 프로젝트 이름을 설정합니다.
# Replace with your API key
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"
os.environ["LANGCHAIN_PROJECT"] = "HF_FLAN_T5_Base_Demo"
os.environ["LANGCHAIN_TRACING_V2"] = "true"
# Optional: disable tokenizer parallelism warnings
os.environ["TOKENIZERS_PARALLELISM"] = "false"
// 4단계: 포옹하는 얼굴 모델 로드
다음과 같은 CPU 친화적인 모델을 사용하세요. 구글/플랜-t5-베이스 보다 자연스러운 출력을 위해 샘플링을 활성화합니다.
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, # enable sampling
temperature=0.7
)
llm = HuggingFacePipeline(pipeline=pipe)
// 5단계: 프롬프트 및 체인 생성
프롬프트 템플릿을 정의하고 LLMChain을 사용하여 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)
// 6단계: LangSmith를 사용하여 함수를 추적 가능하게 만들기
@traceable 데코레이터를 사용하여 입력, 출력, 토큰 사용 및 런타임을 자동으로 기록합니다.
@traceable(name="HF Explain Gravity")
def explain_gravity():
return chain.run({})
// 7단계: 함수 실행 및 결과 인쇄
answer = explain_gravity()
print("\n=== Hugging Face Model Answer ===")
print(answer)
산출:
=== Hugging Face Model Answer ===
Gravity is a measure of mass of an object.
// 8단계: Langsmith 대시보드 확인
smith.langchain.com → 프로젝트 추적으로 이동하세요. 당신은 다음과 같은 것을 할 것입니다 :
각 프로젝트와 관련된 비용을 확인하여 청구서를 분석할 수도 있습니다. 이제 토큰 사용량과 기타 통찰력을 보려면 프로젝트를 클릭하세요. 그리고 당신은 볼 수 있습니다 :
빨간색 상자는 프로젝트 실행 횟수를 강조 표시하고 나열합니다. 실행을 클릭하면 다음이 표시됩니다.
여기에서 총 토큰, 대기 시간 등 다양한 정보를 볼 수 있습니다. 아래와 같이 대시보드를 클릭하세요.
이제 시간 경과에 따른 그래프를 보고 토큰 사용 추세를 추적하고, 요청당 평균 대기 시간을 확인하고, 입력 토큰과 출력 토큰을 비교하고, 최대 사용 기간을 식별할 수 있습니다. 이러한 통찰력은 프롬프트를 최적화하고, 비용을 관리하고, 모델 성능을 향상시키는 데 도움이 됩니다.
프로젝트와 관련된 모든 그래프를 보려면 아래로 스크롤하십시오.
// 9단계: LangSmith 대시보드 탐색
다음과 같은 다양한 통찰력을 분석할 수 있습니다.
- 예제 추적 보기: 원시 입력, 생성된 출력, 성능 지표를 포함한 자세한 실행을 보려면 추적을 클릭하세요.
- 개별 추적 검사: 각 추적에 대해 실행의 모든 단계를 탐색하여 프롬프트, 출력, 토큰 사용량 및 대기 시간을 확인할 수 있습니다.
- 토큰 사용량 및 지연 시간을 확인하세요. 상세한 토큰 수와 처리 시간은 병목 현상을 식별하고 성능을 최적화하는 데 도움이 됩니다.
- 평가 체인: LangSmith의 평가 도구를 사용하여 시나리오를 테스트하고, 모델 성능을 추적하고, 결과를 비교하세요.
- 놀이터에서 실험하기: 온도, 프롬프트 템플릿, 샘플링 설정 등의 매개변수를 조정하여 모델 동작을 미세 조정하세요.
이 설정을 사용하면 이제 LangSmith 대시보드에서 Hugging Face 모델 실행, 토큰 사용 및 전반적인 성능을 완벽하게 볼 수 있습니다.
# 토큰 호그(Token Hogs)를 발견하고 수정하는 방법은 무엇입니까?
로깅이 완료되면 다음을 수행할 수 있습니다.
- 프롬프트가 너무 긴지 확인하세요.
- 모델이 과도하게 생성되는 호출을 식별합니다.
- 더 저렴한 작업을 위해 더 작은 모델로 전환
- 중복 요청을 방지하기 위한 캐시 응답
이는 긴 체인이나 에이전트를 디버깅하는 데 금입니다. 가장 많은 토큰을 먹는 단계를 찾아서 수정하세요.
# 마무리
Langsmith를 설정하고 사용하는 방법은 다음과 같습니다. 토큰 사용을 기록하는 것은 단순히 비용을 절약하는 것이 아니라 더 스마트하고 효율적인 LLM 앱을 구축하는 것입니다. 가이드는 기초를 제공하므로 자신의 워크플로를 탐색, 실험, 분석하여 더 많은 내용을 배울 수 있습니다.
칸왈 메린 데이터 과학과 AI와 의학의 교차점에 대한 깊은 열정을 가진 기계 학습 엔지니어이자 기술 작가입니다. 그녀는 “ChatGPT를 통한 생산성 극대화”라는 전자책을 공동 집필했습니다. 2022년 APAC Google Generation Scholar로서 그녀는 다양성과 학문적 우수성을 옹호하고 있습니다. 그녀는 또한 Tech Scholar, Mitacs Globalink Research Scholar 및 Harvard WeCode Scholar에서 Teradata Diversity로 인정받았습니다. Kanwal은 STEM 분야에서 여성의 역량을 강화하기 위해 FEMCodes를 설립한 변화에 대한 열렬한 옹호자입니다.
Post Comment