Lessons from Generating 12 Trillion Synthetic Tokens โ Bogdan Gaza, DatologyAI
ํ ์ค ํต์ฌ
12์กฐ ๊ฐ ๊ท๋ชจ์ synthetic token์ ๋ง๋ค๋ฉฐ ๊ฒช์ ๋ณ๋ชฉ๊ณผ ํด๊ฒฐ์ฑ ์ ํตํด, ๋๊ท๋ชจ ํฉ์ฑ ๋ฐ์ดํฐ ์์ฑ์ ๋ฐ์ดํฐ ํ์ง๋ณด๋ค๋ ์คํ ๋ฆฌ์ง ๋ฉํ๋ฐ์ดํฐ, ์ฒดํฌํฌ์ธํ , ํฌ๋ก์ค ์ธํ๋ผ ์ค์ผ์ค๋ง, ์ถ๋ก ํ๋ ๊ฐ์ ์ธํ๋ผ ์ค๊ณ๊ฐ ์ฑํจ๋ฅผ ์ข์ฐํ๋ค๋ ์ ์ ๋ณด์ฌ์ฃผ๋ ์์์ด๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์๊ฐ ์ค๋ ๋ฐํ์ ์ฃผ์ ๋ trillion token ๊ท๋ชจ์ pre-training์ ์ํด synthetic data๋ฅผ ํ์ฅํ๋ฉด์ ์ป์ ์์ง๋์ด๋ง ๊ตํ์ด๋ค. ๋๊ท๋ชจ ํ์ต์์ ์น ๋ฐ์ดํฐ๋ง์ผ๋ก๋ ํ๊ณ๊ฐ ์์ด ํฉ์ฑ ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ด์ ์, ์ด๋ฅผ ์ด๋ป๊ฒ ๋๊ท๋ชจ๋ก ์ด์ํ๋์ง๋ฅผ ๋ค๋ฃฌ๋ค.
-
0:12
12์กฐ ํ ํฐ ๊ท๋ชจ์ synthetic data 12์กฐ ํ ํฐ ๊ท๋ชจ์ synthetic data ์์ฑ ๊ฒฝํ์ ๋ฐํ์ผ๋ก, webยทmathยทcode ์ ๋ฐ์์ ๋๊ท๋ชจ ํฉ์ฑ ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ๊ณผ์ ๊ณผ ๊ทธ๋ก๋ถํฐ ์ป์ ๊ตํ์ ๊ณต์ ํ๋ค. ๋จ์ํ ์คํ ์์ค์ด ์๋๋ผ ์ค์ ์ด์ ๊ฐ๋ฅํ ๊ท๋ชจ์ ํ์ดํ๋ผ์ธ์ด ํต์ฌ์ด๋ค.
-
0:27
ํฉ์ฑ ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ด์ : ๋ฐ์ดํฐ ๋ฒฝ ์ค์ผ์ผ๋ง ๋ฒ์น ๋๋ฌธ์ ๋ ๋์ ๋ชจ๋ธ์ ๋ง๋ค๋ ค๋ฉด ๊ณ์ฐ๋๊ณผ ๋ฐ์ดํฐ๋์ด ๋ชจ๋ ๊ธ๊ฒฉํ ๋์ด๋์ง๋ง, ์น์๋ ์ฌ์ฉํ ์ ์๋ ๊ณ ํ์ง ๋ฐ์ดํฐ๊ฐ ์ ํํ๋ค. ๊ทธ๋์ ์ธํฐ๋ท ๋ฐ์ดํฐ์ ํ๊ณ๋ฅผ ๋ณด์ํ๋ ๊ณ ํ์ง synthetic data๊ฐ ํ์ํ๋ค.
-
1:47
DatologyAI๊ฐ ํ๋ ์ผ DatologyAI๋ pre-training๊ณผ mid-training ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๋ ๋ฐ์ดํฐ ์ ์ ์๋น์ค๋ก, ๊ณ ๊ฐ ๋ฐ์ดํฐ์์ ๊ณ ํ์ง ์ํ์ ๊ณจ๋ผ๋ธ ๋ค ํฉ์ฑ ๋ฐ์ดํฐ ๋ ์ํผ๋ฅผ ์ ์ฉํด ๋ ํฐ ๋ฐ์ดํฐ์ ์ผ๋ก ํ์ฅํ๋ค. ํต์ฌ ์ญํ ์ ์ข์ ์์ฒ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์๋ด๊ณ ์ด๋ฅผ ๋๊ท๋ชจ ํ์ต์ฉ ๋ฐ์ดํฐ๋ก ๋ฐ๊พธ๋ ๊ฒ์ด๋ค.
-
2:22
BeyondWeb ๊ฒฐ๊ณผ BeyondWeb์ synthetic data ๋ ์ํผ๋ก, ๊ฐ์ ์ฑ๋ฅ์ ๋ ์์ ๋ชจ๋ธ์ด๋ ๋ ์ ์ ํ ํฐ์ผ๋ก ๋ฌ์ฑํ ์ ์์์ ์ฌ๋ฌ benchmark๋ก ๋ณด์ฌ์ค๋ค. ์ผ๋ถ ๊ฒฝ์ฐ์๋ 3B ๋ชจ๋ธ์ด 8B ๋ชจ๋ธ๊ณผ ๋น์ทํ ์ฑ๋ฅ์ ๋ด๊ณ , ๊ธฐ์กด ๋ฐฉ์ ๋๋น 2.7x~5.3x ์ ์ ํ ํฐ์ผ๋ก ๊ฐ์ ํ๊ท ์ ํ๋๋ฅผ ๋ฌ์ฑํ๋ค.
-
4:11
rephrasing์ด ๋์ํ๋ ๋ฐฉ์ synthetic data๋ ๋ฌด์์ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ๊ณ ๊ฐ ๋ฐ์ดํฐ์ ์์ ๊ณ ํ์ง ๋ฌธ์๋ฅผ ๊ณจ๋ผ rephrasingยทreframingํ๋ ๋ฐฉ์์ผ๋ก ๋ง๋ ๋ค. ์๋ณธ ๋ฌธ์๋ฅผ ์จ์์ผ๋ก ์ผ์์ผ ๋ฐ์ดํฐ ๋ถํฌ์ ๋ชจ๋๋ฅผ ๊ทธ๋๋ก ๋ณต์ ํ๋ ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ , ์ค์ ๋ก ์ธ ๋งํ ๋ค์์ฑ๊ณผ ํ์ง์ ํ๋ณดํ ์ ์๋ค.
-
5:51
์ถ๋ฐ์ : Slurm๊ณผ Kubernetes ์ด๊ธฐ์๋ synthetic data๊ฐ ์ ํ ํ์ดํ๋ผ์ธ๊ณผ ๋ถ๋ฆฌ๋ ์ฐ๊ตฌ์ฉ Slurm ํด๋ฌ์คํฐ์์ ๋์๊ฐ๊ณ , ํต์ฌ ์์คํ ์ Kubernetes ๊ธฐ๋ฐ์ด๋ผ ์ฝ๋์ ์ด์์ด ์ด์ํ๋์ด ์์๋ค. ์ด ๊ตฌ์กฐ๋ ๋๋ฆฌ๊ณ ์ค๋ฅ๊ฐ ๋ง์์ผ๋ฉฐ GPU ํ์ฉ๋ฅ ๋ ๋ฎ์, ํ์ต๊ณผ ํฉ์ฑ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ํ๋ฆ์ผ๋ก ๋ฌถ๋ ๋ฐฉํฅ์ด ํ์ํ๋ค.
-
6:31
๊ธฐ์ ์คํ: Ray, KubeRay, vLLM ํ์ฌ ํ์ดํ๋ผ์ธ์ Kubernetes๋ฅผ ์ค์ฌ์ผ๋ก Ray, Spark, vLLM์ ์กฐํฉํด ๋์ํ๋ฉฐ, ๋ฐ์ดํฐ๋ S3 ํธํ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๋ค. ์๋ก ๋ค๋ฅธ ํ๊ฒฝ(AWS, GCP, on-prem)์์๋ ๋์๊ฐ์ผ ํ๋ฏ๋ก, ๋ฐฐํฌ์ ์ค์ผ์คํธ๋ ์ด์ ์ Kubernetes ๊ธฐ๋ฐ์ผ๋ก ํ์คํํ๋ ๊ฒ์ด ์ค์ํ๋ค.
-
7:41
ํ์ฌ ๊ตฌ์ฑ: HyperPod AWS HyperPod ์์์ H100 ํด๋ฌ์คํฐ๋ฅผ Kubernetes๋ก ์ด์ํ๋ฉด์, Spark์ Ray ์์ ์ on-demand CPU/GPU ์์์ ๋ง์ถฐ ๋ถ๋ฆฌํด ์คํํ๋ค. ๋ด๋ถ job scheduler๊ฐ ์ฌ๋ฌ ํด๋ฌ์คํฐ๋ฅผ ์กฐ์จํด, ํ์ํ ์์ ์ ์ ์ ํ ์์๊ตฐ์ผ๋ก ๋ณด๋ด๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ท๋ค.
-
8:40
ํ๋์ ์ํฌํ๋ก: ์ ์ , ํฉ์ฑ, ํ์ต, ํ๊ฐ ์ ์ (curate)๋ถํฐ synthetic ์์ฑ, training, eval๊น์ง๋ฅผ ํ๋์ workflow๋ก ์ฎ์ผ๋ฉด ์ฐ๊ตฌ์ ์์ง๋์ด๋ง์ด ๊ฐ์ ์ธํ๋ผ์ ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ๊ณต์ ํ ์ ์๋ค. ๊ทธ ๊ฒฐ๊ณผ ์คํ ์๋์ ์ ๋ขฐ์ฑ์ด ์ฌ๋ผ๊ฐ๊ณ , ๋๊ท๋ชจ ๋ฐ๋ณต ์คํ์ ์ด์ํ๊ธฐ ์ฌ์์ง๋ค.
-
9:30
๋๊ท๋ชจ ์ด์์์ ์ป์ ์์ง๋์ด๋ง ๊ตํ trillion token ๊ท๋ชจ์์๋ ๋ฐ์ดํฐ ํ์ง ์ธ์๋ ์์คํ ๋ณ๋ชฉ์ด ์ค์ง์ ์ธ ํ๊ณ๊ฐ ๋๋ค. ํนํ ์คํ ๋ฆฌ์ง, GPU ์์ ์ฑ, ํฌ๋ก์ค ์ธํ๋ผ ์ค์ผ์ค๋ง, ์ถ๋ก ์ค์ ์ด ์ ์ฒด ์ฒ๋ฆฌ๋๊ณผ ๋น์ฉ์ ์ข์ฐํ๋ค.
-
9:40
๋ณ๋ชฉ 1: S3 ๋ฉํ๋ฐ์ดํฐ ์๋ฐฑ๋ง ๊ฐ์ ํํฐ์ ์์ S3 ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๊ฐ์ ธ์ค๋ฉด rate limit๊ณผ ๋๋ฆฐ metadata store ๋๋ฌธ์ 9~11์ผ์ด ๊ฑธ๋ฆด ์ ์๋ค. ์ด๋ฅผ batch list request๋ก ๋ฐ๊พธ๊ณ page size๋ฅผ ํค์ฐ๋ฉด ์ฝ 2์๊ฐ์ผ๋ก ์ค์ผ ์ ์์ด, idle GPU๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์๋ค.
-
12:29
๋ณ๋ชฉ 2: GPU ๋ถ์์ ์ฑ๊ณผ ์ฒดํฌํฌ์ธํ ๋๊ท๋ชจ GPU ์์ ์์๋ ๋จธ์ ๋ค์ด์ด๋ GPU ๋ถ๋์ด ๋ฐ๋์ ๋ฐ์ํ๋ฏ๋ก, ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์์ง ์๋๋ก checkpointing๊ณผ resumable execution์ด ํ์ํ๋ค. ํํฐ์ ํฌ๊ธฐ๋ฅผ ์ ์ ํ ์ค์ด๊ณ ์งํ ์ํ๋ฅผ S3์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ์ฅํ๋ฉด, ์คํจํด๋ ์ฌ์๋๋ก ๋ณต๊ตฌ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋ค.
-
14:59
๋ณ๋ชฉ 3: ํฌ๋ก์ค ์ธํ๋ผ ์ค์ผ์คํธ๋ ์ด์ synthetic data ์์ ์ ํ๋์ GPU ํด๋ฌ์คํฐ๊ฐ ์๋๋ผ ์ฌ๋ฌ ํด๋ฌ์คํฐ์ ํด๋ผ์ฐ๋์ ๋ถ์ฐ๋์ด ๋์๊ฐ๋ฏ๋ก, CPU์ GPU ์์์ ํจ๊ป ๊ณ ๋ คํ ์ค์ผ์ค๋ง์ด ํ์ํ๋ค. ๊ณ์ฐ ์์ ์ ํ๋ณ ์ ์ฉ pool์ ๋๊ณ atomicํ๊ฒ ๋ฐฐ์นํ๋ฉด, ์์ ๋จ์ ์์ด ๋ ์์ ์ ์ผ๋ก ํ์ฅํ ์ ์๋ค.
-
17:53
๋ณ๋ชฉ 4: ์ถ๋ก ํ๋ vLLM์ด๋ SGLang ๊ฐ์ ์ถ๋ก ์คํ์ batch size, speculative decoding ๊ฐ์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ํ๋ํด์ผ ํ๋ค. ์ด๋ฐ ํ๋ผ๋ฏธํฐ๋ฅผ grid search๋ก ์ต์ ํํ๋ฉด throughput์ ์ฝ 40%๊น์ง ๋์ด์ฌ๋ฆด ์ ์๋ค.
-
18:53
์ ๋ฆฌ ๋๊ท๋ชจ synthetic data ์ด์์์๋ ์ค์ผ์ผ์ ๋ง๋ ๋ฉํ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์๋ ๋ณต๊ตฌ, CPU/GPU์ ์์์ ์ค์ผ์ค๋ง, ์ถ๋ก ํ๋ผ๋ฏธํฐ ํ์์ด ํต์ฌ์ด๋ค. ์ด ๋ค ๊ฐ์ง๊ฐ ๊ฐ์ถฐ์ ธ์ผ trillions ๊ท๋ชจ์ ์์ ์ ์์ ์ ์ผ๋ก ๋๋ฆด ์ ์๋ค.
-
19:13
30B์์ 12T synthetic tokens๋ก 2024๋ ๋ง์๋ Slurm ํด๋ฌ์คํฐ์์ 30B ์์ค์ synthetic tokens๋ง ๋ง๋ค ์ ์์์ง๋ง, ์ดํ์๋ web์์ 7T, math์ code์์ 5T๋ฅผ ์ถ๊ฐ๋ก ์์ฑํ๋ฉฐ ์ด 12T ๊ท๋ชจ๊น์ง ํ์ฅํ๋ค. ์์ผ๋ก๋ ๋ ๋์ synthetic recipe๋ฅผ ์ฐพ๊ธฐ ์ํ ๊ฐ์ ๊ณผ ์คํ์ด ๊ณ์๋๋ค.
-
20:02
์ฑ์ฉ data infrastructure, cloud infrastructure, ์ผ๋ฐ ์ธํ๋ผ, program manager ๋ฑ ๋ค์ํ ์ญํ ์ ์ฑ์ฉ ์ค์ด๋ค. ๋๊ท๋ชจ ๋ฐ์ดํฐยท์ธํ๋ผ ๋ฌธ์ ๋ฅผ ํจ๊ป ํธ๋ ํ์ ๊ด์ฌ์ด ์์ผ๋ฉด ์ง์ เคธเคเคชเคฐเฅเคํ๋ผ๋ ๋ฉ์์ง๋ก ๋ง๋ฌด๋ฆฌ๋๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ๋๊ท๋ชจ synthetic data์ ์ฑํจ๋ ์์ฑ ๋ชจ๋ธ ์์ฒด๋ณด๋ค S3 ๋ฉํ๋ฐ์ดํฐ, ์ฒดํฌํฌ์ธํ , ์ค์ผ์ค๋ง ๊ฐ์ ์ด์ ๋ณ๋ชฉ์ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ ๊ฑฐํ๋๋์ ๋ฌ๋ ค ์๋ค.
- ์ ์ ๋ ์๋ณธ ๋ฌธ์๋ฅผ ์จ์์ผ๋ก ์ผ์ rephrasingํ๋ ๋ฐฉ์์, ๋ฌด์์ ํฉ์ฑ๋ณด๋ค ํ์ง๊ณผ ๋ค์์ฑ์ ํจ๊ป ํ๋ณดํ๋ ์ค์ ์ ์ ๊ทผ์ด๋ค.
- ํ์ตยทํฉ์ฑยทํ๊ฐ๋ฅผ ํ๋์ ์ํฌํ๋ก๋ก ๋ฌถ์ผ๋ฉด ์ฐ๊ตฌ ์๋๊ฐ ๋นจ๋ผ์ง ๋ฟ ์๋๋ผ GPU ์ ํด ์๊ฐ์ ์ค์ฌ ๋น์ฉ ํจ์จ๋ ๊ฐ์ ๋๋ค.