인공지능(Al)이 연구단계를 벗어나 생산공정에 확대적용 되면서 기업들은 AI를 발빠르게 도입해 리테일 분석, 의료 영상, 자율 주행과 스마트 제조 등의 다양한 애플리케이션에 적용하고 있습니다.
하지만 오픈소스 AI 소프트웨어를 개발하고 적용하기 위해서는 우선 본질적인 문제를 해결해야만 합니다. 데이터 사이언티스트들은 최적화된 소프트웨어가 필요하고, 개발자들은 AI 모델을 자사 제품에 적용하기 위한 최적의 툴이, 데브옵스(DevOps) 엔지니어들은 생산 소프트웨어를 구축하기 위한 자동화 툴셋(tool sets)이 필요합니다. 시스템 관리자는 적절한 인프라를 제공해야 하죠.
엔비디아 GPU 클라우드(NGC)는 딥 러닝(DL), 머신 러닝(ML), 고성능 컴퓨팅(HPC) 애플리케이션을 위한 GPU 최적화 컨테이너(GPU-optimized containers)뿐 아니라 대규모 배포가 가능한 사전학습 모델, 모델 스크립트, 헬름(Helm) 차트, 소프트웨어 개발 키트(SDK)에 액세스할 수 있게 지원합니다.
데이터 사이언티스트들이 기업의 목적에 맞는 커스텀 콘텐츠를 구축할 때 이 중요한 지적 재산을 저장, 공유, 버저닝(versioning)하는 것이 매우 중요합니다. 이를 위해 엔비디아는 기업 내에서 커스텀 컨테이너, 모델, 모델 스크립트, 헬름 차트를 안심하고 저장하고 공유할 수 있는 공간인 NGC 프라이빗 레지스트리(NGC Private Registry)를 개발했습니다.
엔비디아 NGC 프라이빗 레지스트리의 핵심 기능을 살펴보기에 앞서 NGC 프라이빗 레지스트리의 각 구성항목(artifacts)을 살펴보겠습니다.
컨테이너
컨테이너는 소프트웨어 애플리케이션, 라이브러리, 의존성(dependency), 런타임 컴파일러를 독립적인 환경에서 한 패키지로 묶어 다양한 컴퓨팅 환경에서 쉽게 배포될 수 있게 지원합니다. NGC의 딥 러닝 프레임워크와 HPC 컨테이너는 GPU 최적화(GPU-optimized)됐으며 엔비디아 GPU에서 그 규모와 성능을 검증받았습니다. 사용자들은 단 한 번의 클릭으로 자신의 컴퓨터 환경에 간편하게 컨테이너를 끌어와(pull) 확장하고 실행할 수 있습니다.
모델과 모델 스크립트
커스텀 모델을 만들고 자체 데이터 세트를 학습시킨 뒤 솔루션을 도출할 때 이 에셋을 비롯한 관련 정보를 조직 전반에 공유하는 것이 중요합니다. 이와 같은 협업을 통해 에셋을 이용하고 배포하는 데 소요되는 시간과 신제품 출시 속도(time to market)를 단축할 수 있죠.
비단 커스텀 모델 뿐만이 아닙니다. 모델을 실행하고 에셋을 재훈련하고 사용자 애플리케이션에 적용하는데 필요한 코드는 어떨까요? 코드 샘플, 예제 애플리케이션, 영상, 이미지, 설명서를 공유해 자신의 작업을 조직 내 다른 일원들과 함께 사용할 수 있어야 합니다. AI 프로젝트는 기본적으로 협업을 통해 진행됩니다. 모델 스크립트는 팀 내부에서 협업과 관련해 발생되는 문제들을 해결할 수 있는 기본적인 구조를 제공합니다.
소프트웨어 개발 키트
SDK는 자신만의 Al 애플리케이션을 만들어 배포할 때 필요한 모든 툴을 제공합니다. 전이학습(transfer learning)으로 자체 데이터로 모델을 재훈련 시켜 용도에 맞게 사용하거나 사전 훈련된 모델을 사용해 애플리케이션에 직접 적용할 수 있죠. SDK는 클라우드, 자체 데이터 센터, 그리고 저지연 추론을 위한 엣지 등 다양한 배포 옵션에 사용되기 적합합니다.
헬름 차트
헬름 차트는 컨테이너화된 애플리케이션 배포를 구성하고 관리하는 컨테이너 제어 툴을 제공합니다. 데브옵스 엔지니어와 시스템 관리자들은 헬름 차트를 이용해 정확히 어떤 구성요소와 애플리케이션을 실행할 지 지정해 배포에 필요한 과정을 간소화해 새로운 애플리케이션을 쉽게 배포, 통합(integration)할 수 있습니다.
NGC 프라이빗 레지스트리의 기능
NGC 프라이빗 레지스트리는 단지 콘텐츠를 저장하는 공간이 아닙니다. 조직 내 엔드투엔드 Al 워크플로우를 가속화하는 다수이 강력한 기능도 제공하죠.
- 자동 컨테이너 스캐닝
- 다중 아키텍처 지원
- 모델 버저닝
- 쥬피터(Jupyter) 렌더링
- 사용자 관리
- API 키 관리
자동 컨테이너 스캐닝
AI 애플리케이션을 구축하고 컨테이너화 할 때 컨테이너에 그 어떤 결함도 발견되면 안됩니다. NGC 프라이빗 레지스트리는 자동 보안 스캐닝을 지원해 개발 초기에 다양한 시스템 문제가 있는지 스캔하고 한 층 강화된 보안 기능을 제공합니다.
보안 스캔을 통해 일반적인 보안 문제(CVE), 암호 키, 개인 키, 메타데이터 스캔 등을 자동 점검하고 그 결과를 NGC UI에서 확인할 수 있습니다.
보안문제의 심각성은 최고, 높음, 중간, 낮음으로 구분됩니다. 각각의 컨테이너 이미지를 클릭하면 그에 맞는 CVE 데이터베이스로 이동할 수 있는 링크와 함께 상세 정보를 확인할 수 있습니다. 기업 내 보안 담당자는 이를 통해 실시간으로 컴플라이언스를 검사, 검증할 수 있습니다. 예를 들어 컨테이너 이미지를 상세하게 분석하거나 이미지에 대한 정의된 정책을 담은 보고서를 작성해 추후 생산환경에서 사용할 수도 있죠. 또 컨테이너에서 CVE에 대한 정의된 정책과 해결책을 담은 문제해결 문서도 사용할 수 있습니다.
다중 아키텍처 지원
NGC 프라이빗 레지스트리는 x86 과 ARM 등 다양한 아키텍처를 지원해 배포 과정을 좀 더 손쉽게 진행할 수 있게 지원하고 있습니다. 다양한 아키텍처 이미지를 한 개의 이미지에 담아 NGC 프라이빗 레지스트리에 포함시킬 수 있습니다.
다중 아키텍처 지원 기능으로 이미지를 실행할 때 도커(Docker)는 사용자의 OS와 아키텍처에 맞는 이미지를 자동 선택합니다. 사용자는 UI나 매니페스트(manifest) 리스트를 통해 이 과정을 시각화해 이미지 내 다양한 옵션을 확인할 수 있습니다.
모델 버저닝
요즘 AI를 구축하는 담당자들이 겪는 가장 큰 문제 중 하나는 다양한 훈련 기준(학습 속도, 배치 크기 등)의 다양한 데이터를 바탕으로 훈련된 다양한 버전의 모델을 관리해야 한다는 것입니다. 모든 용도에 일괄적으로 적용할 수 있는 모델 버전이 없기 때문이죠.
그렇다면 팀 내에서 다양한 버전을 공유하기 위해서는 점점 늘어가는 문제점과 관리비를 어떻게 관리해야 할까요? 더 나아가, 어떤 버전을 실제 제작해 사용자들에게 차별화된 경험을 선사할 것인지 어떻게 결정할 수 있을까요?
엔비디아에서는 NGC 모델 버전 시스템을 개편해 콘텐츠를 개발하고 적절한 상세정보를 공유하고 딥 러닝 개발 사이클을 간소화하는 방식을 혁신했습니다.
새로워진 버전 제어 시스템에서는 숫자가 아닌 글로 모델 버전을 표기합니다. 다양한 콘텐츠의 여러 버전에 상세한 이름을 붙일 수 있게 된 것이죠. 이렇게 되면 버전을 찾기도 쉽고 단 한 번 검색만으로도 사용자가 찾는 콘텐츠를 바로 검색할 수 있습니다.
새로운 버전 제어 시스템을 이용하면 버전의 이름을 관리하기 더 쉬워질 뿐 아니라 버전의 세부정보를 공유할 수 있게 됩니다. 모델의 각 버전별로 최대 36개의 다양한 정보(metrics)를 기록할 수 있습니다. 사용자들은 그 정보를 보고 해당 모델에 대한 관련 사항을 빠르게 확인할 수 있습니다.
아래 영상을 통해 NGC 버전 제어 시스템 사용법을 확인하세요.
쥬피터 렌더링
자신의 문서, 코드, 보고서 등을 설명하는 기본 툴로 쥬피터 노트북을 선택하는 데이터 사이언티스트들이 급증하고 있습니다. 쥬피터 노트북은 데이터 사이언티스트들이 업무를 간소화하고 데이터 사이언스 워크플로우를 가속화하는데 도움이 됩니다.
엔비디아에서는 NGC에서 쥬피터 에셋을 한층 더 간편하게 활용할 수 있게 하기 위해 쥬피터 렌더링 기능을 추가했습니다. 쥬피터 렌더링은 NGC에서 노트북 화면을 직접 볼 수 있는 기능인데요.
우선 모델 스크립트 레지스트리로 이동해 액션(Actions), 쥬피터 보기(View Jupyter)를 선택하세요. 이렇게 하면 브라우저에서 노트북 화면을 볼 수 있어 노트북을 사용하지 않고도 쉽게 문서를 확인하거나 코드 샘플을 복사할 수 있죠.
아래 영상을 통해 NGC에서 쥬피터 노트북 화면을 어떻게 보는지 확인하세요.
영상: NGC에서 쥬피터 노트북 보기
사용자 관리
관리자는 NGC 프라이빗 레지스트리에서 사용자와 팀 통합 관리를 통해 레지스트리에 저장된 콘텐츠에 대한 액세스를 통제할 수 있습니다. 조직 내 NGC 관리자는 NGC 계정에 새로운 사용자를 초청해 관련 팀에 배치할 수 있습니다.
아래 영상을 통해 사용자와 팀을 어떻게 관리하는지 확인하세요.
영상: 사용자 관리법
API 키 관리
API 키는 NGC 프라이빗 레지스트리에 콘텐츠를 퍼블리싱 하는데 핵심적인 역할을 합니다. 역할에 기반한 액세스 제어법은 누가 콘텐츠에 접근할 수 있는지 확인할 수 있게 하고 API키는 개별 사용자가 프라이빗 레지스트리의 구성항목을 사용할 수 있게 하죠.
API 키는 사용자의 역할에 따라 콘텐츠를 불러오고(pull), 넣고(push), 편집(edit)하거나 배포(deploy)할 수 있게 하는데요. 팀의 일원들은 자신만의 키를 사용하는데 개별 사용자가 NGC 내에서 API를 재생성 할 수도 있습니다.
NGC의 API 키 시스템은 사용자를 관리하는데 드는 비용을 줄여 관리자는 최우선 업무에 집중할 수 있습니다.
아래 영상을 통해 API 키 생성 방법을 확인하세요.
영상: API 키 생성법
개요
NGC 프라이빗 레지스트리는 기업들이 콘텐츠를 안전하게 저장, 공유할 수 있게 지원해 협업을 활성화하고 엔드투엔드 Al 워크플로우의 생산성을 높이는 매우 중요한 도구입니다. DGX와 NGC 지원 서비스를 현재 구독중인 고객들의 경우 NGC 프라이빗 레지스트리가 구독 항목에 포함돼 제공됩니다.
보다 상세한 사항은 시연을 신청해 확인하세요.