Lightning¶
Wprowadzenie¶
Lightning (dawniej Pytorch Lightning) to biblioteka, która została stworzona jako wysokopoziomowy interfejs do biblioteki Pytorch. Głównymi celami twórcy frameworku, Williama Falcona, było zminimalizowanie czasu poświęconego na rozwiązywanie problemów inżynieryjnych podczas tworzenia kodu do eksperymentów naukowych. Umożliwia efektywne strukturyzowanie i upraszczanie kodu stworzonego w bibliotece Pytorch.
Dostępność¶
Lightning dostępny jest jako bibliotek dla języka Python. Pozwala na wykorzystanie obliczeń tensorowych ze wsparciem akceleracji obliczeń zarówno dla CPU, jak i GPU oraz TPU.
Szczegóły¶
Zaletą Lightning jest proste, modułowe organizowanie skryptu i prostota w transferze kodu napisanego w Pytorch. Modułowość umożliwia separację części kodu odpowiedzialnej za ładowanie danych, architekturę i działanie modelu oraz inne funkcjonalności. Moduły z kolei posiadają wygodne i intuicyjne interfejsy, pozwalające na dopasowanie funkcjonalności do swoich potrzeb.
Na szczególną uwagę zasługuje klasa Trainer
, dzięki której użytkownik jest w stanie w prosty sposób konfigurować proces treningu modelu. Jedną z jej głównych zalet jest łatwość, z jaką użytkownik może skonfigurować trening wykorzystujący wiele akceleratorów (GPU, TPU) lub węzłów obliczeniowych.
Oprócz tego, Lightning wspiera wiele najnowszych strategii treningu rozproszonego. Integruje zarówno zewnętrzne strategie, jak i posiada własne (m.in. Torch DDP). Horovod oraz bagua to przykłady zewnętrznych strategii wymagających zainstalowania bibliotek, które je implementują. Pozwalają one na znaczącą poprawę prędkości treningu.
Informacje o wydaniu¶
Obecna wersja to 2.0, wydana w marcu 2023. Podobnie jak Pytorch, jest to projekt open source. Wersje aktualizowane są około dwa razy w roku, z częstszymi małymi rozszerzeniami do obecnych wersji.
Linki¶
- strona Lightning
- repozytorium
- dokumentacja (zawiera także wiele przydatnych tutoriali)