주요 컨텐츠로 이동

Mosaic AI Agent Framework 과 Agent Evaluation 발표

프로덕션 품질의 에이전트와 검색 증강 생성(RAG) 앱 구축
이 포스트 공유하기

데이터브릭스는 2024 데이터 + AI 서밋에서 Generative AI Cookbook과 함께 모자이크 AI Agent Framework 와 Agent Evaluation의 공개 프리뷰를 발표했습니다.  

이러한 도구는 개발자가 데이터브릭스 데이터 인텔리전스 플랫폼 내에서 고품질 에이전트 및 검색 증강 생성(RAG) 애플리케이션을 구축하고 배포할 수 있도록 지원하기 위해 설계되었습니다.  

고품질 생성형 AI 애플리케이션 구축의 도전 과제 

생성형AI 애플리케이션의 개념 증명을 만드는 것은 비교적 간단하지만, 고품질 애플리케이션을 제공하는 것은 많은 고객들에게 어려운 과제였습니다. 고객 대면 애플리케이션에 필요한 품질 표준을 충족하려면 AI 결과물이 정확하고 안전하며 관리되어야 합니다. 이러한 수준의 품질에 도달하기 위해 개발자는 다음과 같은 어려움을 겪습니다. 

  • 애플리케이션의 품질을 평가하는 데 적합한 메트릭을 선택
  • 애플리케이션의 품질을 측정하기 위해 사람의 피드백을 효율적으로 수집
  • 품질 문제의 근본 원인 파악
  • 프로덕션 배포 전에 신속한 반복을 통해 애플리케이션의 품질을 개선

Mosaic AI Agent Framework 와 Agent Evaluation 소개

모자이크 연구팀과의 협력을 통해 개발된 Agent Framework와 Agent Evaluation은 다음과 같은 문제들을 해결하기 위해 특별히 설계된 여러 기능을 제공합니다:

신속한 인간 피드백 수집 - Agent Evaluation을 통해 조직 내 전문가들을 초대하여 애플리케이션을 검토하고 응답 품질에 대한 피드백을 제공할 수 있습니다. 이는 데이터브릭스 사용자가 아니더라도 가능하며, 이를 통해 생성형 AI 애플리케이션에 대한 고품질 답변의 기준을 정의할 수 있습니다.

생성형 AI 애플리케이션의 손쉬운 평가 - Agent Evaluation은 모자이크 연구팀과 협력하여 개발한 일련의 지표를 제공하여 애플리케이션의 품질을 측정합니다. 인간의 응답과 피드백을 자동으로 평가 테이블에 기록하고 결과를 빠르게 분석하여 잠재적인 품질 문제를 식별할 수 있습니다. 시스템에서 제공하는 AI 심사관들이 정확성, 환각, 유해성, 유용성과 같은 일반적인 기준에 따라 이러한 응답을 평가하고 품질 문제의 근본 원인을 파악합니다. 이 심사관들은 전문가들의 피드백을 바탕으로 보정되지만, 인간의 라벨 없이도 품질을 측정할 수 있습니다.

이후 Agent Framework를 사용하여 이러한 품질 문제를 해결하기 위해 애플리케이션의 다양한 구성을 실험하고 조정할 수 있으며, 각 변경이 앱 품질에 미치는 영향을 측정할 수 있습니다. 원하는 품질 기준에 도달하면 Agent Evaluation의 비용 및 지연 시간 지표를 사용하여 품질/비용/지연 시간 간의 최적의 균형을 결정할 수 있습니다.

빠른 엔드-투-엔드 개발 워크플로우 - Agent Framework는 MLflow와 통합되어 있어 개발자가 log_model 및 mlflow.evaluate와 같은 표준 MLflow API를 사용하여 생성형 AI 애플리케이션을 기록하고 품질을 평가할 수 있습니다. 품질에 만족하면 개발자는 MLflow를 사용하여 이러한 애플리케이션을 프로덕션 환경에 배포하고 사용자로부터 피드백을 받아 품질을 더욱 개선할 수 있습니다. Agent Framework와 Agent Evaluation은 MLflow 및 Data Intelligence 플랫폼과 통합되어 생성형 AI 애플리케이션을 구축하고 배포하기 위한 잘 닦여진 경로를 제공합니다.

앱 수명 주기 관리 - Agent Framework는 권한 관리부터 모자이크 AI 모델 서빙을 통한 배포까지 에이전트 애플리케이션의 수명 주기를 관리하기 위한 간소화된 SDK를 제공합니다.

Agent Framework와 Agent Evaluation을 사용하여 고품질 애플리케이션을 구축하는 데 도움을 드리고자, Generative AI Cookbook을 제공합니다. 이는 애플리케이션을 개념 증명(POC)에서 프로덕션까지 가져가는 모든 단계를 보여주는 결정적인 가이드로, 애플리케이션 품질을 향상시킬 수 있는 가장 중요한 구성 옵션과 접근 방식을 설명합니다.

고품질 RAG 에이전트 구축하기

이러한 새로운 기능들을 이해하기 위해, Agent Framework를 사용하여 고품질 에이전트 애플리케이션을 구축하고 Agent Evaluation을 통해 그 품질을 개선하는 예시를 살펴보겠습니다. 이 예시의 전체 코드와 더 고급 예시들은 여기에서 제공되는 Generative AI Cookbook에서 확인할 수 있습니다.

이 예시에서는 미리 생성된 벡터 인덱스에서 관련 청크를 검색하고 이를 요약하여 쿼리에 대한 응답으로 제공하는 간단한 RAG(Retrieval-Augmented Generation) 애플리케이션을 구축하고 배포할 것입니다. RAG 애플리케이션은 네이티브 Python 코드를 포함한 어떤 프레임워크를 사용해서도 구축할 수 있지만, 이 예시에서는 Langchain을 사용하고 있습니다.

# ##################################
# Connect to the Vector Search Index
# ##################################

vs_client = VectorSearchClient()
vs_index = vs_client.get_index(
    endpoint_name="vector_search_endpoint",
    index_name="vector_index_name",
)

# ##################################
# Set the Vector Search index into a LangChain retriever
# ##################################

vector_search_as_retriever = DatabricksVectorSearch(
    vs_index,
    text_column='chunk_text',
    columns=['chunk_id', 'chunk_text', 'document_uri'],
).as_retriever()

# ##################################
# RAG Chain
# ##################################

prompt = PromptTemplate(
  template = "Answer the question...",
  input_variables = ["question", "context"],
)

chain = (
    {
        "question": itemgetter("messages"),
        "context": itemgetter("messages")| vector_search_as_retriever,
    }
    | prompt
    | ChatDatabricks(endpoint='dbrx_endpoint')
    | StrOutputParser()
)

가장 먼저 할 일은 MLflow를 활용하여 추적을 활성화하고 애플리케이션을 배포하는 것입니다. 이는 Agent Framework가 추적을 제공하고 애플리케이션을 쉽게 관찰하고 디버깅할 수 있도록 위의 애플리케이션 코드에 간단한 세 줄을 추가하여 수행할 수 있습니다.

## Enable MLflow Tracing
mlflow.langchain.autolog()

## Inform MLflow about the schema of the retriever so that 
# 1. Review App can properly display retrieved chunks
# 2. Agent Evaluation can measure the retriever
############

mlflow.models.set_retriever_schema(
    primary_key='chunk_id'),
    text_column='chunk_text',
    doc_uri='document_uri'),  # Review App uses `doc_uri` to display 
    chunks from the same document in a single view
)

## Tell MLflow logging where to find your chain.
mlflow.models.set_model(model=chain)

tracing

개발 및 프로덕션 과정에서 애플리케이션에 대한 가시성을 제공하는 MLflow Tracing

다음 단계는 GenAI 애플리케이션을 Unity Catalog에 등록하고 개념 증명으로 배포한 다음, Agent Evaluation의 리뷰 애플리케이션을 사용하여 이해 관계자로부터 피드백을 받는 것입니다.

# Use Unity Catalog to log the chain
mlflow.set_registry_uri('databricks-uc')
UC_MODEL_NAME='databricks-rag-app'

# Register the chain to UC
uc_registered_model_info = mlflow.register_model(model_uri=model_uri,
 name=UC_MODEL_NAME)

# Use Agent Framework to deploy a model registed in UC to the Agent 
Evaluation review application & create an agent serving endpoint

deployment_info = agents.deploy(model_name=UC_MODEL_NAME, 
model_version=uc_model.version)

# Assign permissions to the Review App any user in your SSO
agents.set_permissions(model_name=UC_MODEL_NAME, 
users=["[email protected]"], 
permission_level=agents.PermissionLevel.CAN_QUERY)

브라우저 링크를 이해관계자들와 공유하고 즉시 피드백을 받을 수 있습니다! 피드백은 Unity Catalog에 델타 테이블로 저장되며 평가 데이터셋을 구축하는 데 사용할 수 있습니다.

review-app

POC에 대한 이해관계자 피드백을 수집하기 위해 리뷰 애플리케이션 사용하기

Corning은 재료 과학 회사입니다 - 우리의 유리와 세라믹 기술은 많은 산업 및 과학 분야에 사용되므로, 데이터를 이해하고 활용하는 것이 필수적입니다. 우리는 Databricks Mosaic AI Agent Framework를 사용하여 미국 특허청 데이터를 포함한 수십만 개의 문서를 색인화하는 AI 연구 보조원을 구축했습니다. LLM 기반 보조원이 높은 정확도로 질문에 답변하는 것이 우리에게 매우 중요했습니다 - 이를 통해 우리 연구원들이 진행 중인 작업을 찾고 발전시킬 수 있었습니다. 이를 구현하기 위해, 우리는 Databricks Mosaic AI Agent Framework를 사용하여 미국 특허청 데이터로 보강된 Hi Hello 생성형 AI 솔루션을 구축했습니다. Databricks Data Intelligence Platform을 활용함으로써 검색 속도, 응답 품질 및 정확도를 크게 향상시켰습니다."
— Denis Kamotsky, 수석 소프트웨어 엔지니어, Corning

평가 데이터셋을 만들기 위한 피드백을 받기 시작하면, Agent Evaluation과 내장된 AI 심사관을 사용하여 미리 구축된 지표를 통해 각 응답을 일련의 품질 기준에 따라 검토할 수 있습니다:

  • 답변의 정확성 - 앱의 응답이 정확한가?
  • 근거성 - 앱의 응답이 검색된 데이터에 근거하고 있는가, 아니면 앱이 환각을 일으키고 있는가?
  • 검색 관련성 - 검색된 데이터가 사용자의 질문과 관련이 있는가?
  • 답변 관련성 - 앱의 응답이 사용자의 질문과 주제적으로 관련이 있는가?
  • 안전성 - 앱의 응답에 유해한 내용이 포함되어 있는가?
# Run mlflow.evluate to get AI judges to evaluate the dataset.
eval_results = mlflow.evaluate( 
        data=eval_df, # Evaluation set 
        model=poc_app.model_uri, # from the POC step above  
        model_type="databricks-agent", # Use Agent Evaluation
    )

평가 세트의 각 질문에 대한 집계된 지표와 평가는 MLflow에 기록됩니다. LLM이 수행한 각 판단에는 그 이유를 설명하는 서면 근거가 뒷받침됩니다. 이 평가의 결과는 품질 문제의 근본 원인을 파악하는 데 사용될 수 있습니다. 자세한 설명은 쿡북의 POC의 품질 평가하기 및 품질 문제의 근본 원인 파악하기 섹션을 참조하시기 바랍니다.

aggregate metrics

MLflow 내에서 Agent Evaluation의 집계된 지표 보기

선도적인 글로벌 제조업체로서, Lippert는 데이터와 AI를 활용하여 고도로 엔지니어링된 제품, 맞춤형 솔루션 및 최상의 경험을 구축합니다. Mosaic AI Agent Framework는 우리에게 혁신적인 변화를 가져왔습니다. 이를 통해 우리는 GenAI 애플리케이션의 결과를 평가하고, 데이터 소스에 대한 완전한 통제력을 유지하면서 출력의 정확성을 입증할 수 있었기 때문입니다. Databricks Data Intelligence Platform 덕분에 저는 프로덕션 배포에 대해 자신감을 갖게 되었습니다."
— Kenan Colson, 데이터 & AI 부사장, Lippert

또한 평가 데이터셋의 각 개별 기록을 검사하여 무슨 일이 일어나고 있는지 더 잘 이해하거나, MLflow 추적을 사용하여 잠재적인 품질 문제를 식별할 수 있습니다.

individual record

무슨 일이 일어나고 있는지 이해하기 위해 평가 세트의 각 개별 기록 검사하기

품질에 대해 반복적으로 작업하고 만족스러운 수준에 도달하면, 애플리케이션을 프로덕션 워크스페이스에 최소한의 노력으로 배포할 수 있습니다. 이는 애플리케이션이 이미 Unity Catalog에 등록되어 있기 때문입니다.

# Deploy the application in production.
# Note how this command is the same as the previous deployment - all 
agents deployed with Agent Framework automatically create a 
production-ready, scalable API

deployment_info = agents.deploy(model_name=UC_MODEL_NAME, 
model_version=MODEL_VERSION_NUMBER)
Mosaic AI Agent Framework는 우리가 내부 데이터를 완전히 통제할 수 있다는 확신 속에서 증강된 LLM을 빠르게 실험할 수 있게 해주었습니다. MLflow 및 Model Serving과의 원활한 통합으로 ML 엔지니어링 팀이 POC에서 프로덕션으로 간단하게 확장할 수 있습니다."
— Ben Halsall, 애널리틱스 디렉터, Burberry

이러한 기능들은 거버넌스를 제공하는 Unity Catalog, 리니지와 메타데이터 관리를 제공하는 MLflow, 그리고 안전성을 제공하는 LLM Guardrails와 긴밀하게 통합되어 있습니다.

Ford Direct는 자동차 산업의 디지털 전환의 최전선에 있습니다. 우리는 Ford와 Lincoln 딜러십을 위한 데이터 허브로, 딜러들이 그들의 성과, 재고, 트렌드, 고객 참여 지표를 평가하는 데 도움을 주는 통합 챗봇을 만들어야 했습니다. Databricks Mosaic AI Agent Framework를 통해 우리는 RAG를 사용하는 생성형 AI 솔루션에 우리의 독점 데이터와 문서를 통합할 수 있었습니다. Mosaic AI와 데이터브릭스 델타 테이블, Unity Catalog의 통합으로 배포된 모델을 건드리지 않고도 소스 데이터가 업데이트됨에 따라 벡터 인덱스를 실시간으로 원활하게 업데이트할 수 있었습니다."
— Tom Thomas, 애널리틱스 VP, FordDirect

가격 책정

  • Agent Evaluation – 심사 요청(Judge Request)당 가격 책정
  • Mosaic AI Model Serving – 서빙 에이전트; Mosaic AI Model Serving 요금에 따라 가격 책정

자세한 내용은 가격 책정 사이트를 참조하세요.

다음 단계

Agent Framework와 Agent Evaluation은 프로덕션 품질의 에이전트 및 검색 증강 생성 애플리케이션을 구축하는 최선의 방법입니다. 더 많은 고객들이 이를 시도하고 피드백을 주시기를 기대합니다. 시작하려면 다음 리소스를 참조하세요:

이러한 기능을 애플리케이션에 통합하는 데 도움이 되도록, Generative AI Cookbook은 Agent Framework와 Agent Evaluation을 사용하여 평가 주도 개발 워크플로우를 따라 앱을 POC에서 프로덕션으로 가져가는 방법을 보여주는 샘플 코드를 제공합니다. 또한 쿡북은 애플리케이션 품질을 향상시킬 수 있는 가장 관련성 있는 구성 옵션과 접근 방식을 설명합니다.


데모 노트북을 실행하거나 Cookbook을 따라 귀하의 데이터로 앱을 구축하여 지금 바로 Agent Framework & Agent Evaluation을 시도해 보세요.

 

(번역: Youngkyong Ko)  Original Post

Databricks 무료로 시작하기

관련 포스트

모든 생성형 AI 포스트 보기