Python을 사용하여 재현 가능한 데이터 과학을위한 도구 및 프로토콜


50

Python을 사용하여 데이터 과학 프로젝트를 진행하고 있습니다. 이 프로젝트에는 여러 단계가 있습니다. 각 단계는 Python 스크립트, 보조 데이터, 구성 및 매개 변수를 사용하고 다른 데이터 세트를 작성하는 데이터 세트로 구성됩니다. 코드를 git에 저장하므로 해당 부분을 다룹니다. 다음에 대해 듣고 싶습니다 :

  1. 데이터 버전 관리 도구.
  2. 무대와 실험을 재현 할 수있는 도구.
  3. 이러한 프로젝트에 대한 프로토콜 및 제안 된 디렉토리 구조.
  4. 자동화 된 빌드 / 실행 도구.

2
이 질문 의 질문 은 어디에 있습니까 ? 도움말 센터 가이드 라인 을 검토 하십시오 . 구체적으로 : "질문을하는 동기가 '______에 대한 토론에 참여하고 싶습니다.'인 경우 여기에 묻지 말아야합니다."
Air

"실제로 직면하고있는 실제 문제에 기초하여 실용적이고 응답 가능한 질문을해야합니다."
Yuval F

이것은 실용적이고 응답 가능하며 "데이터 과학 수행 방법 알려주기"가 실용적이고 응답 가능하며 실제 문제를 기반으로하는 것과 거의 같은 방식으로 실제 문제를 기반으로합니다.
Air

답변:


46

의 주제 재현 연구 (RR)입니다 매우 인기있는 오늘, 결과적이다 거대한 ,하지만 난 내 대답이 될 수 있기를 바랍니다 충분히 포괄적 인 답변으로하고 충분한 정보를 제공 할 것입니다 추가 연구 그렇게하기로 결정한다.

RR을위한 Python 전용 도구는 확실히 존재하지만보다 보편적 인 도구 에 초점을 맞추는 것이 더 합리적이라고 생각합니다 (향후 어떤 프로그래밍 언어 및 컴퓨팅 환경을 사용할지 확실하지 않습니다). 그렇게 말한 후에는 목록별로 어떤 도구를 사용할 수 있는지 살펴 보겠습니다.

1) 데이터 버전 관리 도구 . (매우) 큰 데이터 로 작업 할 계획이 아니라면 git소스 코드 버전 제어 에 사용하는 것과 동일한 것을 사용하는 것이 좋습니다. 인프라가 이미 있습니다. : 파일이 바이너리 큰 경우에도,이 조언은 도움이 될 수 https://stackoverflow.com/questions/540535/managing-large-binary-files-with-git .

2) RR 워크 플로우 및 실험 관리 도구 . 이 범주에서 가장 많이 사용되는 도구 목록은 다음과 같습니다 (인기의 내림차순).

. 다음은 KeplermyExperiment 프로젝트 사용을 기반으로 한 실제 워크 플로우 설계 및 데이터 분석 의 예가 포함 된 과학적 워크 플로우에 대한 흥미로운 기사입니다 : http://f1000research.com/articles/3-110/v1 .

소프트웨어 제품군에 의해 설명되는 문해력있는 프로그래밍 패러다임 을 구현하는 많은 RR 도구가 LaTeX있습니다. 보고서 작성 및 프리젠 테이션에 도움이 도구는 또한 큰 카테고리입니다 Sweave그리고 knitr아마도 가장 잘 알려진 것들이다. SweaveR에 중점을 둔 도구이지만 추가 노력이 필요하지만 Python 기반 프로젝트와 통합 될 수 있습니다 ( https://stackoverflow.com/questions/2161152/sweave-for-python ). 그 생각 knitr은 모던으로, (예 : 인기있는 도구로 폭 넓은 지원을하고, 더 좋은 옵션이 될 수도 있습니다 RStudio) 및 언어 중립적입니다 ( http://yihui.name/knitr/demo/engines ).

3) 프로토콜 및 제안 된 디렉토리 구조 . 프로토콜 ( 워크 플로 ) 이라는 용어를 사용하여 의미하는 바를 정확하게 이해하면 일반적으로 표준 RR 데이터 분석 워크 플로는 다음과 같은 순차적 단계로 구성됩니다. 데이터 수집 => 데이터 준비 (세척, 변환, 병합, 샘플링) => 데이터 분석 => 결과 프레젠테이션 (보고서 및 / 또는 프레젠테이션 생성) 그럼에도 불구하고 모든 워크 플로는 프로젝트마다 다르므로 일부 특정 작업에는 추가 단계를 추가해야 할 수도 있습니다.

샘플 디렉토리 구조의 경우 데이터 분석 워크 플로우 및 프로젝트를 자동화하려는 시도로 R 패키지 ProjectTemplate( http://projecttemplate.net )의 문서를 살펴볼 수 있습니다 .

여기에 이미지 설명을 입력하십시오

4) 자동화 된 빌드 / 실행 도구 . 내 대답은 범용 (언어 중립) RR 도구에 중점을두기 때문에 가장 인기있는 도구는 make입니다. 몇 가지 이유가 사용하기위한 다음 문서 읽기 make: 선호 RR 워크 플로우 자동화 도구로 http://bost.ocks.org/mike/make을 . 확실히의 다른 측면을 개선 하거나 추가 기능을 추가 하는 다른 유사한 도구가 make있습니다. 예 : ant(공식적으로 Apache Ant : http://ant.apache.org ), Maven( "차세대 ant": http://maven.apache.org ), rake( https://github.com/ruby/rake ) , Makepp( http://makepp.sourceforge.net). 이러한 도구의 전체 목록은 Wikipedia : http://en.wikipedia.org/wiki/List_of_build_automation_software를 참조하십시오 .


글을 읽고 쓸 줄 아는 프로그래밍 에 대한 링크 : 기본적으로 코드가 독립형 문서가 될 수 있도록 코드를 충분히 주석 처리하는 것입니다.
gaborous

@gaborous : 나는 문맹 프로그래밍의 의미에 대해 알고 있으며 패러다임에 대한 링크가 포함되어 있지 않습니다. 그럼에도 불구하고 귀하의 의견에 감사드립니다.
Aleksandr Blekh 1

1
나는 그것을 추측, 그 이유는 내가 관심이 독자에 대한 의견 으로이 정보를 추가 한 이유 :)
gaborous

4
이것은 매우 포괄적 인 답변이지만 한 가지 측면이 누락 된 것으로 놀랐습니다. 교차 검증은 대부분의 DS 프로젝트의 필수 구성 요소이며 일반적으로 무작위 샘플이 필요하므로 재현성이 어려울 수 있습니다. 통계적 변동에 관계없이 결과를 재현 할 수 있도록 랜덤 생성기에 동일한 시드를 사용하는 것에 대해 간단히 언급하는 것이 좋습니다. 감사!
AN6U5

@ AN6U5 : 친절한 말 감사합니다! 동의합니다-해당 측면을 놓쳤습니다 (+1). 교차 유효성 검사에 대한 간단한 정보를 추가하여 언제든지 답변을 업데이트하십시오.
Aleksandr Blekh

23

학계에서 연구를 시작한 이래 지속적으로 만족스러운 워크 플로를 찾고있었습니다. 나는 마침내 내가 좋아하는 것을 발견했다고 생각한다.

1) 모든 것을 버전 관리하에 두십시오 (예 : Git).

취미 연구 프로젝트에는 GitHub를 사용하고, 직장 연구에는 대학에서 제공하는 개인 GitLab 서버를 사용합니다. 또한 데이터 세트를 유지합니다.

2) IPython 노트북에 대한 설명서와 함께 대부분의 분석을 수행합니다. 코드, 줄거리 및 토론 / 결론을 모두 하나의 문서로 구성하는 것이 매우 체계적입니다 (더 큰 스크립트를 실행하는 경우 일반적으로 별도의 스크립트 .py 파일에 배치하지만 여전히 실행합니다) % run 매직을 통해 IPython 노트북에서 목적, 결과 및 기타 매개 변수에 대한 정보를 추가하십시오.

타임 스탬프를 편리하게 생성하고 사용한 다양한 패키지 버전과 Git 해시를 추적하는 데 사용하는 "워터 마크"라는 IPython 및 IPython 노트북 용 소형 셀 매직 확장을 작성했습니다.

예를 들어


%watermark

29/06/2014 01:19:10

CPython 3.4.1
IPython 2.1.0

compiler   : GCC 4.2.1 (Apple Inc. build 5577)
system     : Darwin
release    : 13.2.0
machine    : x86_64
processor  : i386
CPU cores  : 2
interpreter: 64bit


%watermark -d -t

29/06/2014 01:19:11 


%watermark -v -m -p numpy,scipy

CPython 3.4.1
IPython 2.1.0

numpy 1.8.1
scipy 0.14.0

compiler   : GCC 4.2.1 (Apple Inc. build 5577)
system     : Darwin
release    : 13.2.0
machine    : x86_64
processor  : i386
CPU cores  : 2
interpreter: 64bit

자세한 내용은 여기 설명서를 참조 하십시오 .


2
나는 워터 마크 마술을 좋아한다. 모르는 사람들을 위해 GitHub는 이제 교육 기관과 관련된 사용자를 위해 최대 5 개의 무료 개인 저장소를 제공합니다.
bogatron

19

가장 좋은 재현성 도구는 다음과 같은 작업을 기록하는 것입니다.

experiment/input ; expected ; observation/output ; current hypothesis and if supported or rejected
exp1 ; expected1 ; obs1 ; some fancy hypothesis, supported

이것은 종이에 기록 할 수 있지만 실험이 계산 프레임 워크에 적합하면 계산 도구를 사용하여 해당 로깅 프로세스를 부분적으로 또는 완전히 자동화 할 수 있습니다 (특히 거대한 입력 데이터 세트 및 출력을 추적하는 데 도움이 됨) 그림).

학습 곡선이 낮은 Python의 뛰어난 재현성 도구는 물론 IPython / Jupyter Notebook입니다 ( % logon 및 % logstart 마술을 잊지 마십시오 ). 팁 : 노트북을 재현 할 수있게하려면 커널을 다시 시작하고 모든 셀을 위에서 아래로 실행하십시오 (버튼은 모든 셀 실행). 작동하는 경우 모든 것을 보관 파일 ( "고정")에 저장하십시오. 오류를 피하기 위해 비선형적이고 비 순차적이며 명백하지 않은 방식 으로 셀을 실행해야하는 경우 약간의 재 작업이 필요합니다.

매우 최근의 (2015) 또 다른 훌륭한 도구는 recipy 이며 수마트라와 매우 비슷하지만 Python 용으로 특별히 만들어졌습니다. Jupyter Notebook과 호환되는지 잘 모르겠지만 저자가 자주 사용하는 노트북을 알고 있으므로 현재 지원되지 않는 경우 향후에있을 것으로 생각합니다.

힘내 도 훌륭하고 파이썬과 관련이 없습니다. 모든 실험, 코드, 데이터 세트, 그림 등의 이력을 유지하는 데 도움이 될뿐만 아니라 과학을 사용하여 유지 관리 ( git pickaxe ), 공동 작업 ( ) 및 디버그 ( git - bisect ) 도구를 제공합니다. 디버깅 방법 ( 델타 디버깅 이라고 함 ). 다음 은 Git의 팩시밀리가 될 때까지 자신의 실험 로깅 시스템을 만들려는 가상의 연구원 의 이야기 입니다.

(에 파이썬 API를 모든 언어로 작업하는 또 다른 일반적인 도구 pypi은 )는 수마트라 특히 당신이 할 수 있도록 설계되었습니다, 복제 연구 ( 복제 반면, 동일한 코드와 소프트웨어 주어진 동일한 결과를 생성하는 목표를 재현성이 을 생산하는 것을 목표로 매체가 주어지면 동일한 결과를 얻습니다.

Sumatra의 작동 방식은 다음과 같습니다. Sumatra를 통해 수행하는 각 실험마다이 소프트웨어는 비디오 게임에서 흔히 볼 수있는 "게임 상태 저장"처럼 작동합니다. 보다 정확하게는 다음을 저장합니다.

  • 제공 한 모든 매개 변수;
  • 전체 실험 응용 프로그램 및 구성 파일의 정확한 소스 코드 상태
  • 출력 / 플롯 / 결과 및 실험 응용 프로그램에서 생성 한 파일

그런 다음 각 실험에 대한 타임 스탬프 및 기타 메타 데이터가 포함 된 데이터베이스를 구성하여 나중에 webGUI를 사용하여 크롤링 할 수 있습니다. Sumatra는 특정 시점에 특정 실험을 위해 애플리케이션의 전체 상태를 저장 했으므로 원하는 순간에 특정 결과를 생성 한 코드를 복원 할 수 있으므로 저렴한 비용으로 복제 가능한 연구를 수행 할 수 있습니다. 거대한 데이터 세트에서 작업하지만 매번 모든 것을 저장하지 않으려면 예외를 구성 할 수 있습니다).

또 다른 멋진 도구로는 그놈의 Zeitgeist (이전에는 Python으로 코딩되었지만 현재 Vala로 포팅 됨)가 있습니다. 모든 작업을 기록하고 모든 것을 기록하고 머신 러닝을 사용하여 항목 간의 관계를 원하는 기간 동안 요약 할 수 있습니다 유사성과 사용 패턴 (예 : "작년 한 달 동안 프로젝트 X에서 작업하는 동안 나에게 가장 중요한 것은 무엇입니까?") 과 같은 질문에 대답 . 흥미롭게도 Evernote와 유사한 메모 작성 앱인 Zim Desktop Wiki 에는 Zeitgeist와 연동되는 플러그인이 있습니다.

결국 Git 또는 Sumatra 또는 원하는 다른 소프트웨어를 사용할 수 있습니다. 동일한 복제 능력을 제공하지만 Sumatra는 과학 연구에 맞게 특별히 설계되어 있으므로 크롤링하는 웹 GUI와 같은 몇 가지 멋진 도구를 제공합니다 Git은 코드 유지 관리에 더 적합하지만 결과에는 git-bisect와 같은 디버깅 도구가 있으므로 실험에 코드가 포함되어 있으면 실제로 더 나을 수 있습니다. 또는 둘 다 사용할 수 있습니다!

/ EDIT : 여기서 dsign 은 매우 중요한 점을 지적했습니다. 설정의 복제 가능성은 응용 프로그램의 복제 가능성만큼 중요합니다. 다시 말해, 최소한 사용 했던 라이브러리와 컴파일러전체 목록 과 정확한 버전플랫폼 세부 정보를 제공해야 합니다 .

개인적으로 Python을 사용한 과학 컴퓨팅에서 라이브러리와 함께 응용 프로그램을 패키징하는 것이 너무 고통 스럽다는 것을 알게되었습니다. 따라서 Anaconda 와 같은 올인원 과학 파이썬 패키지 (대단한 패키지 관리자 conda )를 사용합니다. 사용자에게 동일한 패키지를 사용하도록 조언하십시오. 또 다른 해결책은 virtualenv 를 자동으로 생성하는 스크립트를 제공 하거나 dsign 또는 오픈 소스 Vagrant (예 : Vagrant를 사용하여 쉽게 재배포 할 수있는 pylearn2-in-a-box)에서 인용 한대로 상용 Docker 응용 프로그램을 사용하여 모든 것을 패키징 하는 스크립트를 제공 할 수 있습니다 가상 환경 패키지).

마지막으로, 필요할 때마다 완벽한 작업 환경을 보장하기 위해 가상 머신을 만들고 (VirtualBox 참조) 실험을 실행할 준비가 된 머신의 상태 (스냅 샷)를 저장할 수도 있습니다. 그런 다음이 가상 머신을 포함 된 모든 항목과 공유하면 누구나 정확한 설정으로 실험을 복제 할 수 있습니다. 이것은 아마도 소프트웨어 기반 실험을 복제하는 가장 좋은 방법 일 것입니다. 컨테이너는보다 가벼운 대안이지만 전체 환경을 포함하지 않으므로 복제 충실도가 떨어집니다.

/ EDIT2 : 다음 은 재현 가능한 연구를 수행하는 데있어 근본적인 것 (디버깅 용이지만 연구에도 적용 할 수 있음)을 요약 한 훌륭한 비디오입니다 . 실험 및 과학적 방법의 각 단계, "명시 적 실험" 로깅 .


14

도커 를 확인하십시오 ! 그리고 일반적으로 소프트웨어 엔지니어링이 수십 년 동안 고립과 생식을 보장하기 위해 만들어 낸 다른 모든 좋은 것들.

재현 가능한 워크 플로 있으면 충분하지 않고 워크 플로를 쉽게 재현 할 수 있다고 강조하고 싶습니다 . 무슨 뜻인지 보여 드리겠습니다. 프로젝트가 데이터베이스 X 및 Scipy 인 Python을 사용한다고 가정하십시오. 가장 확실한 것은 특정 라이브러리를 사용하여 Python에서 데이터베이스에 연결하고 Scipy는 희소 대수 루틴을 사용하는 것입니다. 이것은 반드시 매우 간단한 설정이지만, 완전히 간단하게 설정하는 것은 아닙니다. 누군가가 스크립트를 실행하려면 모든 종속성을 설치해야합니다. 또는 더 이상 호환되지 않는 버전이 이미 설치되어있을 수 있습니다. 그 문제를 해결하려면 시간이 걸립니다. 계산을 클러스터, 다른 클러스터 또는 일부 클라우드 서버로 이동해야하는 경우에도 시간이 걸립니다.

여기에도 커가 유용한 곳이 있습니다. Docker는 바이너리 환경을위한 레시피를 공식화하고 컴파일하는 방법입니다. dockerfile에 다음을 쓸 수 있습니다 (Dockerfile 구문 대신 일반 영어를 사용하고 있습니다).

  • 우분투와 같은 기본 바이너리 환경으로 시작하십시오.
  • libsparse-dev 설치
  • (핍) numpy 및 scipy 설치
  • X 설치
  • libX-dev 설치
  • (Pip) python-X 설치
  • IPython-Notebook 설치
  • 파이썬 스크립트 / 노트북을 바이너리 환경, 데이터 파일 및 기타 구성으로 복사하여 기타 기타 작업을 수행하십시오. 생식을 보장하기 위해 로컬 파일 대신 이름이 지정된 URL에서 복사하십시오.
  • IPython-Notebook을 실행하십시오.

pip는 특정 패키지 버전을 선택하는 데 매우 깔끔한 작업을 수행 할 수 있기 때문에 일부 라인은 pip를 사용하여 Python에 설치합니다. 그것도 확인하십시오!

그리고 그게 다야. Dockerfile을 작성한 후 빌드 할 수 있으면 누구나 어디서나 빌드 할 수 있습니다 (예 : Dockerfile에서 참조 된 공개 URL에 파일을 넣었 기 때문에 프로젝트 특정 파일에 액세스 할 수있는 경우). 가장 좋은 방법은 결과 환경 ( "이미지")을 다른 사람이 사용할 수 있도록 공용 또는 개인 서버 ( "등록")에 업로드 할 수 있습니다. 따라서 워크 플로를 게시 할 때 Dockerfile 형식으로 완전히 재현 가능한 레시피와 자신이나 다른 사람이 수행 한 작업을 쉽게 재현 할 수있는 방법이 있습니다.

docker run dockerregistery.thewheezylab.org/nowyouwillbelieveme

또는 그들이 당신의 스크립트 등에서 찌르기를 원한다면 :

docker run -i -t dockerregistery.thewheezylab.org/nowyouwillbelieveme /bin/bash

8

불행히도, 나는 Plank의 게시물에 대답 할 평판이 충분하지 않으므로 전체 스레드에 대답해야합니다. 죄송합니다.

저는 실제로 위에서 언급 한 오픈 소스 Collective Knowledge Framework의 개발자입니다. 통합 JSON API 및 GitHub를 통해 공유되는 JSON 메타를 사용하여 재사용 가능하고 재현 가능한 Python 구성 요소로 아티팩트 및 실험 워크 플로우 공유를 단순화하려고 시도합니다. 또한 동일한 통합 JSON API를 사용하여 예측 분석에 연결할 수 있습니다.

우리는 방금 새 버전 V1.8.1을 출시했으며 광범위한 문서를 제공 했으므로 이제 개념을 이해하기가 더 쉬울 것입니다. http://github.com/ctuning/ck/wiki

우리는 이제이 프레임 워크를 기반으로하는 많은 학술 및 산업 프로젝트를 가지고 있으므로 자원 봉사자가 제공하는 모바일 장치에서 재현 가능한 방식으로 크라우드 소싱 프로그램 최적화 중 하나를 확인할 수 있습니다. http://cknowledge.org/repo

또한 재현 가능한 과학과 관련된 다양한 리소스를 추적합니다. https://github.com/ctuning/ck/wiki/Enabling-open-science

컴퓨터 시스템의 연구를 재현 할 수있게하는 데 주로 중점을두고 있지만 다른 도메인의 동료들과 재미있는 대화를 나눈 적이 있으며 비슷한 문제가있는 것 같습니다. 프레임 워크가 다른 커뮤니티에 도움이 될 수 있다면 매우 기쁠 것입니다! 질문이나 제안이 있으시면 언제든지 연락하십시오!


1
이번 여름도 관심을 가질만한 (관련 도구에 대한 링크, 데이터 세트, 기사 및 이벤트를 포함) 재현성 연구를 요약 : github.com/ctuning/ck/wiki/Enabling-open-science-blog-20160919
gfursin

7

재현 가능한 연구에 전념하는 전체 과정이 있습니다. https://www.coursera.org/learn/reproducible-research 이 과정은 R을 기반으로하지만 기본 아이디어는 학습 할 수 있습니다.

간단한 방법 중 하나는 Ipython 노트북을 사용하여 데이터 정리, 탐색 적 분석 또는 모델 구축 등 모든 더러운 작업을 계속 저장하는 것입니다.


6

최근에 다음 도구를 발견했습니다-http: //github.com/ctuning/ck . 그것은 이미 파이썬으로 작성되었으며 필요한 것을 포함하는 것 같습니다 (제 동료가 이미지 인식을 자동화하기 위해 파일럿 프로젝트에서 사용하고 있습니다).

장점 :

  1. 매우 작고 휴대 가능하며 사용자 정의 가능
  2. 예측 분석을 사용하여 실험을 배포하고 처리하는 웹 서버 포함
  3. 크라우드 소싱 및 컴파일러 최적화를 재현하는 멋진 사용 예가 있습니다-http: //cknowledge.org/repo

단점 :

  1. 약간 낮은 수준-JSON API 또는 명령 줄을 사용하여 GitHub를 통해 공유되는 Python 구성 요소에서 자체 워크 플로우를 구현해야합니다
  2. 문서는 다소 복잡합니다. 실제로 문서를 곧 업데이트 할 시간이되기를 바랍니다.

6

나는 당신이 도달하려고하는 것을 정확하게 하는 오픈 소스 도구 http://dvc.org 또는 DVC를 만들고 최근에 발표했다 .

  1. [데이터 버전 제어 도구] DVC는 Git 위에서 작동하고 데이터 파일 버전 제어를 추가하고 (파일은 Git 외부에 저장 됨) 코드와 데이터 파일 간의 종속성을 추적합니다. DVC는 코드 및 데이터에 대한 종속성 그래프 (DAG)를 자동으로 파생합니다.
  2. [단계 및 실험을 재현 할 수있는 도구.] dvc repro data/scores.csvDAG와 관련된 모든 필수 단계를 재현합니다.
  3. [이러한 프로젝트의 프로토콜 및 제안 된 디렉토리 구조] DVC에는 data모든 데이터 파일을 저장할 데이터 디렉토리 ( 기본적으로)가 필요했습니다 . 그러나 DVC는 실제 컨텐츠를 투명하게 .cache디렉토리로 옮기고 심볼릭 링크를 만듭니다 (예, Windows에서도 작동하도록 만들었습니다). .cache디렉토리 힘내에 동기화되지 않지만이 클라우드를 통해 동기화 할 수있다 (S3 또는 GCP) 명령으로는 dvc sync data/scores.csv(이 같은 캐시에서 맞습니다 데이터 파일을 동기화 .cache/scores.csv_29de545)
  4. [자동 빌드 / 실행 도구.] 위의 내용을 참조하십시오.

DVC 튜토리얼은 "데이터 버전 관리 : 반복 기계 학습" 이라는 좋은 출발점 입니다 .


5

면책 조항 : 저는 Datmo 회사에서 일하며 오픈 소스 도구를 만듭니다.

재현성의 모범 사례는 다음과 같습니다.

1) 먼저 Dockerfile을 작성하고 모든 종속성이 해당 파일에 포함되도록하여 환경을 Docker 환경으로 컨테이너화하십시오. 이 리소스가 최고라는 것을 알았습니다 ( https://arxiv.org/pdf/1410.0846.pdf )

2) 모든 성능 지표와 구성을 추적 할 수있는 위치를 결정하려는 경우 (나중에 실험을 위해 다시 방문 할 수 있도록)

3) 마지막으로 새로운 실험자 / 개발자가 코드를 다시 방문하여 환경에 복제하고 구성 및 성능 메트릭을 유지 한 위치를 확인할 수 있도록 문서를 작성하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.