papermill 은 Jupyter 노트북을 매개변수화, 실행 및 분석하기 위한 도구입니다.
Papermill에서는 다음을 수행할 수 있습니다.
이는 노트북을 사용하는 방법에 대한 새로운 기회를 열어줍니다. 예를 들어:
Papermill은 데이터 파이프라인에서 대규모로 노트북을 사용한 경험을 바탕으로 노트북 매개변수화 및 실행에 대해 독선적인 접근 방식을 취합니다.
명령줄에서:
pip install papermill
모든 선택적 io 종속성에 대해 s3
또는 azure
와 같은 개별 번들을 지정하거나 all
사용할 수 있습니다. 검정색을 사용하여 매개변수 형식을 지정하려면 추가로 추가할 수 있는 ['black']이 필요합니다.
pip install papermill[all]
이 라이브러리는 현재 Python 3.8+ 버전을 지원합니다. Python 조직의 제지 공장에서 마이너 Python 버전이 공식적으로 종료됨에 따라 향후에도 마찬가지로 지원이 중단될 것입니다.
노트북을 매개변수화하려면 태그 parameters
있는 셀을 지정하세요.
Papermill은 parameters
셀을 찾고 이 셀을 실행 시 전달된 매개변수에 대한 기본값으로 처리합니다. Papermill은 parameters
의 값을 덮어쓰기 위해 입력 매개변수가 포함된 injected-parameters
태그가 지정된 새 셀을 추가합니다. parameters
로 태그가 지정된 셀이 없으면 삽입된 셀이 노트북 상단에 삽입됩니다.
또한 제지 공장을 통해 노트북을 다시 실행하면 이전 실행에서 injected-parameters
셀이 재사용됩니다. 이 경우 Papermill은 이전에 injected-parameters
셀을 새 실행의 입력으로 대체합니다.
매개변수를 사용하여 노트북을 실행하는 두 가지 방법은 (1) Python API를 사용하는 것과 (2) 명령줄 인터페이스를 사용하는 것입니다.
import papermill as pm
pm.execute_notebook(
'path/to/input.ipynb',
'path/to/output.ipynb',
parameters = dict(alpha=0.6, ratio=0.1)
)
다음은 로컬 노트북이 실행되어 Amazon S3 계정으로 출력되는 예입니다.
$ papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
참고: 여러 AWS 계정을 사용하고 AWS 자격 증명을 적절하게 구성한 경우 명령줄에서 AWS_PROFILE
환경 변수를 설정하여 사용할 계정을 지정할 수 있습니다. 예를 들어:
$ AWS_PROFILE=dev_account papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1
위의 예에서는 -p
사용하여 alpha
및 l1_ratio
의 두 매개변수가 설정되었습니다( --parameters
도 작동함). 부울 또는 숫자처럼 보이는 매개변수 값은 그렇게 해석됩니다. 사용자가 매개변수를 설정할 수 있는 다양한 방법은 다음과 같습니다.
$ papermill local/input.ipynb s3://bkt/output.ipynb -r version 1.0
-r
또는 --parameters_raw
사용하면 사용자는 매개변수를 하나씩 설정할 수 있습니다. 그러나 -p
와 달리 매개변수는 숫자나 부울로 해석될 수 있더라도 문자열로 유지됩니다.
$ papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml
-f
또는 --parameters_file
사용하면 사용자는 매개변수 값을 읽어야 하는 YAML 파일을 제공할 수 있습니다.
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
alpha: 0.6
l1_ratio: 0.1"
-y
또는 --parameters_yaml
사용하면 사용자는 매개변수 값이 포함된 YAML 문자열을 직접 제공할 수 있습니다.
$ papermill local/input.ipynb s3://bkt/output.ipynb -b YWxwaGE6IDAuNgpsMV9yYXRpbzogMC4xCg==
-b
또는 --parameters_base64
사용하면 사용자는 매개변수 값이 포함된 base64로 인코딩된 YAML 문자열을 제공할 수 있습니다.
YAML을 사용하여 -y
, -b
또는 -f
통해 인수를 전달할 때 매개변수 값은 배열 또는 사전이 될 수 있습니다.
$ papermill local/input.ipynb s3://bkt/output.ipynb -y "
x:
- 0.0
- 1.0
- 2.0
- 3.0
linear_function:
slope: 3.0
intercept: 1.0"
Papermill은 실행 중 입력 및 출력 경로에 대해 다음 이름 처리기를 지원합니다.
로컬 파일 시스템: local
HTTP, HTTPS 프로토콜: http://, https://
아마존 웹 서비스: AWS S3 s3://
Azure: Azure DataLake 저장소, Azure Blob 저장소 adl://, abs://
구글 클라우드: 구글 클라우드 스토리지 gs://
로컬 개발 환경을 설정하고 코드를 다시 Papermill로 변경하는 방법에 대한 지침은 CONTRIBUTING.md를 읽어보세요.
개발 지침은 DEVELOPMENT_GUIDE.md 파일을 참조하세요. 이는 코드 베이스에 특정 추가를 수행하는 방법을 알려줍니다.
우리는 ReadTheDocs에서 Papermill 문서를 호스팅합니다.