가볍게 배우고 깊게 즐기고 오래 남기기
GitHub Tip || 깃허브에 AI 모델 같은 100MB 초과하는 파일 업로드 하기 (Git LFS 사용하기) 본문
GitHub Tip || 깃허브에 AI 모델 같은 100MB 초과하는 파일 업로드 하기 (Git LFS 사용하기)
Awesomist 2024. 9. 5. 16:03AI모델을 Git에 업로드할 때 간혹 이슈가 생긴다.
GitHub의 단일 파일 크기 제한인 100MB를 초과하게 되면 Git Push가 거부되는데
이 때는 Git Large File Storage (Git LFS)를 사용하여 대용량 파일을 저장소에 추가하는 방법을 고려해야 한다.
단 두 줄로 해결할 수 있다.
Git LFS는 큰 파일들을 Git의 일반적인 저장 공간이 아닌
별도 저장 공간에 저장하여 파일 크기 제한을 우회할 수 있게 해준다. 자세한 내용은 아래 링크를 참고!
Git Large File Storage
Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.
git-lfs.com
1) Git LFS 초기화 & 문제되는 대용량파일 트래킹 지시하기
- 나의 경우는 .h5 모델이 문제가 되었기 때문에 .h5 파일 전체를 트래킹으로 지시했다.
git lfs install
git lfs track "*.h5"
→ 대표적인 대용량 파일들을 고려해서 미리 track에 넣어도 좋다.
- 모델 파일:
- .h5, .hdf5: Keras나 TensorFlow 모델 파일 형식
- .pt, .pth: PyTorch 모델 파일 형식
- .ckpt: 체크포인트 파일 형식 (주로 TensorFlow에서 사용)
- 데이터 파일:
- .csv, .json, .tsv: 큰 데이터셋 파일 형식
- .xlsx: Excel 파일 형식
- .parquet: 컬럼 형식의 데이터 파일 (주로 빅데이터 환경에서 사용)
- .feather: 빠른 판다스 호환 바이너리 파일 형식
- .db, .sqlite: 데이터베이스 파일 형식
- 이미지 및 비디오 파일:
- .jpg, .jpeg, .png, .gif: 이미지 파일 형식
- .tiff, .bmp: 고해상도 이미지 파일 형식
- .mp4, .mov, .avi: 비디오 파일 형식
- 아카이브 파일:
- .zip, .tar, .gz, .bz2, .7z: 압축된 아카이브 파일 형식
- 바이너리 파일:
- .exe, .dll: 실행 파일 및 동적 라이브러리 파일
- .bin: 다양한 바이너리 파일 형식
- 오디오 파일:
- .mp3, .wav, .flac: 오디오 파일 형식
- 문서 파일:
- .pdf, .docx, .pptx: PDF 및 Microsoft Office 문서 파일 형식
2) Git LFS 설치 후 다시 커밋
git rm --cached {문제되는h5파일경로} #캐시되어있는 상황이라면 git에서 제거(옵션)
git add {문제되는h5파일경로} # 또는 git add .
git commit -m "Track large file with Git LFS"
3) 원격 저장소에 재푸시
git push origin main
+ 3-1) 만일 푸시가 계속 실패하는 경우 .gitattributes파일 생성해 아래 코드를 작성하고 저장 & git에 푸시
(.gitattributes 코드)
*.h5 filter=lfs diff=lfs merge=lfs -text
(생성 후 commit & push)
git add .gitattributes
git commit -m "Update .gitattributes for Git LFS"
git push origin main
'솔루션 Tip > 개발&아키텍처' 카테고리의 다른 글
[Git Error|해결방안]warning: LF will be replaced by CRLF (0) | 2024.07.05 |
---|---|
[git memo] github origin / local repository 일치시키는 코드 (0) | 2024.05.17 |
NodeJS 에러 (0) | 2023.10.01 |
NodeJS 에러명 간략 정리 (EEXIST, ENOENT 등 MEMO) (0) | 2023.09.04 |
[AI for Fun] 개발없이 빠르게 나만의 딥페이크 영상 테스트 해보기 (Thin-Plate Spline Motion Model for Im (0) | 2023.03.13 |