Links

주요 특징

파이프라인(Pipeline) 생성

주피터 랩(JupyterLab)에서는 실행 순서에 따라 결과가 달라지기 때문에 셀(Cell) 실행의 선후관계가 중요합니다. 하지만, 주피터 랩에서는 셀 실행 순서를 설정하거나 셀 간의 연결을 설정할 수 없습니다. 그렇기 때문에 실행할 때마다 동일한 실행 결과를 보장할 수 없습니다.
링크(Link)는 각 셀 간의 관계와 실행 순서를 지정할 수 있으며 노트북 코드(Notebook Code)에 대한 가독성을 높이기 위해 코드와 동일한 화면에서 파이프라인을 생성할 수 있도록 제공하고 있습니다. 또한, 파이프라인을 쉽게 구성하고 편하게 사용할 수 있도록 다양한 부가기능(실행 옵션, 코멘트 작성, 헤더 컬러 설정, 컴포넌트 저장 및 공유)을 제공하고 있습니다.
파이프라인 생성 예시

캐싱(Caching) 관리

주피터 랩(JupyterLab)을 사용하다 보면 셀과 셀 사이에 새로운 셀을 추가한 후 실행 결과를 확인하거나 특정 셀의 코드나 변수 값을 수정한 후 실행 결과를 확인하는 작업을 반복적으로 진행하는 경우가 많으며, 이런 경우 동일한 셀을 반복적으로 실행하게 됩니다. 또한, 커널을 재 시작하거나 작업 환경이 중단되는 경우 모든 셀을 처음부터 재 실행해야 하는 경우가 있습니다. 이 경우 동일한 작업을 반복적으로 진행하게 되어 불필요한 중복 작업을 하게 되어 업무 효율이 저하되는 경우가 많습니다.
링크(Link)는 이런 단점을 개선하기 위해 한 번 실행한 셀의 결과 값을 별도로 관리하고 캐싱(Caching)하여 업무 효율 저하 및 반복 작업을 회피하고 효율을 극대화할 수 있도록 개선하였습니다. 또한, 캐시 정보를 저장하거나 공유할 수 있는 기능을 제공하여 협업자에게 작업 상태를 재현하거나 사용자가 연속성 있는 작업이 가능하도록 제공하고 있습니다.
컴포넌트 캐싱 예시

파이프라인 원격 실행(Remote Resources)

GPU 등 외부 자원을 사용하여 주피터 랩(JupyterLab)을 이용하고자 한다면 전체 작업을 전부 해당 원격 서버에서 구동시켜야 하는 경우가 많습니다. 이 경우, 유연하게 개발 환경을 사용할 수도 없을 뿐더러, 서버 자원도 효율적으로 이용하지 못합니다.
Link는 이런 문제를 해결하기 위하여 자체적인 원격 실행 기능(Execute Pipeline with Remote Servers)을 제공합니다. 이 기능을 통하여, 파이프라인 컴포넌트마다 각각의 원격 서버 자원을 할당하여 효율적으로 서버 자원을 이용할 수 있습니다. 또한, 원하는 실행 시점에 원하는 코드만 외부 라이브러리 없이 원격 실행을 할 수 있기 때문에, 유연하게 개발 환경을 구축할 수 있습니다.
파이프라인 원격 실행 예시

하이퍼 파라미터 최적화(Hyper-Parameter Optimizer)

하이퍼파라미터(Hyper-Parameter)는 머신 러닝 모델(Machine Learning Model)을 실행할 때 사용자가 직접 설정해야 하는 파라미터입니다. 유저가 모든 하이퍼파라미터 값을 직접 최적화하는 것은 많은 시행 착오(Trial and Error)가 필요하며, 정확한 결과를 담보할 수도 없습니다.
Link는 이런 문제를 개선하기 위해 자동화된 방식으로 최적의 하이퍼 파라미터를 찾는 기능(Hyper-Parameter Optimizer)을 제공합니다. 또한, 목표값(Target Value)의 개수가 하나가 아닌 상황에서도, 해당 변화 정보를 실시간으로 확인하고 최적화된 하이퍼파라미터를 쉽게 반영하는 기능을 제공하고 있습니다.
Hyper-Parameter Optimizer 활용 예시

버전 관리(Version Control)

주피터 랩(JupyterLab)에서는 자체적인 버전 관리(Version Control) 기능을 제공하지 않기 때문에, 파일이 삭제되거나 잘못된 수정 사항이 있을 경우 추적을 하기 어렵습니다. 이 경우, 소스 코드 변화를 확인하거나 병합 충돌을 해결하기 어렵습니다.
그렇기 때문에 링크(Link)는 버전 관리 시스템(Git) 연동을 지원하여, 노트북 내 소스코드의 버전 관리 뿐 아니라, 파이프라인의 변경 이력과 파이프라인 컴포넌트의 소스코드 변경 이력을 관리할 수 있습니다. 특히, 커밋(Commit) 후 파이프라인과 소스 코드의 변화를 편리하게 확인할 수 있습니다. 또한, Git 브랜치 병합 시 충돌(Merge Conflict) 상황이 발생했을 때에도 파이프라인 패널(Pipeline Panel)을 통하여 쉽게 확인하고 관리할 수 있습니다.
Link Git 활용 예시

협업의 편의성(Easy to collaboration) 제공

주피터 랩(JupyterLab)은 자유도가 높은 도구(Tool)이기 때문에 사용자의 경험과 업무 방식에 따라 작업 결과물(Output)이 매우 상이한 경우가 많으며, 협업자와 결과물을 공유하더라도 코드에 대한 이해와 재사용성이 매우 낮았습니다.
링크(Link)는 협업의 어려움을 보완하기 위해 다음과 같은 4가지 공유 기능을 제공합니다.
첫째, 완성도 높은 파이프라인(Pipeline)만을 저장하고 공유할 수 있습니다. (파이프라인 내보내기/가져오기 : Export/Import link pipeline)
둘째, 프로젝트팀/협업팀에서 공통적으로 사용되는 라이브러리(library) 또는 공용 모듈을 저장하고 공유할 수 있습니다. (컴포넌트 내보내기/가져오기 : Export/Import link components)
셋째, 실행 결과(Cache)를 저장하고 공유할 수 있으며, 불필요한 반복 실행을 최소화할 수 있습니다. (캐시 내보내기/가져오기 : Export/Import cache)
넷째, 최소한의 환경(예, CLI 환경)에서 실행 가능한 코드(Python code only)를 저장하고 공유할 수 있습니다. (파이썬 파일 저장 : Save as an Executable Script (.py))