GN⁺: ML 엔지니어링 온라인 서적
(github.com/stas00)-
인공지능 전투 엔지니어링 - 알아야 할 것들
- 인공지능(ML) 모델, 특히 대규모 언어 모델(LLM)과 다중 모달 모델(VLM)의 성공적인 훈련을 위한 방법론을 모은 개방형 컬렉션.
- LLM/VLM 훈련 엔지니어 및 운영자를 위한 기술 자료로, 스크립트와 복사-붙여넣기 명령어가 많이 포함되어 있어 빠르게 필요한 작업을 수행할 수 있음.
- 2022년에 오픈소스 BLOOM-176B 모델과 2023년에 IDEFICS-80B 다중 모달 모델을 훈련하면서 얻은 경험과 노하우를 지속적으로 기록하고 있으며, 현재는 Contextual.AI에서 오픈소스 검색 증강 모델 개발/훈련 중임.
-
목차
- 불안정한 레이아웃에 대해 사과하며, 새로운 장을 작성하고 내용을 더 직관적으로 재구성하는 과정 중임.
-
하드웨어 구성 요소
- 가속기 - ML의 작업마, GPU, TPU, IPU, FPGA, HPU, QPU, RDU 등이 포함됨.
- 네트워크 - 노드 내부 및 노드 간 연결성, 대역폭 요구 사항 계산.
- 저장소 - 로컬 및 분산 디스크와 파일 시스템.
- CPU - CPU와 친밀도에 대한 내용.
- CPU 메모리 - 얼마나 많은 CPU 메모리가 충분한지에 대한 가장 짧은 장.
-
성능
- 고장 허용성
- 성능
- 다중 노드 네트워킹
- 모델 병렬성
-
운영
- SLURM
- 훈련 하이퍼파라미터 및 모델 초기화
- 불안정성
-
개발
- 소프트웨어 및 하드웨어 실패 디버깅
- 더 많은 디버깅
- 재현성
- 텐서 정밀도 / 데이터 타입
- HF Transformers 노트 - 작은 모델, 토크나이저, 데이터셋 등에 대한 팁.
-
기타
- 자료 - LLM/VLM 연대기.
-
바로가기
- 자주 빠르게 찾을 필요가 있는 도구와 가이드.
- 도구:
all_reduce_bench.py
,torch-distributed-gpu-test.py
- 가이드:
debugging pytorch applications
,slurm for users
,make tiny models/datasets/tokenizers
,LLM/VLM chronicles collection
-
책 만들기
- PDF를 만들고 싶거나 링크를 확인하고 싶다면 '책 만들기' 섹션 참조.
-
감사의 말
- 이러한 노하우를 배울 수 있었던 것은 대규모 ML 컴퓨트 클러스터를 임대하는 데 드는 비용이 매우 비싸기 때문에 소수만이 누릴 수 있는 특권임.
- Thom Wolf와 HuggingFace에 특별한 감사를 표함.
-
기여하기
- 버그, 오타 발견 또는 개선 제안이 있다면 이슈를 열거나 PR을 기여할 것을 권장함.
-
라이선스
- 이 사이트의 내용은 Attribution-ShareAlike 4.0 International 라이선스 하에 배포됨.
-
내 저장소 맵
- 기계 학습: ML Engineering Open Book | ML ways | Porting
- 가이드: The Art of Debugging
- 응용 프로그램: ipyexperiments
- 도구 및 치트시트: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
GN⁺의 의견
- 이 자료는 대규모 언어 모델과 다중 모달 모델을 훈련하는 데 필요한 실질적인 지식과 도구를 제공함으로써 ML 커뮤니티에 큰 기여를 함.
- 실제 프로젝트 경험에서 얻은 노하우를 공유함으로써 초급 소프트웨어 엔지니어들이 대규모 ML 모델 훈련에 필요한 실무 지식을 습득하는 데 도움이 됨.
- 오픈소스 접근 방식은 ML 분야의 지식 공유와 협력을 촉진하며, 이는 연구와 혁신을 가속화하는 데 중요한 역할을 함.
Hacker News 의견
-
이 글은 정말 가치 있다. 연구를 지원하기 위해 LLM 트레이닝 설정을 디버깅하는 일을 하고 있는데, 시작할 때 이런 노트가 있었다면 좋았을 것이다.
- LLM 트레이닝 설정 디버깅에 종사하는 사람이 초기에 이런 정보를 가졌더라면 유용했을 것임을 표현함.
-
저는 Applied Scientist와 함께 일하면서 모델 트레이닝과 배포와 관련된 작업을 돕고 있습니다; 저 같은 사람은 최적화, 성능 등과 같은 더 낮은 수준의 엔지니어링 작업에 어떻게 노출될 수 있을까요? 우리에게는 ML 인프라 팀이 있지만, 그들의 목표는 플랫폼 주변의 도구를 구축하는 것이지, 반드시 워크로드를 최적으로 실행하는 것은 아닙니다.
- 모델 트레이닝 및 배포를 지원하는 사람이 최적화와 성능 같은 저수준 엔지니어링 작업에 대한 경험을 얻고 싶어함을 나타냄.
-
이것을 실험해보고 싶은데, 제대로 된 GPU가 없어요. 여러분은 이것들을 어떻게 실행하나요?
- 적절한 GPU 없이는 실험을 시작하는 데 어려움을 겪고 있음을 표현함.
-
AI Battlefield 섹션의 "Unsolicited Advice"에 있는 모든 것에 대해 정말 감사합니다 [1]. AI 개발의 빠른 진전에 항상 허우적대는 것과 그로 인한 감정적 부담에 대한 매우 현실적인 관점입니다.
- AI 개발의 빠른 속도와 그로 인한 감정적 부담을 현실적으로 바라보는 "Unsolicited Advice"에 대한 감사함을 표현함.
-
Slurm이 얼마나 널리 사용되고 있나요?
- Slurm의 사용 범위에 대한 궁금증을 나타냄.
-
무작위로 클릭해서 repeatability에 대해 알아보았는데, 분산 트레이닝에서 이것이 어떻게 달성되는지 여전히 궁금합니다. 결정적 동기화가 일을 느리게 만들지 않나요? 하지만 적어도 몇몇 큰 회사에서는 그들의 트레이닝이 반복 가능하다고 들었습니다.
- 분산 트레이닝에서의 반복 가능성과 결정적 동기화가 성능에 미치는 영향에 대한 의문을 제기함.
-
직업이 없을 때 이런 것들에 대한 경험을 어떻게 쌓나요?
- 실제 직업 없이 관련 경험을 어떻게 쌓을 수 있는지에 대한 질문을 함.
-
어딘가에 pdf가 있나요? 빌드하는 방법은 있지만 실제 파일은 없는 것 같습니다.
- 관련 문서의 pdf 버전을 찾고 있음을 나타냄.