Pro와 같은 LLM을 디버깅 및 추적합니다


저자의 이미지 | 캔버
틀 소개
전통적인 디버깅 print()
또는 로깅은 작동하지만 LLMS에서는 느리고 어리석은 일입니다. Phoenix는 모든 단계, 프롬프트 및 응답 검사에 대한 타임 라인보기, 회수 및 대기 시간 및 비용에 대한 가시성 및 앱에 대한 시각적 이해를 통해 오류 감지, 오류 감지를 제공합니다. Arrize AI의 Phoenix는 LLM 응용 프로그램을 위해 특별히 설계된 강력한 오픈 소스 관찰 가능성 및 추적 도구입니다. LLM 파이프 라인에서 발생하는 모든 일을 시각적으로 모니터링, 디버그 및 추적하는 데 도움이됩니다. 이 기사에서는 피닉스가하는 일과 중요한 이유, 피닉스를 Langchain과 Langchain을 단계별로 통합하는 방법, Phoenix UI의 흔적을 시각화하는 방법을 살펴 보겠습니다.
틀 피닉스는 무엇입니까?
Phoenix는 대형 언어 모델 응용 프로그램을위한 오픈 소스 관찰 가능성 및 디버깅 도구입니다. 프롬프트, 응답, 대기 시간, 오류 및 공구 사용을 포함하여 LLM 워크 플로에서 자세한 원격 측정 데이터를 캡처하고 직관적이고 대화식 대시 보드 에이 정보를 제공합니다. Phoenix를 통해 개발자는 LLM 파이프 라인이 시스템 내부에서 어떻게 행동하는지 깊이 이해하고, 신속한 출력으로 문제를 식별 및 디버깅하고, 성능 병목 현상을 분석하고, 토큰 및 관련 비용을 사용하여 모니터링하며, 실행 단계에서 오류/재 시도 로직을 추적 할 수 있습니다. Langchain 및 Llamaindex와 같은 인기있는 프레임 워크와 일관된 통합을 지원하며보다 사용자 정의 된 설정에 대한 OpenTeLemetry 지원을 제공합니다.
틀 단계별 설정
// 1. 필요한 라이브러리 설치
Python 3.8+가 있는지 확인하고 종속성을 설치하십시오.
pip install arize-phoenix langchain langchain-together openinference-instrumentation-langchain langchain-community
// 2. 피닉스 출시
이 라인을 추가하여 Phoenix 대시 보드를 시작하십시오.
import phoenix as px
px.launch_app()
이것은 로컬 대시 보드를 시작합니다
// 3. Phoenix 콜백을 사용하여 Langchain 파이프 라인 구축
유스 케이스를 사용하여 피닉스를 이해합시다. 우리는 간단한 랭 체인 구동 챗봇을 구축하고 있습니다. 이제 우리는 다음을 원합니다.
- 프롬프트가 작동하는지 디버깅하십시오
- 모델이 응답하는 데 걸리는 시간을 모니터링합니다
- 프롬프트 구조, 모델 사용 및 출력을 추적합니다
- 모든 것을 수동으로 로그인하는 대신이 모든 것을 시각적으로보십시오
// 1 단계 : 백그라운드에서 Phoenix 대시 보드를 시작하십시오
import threading
import phoenix as px
# Launch Phoenix app locally (access at
def run_phoenix():
px.launch_app()
threading.Thread(target=run_phoenix, daemon=True).start()
// 2 단계 : OpenTelemetry & Instrument Langchain으로 Phoenix를 등록하십시오
from phoenix.otel import register
from openinference.instrumentation.langchain import LangChainInstrumentor
# Register OpenTelemetry tracer
tracer_provider = register()
# Instrument LangChain with Phoenix
LangChainInstrumentor().instrument(tracer_provider=tracer_provider)
// 3 단계 : LLM 초기화 (함께 API)
from langchain_together import Together
llm = Together(
model="meta-llama/Llama-3-8b-chat-hf",
temperature=0.7,
max_tokens=256,
together_api_key="your-api-key", # Replace with your actual API key
)
“your-api-key”를 실제 함께 함께 교체하는 것을 잊지 마십시오. 이 링크를 사용하여 얻을 수 있습니다.
// 4 단계 : 프롬프트 템플릿을 정의합니다
from langchain.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{question}"),
])
// 5 단계 : 프롬프트와 모델을 체인에 결합하십시오
// 6 단계 : 여러 질문을하고 응답을 인쇄하십시오
questions = [
"What is the capital of France?",
"Who discovered gravity?",
"Give me a motivational quote about perseverance.",
"Explain photosynthesis in one sentence.",
"What is the speed of light?",
]
print("Phoenix running at
for q in questions:
print(f" Question: {q}")
response = chain.invoke({"question": q})
print(" Answer:", response, "\n")
// 7 단계 : 모니터링을 위해 앱을 살리십시오
try:
while True:
pass
except KeyboardInterrupt:
print(" Exiting.")
틀 피닉스 흔적 및 메트릭 이해
출력을보기 전에 먼저 피닉스 지표를 이해해야합니다. 트레이스와 스팬이 무엇인지 먼저 이해해야합니다.
추적하다: 각 트레이스는 LLM 파이프 라인의 전체 실행을 나타냅니다. 예를 들어,“프랑스의 수도는 무엇입니까?”와 같은 각 질문. 새로운 흔적을 생성합니다.
SPANS : 각 트레이스는 여러 개의 스팬이 혼합되어 있으며 각 추적은 체인의 단계를 나타냅니다.
- chatprompttemplate.format : 프롬프트 형식
- 함께 llm 호출
- 추가하는 모든 사용자 정의 구성 요소
추적 당 표시되는 메트릭
메트릭 | 의미와 중요성 |
---|---|
대기 시간 (MS) |
프롬프트 형식, LLM 응답 및 사후 처리를 포함하여 전체 LLM 체인 실행을위한 총 시간을 측정합니다. 성능 병목 현상을 식별하고 느린 응답을 디버깅하는 데 도움이됩니다. |
입력 토큰 |
모델로 전송 된 토큰 수. 대부분의 사용량은 토큰 기반이므로 입력 크기를 모니터링하고 API 비용을 제어하는 데 중요합니다. |
출력 토큰 |
모델에 의해 생성 된 토큰 수. 진실성, 반응 품질 및 비용 영향을 이해하는 데 유용합니다. |
프롬프트 템플릿 |
삽입 된 변수로 전체 프롬프트를 표시합니다. 프롬프트가 제대로 구성되어 있는지 확인하는 데 도움이됩니다. |
입력 / 출력 텍스트 |
사용자 입력과 모델의 응답을 모두 보여줍니다. 상호 작용 품질을 확인하고 환각을 발견하거나 잘못된 답변을 발견하는 데 유용합니다. |
기간을 가득 채 웁니다 |
각 단계에서 취한 시간 (프롬프트 생성 또는 모델 호출)이 분해됩니다. 체인 내에서 성능 병목 현상을 식별하는 데 도움이됩니다. |
체인 이름 |
스팬이 속한 파이프 라인의 어떤 부분을 지정합니다 (예 : |
태그 / 메타 데이터 |
모델 이름, 온도 등과 같은 추가 정보를 필터링, 결과 비교 및 매개 변수 영향 분석에 유용합니다. |
이제 Phoenix 대시 보드를 보려면 방문하십시오. 당신은 다음과 같은 것을 볼 수 있습니다.
세부 사항을 보려면 첫 번째 트레이스를 열십시오.
틀 마무리
그것을 마무리하기 위해 Arrize Phoenix를 사용하면 LLM 응용 프로그램을 디버깅, 추적 및 모니터링하기가 매우 쉽습니다. 무엇이 잘못되었는지 추측하거나 통나무를 파헤칠 필요가 없습니다. 모든 것이 바로 거기에 있습니다 : 프롬프트, 응답, 타이밍 등. 문제를 발견하고 성능을 이해하며 스트레스가 줄어든 AI 경험을 더 잘 구축하는 데 도움이됩니다.
Kanwal Mehreen 기계 학습 엔지니어이자 데이터 과학에 대한 열정과 AI의 의학 교차점을 가진 기술 작가입니다. 그녀는 eBook “Chatgpt의 생산성을 극대화하는 것”을 공동 저술했습니다. APAC의 Google Generation Scholar 2022로서 그녀는 다양성과 학업 우수성을 챔피언시킵니다. 그녀는 또한 Tech Scholar, Mitacs Globalink Research Scholar 및 Harvard Wecode Scholar의 Teradata 다양성으로 인정 받고 있습니다. Kanwal은 STEM 분야의 여성에게 힘을 실어주기 위해 펨코드를 설립 한 변화에 대한 열렬한 옹호자입니다.
Post Comment