아니, 전혀 낭비가 아니었어
Source: Dev.to
위 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다.
소개
이 기사에서는 24 GB PolyGlotFake 멀티모달 딥페이크 데이터셋을 Kaggle에 성공적으로 업로드하여 보다 쉽고 비대화형 실험을 할 수 있게 하는 방법을 소개합니다.
PolyGlotFake 데이터셋의 원본 GitHub 저장소는 다음과 같습니다:
https://github.com/PolyGlotFake/PolyGlotFakePolyGlotFake 데이터셋 개요
PolyGlotFake은 딥‑페이크 탐지의 과제를 해결하기 위해 설계된 다국어, 다중모달 딥‑페이크 데이터셋입니다. 7개 언어에 걸쳐 조작된 오디오와 비주얼 구성 요소를 포함하며, 고급 텍스트‑투‑스피치, 음성‑클로닝, 립‑싱크 기술을 사용합니다.
다운로드 링크 (Google Drive):
https://drive.google.com/file/d/1aBWLii‑TbrpKNLSTwpmjqu98eKovWLxF/view?usp=drive_link
정량적 비교
| 데이터셋 | 발표 연도 | 조작된 모달리티 | 다국어 지원 | 실제 비디오 | 가짜 비디오 | 총 비디오 수 | 조작 방법 | 기술 라벨링 | 속성 라벨링 |
|---|---|---|---|---|---|---|---|---|---|
| UADFV | 2018 | V | 아니오 | 49 | 49 | 98 | 1 | 아니오 | 아니오 |
| TIMI | 2018 | V | 아니오 | 320 | 640 | 960 | 2 | 아니오 | 아니오 |
| FF++ | 2019 | V | 아니오 | 1 000 | 4 000 | 5 000 | 4 | 아니오 | 아니오 |
| DFD | 2019 | V | 아니오 | 360 | 3 068 | 3 431 | 5 | 아니오 | 아니오 |
| DFDC | 2020 | A/V | 아니오 | 23 654 | 104 500 | 128 154 | 8 | 아니오 | 아니오 |
| DeeperForensics | 2020 | V | 아니오 | 50 000 | 10 000 | 60 000 | 1 | 아니오 | 아니오 |
| Celeb‑DF | 2020 | V | 아니오 | 590 | 5 639 | 6 229 | 1 | 아니오 | 아니오 |
| FFIW | 2020 | V | 아니오 | 10 000 | 10 000 | 20 000 | 1 | — | — |
| … | … | … | … | … | … | … | … | … | … |
전체 표는 GitHub에서 확인하세요.
저장소의 README에는 데이터셋을 다운로드할 수 있는 동일한 Drive 링크가 포함되어 있습니다.
실패한 시도에서 얻은 교훈
제가 처음에 “wild” 딥페이크 데이터셋을 Kaggle에 업로드하려고 시도했을 때, tar 파일을 중첩된 이미지 폴더로 풀고 다음 경로를 통해 업로드하려 했습니다:
Google Drive → GCS bucket → Kaggle그 접근 방식이 실패한 이유는 다음과 같습니다:
- 로컬 머신에 네 개의 4 TB tar 파일(train‑real, train‑fake, test‑real, test‑fake)을 보관할 충분한 저장 공간이 없었습니다.
- 수천 개의 개별 파일을 업로드하는 것은 속도가 느리고 오류가 발생하기 쉽습니다.
PolyGlotFake 성공적인 워크플로우
1. RAR 아카이브를 Google Drive에 저장
데이터셋은 단일 RAR 아카이브로 제공되며, 대용량 파일 전송에 이상적입니다.
2. Colab 노트북 설정
# Authenticate Google Cloud
from google.colab import auth
auth.authenticate_user()
project_id = 'polyglotfake'
!gcloud config set project {project_id}
!gsutil ls3. Drive에서 24 GB RAR을 Colab으로 다운로드
!gdown --id 1cUlwVi8Wu6MmDu8Mh2lXTIPJFz63KOtd4. gcsfuse를 사용해 GCS 버킷 마운트
# Install gcsfuse
echo "deb http://packages.cloud.google.com/apt gcsfuse-bionic main" \
> /etc/apt/sources.list.d/gcsfuse.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
apt -qq update
apt -qq install gcsfuse
# Create a mount point
mkdir my_gcs_mount5. RAR을 버킷에 복사
%cp /content/goblin/PolyGlotFake.rar /content/my_gcs_mount/polyglotfake/이 단계는 3시간 이상 걸렸습니다.
6. 버킷을 공개 설정
gcloud storage buckets add-iam-policy-binding gs://pgfake \
--member=allUsers \
--role=roles/storage.objectViewer공개 URL은 Google Cloud Console에서 복사할 수 있습니다.
7. Kaggle에 업로드
- https://www.kaggle.com/datasets/?new=true 로 이동합니다.
- 소스로 “Link” 를 선택합니다.
- 공개 GCS URL을 붙여넣습니다.
업로드는 약 2시간이 걸렸습니다.
결과: 데이터셋이 이제 공개적으로 이용 가능합니다
https://www.kaggle.com/datasets/debajyatidey/polyglotfake.
지원 파일
- 실제 비디오 메타데이터 (CSV) – Kaggle 데이터셋에서 이용 가능.
- 가짜 비디오 메타데이터 – 여기서 표시하기엔 너무 큼.
시각화 (Google Looker Studio)
| 차트 | 설명 |
|---|---|
| ![언어별 연령 분포] | 언어별 연령 분포 (각 언어를 사용하는 피험자). |
| ![성별에 따른 연령] | 성별에 따른 피험자 연령 분포. |
| ![성비] | 모든 실제 비디오의 성비. |
| ![딥페이크 분포] | 딥페이크 비디오가 어떻게 조직되고 배포되는지를 보여주는 다양한 차트. |
모든 시각화는 Google Looker Studio를 사용해 만들었습니다.
마무리 생각
많은 실패 시도, 파손된 파이프라인, 저장 제한을 겪은 후, 이 접근법이 결국 성공했습니다. 핵심은 데이터셋을 수천 개의 파일로 쪼개는 것이 아니라, 단일 아카이브로 유지하고 클라우드 스토리지 서비스가 전송을 처리하도록 하는 것이었습니다.
Lesson: 데이터 엔지니어링은 머신러닝의 부가 퀘스트가 아니라, 바로 게임 자체입니다.
PolyGlotFake와 같은 데이터셋은 의도적으로 복잡하게 설계되었습니다(다국어, 다중모달). 이를 단순하고 견고한 파이프라인으로 다루면 보상이 따릅니다.
이는 실제 딥페이크 과제를 반영하기 때문입니다. 접근성을 높이는 것은 단순히 편리함을 넘어서, 누군가가 실험하고, 반복하며, 실제 연구를 수행하는 속도에 직접적인 영향을 미칩니다.
그리고 그것이 바로 핵심입니다.
이제 누군가가 Kaggle 노트북을 바로 띄우고, 데이터셋을 연결해, 설정에 며칠을 낭비하지 않고 몇 분 안에 실험을 시작할 수 있다면, 이 모든 과정이 가치 있었다는 말이죠.
다시 할까요?
하지만 이제는 확실히 알겠어요 — 그냥 힘들게 하고 있었던 거죠.
그래서, 네, … 이제 끝입니다!
언제든지 저와 연결해 주세요. :)
읽어 주셔서 감사합니다! 🙏🏻
Debajyati Dey가 💚 로 작성했습니다.
팔로우하기
Debajyati Dey – 웹 개발자, 프리랜스 기술 작가, 캐주얼 딥러닝 애호가, 새로운 기술을 다루고 문서화하는 데 항상 열정적입니다.
📧 협업을 원하시면 이메일 주세요.
즐거운 코딩 🧑🏽💻👩🏽💻! 좋은 하루 보내세요! 🚀