# ML 엔지니어링 온라인 서적

> Clean Markdown view of GeekNews topic #13023. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=13023](https://news.hada.io/topic?id=13023)
- GeekNews Markdown: [https://news.hada.io/topic/13023.md](https://news.hada.io/topic/13023.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-01-25T08:47:17+09:00
- Updated: 2024-01-25T08:47:17+09:00
- Original source: [github.com/stas00](https://github.com/stas00/ml-engineering)
- Points: 4
- Comments: 1

## Topic Body

- **인공지능 전투 엔지니어링 - 알아야 할 것들**
  - 인공지능(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 분야의 지식 공유와 협력을 촉진하며, 이는 연구와 혁신을 가속화하는 데 중요한 역할을 함.

## Comments



### Comment 22542

- Author: neo
- Created: 2024-01-25T08:47:17+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39097502) 
- 이 글은 정말 가치 있다. 연구를 지원하기 위해 LLM 트레이닝 설정을 디버깅하는 일을 하고 있는데, 시작할 때 이런 노트가 있었다면 좋았을 것이다.
  - LLM 트레이닝 설정 디버깅에 종사하는 사람이 초기에 이런 정보를 가졌더라면 유용했을 것임을 표현함.
  
- 저는 Applied Scientist와 함께 일하면서 모델 트레이닝과 배포와 관련된 작업을 돕고 있습니다; 저 같은 사람은 최적화, 성능 등과 같은 더 낮은 수준의 엔지니어링 작업에 어떻게 노출될 수 있을까요? 우리에게는 ML 인프라 팀이 있지만, 그들의 목표는 플랫폼 주변의 도구를 구축하는 것이지, 반드시 워크로드를 최적으로 실행하는 것은 아닙니다.
  - 모델 트레이닝 및 배포를 지원하는 사람이 최적화와 성능 같은 저수준 엔지니어링 작업에 대한 경험을 얻고 싶어함을 나타냄.

- 이것을 실험해보고 싶은데, 제대로 된 GPU가 없어요. 여러분은 이것들을 어떻게 실행하나요?
  - 적절한 GPU 없이는 실험을 시작하는 데 어려움을 겪고 있음을 표현함.

- AI Battlefield 섹션의 "Unsolicited Advice"에 있는 모든 것에 대해 정말 감사합니다 [1]. AI 개발의 빠른 진전에 항상 허우적대는 것과 그로 인한 감정적 부담에 대한 매우 현실적인 관점입니다.
  - AI 개발의 빠른 속도와 그로 인한 감정적 부담을 현실적으로 바라보는 "Unsolicited Advice"에 대한 감사함을 표현함.

- Slurm이 얼마나 널리 사용되고 있나요?
  - Slurm의 사용 범위에 대한 궁금증을 나타냄.

- 무작위로 클릭해서 repeatability에 대해 알아보았는데, 분산 트레이닝에서 이것이 어떻게 달성되는지 여전히 궁금합니다. 결정적 동기화가 일을 느리게 만들지 않나요? 하지만 적어도 몇몇 큰 회사에서는 그들의 트레이닝이 반복 가능하다고 들었습니다.
  - 분산 트레이닝에서의 반복 가능성과 결정적 동기화가 성능에 미치는 영향에 대한 의문을 제기함.

- 직업이 없을 때 이런 것들에 대한 경험을 어떻게 쌓나요?
  - 실제 직업 없이 관련 경험을 어떻게 쌓을 수 있는지에 대한 질문을 함.

- 어딘가에 pdf가 있나요? 빌드하는 방법은 있지만 실제 파일은 없는 것 같습니다.
  - 관련 문서의 pdf 버전을 찾고 있음을 나타냄.
