๐ŸŽŠ PyTorch Developer Day 2020

์–ผ๋งˆ์ „ PyTorch Team์—์„œ ์ฒ˜์Œ์œผ๋กœ ๊ฐœ์ตœํ•˜๋Š” PyTorch Developer Day์— ์ดˆ๋Œ€ํ•œ๋‹ค๋Š” ๋ฉ”์ผ์ด ์™€์„œ ํ™•์ธํ•ด๋ณด์•˜๋‹ค.

PTD2 (PyTorch Developer Day)

์ดˆ๋Œ€ ๋ฉ”์ผ

๊ฝค ๊ธด ๋‚ด์šฉ์ด ์žˆ์—ˆ๋Š”๋ฐ, ์š”์•ฝํ•˜์ž๋ฉด โ€œ์„ธ์…˜๊ณผ ๋„คํŠธ์›Œํ‚น์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ํ–‰์‚ฌ๋ฅผ ๊ฐœ์ตœํ•˜๋Š”๋ฐ, ๋„คํŠธ์›Œํ‚น ํ–‰์‚ฌ๋Š” invite-only์ด๊ณ  ์ด ํ–‰์‚ฌ์—๋Š” subject matter experts์™€ PyTorch core dev, contributor๊ฐ€ ์ฐธ๊ฐ€ํ•œ๋‹ค. ์ด ํ–‰์‚ฌ์—์„œ ๋‹ค์–‘ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ๊ฐ™์ด ์˜๋…ผํ•  ์˜ˆ์ •์ธ๋ฐ ๊ฐ™์ด ํ• ๋ž˜?โ€ ์ •๋„์ด๋‹ค.

๊ทธ ์ „์— ์™œ ์ดˆ๋Œ€๋ฐ›์•˜๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•˜๋ฉด, PyTorch์— ๊ฝค ๋งŽ์ด Contribution์„ ํ–ˆ์—ˆ๋Š”๋ฐ ๊ฝค ์ƒ์œ„ Contributor๋กœ ์žกํ˜€์„œ ๊ทธ๋Ÿฐ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. Issue, Pull Request๋ฅผ ํ•ฉ์ณ์„œ ํ•œ 20๊ฐœ ์ข€ ๋„˜๊ฒŒ ์ •๋„ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋ž˜์„œ ํ•œ๊ตญ ์‹œ๊ฐ„์œผ๋กœ 2020๋…„ 11์›” 13์ผ ์ƒˆ๋ฒฝ 1์‹œ๋ถ€ํ„ฐ ์•„์นจ 9์‹œ๊นŒ์ง€ ์—ด๋ฆฌ๋Š” ์ด๋ฒคํŠธ์˜€์ง€๋งŒ, โ€œFacebook AI ์‚ฌ๋žŒ๋“ค ๊ตฌ๊ฒฝํ•ด๋ณผ ์ˆ˜ ์žˆ์„๊นŒ..?โ€๋ผ๋Š” ๋งˆ์Œ์— ์ฐธ๊ฐ€ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ–‰์‚ฌ ์ „์— ํƒ€์ž„ํ…Œ์ด๋ธ”์„ ํ•œ๋ฒˆ ๋ดค๋Š”๋ฐ, ์ •๋ง ์ข‹์€ ์„ธ์…˜๋“ค์ด ๋งŽ์•„ ํ–‰์‚ฌ ์„ธ์…˜๋„ ๋งŽ์ด ๋“ค์—ˆ๋‹ค. ์‹ ๊ธฐํ–ˆ๋˜ ์ ์€ Facebook Live๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ–ˆ๋‹ค๋Š” ์ . ์—ญ์‹œ Facebook ์˜คํ”ˆ ์†Œ์Šค..

์„ธ์…˜ ์ •๋ฆฌ

์„ธ์…˜์€ https://www.facebook.com/watch/?v=1001102260293556๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ํƒ€์ž„ํ…Œ์ด๋ธ”์€ https://fb.me/e/366HH7d0J์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ „๋ถ€ ๋‹ค ๋“ค์€ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ์›ํ•˜๋Š” ์„ธ์…˜๋งŒ ๋“ค์—ˆ๋‹ค.

์ž์„ธํžˆ ๋“ค์€ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋ณด๋ฉด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์Šคํฌ๋ฆฐ์ƒท๋งŒ ์ฐ๊ณ  ๋ฉ”๋ชจ๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป ๊ธฐ๋กํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ.

Keynote

๋ญ”๋ฐ ์ด๊ฑฐ

๋˜๊ฒŒ Usability๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ–ˆ๋‹ค. Usability๋ฅผ ์ค‘์‹ฌ์œผ๋กœ Research ๋ถ„์•ผ์—์„œ์˜ ์ž…์ง€๋ฅผ ํ™•๊ณ ํžˆ ๋‹ค์ง„ ๋‹ค์Œ Production์„ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜์ž๋Š” ์ž…์žฅ์œผ๋กœ ๋ณด์˜€๋‹ค.

์œ„ ์‚ฌ์ง„์€ Facebook์—์„œ์˜ ์‚ฌ์šฉ ํ˜„ํ™ฉ์„ ๋ณด์—ฌ์ฃผ๊ธธ๋ž˜ ๊ฐ€์ ธ์™€๋ดค๋‹ค. 15%๋‚˜ PyTorch๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ ์ด ๊ต‰์žฅํžˆ ๋†€๋ผ์› ๋‹ค. TorchServe๋กœ ์ธํ•ด ๋‹ค๋ฅธ ๊ธฐํƒ€ ML ์‹œ์Šคํ…œ์„ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์„ํ…๋ฐ ๊ทธ๋งŒํผ์ด๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์€ ํ•™์Šต ์‹œ์— ๋ถˆํŽธํ•œ ์ ์ด ๊ฝค ์žˆ๋‹ค๋Š” ๊ฒƒ์ผ๊นŒ? ์•„๋‹ˆ๋ฉด ๋‹จ์ˆœํžˆ ํ•™์Šต์„ ๋”ฐ์กŒ์œผ๋‹ˆ ์˜›๋‚  ๋ชจ๋ธ๋“ค์ด ํฌํ•จ๋˜์–ด์„œ 15%์ผ ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค.

์œ„ ์‚ฌ์ง„์€ Tensor Comprehension์ด๋ผ๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ, ์—ฌ๊ธฐ์„œ ์ฒ˜์Œ ์†Œ๊ฐœ๋˜์—ˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ƒ๋‹นํžˆ ์ข‹์€ ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด์ธ๋‹ค. ๋งŒ์•ฝ ์ด๊ฒŒ ์ž˜ ๋œ๋‹ค๋ฉด ์ผ๋ฐ˜์ ์ธ ์—ฐ์‚ฐ๋„ ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ฒŒ ์ž˜ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ, Mesh TensorFlow์™€ ๊ฐ™์ด ๋ถ„์‚ฐ ํ•™์Šต์—์„œ๋„ ์ข‹์€ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ์ง€์›ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. ๋งํฌ๋Š” https://github.com/facebookresearch/TensorComprehensions

Tensor Statement๋Š” Tensor Comprehension์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“  DSL front-end์ด๊ณ , Experimental์ด์ง€๋งŒ, Tensor Comprehension ์ž์ฒด๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹จ ํ›จ์”ฌ ์ข‹์•„๋ณด์ธ๋‹ค.

์œ„ ์บก์ณ๋Š” TensorPipe ์ด์•ผ๊ธฐ์ธ๋ฐ, ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ด์•ผ๊ธฐ๋กœ ๋ณด์ธ๋‹ค. ์„œ๋น™์€ ์–ด์ฉ” ์ˆ˜ ์—†์ด TensorFlow๊ฐ€ ๊ฐ•ํ•˜๋”๋ผ๋„, Large scale model ํ•™์Šต์ด๋‚˜ Distributeed Training์€ PyTorch ์ชฝ์ด ๊ฐ•ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š”๋ฐ, ์ด๋ฅผ ๋”์šฑ ๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด์ธ๋‹ค. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด ๋‚ผ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฝค ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ rpc๋ฅผ ์ž˜ ์ง€์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. GitHub์€ ์—ฌ๊ธฐ -> https://github.com/pytorch/tensorpipe

์•„๋ž˜๋Š” ๊ฐ‘์ž๊ธฐ ์ปจํผ๋Ÿฐ์Šค ์ค‘์— ๋‚ด GitHub Username์ด ๋‚˜์™€์„œ ๋ฐ•์ œ ใ…Žใ…Ž

PyTorch ๊ฐœ๋ฐœ์ž ๋ชฉ๋ก์— ์˜ฌ๋ผ๊ฐ”๋‹ค!! ๋‚˜์—๊ฒŒ๋Š” ์‚ฌ์‹ค์ƒ ํ•˜์ด๋ผ์ดํŠธ ใ… ใ…  PyTorch Team์—๊ฒŒ ๋„ˆ๋ฌด ๊ณ ๋ง™๋‹ค..

์œ„ ์บก์ณ๋Š” PyTorch์— ์ƒˆ๋กญ๊ฒŒ ์ฃผ๋ ฅํ•˜๋Š” ์˜์—ญ ์ค‘ ์„ธ๊ฐ€์ง€์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. Distributed RPC๊ฐ€ ์ œ์ผ ๋ฉ”์ธ์ด ๋˜์ง€ ์•Š์„๊นŒ?

master branch์—์„œ ๋งŒ๋“ค์–ด์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ, Vulkan๊ณผ Metal support๊ฐ€ ๊ต‰์žฅํžˆ ๋†€๋ž๊ณ , benchmarking tools๊ฐ€ ๋งŽ์ด ๊ธฐ๋Œ€๋œ๋‹ค.

..

์ด ๋ฐ‘์—์„œ๋ถ€ํ„ด ์ œ์ผ ์ข‹์•˜๋˜ ์„ธ์…˜ ๋ช‡๊ฐœ๋งŒ ์ •๋ฆฌํ•ด์•ผ์ง€

..

PyTorch Core Deep Dives

Autograd๊ด€๋ จ ์„ธ์…˜์œผ๋กœ ๊ธฐ์–ตํ•˜๋Š”๋ฐ ํ•ต์‹ฌ ๋‚ด์šฉ์€ โ€œautograd ๋ชจ๋“ˆ์„ functionalํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.โ€ ์ด๋‹ค. ์•„๋ž˜๋Š” ๋ฉ”๋ชจ

  • Jacobian์„ ํ•œ ๋ผ์ธ์œผ๋กœ ์—ฐ์‚ฐ ๊ฐ€๋Šฅ
  • torch.nn๊ณผ composability๋ฅผ ์ง€์ผœ์ค„ ๊ฒƒ

RPC ์„ธ์…˜์ด์—ˆ๋‚˜..?

์™„์ „ DeepSpeed ์ „์šฉ์ด๋ผ ์ƒ๊ฐํ•œ๊ฒŒ, ๊ฑฐ์˜ ๋‹ค DeepSpeed์— ๋„ˆ๋ฌด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด์—ˆ๋‹ค. ์—ฌ๊ธฐ๋Š” ๋ฉ”๋ชจ๋ณด๋‹ค ์บก์ณ๊ฐ€ ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ์บก์ณ๋งŒ ๋‚˜์—ด.


์ด ์„ธ์…˜์ด DDP ๊ด€๋ จ ์„ธ์…˜์ธ๋ฐ, ์ด๋ฒˆ Developer Day์—์„œ ์ •๋ง ์ค‘์š”ํ•œ ์„ธ์…˜ ์ค‘ ํ•˜๋‚˜๋กœ ๋ณด์ธ๋‹ค.

์œ„ ์Šฌ๋ผ์ด๋“œ๋Š” ์กฐ๊ธˆ ์ค‘์š”ํ•˜๋‹ค ์ƒ๊ฐํ–ˆ๋˜ ์Šฌ๋ผ์ด๋“œ์ธ๋ฐ, ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์ •๋„์ด๋‹ค.

  • DDP Communication Hook ์ œ๊ณต
  • DDP์—์„œ Bucket ๊ด€๋ จ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์˜ต์…˜ ์ถ”๊ฐ€
  • DDP์™€ RPC๋ฅผ ์ž˜ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›
  • DDP์—์„œ Dynamic Bucket Ordering
  • Coming Soon:
    • Pipeline parallelism
    • Auto parallelism
    • ZeRO style training framework for large model
    • Auto tuning for DDP
    • Intra-layer parallelism

์ด๊ฑฐ๋Š” Torch Text ๊ด€๋ จ ์„ธ์…˜์ด์—ˆ๋Š”๋ฐ ํ•ต์‹ฌ์€ ์•„๋ž˜ ์Šฌ๋ผ์ด๋“œ์ด๋‹ค.


TensorBoard, Profiler ์„ธ์…˜ ๊ฐ™์ด ์ •๋ฆฌ


Performance ๊ด€๋ จ ์„ธ์…˜์œผ๋กœ ๊ธฐ์–ตํ•˜๋Š”๋ฐ, ์•„๋ž˜๊ฐ€ ์ธ์ƒ๊นŠ์–ด์„œ ๊ฐ€์ ธ์™”๋‹ค.

๋‘๋ฒˆ์งธ ์บก์ณ์˜ Profiler ์‚ฌ์ง„์„ ๋ณด๋ฉด ์ •๋ง foreach๊ฐ€ ์—„์ฒญ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์—ฌ์ค€๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

Benchmark Tool์€ ์ƒ๊ฐ์™ธ๋กœ โ€œ์Œ..?โ€ ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ–ˆ๊ตฌ๋‚˜ ์‹ถ๊ธฐ๋„ ํ•˜๋‹ค.

PyTorch Research Talks

์‚ฌ์‹ค DeepSpeed ์„ธ์…˜์— ๊ฐ€์žฅ ๊ด€์‹ฌ์ด ๊ฐ”๋‹ค.

๋งํ•ด ๋ญํ•ด..์ด์ง€๋งŒ, PyTorch upstream์— ๋“ค์–ด๊ฐˆ ์ƒ๊ฐ์ด๋ผ๊ณ  ํ•˜๋‹ˆ ํฐ ๋ชจ๋ธ์—์„œ๋Š” ์•„๋งˆ PyTorch๋ฅผ ์ด์ œ ์ด๊ธฐ๊ธฐ ํž˜๋“ค์ง€ ์•Š์„๊นŒ? ๊ทธ๋ฆฌ๊ณ  Sparse Attention์€ ์ •๋ง ์จ๋ด์•ผ๊ฒ ๋‹ค.

Gather ์ด๋ฒคํŠธ (๋„คํŠธ์›Œํ‚น ์ด๋ฒคํŠธ)

์‚ฌ์‹ค ์—ฌ๊ธฐ์—์„œ ์ •๋ง ๋งŽ์€ ๊ธฐ๋Œ€๋ฅผ ํ–ˆ๋Š”๋ฐ, ๋“ฃ๊ธฐ๋งŒ ํ•˜๋‹ค๊ฐ€ ๋„ˆ๋ฌด ์กธ๋ ค์„œ ๋งŽ์€ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ํฌ๊ธฐํ–ˆ๋‹ค ใ… ใ…  2์‹œ๊ฐ„ ๋ฐ˜ ํ–‰์‚ฌ์˜€๊ณ , ํ–‰์‚ฌ ๋งˆ์ง€๋ง‰์ฏค์— DeepSpeed ์„ธ์…˜์ด ๋” ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๊ฑฐ ๋ชป ๋“ฃ๊ณ  ์ž”๊ฒŒ ์ง„์งœ ์•„์‰ฌ์› ๋‹ค.

์ •๋ง ๊ธฐ๋Œ€ํ–ˆ๋˜ ํ–‰์‚ฌ์ง€๋งŒ, ํ•œ๊ตญ ์‹œ๊ฐ„์œผ๋กœ๋Š” ๊ธˆ์š”์ผ ์ƒˆ๋ฒฝ์ธ๋งŒํผ ์ผํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋“ฃ๊ธฐ์— ์–ด๋ ค์šด ๊ฒƒ์ด ๋งŽ์ด ์•„์‰ฌ์› ๋‹ค.

๊ทธ๋ž˜๋„ PyTorch Community์—์„œ ๋งŽ์ด ๋ณด์ด๋˜ ์‚ฌ๋žŒ, ๋‚ด PR ๋ฆฌ๋ทฐ๋ด์ค€ ์‚ฌ๋žŒ์ด๋‚˜ Issue ์ฝ”๋ฉ˜ํŠธ ํ•ด์ค€ ์‚ฌ๋žŒ๋“ค์„ ๋ณด์•„์„œ ์ •๋ง ๋ฐ˜๊ฐ€์› ๋‹ค! ๊ทธ๋ฆฌ๊ณ  ์˜์–ด ๊ณต๋ถ€ ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค..

ํ›„๊ธฐ

PyTorch ๊ธฐ์—ฌ๋ฅผ ์ข€ ๋งŽ์ด ํ•˜๊ธด ํ–ˆ์ง€๋งŒ, ๋‹ค๋ฅธ ํšŒ์‚ฌ์˜ PyTorch Team์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ๊ฐ™์ด ์†Œ๊ฐœ๋  ์ค„์€ ๊ฟˆ์—๋„ ๋ชฐ๋ž๋‹ค. ํฐ ํ–‰์šด์ธ ๊ฒƒ์œผ๋กœ ๋ณด์ด๊ณ , Facebook AI ์‚ฌ๋žŒ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์€ ๊ฒƒ๋„ ์ •๋ง ์‹ ๊ธฐํ–ˆ๋‹ค. F8 2019 (ํ•ด์ปคํ†ค์— ์ฐธ๊ฐ€ํ–ˆ์—ˆ๋‹ค - ๐ŸŽŠ F8 2019 Hackathon ํฌ์ŠคํŠธ) ๋•Œ๋ฌธ์— PyTorch ๊ธฐ์—ฌ๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ, ์ด ํ–‰์‚ฌ๋กœ ๋˜ ์ด์–ด์ง„ ๊ฒƒ์ด ์‹ ๊ธฐํ–ˆ๋‹ค. ์ •๋ง ์—ด์‹ฌํžˆ ๊ธฐ์—ฌํ•  ๋งŒํ•œ ํ”„๋กœ์ ํŠธ์ด๋ž€ ์ƒ๊ฐ์ด ๋“ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค Facebook์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€๋ฆฌ๋ฅผ ์ •๋ง ์ž˜ํ•œ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ธฐ์—ฌํ•˜๋Š” ์ž…์žฅ์—์„œ ๊ธฐ์œ ํ”„๋กœ์ ํŠธ๋Š” ์ฒ˜์Œ์ด๋‹ค.

November 17, 2020
Tags: conference pytorch