PyTorch Concepts (pyc-team/pytorch_concepts) 시작하기
요약
PyTorch Concepts (PyC)는 PyTorch와 PyTorch Lightning을 기반으로, 인과적으로 투명하고 해석 가능한 딥러닝 모델 구현을 지원하는 라이브러리입니다. 이 라이브러리는 주석이 달린 텐서, 개념별 슬라이싱, 개입(interventions) 등 핵심 기능을 제공합니다. Conceptarium 같은 노코드 API부터 저수준의 해석 가능한 레이어까지 모듈식으로 구성되어 다양한 추상화 수준에서 접근할 수 있습니다.
핵심 포인트
- PyC는 인과적으로 투명한 딥러닝 모델 구현을 목표로 합니다.
- 주석이 달린 텐서(Annotated Tensors)와 개념별 슬라이싱 기능을 제공합니다.
- 개입(Interventions) 기능을 통해 특정 개념의 값을 조작하며 실험할 수 있습니다.
- Conceptarium, 고수준/중수준/저수준 API 등 다양한 추상화 수준을 지원합니다.
🚀 시작하기 - 📚 문서 - 💻 사용자 가이드
주의사항
Alpha 소프트웨어입니다. PyC는 현재 활발하게 개발 중입니다. 공개 API는 릴리스 간에 변경되거나 불안정할 수 있습니다.
PyC는 다음을 기반으로 구축된 라이브러리입니다:
PyTorch와
PyTorch Lightning을 사용하여 해석 가능하고 인과적으로 투명한(causally transparent) 딥러닝 모델을 쉽게 구현할 수 있도록 합니다.
이 라이브러리는 주석이 달린 텐서(annotated tensors), 해석 가능한 레이어, 개입(interventions), 해석 가능한 확률적 그래프 모델, 그리고 대규모로 실험을 실행하기 위한 API를 제공합니다.
이 라이브러리의 이름은 다음 두 가지를 의미합니다:
- PyTorch Concepts: 개념(concepts)이 해석 가능한 딥러닝의 필수적인 구성 요소이기 때문입니다. -
$P(y|C)$: 이 라이브러리의 주요 목적이 개념 $C$가 주어졌을 때 타겟 $y$의 조건부 분포에 대한 건전한 확률적 모델링을 지원하는 것이기 때문입니다.
PyPI에서 PyC를 설치하세요:
pip install --pre "pytorch-concepts[data]"
핵심 기능만 사용하려면 pip install --pre pytorch-concepts를 사용하거나, conda 설정을 위한 전체 설치 옵션을 확인하세요.
몇 가지 기본 요소들을 사용하여 개념을 이름 붙이고(name), 계산하고(compute), 훈련하며(train), 작용할 수 있습니다(act on). 각 요소가 무엇을 할 수 있는지 다음에서 확인할 수 있습니다:
| ```import torch_concepts as pyc | |
| arr = pyc.Annotations( | |
| labels=["red", "shape", "size"], | |
| ... | |
| ``` | ```x = torch.randn(8, 5) |
| c = pyc.AnnotatedTensor(x, ann) | |
| c["red"] # 개념별 슬라이싱 | |
| ...``` | |
| ```from torch_concepts.nn import ( | |
| LinearEmbeddingToConcept, | |
| ) | |
| ... | |
| ``` | ```from torch import nn |
| from torch_concepts.nn import ConceptLoss | |
| loss_fn = ConceptLoss( | |
| ...``` | |
| ```from torch_concepts.nn import DoIntervention, UniformPolicy, intervention | |
| with intervention(layer, DoIntervention(1.0), UniformPolicy(), ["red"]): | |
| out = layer(emb) # "red"가 1.0으로 설정됨 |
퀵스타트(quickstart)는 첫 번째 모델을 처음부터 끝까지 훈련하며, 사용자 가이드는 PyC의 나머지 부분을 다룹니다.
이 라이브러리는 모듈식이며 다양한 추상화 수준에서 접근할 수 있도록 구성되어 있습니다:
**Conceptarium (노코드 API): 애플리케이션 및 벤치마킹.** 이 API들은 구성 파일만으로 인터페이스하여 대규모 실험을 쉽게 실행할 수 있게 합니다. Hydra와 WandB를 기반으로 구축되었습니다.
**고수준 API: 즉시 사용 가능한 모델.** 이 API들은 단 한 줄의 코드로 모델을 인스턴스화할 수 있게 합니다. 모델은 일반 PyTorch 모듈(사용자 정의 학습 루프가 가능한 `forward` 구현)과 PyTorch Lightning 모듈 형태로 모두 제공됩니다.
**중수준 API: 해석 가능한 확률적 그래프 모델.** 이 API들은 변수(개념 및 임베딩)를 정의하고, 이를 해석 가능한 레이어에 의해 매개변수화된 조건부 분포로 연결하며, 결과 그래프 모델에 대한 확률적 추론을 수행할 수 있게 합니다.
**저수준 API: 해석 가능한 레이어.** 이 API들은 기본 해석 가능한 레이어를 일반 PyTorch와 유사한 인터페이스에서 구축할 수 있게 합니다. 또한 이 API들에는 주석이 달린 텐서(annotated tensors), 개입(interventions), 메트릭, 손실 함수(losses), 데이터셋도 포함됩니다.
기여를 환영합니다! 시작하려면 기여 가이드라인을 확인해 주세요.
모든 기여자분들께 감사드립니다! 🧡
- Sonia Laguna, ETH Zurich (CH).
- Moritz Vandenhirtz, ETH Zurich (CH).
이 라이브러리가 연구 논문, 블로그 게시물 또는 제품에 유용했다면, 다음 bibtex 항목을 사용하여 인용해 주시면 감사하겠습니다:
@software{pycteam2025concept,
author = {De Felice, Giovanni and Barbiero, Pietro and De Santis, Francesco and Gabrielli, Edoardo and Casanova Flores, Arianna and Ciravegna, Gabriele and Debot, David and Espinosa Zarlenga, Mateo and Jamnik, Mateja and Marra, Giuseppe},
license = {Apache 2.0},
...
참고 저자: Giovanni De Felice, Pietro Barbiero, 그리고 Mateo Espinosa Zarlenga.
이 프로젝트는 다음 조직들의 지원을 받습니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기