본문 바로가기
WIKI 기술 지식 베이스

lakeFS로 HuggingFace Datasets 버저닝하기

원문 보기 위키 갱신

HuggingFace 🤗 Datasets는 오디오, 컴퓨터 비전, 자연어 처리(NLP) 작업을 위한 데이터셋을 쉽게 접근하고 공유하게 해 주는 라이브러리예요.

🤗 Datasets는 fsspec FileSystem 구현을 통해 클라우드 스토리지 제공자에 접근할 수 있어요.

lakefs-spec은 lakeFS의 능력을 완전히 활용하는 fsspec Filesystem의 커뮤니티 구현이에요. 설치부터 시작해 볼게요:

출처: 문서

본문

설치

pip install lakefs-spec

설정

이미 lakeFS Python SDK와/또는 lakectl을 설정했다면, lakeFS 환경의 액세스 자격 증명과 엔드포인트를 담은 $HOME/.lakectl.yaml 파일이 있을 거예요.

없다면 lakectl을 설치하고 lakectl config를 실행해 액세스 자격 증명을 설정하세요.

데이터셋 읽기

데이터셋을 읽으려면 load_dataset을 호출할 때 lakefs://... URI만 쓰면 돼요:

>>> from datasets import load_dataset
>>>
>>> dataset = load_dataset('csv', data_files='lakefs://example-repository/my-branch/data/example.csv')

이게 전부예요! 설치한 lakefs-spec 구현이 자동으로 로드되고, $HOME/.lakectl.yaml 파일에서 자격 증명을 읽기 때문에 추가 설정을 넘길 필요가 없어요.

저장/로딩

데이터셋을 로드한 뒤에는 평소처럼 save_to_disk 메서드로 저장할 수 있어요:

>>> dataset.save_to_disk('lakefs://example-repository/my-branch/datasets/example/')

이 시점에서 그 변경을 lakeFS에 커밋하고 태그를 붙여, 동료들과 공유하고 싶을 수 있어요.

UI나 lakectl로 할 수도 있지만, 여기서는 lakeFS Python SDK로 해 볼게요:

>>> import lakefs
>>>
>>> repo = lakefs.repository('example-repository')
>>> commit = repo.branch('my-branch').commit(
...     'saved my first huggingface Dataset!',
...     metadata={'using': '🤗'})
>>> repo.tag('alice_experiment1').create(commit)

이제 팀의 다른 사람들이 우리가 만든 태그로 정확한 데이터셋을 로드할 수 있어요:

>>> from datasets import load_from_disk
>>>
>>> dataset = load_from_disk('lakefs://example-repository/alice_experiment1/datasets/example/')

더 알아보기 (Learn more)

공식 문서: lakeFS HuggingFace Datasets 연동