AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

MLflow 통합 시작하기

MongoDB MLflow와 통합하여 MLflow 추적 및 모델 레지스트리 데이터를 MongoDB 에 저장 수 있습니다. MLflow는 머신 러닝 및 GenAI 애플리케이션의 라이프사이클을 관리하기 위한 오픈 소스 플랫폼입니다. mlflow-mongodb 통합은 MongoDB 8.0 이상을 실행 Atlas, MongoDB Enterprise Advanced 및 MongoDB Community Edition 배포에서 작동합니다. 이 페이지에서는 MongoDB 사용하고, 실행 로그 , 모델을 등록하고, GenAI 애플리케이션 에서 추적을 캡처하도록 MLflow를 구성하는 방법을 보여줍니다.

mlflow-mongodb 패키지 는 MLflow 서버 내부에서 실행되는 MLflow 플러그인입니다. 플러그인은 다음 MLflow 메타데이터 만 MongoDB 에 저장합니다.

  • 추적 데이터: 실험, 실행, 매개변수, 지표, 기록된 모델 및 추적. 실험은 관련 실행을 그룹화합니다. 실행 매개변수 및 지표 포함하여 코드의 한 번의 실행을 기록합니다. 추적은 LLM 호출 및 도구 호출과 같은 GenAI 애플리케이션 의 단계를 기록합니다.

  • 모델 레지스트리 데이터: 등록된 모델, 버전, 별칭,태그 및 프롬프트.

아티팩트는 모델 파일, 이미지, 트레이스 페이로드 등 실행 시 생성되는 파일입니다. MLflow는 MongoDB 가 아닌 별도의 아티팩트 저장 에 아티팩트를 기록합니다. 이 튜토리얼은 MLflow 서버 의 로컬 디스크에 아티팩트를 저장합니다. 프로덕션 배포의 경우 Amazon S3와 같은 아티팩트 저장 구성합니다.

추적 저장 와 모델 레지스트리 저장 독립적으로 구성할 수 있습니다. 예시 를 들어, 한 저장 MongoDB 사용하고 다른 저장소는 다른 MLflow 백엔드 사용할 수 있습니다. 이 튜토리얼에서는 두 스토어 모두에 MongoDB 사용합니다.

시작하기 전에 다음 항목이 준비되어 있는지 확인하세요.

  • MongoDB 버전 8.0 이상을 실행하는 MongoDB deployment .

  • MLflow 데이터를 저장하는 데이터베이스 에 대한 읽기 및 쓰기 (write) 액세스 있는 데이터베이스 사용자입니다.

  • MLflow 서버 에서 배포서버 로의 네트워크 액세스 .

  • Python 3.11 ~ 3.14.

  • MLflow 3.5 이상 3.x 출시하다.

참고

설정 단계는 배포서버 유형에 따라 다릅니다.

다음 절차에서는 mlflow-mongodb 패키지 설치하고 MongoDB 에 데이터를 저장하는 MLflow 서버 시작합니다.

1

다음 명령을 실행하여 mlflow-mongodb 패키지 설치합니다. 이 패키지 MLflow도 설치합니다.

python -m pip install mlflow-mongodb
2

플러그인에는 연결 문자열 경로에 MLflow 데이터를 저장하는 데이터베이스 의 이름이 필요합니다. 다음 연결 문자열의 자리 표시자를 원하는 값으로 바꿉니다.

mongodb+srv://<db_username>:<db_password>@<cluster-host>/<database>?retryWrites=true&w=majority

Atlas 연결 문자열 찾으려면 클라이언트 라이브러리를 통해 클러스터에 연결하기를 참조하세요.

3

다음 명령을 실행하여 서버 시작합니다. <connection-string>을 이전 단계의 연결 문자열 로 바꿉니다.

export TRACKING_STORE_URI="<connection-string>"export REGISTRY_STORE_URI="<connection-string>"export MLFLOW_BIND_HOST="127.0.0.1"export MLFLOW_BIND_PORT="5000" mlflow server \ --backend-store-uri "${TRACKING_STORE_URI}" \ --registry-store-uri "${REGISTRY_STORE_URI}" \ --host "${MLFLOW_BIND_HOST}" \ --port "${MLFLOW_BIND_PORT}"

MLflow는 서버 의 mlartifacts 디렉토리 에 아티팩트를 저장합니다. MLflow UI 보려면 브라우저에서 http://127.0.0.1:5000을 엽니다.

다음 절차는 매개변수, 지표 및 아티팩트를 저장하는 실행 기록합니다.

1

다음 예시 mongodb-backend-demo이라는 실험을 생성한 다음 mlflow.start_run() 메서드를 호출하여 실행 시작합니다. 이 실행 다음 항목을 기록합니다.

  • model_type parameter

  • accuracy 메트릭

  • run-summary.txt 인공물

이 튜토리얼의 예시에서는 mlflow.set_tracking_uri() 메서드를 호출하여 서버 에 연결합니다. 클라이언트 코드를 변경하지 않고 MLflow 클라이언트를 연결하려면 MLFLOW_TRACKING_URI 환경 변수를 http://127.0.0.1:5000로 설정하다 .

다음 코드를 log_run.py이라는 파일 에 저장합니다.

import mlflow mlflow.set_tracking_uri("http://127.0.0.1:5000")mlflow.set_experiment("mongodb-backend-demo") with mlflow.start_run() as run: mlflow.log_param("model_type", "example") mlflow.log_metric("accuracy", 0.92) mlflow.log_text("Hello from the MongoDB backend", "run-summary.txt") print("run_id:", run.info.run_id)
2
python log_run.py

출력에는 실행 ID 포함됩니다. MLflow는 MongoDB 에 실험, 실행, 매개변수 및 지표 저장하고 구성한 아티팩트 저장 에 아티팩트를 저장합니다.

3

브라우저에서 http://127.0.0.1:5000로 이동하여 mongodb-backend-demo 실험을 엽니다. Runs 탭 에서 실행 선택하여 매개변수, 지표 및 아티팩트를 확인합니다. MLflow UI 의 실행 다음 이미지와 유사합니다.

정확도 지표 및 모델_유형 매개변수가 포함된 실행 페이지를 보여주는 MLflow UI .

모델을 등록하려면 다음 방법 중 하나를 사용합니다.

  • mlflow.pyfunc.log_model()와 같은 log_model() 메서드를 사용하여 모델을 로그 때 registered_model_name 인수를 전달합니다.

  • mlflow.register_model() 메서드를 호출하고 실행 로깅한 모델의 URI(예: runs:/<run-id>/model)를 전달합니다.

기존 이름으로 모델을 등록할 때마다 MLflow는 해당 모델의 새 버전을 생성합니다. 버전을 관리 하려면 set_registered_model_alias() 및 set_model_version_tag()와 같은 MlflowClient 메서드를 사용합니다.

1

다음 예시 log_model() 메서드를 호출하고 모델을 mongodb-backend-demo-model로 등록합니다. 그런 다음 이 코드는 별칭과 태그를 지정하다 설정합니다. 파일 register_model.py(으)로 저장합니다.

import mlflowfrom mlflow import MlflowClientfrom mlflow.pyfunc import PythonModel mlflow.set_tracking_uri("http://127.0.0.1:5000")mlflow.set_experiment("mongodb-backend-demo") class EchoModel(PythonModel): def predict(self, context, model_input): return model_input with mlflow.start_run(): mlflow.pyfunc.log_model( name="model", python_model=EchoModel(), registered_model_name="mongodb-backend-demo-model", ) client = MlflowClient()client.set_registered_model_alias("mongodb-backend-demo-model", "mongo-verified", 1)client.set_model_version_tag("mongodb-backend-demo-model", 1, "validated_by", "doc-test")
2
python register_model.py
3

브라우저에서 http://127.0.0.1:5000로 이동하여 Registered Models을 클릭한 다음 mongodb-backend-demo-model를 선택하여 버전, 별칭 및 태그를 확인합니다. MLflow UI 의 새 모델 버전은 다음 이미지와 유사합니다.

mongo-verified 별칭 및 validated_by 태그를 지정하다 포함된 mongodb-backend-demo-model의 1 버전을 보여주는 MLflow UI .

MLflow 추적은 LLM 애플리케이션 또는 에이전트 에서 각 단계의 입력, 출력 및 기간을 기록합니다. 추적 저장 에 MongoDB 사용하는 경우 MLflow는 추적과 해당 스팬을 MongoDB 에 저장합니다.

1

추적을 활성화 하려면 다음 방법 중 하나를 사용합니다.

  • OpenAI 또는 LangChain과 같이 지원되는 프레임워크 또는 제공자 에 대한 호출을 추적하려면 mlflow.<flavor>.autolog() 메서드를 호출합니다. 자세한 학습 은 MLflow 문서에서 자동 추적을 참조하세요.

  • 추적하려는 함수에 @mlflow.trace 데코레이터를 추가합니다.

다음 예시 @mlflow.trace 데코레이터를 사용하여 에이전트 를 호출하는 함수를 추적합니다. 파일 trace_agent.py(으)로 저장합니다.

import mlflow mlflow.set_tracking_uri("http://127.0.0.1:5000")mlflow.set_experiment("agent-traces") @mlflow.tracedef call_agent(prompt: str) -> str: # Replace this line with your actual LLM or agent call return f"Echo: {prompt}" call_agent("Summarize this document")
2
python trace_agent.py
3

MLflow UI 에서 agent-traces 실험을 열고 Traces을 클릭합니다. MLflow UI 의 추적은 다음 이미지와 유사합니다.

하나의 추적이 기록된 에이전트 추적 실험의 추적 탭 보여주는 MLflow UI .

참고

추적 저장 및 검색은 MLflow 버전에 따라 다릅니다. MLflow 3.5 클라이언트는 전체 트레이스 페이로드를 실험의 아티팩트 저장 에 업로드합니다. MongoDB 스팬을 저장합니다. MLflow 3.6 이상에서 클라이언트는 MongoDB 에서 직접 트레이스를 조회 . 애그리게이션된 추적 지표 MLflow 3.9 이상이 필요합니다.

MLflow 개념 및 기능에 대해 자세히 학습 다음 MLflow 설명서를 참조하세요.

이 튜토리얼의 개념에 대해 자세히 학습 다음 리소스를 참조하세요.