[VESSL AI] 3월 프로덕트 업데이트 소식

VESSL AI
6 min readMar 28, 2024

안녕하세요.VESSL AI 입니다.
이번 글에서는 3월에 업데이트된 프로덕트 소식을 전해드리려고 합니다.
크게 두 가지 1) 클라우드 스토리지 및 볼륨 마운트 개선, 2) Mixtral 8x7B 파인튜닝과 함께, 기타 다른 업데이트들도 공유드립니다.

여러분이 대규모 모델과 다중 인스턴스(multiple instance)를 다룰 때, 스토리지 볼륨을 마운트하고, 특정 세션 또는 인스턴스를 재시작 하는 가운데, 데이터의 영속성을 보장하는 일은 금세 복잡해질 수 있는데요. 여기서 데이터의 영속성(Persistence)이란 데이터가 프로그램 실행 중이거나, 프로그램이 종료된 후에도 사라지지 않고 저장되어 지속적으로 사용될 수 있는 특성을 말합니다.

즉, 데이터가 영구적으로 보존되어 재사용이 가능한 상태를 의미하는데요. 쉽게 말해, 애플리케이션이나 시스템을 재시작하거나, 장비를 교체하는 등의 환경 변화가 있어도 데이터를 안전하게 보관하고 필요할 때 언제든지 접근할 수 있게 해주는 특성을 말합니다.​

이 때 접근 권한을 지정하고, 올바른 마운트 포인트를 선택하여, 데이터를 저장할 때 그 형식(destination format)과 저장될 위치를 정확하게 정의하는 것은 분산 시스템(distributed systems)을 다루거나, 각 인스턴스나 컨테이너가 공유되거나 격리된 데이터 볼륨에 접근해야 하는 컨테이너를 조율할 때는 더욱 복잡할 수 있습니다.

지난 3월, 저희는 단 몇 번의 클릭만으로 AWS S3와 Google Cloud Storage 같은 오브젝트 스토리지를 직접 워크로드에 마운트할 수 있도록 새롭게 개선된 기능을 배포하였는데요. 오브젝트 스토리지란 데이터를 오브젝트(데이터 덩어리)로 관리하는 스토리지 방식으로 대용량의 비정형 데이터를 저장하기에 적합한 방식을 의미합니다. VESSL Hub에 새롭게 업데이트된 모델들과 하나의 GPU에서 GPT로 생성 된 Custom 데이터셋을 바탕으로 Mixstral 8x7B를 파인튜닝하는 방법에 대해서도 튜토리얼을 준비했으니 확인해보세요.

워크로드에 오브젝트 스토리지를 직접 마운트해보기

이제 AWS S3와 GCP GCS 같은 Cloud Storage Provider로부터 데이터를 가져와 실행할 수 있습니다.

정의된 경로에서 클라우드 스토리지의 모든 파일을 복사하게 되는데요. 학습이나 파인 튜닝을 마친 후에 로그와 체크포인트와 같은 결과를 동일한 버킷으로 보내는 것 또한 가능합니다. 개선된 Secrets 페이지에서 클라우드 스토리지에 Credential을 추가함으로써 여러분의 클라우드 스토리지를 가져오는 것도 가능하답니다. 다음 단계별 가이드를 확인해보세요

Google Cloud Storage에 대한 FUSE 지원

볼륨 및 데이터셋에 대한 품질 개선의 일환으로, GCS((Google Cloud Storage, 구글이 제공하는 클라우드 기반의 오브젝트 스토리지 서비스)에 대한 FUSE 지원도 시작하게 되었습니다.

여기서 FUSE(Filesystem in Userspace)는 운영 체제의 커널 공간이 아닌 사용자 공간에서 파일 시스템을 구현할 수 있게 해주는 소프트웨어 인터페이스입니다. 이를 통해 개발자들은 복잡한 커널 코드를 작성하지 않고도 자신의 파일 시스템을 운영 체제에 통합할 수 있게 됩니다.

그러니, FUSE를 GCS와 함께 사용한다는 것은, GCS에 저장된 데이터를 마치 로컬 파일 시스템에 있는 것처럼 쉽게 접근하고 관리할 수 있게 해준다는 의미로 GCS SDK(소프트웨어 개발 키트)를 사용하지 않고도, 평소 우리가 컴퓨터에서 파일을 다루는 것과 같은 방식으로 클라우드에 저장된 데이터를 읽고 쓸 수 있음을 의미합니다. 여러분은 이제 모델 작업에만 집중하셔서, 전반적인 작업의 효율성을 증가시킬 수 있습니다. 이러한 방식은 데이터와 모델 작업을 하는 개발자나 연구원들에게 큰 이점을 제공하는데요.

쉽게 말해 기존에는 클라우드 스토리지에 접근하고 데이터를 처리하기 위해 별도의 API 호출이나 복잡한 절차를 거쳐야 했지만 VESSL AI의 FUSE 지원을 통해, 이러한 과정 없이도 파일 시스템을 통해, 직관적이고 간편한 방식으로 데이터에 접근할 수 있게 되었습니다.

from google.cloud import storage

# Google Cloud Storage 클라이언트 초기화
storage_client = storage.Client.from_service_account_json('your-service-account-file.json')

# 기존 버킷 참조
bucket = storage_client.get_bucket('my-bucket')

# 파일 업로드
blob = bucket.blob('remote_file.txt')
blob.upload_from_filename('local_file.txt')

# Google Cloud Storage 버킷을 디렉토리에 마운트
gcsfuse my-bucket /path/to/mountpoint

# 마운트된 Google Cloud Storage 버킷에 파일 복사
cp local_file.txt /path/to/mountpoint/remote_file.txt

# 마운트된 버킷의 파일 목록
ls /path/to/mountpoint

# 마운트된 버킷에서 파일 읽기
cat /path/to/mountpoint/remote_file.txt

이번 달 모델 업데이트에서는 도메인 특화된 Q&A 데이터셋을 GPT를 통해 생성하고 이를 사용하여 Mixtral 8x7B를 파인튜닝함으로써, 성능을 향상시키는 방법에 대해 준비했습니다. 이 과정에서 모델의 문맥 이해력을 향상시키는 파인튜닝의 중요성과 LoRA 및 QLoRA 같은 두 가지 주요 방법 사이에서의 성능에 대해서도 설명하니 글을 꼭 참고해주세요 :)

나아가, Gemma-2B용 Streamlit 앱도 VESSL Run을 통해 돌려보실 수 있는 가이드도 준비했습니다.

이번 달에 준비한 내용은 여기까지입니다. 다음 달에 더 새로운 제품 업데이트와 다양한 모델로 찾아뵐게요! 곧 만나요.

--

--