PyTorch v2.1 ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๐Ÿ‘€

์–ผ๋งˆ ์ „์— PyTorch 2.1.0์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ๋ฆฌ๋ทฐ(Feature Review)๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :tada:
์ด๋Ÿฐ์ €๋Ÿฐ ๊ฐœ์ธ์ ์ธ ์ผ๋“ค์ด ํ…์‚ฌ์Šค ์†Œ๋–ผ์ฒ˜๋Ÿผ ๋ชฐ๋ ค์™€์„œ ์ •๋ฆฌํ•ด์•ผ์ง€, ํ•ด์•ผ์ง€ ํ•˜๋‹ค๊ฐ€ ์ด์ œ์„œ์•ผ ์˜ฌ๋ฆฌ๋„ค์š” :eyes:

์ •์‹ ๋ฆด๋ฆฌ์ฆˆ ์ด์ „์œผ๋กœ, ์•„๋ž˜ ๋‚ด์šฉ๋“ค์€ ์–ธ์ œ๋“  ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ์  ์–‘ํ•ด ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. :bowing_man:

1. torch.export() ์ถ”๊ฐ€ (Beta)

PyTorch์˜ ์ •์  ๊ทธ๋ž˜ํ”„๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” torch.export() API๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

torch.export() API, a generic way to extract full static graph from PyTorch

์‚ฌ์šฉ์ž๋Š” PyTorch ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋“ค์„ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ทธ๋ž˜ํ”„ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ Export IR์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋ณ€ํ™˜ํ•˜๊ณ  / ์ง๋ ฌํ™”ํ•˜๊ณ  / ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  / ์ „์†กํ•˜๊ณ  / ๋ถˆ๋Ÿฌ์™€์„œ Python ํ™˜๊ฒฝ ๋˜๋Š” Python์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Users can extract a clean representation (Export IR) of a PyTorch program in the form of a dataflow graph, consisting of mostly straight-line calls to PyTorch operators. Export IR can then be transformed, serialized, saved to file, transferred, loaded back for execution in an environment with or without Python.

2. Python 3.11 ์—์„œ torch.compile() ์ง€์› (Beta)

Python 3.11 ์—์„œ torch.compile()์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

3. TorchDynamo์—์„œ NumPy ์ง€์›

PyTorch RFC 54์—์„œ ์ œ์•ˆ๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ RFC๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”. :point_right:


๊ทธ ์™ธ์—๋„ torch.compile()์˜ TensorRT ๋ฐฑ์—”๋“œ ์ง€์›, Flash-Attention ๊ธฐ๋ฐ˜์˜ scaled-dot-product ์—ฐ์‚ฐ์˜ CPU ์ง€์› ๋“ฑ์˜ ๊ธฐ๋Šฅ๋“ค์ด ๋ฆด๋ฆฌ์ฆˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Intel์ด PyTorch Foundation์— ํ•ฉ๋ฅ˜ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ๋“ค์˜ CPU ์ง€์› ๋ฐ Intel์˜ OneAPI๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์ด ์ถ”๊ฐ€๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ์š”, ๊ธฐ๋Œ€ํ•ด๋ณด์…”๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ดํ›„ ์ผ์ •

  • ~ 8/25: ์ง„ํ–‰ ์ค‘์ธ ๊ธฐ๋Šฅ PR ๊ฒ€ํ†  ๋ฐ ๋ณ‘ํ•ฉ
  • ~ 8/28: ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜ ํ™•์ •
  • ~ 8/29: PyTorch Core RC1 ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐฐํฌ
  • ~ 8/31: ๋„๋ฉ”์ธ๋ณ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ธŒ๋žœ์น˜ ํ™•์ •
  • ~ 9์›” 3์ฃผ(11~17): ๋ฐฐํฌ ๋ธŒ๋žœ์น˜ ํ™•์ • ๋ฐ ์ถœ์‹œ ์ผ์ • ๋ฐœํ‘œ
  • 10์›” 04์ผ: PyTorch 2.1.0 ๋ฆด๋ฆฌ์ฆˆ

๋” ์•Œ์•„๋ณด๊ธฐ

์ด๋ฒˆ 2.1.0 ๋ฆด๋ฆฌ์ฆˆ์™€ ๊ด€๋ จํ•œ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ PyTorch ๊ฐœ๋ฐœ ๊ฒŒ์‹œํŒ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :smiley: