Mosaic AI 에이전트 평가란?
Important
이 기능은 공개 미리 보기 상태입니다.
이 문서에서는 Mosaic AI 에이전트 평가를 사용하는 방법에 대한 개요를 제공합니다. 에이전트 평가를 통해 개발자는 RAG 애플리케이션 및 체인을 비롯한 에이전트 AI 애플리케이션의 품질, 비용, 대기 시간을 평가할 수 있습니다. 에이전트 평가는 품질 문제를 식별하고 이러한 문제의 근본 원인을 확인하도록 설계되었습니다. 에이전트 평가 기능은 MLOps 수명 주기의 개발, 스테이징 및 프로덕션 단계에서 통합되며 모든 평가 메트릭 및 데이터는 MLflow 실행에 기록됩니다.
에이전트 평가는 고급 연구 지원 평가 기술을 레이크하우스, MLflow 및 기타 Databricks Data Intelligence 플랫폼 구성 요소와 통합된 사용자 친화적인 SDK 및 UI에 통합합니다. Mosaic AI 연구와 공동으로 개발된 이 독점 기술은 에이전트 성능을 분석하고 향상시키는 포괄적인 접근 방식을 제공합니다.
에이전트 AI 애플리케이션은 복잡하고 다양한 구성 요소를 포함합니다. 이러한 애플리케이션의 성능을 평가하는 것은 기존 ML 모델의 성능을 평가하는 것만큼 간단하지 않습니다. 품질을 평가하는 데 사용되는 질적 메트릭과 양적 메트릭은 모두 본질적으로 더 복잡합니다. 에이전트 평가에는 검색 및 요청 품질뿐 아니라 대기 시간 및 토큰 비용과 같은 전반적인 성능 메트릭을 평가하는 독점적인 LLM 판정자 및 에이전트 메트릭이 포함됩니다.
에이전트 평가를 사용하려면 어떻게 해야 하나요?
다음 코드에서는 이전에 생성된 출력에서 에이전트 평가를 호출하고 테스트하는 방법을 보여줍니다. 에이전트 평가의 일부인 LLM 판정자가 계산한 평가 점수가 포함된 데이터 프레임을 반환합니다.
다음을 복사하여 기존 Databricks Notebook에 붙여넣을 수 있습니다.
%pip install mlflow databricks-agents
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# Primitive string format
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
"How do I convert a Spark DataFrame to Pandas?"
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Mosaic AI Agent Evaluation
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
또는 Databricks 작업 영역에서 다음 Notebook을 가져오고 실행할 수 있습니다.
Mosaic AI 에이전트 평가 예제 Notebook
에이전트 평가 입력 및 출력
다음 다이어그램에서는 에이전트 평가에서 허용하는 입력 및 에이전트 평가에서 생성된 해당 출력의 개요를 보여 줍니다.
입력
필드 이름 및 데이터 형식을 포함하여 에이전트 평가에 필요한 입력에 대한 자세한 내용은 입력 스키마를 참조하세요. 일부 필드는 다음과 같습니다.
- 사용자의 쿼리(
request
): 에이전트(사용자의 질문 또는 쿼리)에 입력합니다. 예를 들어 "RAG란?"입니다. - 에이전트의 응답(
response
): 에이전트에서 생성된 응답입니다. 예를 들어 "검색 보강된 생성은 ..."입니다. - 예상 응답(
expected_response
): (선택 사항) 지상 진리(올바른) 응답입니다. - MLflow 추적(): (
trace
선택 사항) 에이전트 평가에서 검색된 컨텍스트 또는 도구 호출과 같은 중간 출력을 추출하는 에이전트의 MLflow 추적입니다. 또는 이러한 중간 출력을 직접 제공할 수 있습니다.
Outputs
이러한 입력에 따라 에이전트 평가는 두 가지 유형의 출력을 생성합니다.
- 평가 결과(행당): 입력으로 제공되는 각 행에 대해 에이전트 평가는 에이전트의 품질, 비용 및 대기 시간에 대한 자세한 평가를 포함하는 해당 출력 행을 생성합니다.
- LLM 심사위원은 정확성이나 근거와 같은 다양한 품질 측면을 확인하여 예/아니요 점수를 출력하고 해당 점수에 대한 근거를 작성합니다. 자세한 내용은 에이전트 평가에서 품질, 비용 및 대기 시간을 평가하는 방법을 참조하세요.
- LLM 심사위원의 평가는 해당 행이 "통과"(고품질) 또는 "실패"(품질 문제가 있음)인지 여부를 나타내는 전체 점수를 생성하기 위해 결합됩니다.
- 실패한 행의 경우 근본 원인이 식별됩니다. 각 근본 원인은 특정 LLM 판사의 평가에 해당하므로 판사의 근거를 사용하여 잠재적 인 수정 사항을 식별 할 수 있습니다.
- 비용 및 대기 시간은 MLflow 추적에서 추출됩니다. 자세한 내용은 비용 및 대기 시간을 평가하는 방법을 참조하세요.
- 메트릭(집계 점수): 모든 입력 행에서 에이전트의 품질, 비용 및 대기 시간을 요약하는 집계된 점수입니다. 여기에는 정답의 백분율, 평균 토큰 수, 평균 대기 시간 등의 메트릭이 포함됩니다. 자세한 내용은 비용 및 대기 시간을 평가하는 방법 및 품질, 비용 및 대기 시간에 대해 MLflow 실행 수준에서 메트릭을 집계하는 방법을 참조하세요.
개발(오프라인 평가) 및 프로덕션(온라인 모니터링)
에이전트 평가는 개발(오프라인)과 프로덕션(온라인) 환경 간에 일관성을 유지하도록 설계되었습니다. 이 설계를 사용하면 개발에서 프로덕션으로 원활하게 전환할 수 있으므로 고품질 에이전트 애플리케이션을 신속하게 반복, 평가, 배포 및 모니터링할 수 있습니다.
개발과 프로덕션의 주요 차이점은 프로덕션에서 지상 진리 레이블이 없다는 점이며, 개발 중일 때는 필요에 따라 지상 레이블을 사용할 수 있다는 것입니다. 근거리 레이블을 사용하면 에이전트 평가에서 추가 품질 메트릭을 계산할 수 있습니다.
개발(오프라인)
개발 시 평가 requests
expected_responses
집합에서 제공됩니다. 평가 집합은 에이전트가 정확하게 처리할 수 있어야 하는 대표 입력의 컬렉션입니다. 평가 집합에 대한 자세한 내용은 평가 집합을 참조 하세요.
에이전트 평가를 가져오기 response
trace
위해 에이전트의 코드를 호출하여 평가 집합의 각 행에 대해 이러한 출력을 생성할 수 있습니다. 또는 이러한 출력을 직접 생성하여 에이전트 평가에 전달할 수 있습니다. 자세한 내용은 평가 실행에 대한 입력을 제공하는 방법을 참조하세요.
프로덕션(온라인)
프로덕션 환경에서 에이전트 평가에 대한 모든 입력은 프로덕션 로그에서 가져옵니다.
Mosaic AI Agent Framework를 사용하여 AI 애플리케이션을 배포하는 경우 에이전트 평가는 에이전트 고급 유추 테이블에서 이러한 입력을 자동으로 수집하고 모니터링 대시보드를 지속적으로 업데이트하도록 구성할 수 있습니다. 자세한 내용은 프로덕션 트래픽에서 에이전트의 품질을 모니터링하는 방법을 참조하세요.
Azure Databricks 외부에서 에이전트를 배포하는 경우 필요한 입력 스키마 에 로그를 ETL하고 마찬가지로 모니터링 대시보드를 구성할 수 있습니다.
평가 집합을 사용하여 품질 벤치마크 설정
개발 중인 AI 애플리케이션의 품질(오프라인)을 측정하려면 평가 집합, 즉 일련의 대표 질문과 선택적 근거 대답을 정의해야 합니다. 애플리케이션에 RAG 워크플로와 같은 검색 단계가 포함된 경우 필요에 따라 응답의 기반이 되는 지원 문서를 제공할 수 있습니다.
메트릭 종속성 및 모범 사례를 포함하여 평가 집합에 대한 자세한 내용은 평가 집합을 참조 하세요. 필요한 스키마는 에이전트 평가 입력 스키마를 참조하세요.
평가 실행
평가 실행 방법에 대한 자세한 내용은 평가를 실행하고 결과를 보는 방법을 참조하세요. 에이전트 평가는 체인에서 출력을 제공하기 위한 두 가지 옵션을 지원합니다.
- 평가 실행의 일부로 애플리케이션을 실행할 수 있습니다. 애플리케이션은 평가 집합의 각 입력에 대한 결과를 생성합니다.
- 애플리케이션의 이전 실행에 대한 출력을 제공할 수 있습니다.
각 옵션을 사용하는 시기에 대한 자세한 내용과 설명은 평가 실행에 대한 입력을 제공하는 방법을 참조하세요.
GenAI 애플리케이션의 품질에 대한 인간 피드백 얻기
Databricks 검토 앱을 사용하면 사용자 검토자로부터 AI 애플리케이션의 품질에 대한 피드백을 쉽게 수집할 수 있습니다. 자세한 내용은 에이전트 애플리케이션의 품질에 대한 피드백 가져오기를 참조하세요.
도우미 기능의 지리적 가용성
Mosaic AI 에이전트 평가는 Geos를 사용하여 고객 콘텐츠를 처리할 때 데이터 상주를 관리하는 지정된 서비스입니다. 다른 지리적 영역에서 에이전트 평가의 가용성에 대한 자세한 내용을 알아보려면 Databricks 지정 서비스를 참조하세요.
가격 책정
가격 책정 정보는 Mosaic AI 에이전트 평가 가격 책정을 참조하세요.
제한 사항
HIPAA 사용 작업 영역에서 에이전트 평가를 사용할 수 없습니다.
LLM 판정자를 구동하는 모델 관련 정보
- LLM 판정자는 타사 서비스를 사용하여 Microsoft에서 운영하는 Azure OpenAI를 포함한 GenAI 애플리케이션을 평가할 수 있습니다.
- Azure OpenAI의 경우 Databricks는 남용 모니터링을 옵트아웃하여 Azure OpenAI와 함께 프롬프트 또는 응답을 저장하지 않습니다.
- EU(유럽 연합) 작업 영역의 경우 LLM 판정자는 EU에서 호스트되는 모델을 사용합니다. 다른 모든 지역에서는 미국에서 호스트되는 모델을 사용합니다.
- Azure AI 기반 AI 보조 기능을 사용하지 않도록 설정하면 LLM 판정자가 Azure AI 기반 모델을 호출할 수 없습니다.
- LLM 판정자에게 전송된 데이터는 모델 학습에 사용되지 않습니다.
- LLM 판정자는 고객이 RAG 애플리케이션을 평가하는 데 도움을 주기 위한 것이며, LLM 판정자 출력은 LLM을 학습, 개선 또는 미세 조정하는 데 사용해서는 안 됩니다.