Snowflake, 프로그래밍 기능을 확장하여 AI/ML 및 스트리밍 파이프라인 개발 지원 강화
Snowflake는 데이터 과학자, 데이터 엔지니어와 애플리케이션 개발자가 데이터 클라우드에서 더 빠르고 효율적으로 개발하도록 뒷받침하고 있습니다. 이것이 당사가 연례 컨퍼런스 Snowflake Summit 2023에서 이들이 거버넌스 절충 없이 직접 선택한 언어에 대한 데이터 프로그래밍 기능(programmability)을 더욱 확장할 수 있도록 하는 새로운 기능을 공개한 이유입니다.
올해 Summit의 주안점은 개발자가 비(非)SQL 코드를 더욱더 안전하게 배포 및 처리하기 위해 사용할 수 있는 Snowpark 라이브러리 및 런타임의 향상과 확장이었습니다. 당사는 개발자가 Snowpark Python UDF와 저장 프로시저로 데이터를 더 쉽게 처리할 수 있도록 Python 3.9, 3.10과 비정형 데이터도 지원하기 시작했습니다(현재 공개 미리 보기 제공 중). 또한 우리는 Snowflake에서 코드의 보안과 거버넌스를 강화하기 위해 Python 패키지에 대한 세분화된 허용 목록 및 차단 목록의 공개 미리 보기도 제공하기 시작했습니다. Snowflake 사용자는 이제 외부 네트워크 액세스를 통해 API와 엔드포인트를 안전하게 통합할 수 있습니다(현재 비공개 미리 보기 제공 중). 그뿐만 아니라 이때 사용자 지정한 네트워크 위치에 대한 네트워크 트래픽만을 허용하는 보안 기능을 사용할 수도 있습니다.
우리는 Snowflake 전반에 걸친 Snowpark 혁신을 통해 데이터 클라우드 내 프로그래밍 기능의 범위와 가능성을 계속 확장해 왔습니다. 위의 혁신은 그 일부에 불과합니다. 당사 고객은 이러한 Snowflake만의 혁신에 따라 다음을 수행할 수 있게 되었습니다.
- 엔드 투 엔드 AI/ML 워크플로우 간소화, 가속화 및 스케일링
- 스트리밍 기능 확장
- 가시성 및 DevOps 경험 향상
엔드 투 엔드 AI/ML 워크플로우 간소화, 가속화 및 스케일링
AI/ML 워크플로우는 크게 개발, 운영, 소비와 같은 모델에 대한 세 단계로 나눌 수 있습니다. 엔드 투 엔드 프로세스에서 AI 기반 통찰력의 가치를 활용하려면 수많은 데이터, 엔지니어링 및 비즈니스 팀이 협업해야 합니다. 그러나 이러한 팀 대부분은 서로 다른 기술을 사용하며, 서로 다른 프로그래밍 언어로 작업합니다. 이에 따라 대부분의 조직에서는 데이터 복사본이 사일로화된 환경으로 이동하고 있으며, 전체 워크플로우를 체계화하고 스케일링하는 데 어려움을 겪고 있습니다.
당사는 개발을 훨씬 더 폭넓게 지원하기 위해 Snowpark 컨테이너 서비스(비공개 미리 보기 제공 중)를 출시했습니다. 이 서비스를 사용하면 개발자가 GPU와 같은 구성 가능(configurable)한 하드웨어 옵션이 있는 안전한 Snowflake 관리 인프라를 통해 컨테이너화된 모델을 손쉽게 배포, 관리 및 스케일링할 수 있습니다. 이 새로운 Snowpark 런타임의 사용자는 컨테이너에 대한 컴퓨팅 및 클러스터를 관리, 유지하는 복잡한 작업을 직접 처리할 필요도, 관리형 데이터를 자신의 Snowflake 계정 밖으로 이동해 보안 위험에 노출시킬 필요도 없습니다. 이 밖에도 프로그래밍 언어(예: R)와 하드웨어(예: GPU)가 더욱 유연해졌습니다. 이는 개발 속도를 높이고, Snowflake 네이티브 앱으로 호스팅되는 노트북, LLM과 같은 정교한 앱을 배포하는 기능을 개선하는 데 도움이 됩니다. 다음은 AI/ML 개발, 운영과 소비를 간소화하기 위한 기타 Snowpark 혁신입니다.
기능 엔지니어링을 가속화하고 AI/ML 훈련을 간소화하는 Snowpark ML 모델링 API
ML 모델링 API(공개 미리 보기 제공 중) 및 ML 운영 API(비공개 미리 보기 제공 중)로 이루어진 Snowpark ML API를 사용하면 Snowflake에서의 엔드 투 엔드 ML 개발과 배포가 더욱 쉬워집니다. 개발 측면에서는 Snowpark ML 모델링 API가 Snowflake에서 기능 엔지니어링을 스케일 아웃하고 모델 훈련을 간소화합니다.
Snowpark ML 모델링 API를 이용하면 저장 프로시저를 생성하거나 병렬화를 사용할 필요 없이 Snowflake의 데이터에 대해 기본적으로 Sklearn 스타일의 처리를 구현할 수 있습니다.
또한 데이터 과학자는 이 API를 이용하면 더 간편한 사용자 경험을 위해 저장 프로시저를 통해 가져오는 대신 데이터에 기본적으로 Sklearn과 XGBoost를 사용하여 모델을 익숙한 API로 Snowpark의 데이터에 대해 직접 훈련시킬 수 있습니다.
조직의 모든 AI/ML 모델을 저장 및 관리하는 Snowpark 모델 레지스트리
데이터 과학자는 모델이 개발된 다음에는 Snowpark 모델 레지스트리(비공개 미리 보기 제공 중)가 포함된 Snowpark ML 운영 API를 통해 Snowflake에서 모델을 원활하게 배포할 수 있습니다. 이는 조직의 ML 모델에 대한 통합 리포지토리를 제공하여 머신 러닝 모델 운영(MLOps)을 간소화하고 스케일링합니다.
해당 레지스트리는 모델의 중앙 집중식 게시와 검색을 제공합니다. 이에 따라 데이터 과학자가 ML 엔지니어에게 성공적인 실험을 전달하여 Snowflake 인프라에서 프로덕션 모델로 배포하는 프로세스의 일환인 협업이 간소화됩니다.
데이터와 모델을 대화형 앱으로 구현하는 Snowflake의 Streamlit
Snowflake의 Streamlit(곧 공개 미리 보기 제공 예정)은 Python으로 구축된 대화형 앱을 통해 데이터와 ML 모델에 생명을 불어넣습니다. 이는 구성 요소가 풍부하고 사용자 친화적인 앱 개발용 Streamlit 오픈소스 라이브러리를 Snowflake 플랫폼의 확장성(scalability), 안정성, 보안 및 거버넌스와 결합합니다.
Streamlit은 데이터 과학자와 Python 개발자가 데이터와 모델을 대기업에까지 적합한(enterprise-ready) 대화형 애플리케이션으로 빠르게 전환할 수 있는 기능을 제공합니다.
Snowflake의 간소화된 스트리밍 파이프라인
당사는 동적 테이블(공개 미리 보기 제공 중)과 함께 스트리밍 기능을 확장하고 있습니다. 동적 테이블은 배치 및 스트리밍 데이터를 모두 변환하기 위한 연속 데이터 파이프라인을 크게 간소화합니다. 이제 사용자는 스트리밍 데이터 파이프라인을 CTAS(Create Table as Select)문만큼 쉽게 손에 넣을 수 있습니다. Snowflake는 Snowpipe 스트리밍(곧 공식 출시(GA) 예정)으로 배치 시스템과 스트리밍 시스템 간의 경계를 허물고, 스트리밍 파이프라인을 그 어느 때보다도 더 쉽게 만들고 있습니다.
동적 테이블은 쿼리로 정의된 테이블이자, 쿼리 결과를 테이블에 계속 유지시키는 새로운 테이블입니다. 동적 테이블은 여러 소스 객체를 조인(join)하고 집계할 수 있으며, 소스 변경에 따라 결과를 점차 업데이트할 수 있습니다. 고객은 동적 테이블을 통해 업데이트 빈도에 대한 정보 및 쿼리를 제공하고, Snowflake는 자동으로 결과를 구체화합니다. 이는 즉 데이터 사전 컴퓨팅이 데이터 엔지니어가 수동으로 완료해야 하는 과업으로 남는 대신 자동화된다는 뜻입니다.
가시성 및 엔드 투 엔드 개발자 경험 개선
당사는 개발자가 엔드 투 엔드 애플리케이션, 파이프라인과 ML 모델을 더 쉽고, 빠르고, 간편하게 구축하기를 바랍니다. 따라서 우리는 개발자에게 익숙한 기능과 경험을 제공해 개발자가 더 효율적으로 작업하는 데 도움이 되는 것을 목표로 하고 있습니다. 우리는 이를 위해 Summit에서 DevOps 및 가시성(observability) 기능을 출시했습니다. 이러한 기능은 개발자가 협업을 통해 구축하고, 쉽게 테스트하고, 문제를 더 빠르게 해결하고, 안정적으로 운영하고, 전반적으로 생산성을 높일 수 있도록 지원합니다.
또한 여기에는 Git 통합(비공개 미리 보기 제공 중)과 같은 기능이 포함되어 있어 애플리케이션 코드가 git 및 git 워크플로우와 쉽게 결합될 수 있습니다. 사용자는 Snowflake 바로 안에 있는 Git 리포지토리의 자산을 보고, 실행하고, 편집하고, 이에 대해 협업할 수 있습니다.
당사는 Snowflake CLI의 비공개 미리 보기도 발표했습니다. Snowflake CLI는 명시적으로 Snowflake의 앱 중심 워크로드용으로 설계된 오픈소스 명령줄 인터페이스입니다. 개발자는 간단한 명령을 통해 Streamlit, 네이티브 앱, Snowpark 컨테이너, Snowpark와 같은 워크로드에서 Snowflake에서 실행되는 앱을 생성, 관리, 업데이트 및 확인할 수 있습니다.
이벤트 테이블을 사용하는 로깅 및 추적(공개 미리 보기 제공 중)은 문제 해결을 위해 Snowflake 내부와 외부에서 Snowflake 엔진으로 로그를 탐색하며, Snowflake의 코드에 대해 더 나은 디버깅 기능을 제공합니다.
이 모든 기능은 Snowflake에서 앱과 데이터 모두의 전체 DevOps 및 소프트웨어 개발 수명 주기에 대해 깔끔하게 결합되어 더욱 생산적인 개발자 워크플로우를 구현해 줍니다.
다음 단계:
Snowflake는 고객이 엔터프라이즈 데이터에 대해 LLM을 안전하게 실행하도록 지원하고 AI 기반 기능을 내장 기능 및 UI의 형태로 제공하는 등, 데이터에 생성형 AI를 도입하고 있습니다. 이 모든 것이 어떻게 작동하는지 살펴보려면 Summit에서 ML 데모를 확인하세요.
더 알아보기:
- 이 빠른 시작 가이드에 따라 Python용 Snowpark를 통해 데이터 엔지니어링과 ML을 시작하세요.
- 이 빠른 시작 가이드를 사용하여 Snowflake Python 워크시트(공개 미리 보기 제공 중)에서 Snowpark를 체험해 보세요.
- LinkedIn 및 Twitter에서 Snowflake의 최신 소식과 발표를 확인해 보세요.
참고: 이 내용은 2023. 6. 28에 게시된 컨텐츠(Snowflake Expands Programmability to Bolster Support for AI/ML and Streaming Pipeline Development)에서 번역되었습니다.