다음을 통해 공유


프롬프트 흐름 SDK를 사용하여 애플리케이션을 추적하는 방법 | Azure AI 스튜디오

Important

이 문서에 설명된 기능 중 일부는 미리 보기로만 제공될 수 있습니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

추적은 개발자에게 에이전트, AutoGen, RAG(검색 보강 세대) 사용 사례와 같은 생성 AI 애플리케이션의 실행 프로세스를 심층적으로 이해할 수 있는 강력한 도구입니다. 애플리케이션 내에서 각 노드의 입력 및 출력을 포함하여 실행 흐름에 대한 자세한 보기를 제공합니다. 이 필수 정보는 복잡한 애플리케이션을 디버깅하거나 성능을 최적화하는 동안 중요합니다.

더 많은 개발자가 Langchain, 의미 체계 커널, OpenAI 및 다양한 유형의 에이전트와 같은 다양한 프레임워크를 사용하여 LLM 기반 애플리케이션을 만듭니다. 프롬프트 흐름 SDK를 사용한 추적은 LLM 기반 애플리케이션에 대한 향상된 가시성 및 간소화된 문제 해결을 제공하여 개발, 반복 및 프로덕션 모니터링을 효과적으로 지원합니다. AI Studio의 추적은 OpenTelemetry 사양에 따라 AI 애플리케이션의 내부 실행 세부 정보를 캡처하고 시각화하여 전반적인 개발 환경을 향상합니다.

엔터프라이즈급 클라우드 플랫폼에서 AI Studio 추적의 이점

또한 이제 엔터프라이즈급 클라우드 플랫폼인 AI Studio에서 지속적인 로컬 테스트를 제공하여 협업, 지속성 및 테스트 기록 관리를 크게 향상합니다.

추적을 사용하면 다음을 수행할 수 있습니다.

  • 기록 테스트를 지속하고 추적할 클라우드 기반 위치를 갖습니다.
  • 테스트 결과를 쉽게 추출하고 시각화하여 다양한 테스트 사례의 출력을 비교합니다.
  • 사용자 피드백, 데이터 큐레이션 등과 같은 이후 사용을 위해 이전 테스트 자산을 다시 사용합니다.
  • 나중에 리소스 사용률을 높일 수 있습니다.
  • 애플리케이션을 쉽게 디버그하고 최적화합니다. LLM 애플리케이션 시나리오 디버깅을 시작하려면 LLM 애플리케이션 사용하여 추적을 참조하세요.
  • RAG 애플리케이션에서 검색 및 생성 프로세스를 분석합니다.
  • 다중 에이전트 시나리오에서 다중 에이전트 상호 작용을 관찰합니다. 다중 에이전트 시나리오에서 추적을 시작하려면 AutoGen을 사용하여 추적을 참조하세요.

애플리케이션의 추적 기록 및 보기

AI Studio는 추적 뷰를 드릴다운하여 디버깅 및 관찰하면서 LLM 애플리케이션 테스트 및 평가를 로깅하고 관리하는 추적 기능을 제공합니다.

현재 애플리케이션 기능 추적 기능은 OpenTelemetry 사양 다음에 사용자가 사용하는 프레임워크에 관계없이 LLM 호출 또는 함수 및 LLM 프레임워크(예: LangChain 및 AutoGen)를 추적할 수 있도록 프롬프트 흐름 오픈 소스 패키지에 구현되어 있습니다 .

애플리케이션에서 추적 사용

먼저 코드 - 프롬프트 흐름에서 추적을 위해 코드에 주석을 추가했는지 확인합니다.

프롬프트 흐름의 추적에 대한 자세한 내용은 이 프롬프트 흐름 설명서를 참조하세요.

AI Studio에 추적 기록

추적 대상 설정

기본적으로 추적은 로컬 환경에서 기록되고 표시됩니다. 클라우드의 AI Studio에 로그온하려면 trace destination이(가) 지정된 AI Studio 프로젝트로 설정해야 합니다.

다음 단계를 참조하여 추적 대상을 AI Studio 프로젝트로 설정할 수 있습니다.

먼저 Azure CLI가 설치되어 로그인되어 있는지 확인합니다.

az login

다음으로, 다음 명령을 실행하여 추적 대상을 설정합니다. <your_subscription_id>, <your_resourcegroup_name><your_studio_project_name> 특정 구독 ID, 리소스 그룹 이름 및 AI Studio 프로젝트 이름으로 대체합니다.

pf config set trace.destination=azureml://subscriptions/<your_subscription_id>/resourcegroups/<your_resourcegroup_name>/providers/Microsoft.MachineLearningServices/workspaces/<your_studio_project_name>

참고 항목

미국 서부 3(westus3) 지역은 추적을 지원하지 않습니다.

컬렉션

컬렉션은 연결된 추적 그룹입니다. AI Studio 내부 추적과 함께 이러한 컬렉션은 컬렉션 탭 아래의 추적 모듈에 관리되고 저장됩니다.

  1. AI Studio의 프로젝트로 이동합니다.

  2. 왼쪽 창에서 추적을 선택합니다. 컬렉션 탭을 볼 수 있습니다. 컬렉션 목록에서만 고유한 컬렉션을 볼 수 있습니다. 이 예제에서는 아직 컬렉션이 없습니다.

    새 연결을 추가하는 단추의 스크린샷

컬렉션 탭에는 사용자가 만든 모든 컬렉션의 포괄적인 목록이 표시됩니다. 이름, 실행 위치, 마지막으로 업데이트된 시간 및 만든 시간을 포함하여 각 컬렉션에 대한 필수 메타데이터를 표시합니다.

  • 위치 실행: 애플리케이션이 로컬로 실행되는지 아니면 클라우드에서 실행되는지 여부를 나타냅니다. 클라우드 컬렉션은 특정 프롬프트 흐름 클라우드 작성 테스트 기록 및 생성된 추적과 연결됩니다. 이 경우 컬렉션 이름은 프롬프트 흐름 표시 이름과 동일합니다.
  • 업데이트 시간: 컬렉션에 새 추적이 기록된 가장 최근 시간을 표시합니다. 기본적으로 컬렉션은 업데이트된 시간에 따라 내림차순으로 정렬됩니다.
  • 생성 시간: 컬렉션이 처음 만들어진 시간입니다.

컬렉션의 이름을 선택하면 해당 컬렉션 내의 모든 추적 목록에 액세스할 수 있습니다. 추적의 하위 집합만 다른 사용자와 공유할 수 있습니다. 자세한 내용은 공유 추적을 참조하세요.

추적을 로깅할 때 다른 관련 추적과 함께 그룹화하여 컬렉션 이름을 지정할 수 있습니다. 추적을 보다 효율적으로 구성하기 위해 여러 컬렉션을 만들 수 있습니다. 추적을 기록할 때 컬렉션 이름을 지정하지 않으면 기본값은 프로젝트 폴더 이름 또는 기본 컬렉션이 됩니다.

컬렉션 사용자 지정

추적을 보다 효율적으로 구성하려면 추적을 로깅할 때 사용자 지정 컬렉션 이름을 지정할 수 있습니다.

고유한 애플리케이션을 추적하는 경우 코드의 start_trace() 함수에서 컬렉션 이름을 설정할 수 있습니다.

from promptflow.tracing import start_trace, trace

@trace
def my_function(input: str) -> str:
    output = input + "Hello World!"
    return output

my_function("This is my function")
start_trace(collection="my_custom_collection")

컬렉션 사용자 지정에 대한 자세한 내용은 추적 자습서프롬프트 흐름 명령을 참조하세요.

추적 보기

먼저 클라우드에서 추적을 보려면 이전 단계를 완료해야 합니다.

이제 Python 스크립트를 직접 실행합니다. 성공적으로 실행되면 클라우드 추적 링크가 출력에 표시됩니다. 다음과 비슷하게 표시될 수 있습니다.

Starting prompt flow service...
...
You can view the traces in cloud from AI Studio: https://ai.azure.com/projecttrace/detail/....

클라우드 포털에서 추적 세부 정보 페이지로 이동할 URL을 선택합니다. 이 페이지는 로컬 추적 보기와 비슷합니다.

추적 세부 정보 보기는 애플리케이션 내 작업에 대한 포괄적이고 구조화된 개요를 제공합니다.

추적 세부 정보 보기 이해

추적 보기의 오른쪽 위 모서리에서 다음을 찾을 수 있습니다.

  • 추적 이름: 애플리케이션의 항목 함수 이름을 나타내는 루트 범위 이름과 같습니다.
  • 상태: "완료" 또는 "실패"일 수 있습니다.
  • 총 기간: 테스트 실행의 총 기간 시간입니다. 마우스를 가리켜 시작 및 종료 시간을 봅니다.
  • 총 토큰: 테스트의 총 토큰 비용입니다. 프롬프트 토큰 및 완료된 토큰을 보려면 마우스를 가리킵니다.
  • 만든 시간: 추적이 만들어진 시간입니다.

왼쪽에서는 계층적 트리 구조를 볼 수 있습니다. 이 구조체는 함수 호출 시퀀스를 보여줍니다. 각 함수 호출의 메타데이터는 범위로 구성됩니다. 이러한 범위는 실행 시퀀스를 보여 주는 트리와 유사한 구조로 함께 연결됩니다.

프롬프트 흐름 SDK에서 LLM, 함수, 포함, 검색 및 흐름을 비롯한 여러 범위 형식을 정의했습니다. 그리고 지정된 특성과 이벤트에 실행 정보가 포함된 범위를 시스템이 자동으로 만듭니다.

각 범위를 사용하면 다음을 볼 수 있습니다.

  • 함수 이름: 기본적으로 코드에 정의된 함수의 이름입니다. 그러나 원격 분석을 통해 정의된 사용자 지정된 범위 이름일 수도 있습니다.
  • 기간: 함수가 실행된 기간을 나타냅니다. 마우스를 가리켜 시작 및 종료 시간을 봅니다.
  • LLM 호출에 대한 토큰: LLM 호출의 토큰 비용입니다. 프롬프트 토큰 및 완료된 토큰을 보려면 마우스를 가리킵니다.

특정 범위를 선택하면 오른쪽에서 관련 세부 정보를 확인하도록 전환할 수 있습니다. 이 정보에는 입력, 출력, 원시 JSON, 로그 및 애플리케이션을 관찰하고 디버깅하는 데 필수적인 예외가 포함됩니다.

LLM 범위의 경우 명확한 대화 보기가 제공됩니다. 여기에는 시스템 프롬프트, 사용자 프롬프트도우미 응답이 포함됩니다. 이 정보는 대화의 흐름과 LLM 중간 자동 호출 내의 상호 작용을 이해할 수 있으므로 다중 에이전트 사례에서 특히 중요합니다.

원시 JSON 탭을 선택하여 범위의 json 데이터를 볼 수 있습니다. 이 형식은 디버깅 및 문제 해결과 관련하여 개발자에게 더 적합할 수 있습니다.

추적 공유

프로젝트 권한이 있는 다른 사용자와 추적을 공유하려면 추적 세부 정보 페이지의 오른쪽 모서리에서 공유 단추를 선택한 다음 페이지 링크를 복사하여 다른 사용자와 공유할 수 있습니다.

참고 항목

공유 추적은 읽기 전용이며 프로젝트 권한이 있는 사용자만 링크를 통해 볼 수 있습니다.