# Mandala - Python 계산을 자동 저장, 쿼리 및 버전 관리하기

> Clean Markdown view of GeekNews topic #16176. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16176](https://news.hada.io/topic?id=16176)
- GeekNews Markdown: [https://news.hada.io/topic/16176.md](https://news.hada.io/topic/16176.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-08-05T10:36:01+09:00
- Updated: 2024-08-05T10:36:01+09:00
- Original source: [github.com/amakelov](https://github.com/amakelov/mandala)
- Points: 5
- Comments: 0

## Summary

Mandala는 ML 실험 추적을 자동화하고, 지속성, 쿼리 및 버전 관리를 쉽게 할 수 있도록 돕는 Python 프레임워크입니다. `@op` 데코레이터와 ComputationFrame 데이터 구조를 사용하여 코드 오버헤드를 줄이고, 효율적인 반복적 개발과 고수준 계산 그래프를 자동으로 구성합니다. 이를 통해 사용자는 복잡한 ML 실험을 간편하게 관리하고, 과거 결과를 재사용하며, 변수 간의 관계를 쉽게 쿼리할 수 있습니다.

## Topic Body

- ML 실험 추적을 자동화하기 위해 만든 프레임워크  
- 다른 실험 추적 도구와는 달리 지속성, 쿼리 및 버전 관리 로직을 프로그래밍 언어 자체의 일반적인 부분으로 만듦  
- 목표는 대화형 세션에서처럼 지속성에 대해 생각하지 않고도 표현력이 풍부한 계산 코드를 작성할 수 있고, 이후에도 버전이 관리되고 쿼리가 가능한 저장소의 모든 이점을 누릴 수 있도록 하는 것  
- 두 가지 범용 도구를 사용하여 ML 실험 추적(및 그 이상)에 필요한 노력과 코드 오버헤드를 제거함:  
  1. `@op` 데코레이터:  
    - Python 함수 호출의 **입력, 출력 및 코드(+종속성) 캡처**  
    - 과거 결과를 자동으로 재사용하고 **동일한 호출을 두 번 계산하지 않음**  
    - 스토리지 백엔드에 대해 생각하지 않고 일반 Python에서 효율적인 반복적 개발을 가능하게 하는 end-to-end 지속형 프로그램으로 **구성되도록 설계됨**  
  2. ComputationFrame 데이터 구조:  
    - **명령형 코드의 실행을 변수와 연산의 고수준 계산 그래프로 자동 구성함**. 피드백 루프, 분기/병합, 집계/인덱싱과 같은 패턴을 감지함  
    - 열이 그래프의 변수와 연산이고 각 행이 그래프의 (부분일 수 있는) 실행의 값/호출을 포함하는 데이터프레임을 추출하여 **변수 간의 관계를 쿼리함**  
    - `@op` 호출의 이기종 "웹"에 대한 **탐색 및 고수준 작업을 자동화함**

## Comments



_No public comments on this page._
