컨테이너는 (특히 정교한 AI/ML 모델 및 데이터 집약적인 풀스택 앱에 대해) 여러 환경에 걸쳐 어떤 언어로든 코드를 패키징할 수 있도록 해 이동성과 일관성을 보장하기 위한 현대적인 접근 방식으로 등장했습니다. 이러한 유형의 최신 데이터 제품은 종종 방대한 양의 독점 데이터를 처리합니다. 이러한 워크로드를 대규모로 생성, 개발 및 실행하는 경우 보통 복잡성이 높기 때문에 개발자와 데이터 과학자는 비즈니스 문제에 집중하기보다 이러한 애플리케이션의 컴퓨팅 및 클러스터를 관리하는 데 많은 시간을 할애해야 합니다. 또한 풀스택 앱 및 LLM은 데이터가 관리되는 곳에서 직접 실행될 수 없으므로 이러한 시나리오에서 사용되는 데이터의 보안을 관리하는 것은 매우 어렵고, 때로는 거의 불가능하기까지 합니다. 

데이터에 풀스택 앱, LLM 및 기타 정교한 데이터 제품을 안전하게 가져오는 작업을 더 쉽게 만드는 Snowpark 컨테이너 서비스(현재 비공개 미리 보기 제공 중)를 소개합니다. 개발자가 이 추가적인 Snowpark 런타임 옵션을 사용하면 GPU와 같은 구성 가능한 하드웨어 옵션과 함께 안전한 Snowflake 관리 인프라를 통해 컨테이너화된 워크로드(작업, 서비스, 서비스 기능)를 손쉽게 배포, 관리 및 확장할 수 있습니다.

이 새로운 런타임의 사용자는 컨테이너용 컴퓨팅 및 클러스터를 관리하고 유지하는 복잡한 작업을 처리할 필요가 없습니다. Snowflake에서 실행되는 컨테이너를 사용하면 관리되는 데이터를 가장 정교한 AI/ML 모델 및 앱(이가 내부적으로 개발되었든 제삼자 공급자에 의해 Snowflake 마켓플레이스에서 설치 가능한 Snowflake 네이티브 앱으로 제공되는 것이든 상관없음)의 일부로 사용하기 위해 Snowflake 외부로 이동할 필요도, 이에 따라 추가적인 보안 위험에 노출될 필요도 없어집니다. 

그림 1: Snowpark 컨테이너 서비스를 사용하면 Snowflake 계정 내에서 내부적으로 개발된 데이터 제품을 실행하거나 정교한 제삼자 Snowflake 네이티브 앱을 설치 및 실행할 수 있습니다.

Snowpark 컨테이너 서비스 개요 

프로그래밍 언어 및 하드웨어 유연성

개발자가 선택한 도구를 사용하여 구축 및 패키징한 컨테이너는 어떤 프로그래밍 언어(예: C/C++, Node.js, Python, R, React 등)의 코드든 포함할 수 있으며 GPU 등의 구성 가능한 하드웨어 옵션을 통해 실행할 수 있습니다. 프로그래밍 언어와 하드웨어의 이러한 유연성은 Snowpark를 통해 Snowflake 데이터로 가져올 수 있는 AI/ML 워크로드를 더욱 확장합니다.

예를 들어, 데이터 과학 팀은 교육 및 추론 작업에 사용되는 기계 학습(ML) Python 라이브러리의 실행을 가속화할 수 있고, 대규모 언어 모델(LLM)과 같은 컴퓨팅 집약적인 생성형 AI를 실행할 수 있습니다. 앱 개발자는 React 및 다른 인기 있는 웹 개발 프레임워크를 사용하여 프런트 엔드 사용자 인터페이스를 구축하고 배포할 수 있습니다. 데이터 엔지니어는 보통 C/C++로 작성되는 최적화된 로직을 SQL 또는 Python 데이터프레임 작업이 실행되는 처리 엔진에서 실행할 수 있습니다.

2020년 Snowpark를 처음 출시했을 당시 Snowflake는 사용자 정의 함수(UDF), 저장 프로시저와 같은 라이브러리와 런타임을 통해 Snowflake에서 Python, Java 및 Scala 코드를 안전하게 배포하고 처리하는 방법을 도입했습니다. Snowpark 컨테이너 서비스는 개발자가 Snowflake에서 관리되고 있는 데이터의 경계 내에서 어떤 비SQL 코드든 쉽게 처리할 수 있도록 하는 신뢰할 수 있고 강력하며 친숙한 방법을 제공하겠다는 Snowpark 비전을 실현하는 방법을 한 가지 더 제공합니다. 해당 코드와 로직은 Snowpark의 나머지 부분과 마찬가지로 모든 Snowflake 환경에서 액세스하고 통합할 수 있습니다. 사용자는 Snowpark 컨테이너 서비스에서 실행되는 컨테이너를 통해 데이터를 처리하는 SQL, Python, Java나 Scala로 데이터 쿼리를 작성할 수 있습니다.

통합적인 완전 관리형 서비스

Snowpark 컨테이너 서비스는 컨테이너화된 애플리케이션 및 AI/ML 모델의 엔드 투 엔드 수명 주기에 대해 단순하고 통합적인 환경을 제공합니다. 반면 다른 솔루션에서는 컨테이너 레지스트리, 컨테이너 관리 서비스 및 컴퓨팅 서비스를 수동으로 결합해야 하며, 관찰 가능성, 데이터 연결, 보안 등을 위해 자체적으로 별도의 도구를 관리해야 합니다. 

Snowpark 컨테이너 서비스는 플랫폼이 ‘제대로 작동(just works)’하도록 한다는 Snowflake의 철학에 충실하여 이 모든 것을 제공합니다. 이 서비스를 사용하면 데이터 애플리케이션의 개발 및 제품화의 속도를 높이기 위해 컴퓨팅 및 클러스터를 유지 관리할 필요가 없습니다. Snowpark 컨테이너 서비스는 컨테이너를 제공하기만 하면 되는 개발자를 위해 컨테이너 호스팅 및 서빙의 단순성과 성능을 제공하며, Snowflake는 Kubernetes의 모든 복잡성에 대해 배울 필요 없이 컨테이너를 규모에 맞게 서빙 및 호스팅합니다. 

개발자는 컨테이너에 대한 더욱 폭넓은 액세스 지원의 일환으로 프로그래밍 인터페이스로 SQL, CLI 또는 Python을 사용할 수 있습니다. 광범위한 워크로드를 지원하기 위해 Snowpark 컨테이너 서비스에는 세 가지 실행 옵션이 있습니다.

  • 작업: 임시 및 수동으로, 또는 예약된 프로세스의 일환으로 트리거되는 시간제한 프로세스입니다. 일반적인 예로는 GPU에 대한 ML 교육을 시작하는 데 사용되는 컨테이너 이미지나, 컨테이너 내에서 어떤 언어, 프레임워크 또는 라이브러리든 실행할 수 있는 데이터 파이프라인의 한 단계가 있습니다. 
  • 서비스 기능: 입력을 받고 작업을 수행하며 컨테이너가 지원하는 이벤트에 의해 반복적으로 트리거될 수 있는 시간제한 프로세스입니다. 
  • 서비스: 일반적으로 애플리케이션 프런트 엔드 또는 API를 호스팅하고 주문형 요청 시 항상 사용할 수 있어야 하는, 안전한 인그레스 엔드포인트가 있고 수명이 긴 프로세스입니다. 
그림 2: Python API, SQL 또는 CLI(표시되지 않음)를 사용하여 Snowflake에서 실행되고 https를 통해 액세스 가능한 서비스를 만드는 옵션 

정교한 타사 소프트웨어 및 앱을 데이터에 적용 

Snowpark 컨테이너 서비스를 Snowflake 네이티브 앱의 일부로 사용하여 개발자가 최종 고객의 Snowflake 계정에서 완전히 실행될 정교한 앱을 배포할 수 있게 할 수 있습니다. Snowflake 소비자의 경우 이는 공급자의 독점 IP를 보호하는 방식으로 Snowflake 계정 내에서 호스팅된 노트북, LLM과 같은 최첨단 제품을 안전하게 설치하고 실행할 수 있음을 의미합니다. 

  • Hex. 데이터 과학 팀은 Snowpark 컨테이너 서비스를 통해 분석 및 데이터 과학을 가속화하여 협업 분석 및 데이터 과학을 위한 플랫폼인 Hex를 배포하고, SQL, R과 Python으로 데이터를 쿼리 및 처리하고, GPU에서 머신 러닝 교육을 실행할 수 있습니다. 이와 동시에 데이터가 소비자의 Snowflake 계정을 떠나지 않도록 할 수도 있습니다. Snowflake에서 Hex를 배포하려면 데모 동영상을 확인하고 대기자 명단에 등록하세요. 
  • LLM 제공자. 조직은 Snowflake 계정 내에서 제공자의 지적 재산(IP)과 소비자의 데이터가 모두 완벽하게 보호되는 Snowflake 네이티브 앱으로 최첨단 생성형 AI 모델을 가져올 수 있습니다. AI21 Labs, Reka 또는 NVIDIA(NVDIA AI 엔터프라이즈 소프트웨어 플랫폼의 일부인 NeMo 프레임워크) LLM 가중치 또는 기타 독점 IP는 Snowflake 네이티브 앱의 로직이 액세스 불가능하므로 앱 소비자에게 노출되지 않습니다. LLM은 최종 소비자의 계정 내에서 실행되기 때문에 미세 조정 또는 LLM과의 기타 상호 작용에 사용되는 관리되는 엔터프라이즈 데이터는 개발자에게 다시 노출되지 않습니다. Snowflake Summit 2023 기조연설의 데모에서 이의 작동을 확인하세요. 

이 새로운 Snowpark 런타임은 Snowpark 가속화 파트너 생태계를 더 확장하고 강화합니다. 이는 Snowflake의 강력한 플랫폼을 활용하여 관리형 데이터를 처리하는 Snowflake 파트너의 통합 서비스 및 애플리케이션을 통해 기술 및 비즈니스 팀의 경험을 향상시킵니다.

  • Alteryx. Alteryx Designer에서 160개 이상의 노코드 및 코드 친화적인 도구 중에서 선택하여 수요 예측을 위한 예측 모델 구축과 같은 고급 분석 문제를 해결하는 워크플로우를 만듭니다. 워크플로를 Alteryx 분석 클라우드 플랫폼에 업로드하고 Snowpark 컨테이너 서비스에서 로직을 실행합니다.
  • Astronomer. Apache Airflow를 사용하여 종속성 관리 및 특수한 컴퓨팅 제한 없이 데이터에 코드를 가져옴으로써 고급 예약, 경고, 모니터링, 복잡한 분기 및 재시도 로직 등에서 복잡하고 강력한 데이터 파이프라인을 보다 효율적으로 오케스트레이션합니다.
  • Dataiku. Dataiku에서 교육된 모델을 확장 가능한 추론 서비스로 Snowpark 컨테이너 서비스에 배포합니다. 웹 애플리케이션을 통해 Dataiku는 기능을 모델에 공급하고 Snowpark 컨테이너 서비스에서 예측을 즉시 수신할 수 있습니다.
  • NVIDIA. NVIDIA GPU는 Snowpark 컨테이너 서비스의 가속화된 인프라 계층 역할을 하여 Snowflake 고객을 위해 보다 효율적이고 성능이 뛰어나며 비용 효율적인 컴퓨팅을 지원합니다.
  • SAS. SAS Container Runtime(빠른 프로토타이핑과 손쉬운 배포를 지원하는 OCI 규정 준수 컨테이너)을 통해 챔피언 모델을 Snowpark 컨테이너 서비스에 게시함으로써 Snowflake의 데이터를 통한 모델 개발 및 의사 결정 교육에 SAS® Viya®를 사용합니다. 

특별히 구축된 데이터베이스(RelationalAI, Pinecone, CARTO), ML 및 MLOps(H2O.ai, Kumo AI, Weights & Biases), 전체 애플리케이션(Amplitude) 등, Snowpark 컨테이너 서비스를 통한 더 많은 통합 파트너 솔루션이 있습니다. 

Snowpark 컨테이너 서비스의 미래 

Snowpark 컨테이너 서비스는 Snowflake에 가져올 수 있는 것에 제한이 없는 앱 개발의 새로운 시대를 위한 무대를 마련합니다. 그러나 당사는 Snowflake 마켓플레이스를 통해 컨테이너 이미지와 함께 Snowflake 네이티브 앱을 가져오는 비전을 실현하는 것 등, 이 새로운 Snowpark 런타임에 대해 훨씬 더 많은 계획을 세웠습니다.

Snowpark 컨테이너 서비스에 대한 최신 정보를 얻으려면 여기에서 등록하세요. 

참고: 이 내용은 2023. 6. 27에 게시된 컨텐츠(Snowpark Container Services: Securely Deploy and run Sophisticated Generative AI and full-stack apps in Snowflake)에서 번역되었습니다.