High-Performance Computing for Artificial Intelligence 2 4010-HPAI
Sztuczna inteligencja (Artificial Intelligence, AI) stała się powszechnie wykorzystywanym narzędziem w pracy naukowej. AI nie tylko umożliwia zaawansowaną analizę danych i ich wizualizację, ale może także zastępować tradycyjne symulacje numeryczne lub znacząco je przyspieszać, dostarczając dokładnych przewidywań oddziaływań w danym systemie. Ponadto AI pozwala na szybkie przeszukiwanie baz danych publikacji naukowych oraz generowanie streszczeń artykułów. Coraz częściej jest również wykorzystywana do pełnego tworzenia prac naukowych. Rozwój coraz bardziej zaawansowanych modeli AI wymaga jednak przetwarzania ogromnych ilości danych oraz kosztownego i czasochłonnego procesu ich trenowania. Jest to szczególnie widoczne w przypadku dużych modeli językowych (Large Language Models, LLM), których trening może trwać tygodniami na tysiącach najwydajniejszych procesorów graficznych (GPU). Praca z tak złożonymi modelami wymaga zastosowania dużej mocy obliczeniowej: klastrów obliczeniowych lub chmury, co stanowi domenę wysokowydajnych obliczeń (High-Performance Computing, HPC).
HPC jest dziedziną informatyki zajmującą się rozwiązywaniem najbardziej wymagających problemów obliczeniowych w nauce. Do najbardziej znanych zastosowań należą m.in.: (i) przewidywanie właściwości półprzewodników z wykorzystaniem obliczeń kwantowo-mechanicznych opartych na teorii funkcjonału gęstości (Density Functional Theory, DFT), (ii) projektowanie leków przy użyciu symulacji dynamiki molekularnej oraz (iii) numeryczne prognozowanie pogody. Tego typu obliczenia wymagają użycia setek, a nawet tysięcy procesorów CPU. Kluczowym elementem HPC są obliczenia równoległe, które umożliwiają przyspieszenie obliczeń poprzez wykorzystanie wielu procesorów CPU lub GPU, a także pozwalają na zmniejszenie zapotrzebowania na pamięć dla pojedynczego rdzenia obliczeniowego. Od wielu lat obliczenia równoległe są niezbędne w obliczeniach naukowych, a obecnie stanowią również kluczową technikę w rozwoju AI. Dlatego też techniki, metodologie i algorytmy opracowane na potrzeby zadań HPC są obecnie stosowane także w procesie trenowania modeli AI.
Wykład będzie koncentrował się na trzech głównych aspektach:
1. Czym jest HPC, jak pracować z klastrami obliczeniowymi oraz w jaki sposób obliczenia równoległe mogą być wykorzystywane w badaniach naukowych.
2. Jak przyspieszać wykonywanie kodu w języku Python, ze szczególnym uwzględnieniem operacji matematycznych, oraz jak zrównoleglić te operacje lub wykorzystywać akceleratory obliczeń (takie jak GPU).
3. Jak zwiększać efektywność trenowania modeli AI oraz stosować techniki programowania równoległego w procesie ich uczenia.
Zajęcia będą prowadzone w formie warsztatowej, co pozwoli uczestnikom zdobyć zarówno wiedzę teoretyczną, jak i praktyczne umiejętności. Ponadto sesje praktyczne utrwalą zdobytą wiedzę teoretyczną i zapewnią doświadczenie typu „hands-on”. Ćwiczenia będą realizowane na komputerze HPC wykorzystywanym przez czołowe zespoły badawcze w Polsce.
Założenia (opisowo)
Koordynatorzy przedmiotu
Rodzaj przedmiotu
Tryb prowadzenia
Efekty kształcenia
W1 - Student zna podstawową terminologię z zakresu informatyki i uczenia maszynowego oraz rozumie jej źródła i zastosowania w pokrewnych dyscyplinach naukowych [K_W02]
W2 - Student rozumie rolę obliczeń wysokiej wydajności (High-Performance Computing, HPC) w obszarze sztucznej inteligencji [K_W03]
W3 - Student posiada podstawową wiedzę dotyczącą roli analizy szeregów czasowych oraz wykrywania anomalii w nauce, oraz powiązań przedmiotowych i metodologicznych z innymi dyscyplinami naukowymi [K_W04]
W4 - Student zna narzędzia HPC wykorzystywane w sztucznej inteligencji oraz rozumie zalety i ograniczenia poszczególnych metod [K_W05]
W5 - Student wie, czym jest język programowania, oraz rozumie możliwości jego zastosowania [K_W07]
U1 - Student potrafi posługiwać się podstawową terminologią z zakresu HPC i AI [K_U11]
U2 - Student potrafi przygotować krótki raport o charakterze naukowym [K_U09]
U3 - Student potrafi korzystać z narzędzi telekomunikacyjnych w celu efektywnej współpracy zespołowej oraz planować i realizować symulacje numeryczne dla wybranego obszaru zastosowań analizy szeregów czasowych i wykrywania anomalii, analizować uzyskane wyniki oraz formułować wnioski [K_U13]
U4 - Student zna zasady bezpieczeństwa i higieny pracy przy komputerze oraz potrafi przeprowadzić podstawową analizę ekonomiczną realizowanych obliczeń [K_U14]
U5 - Student potrafi tworzyć proste skrypty kolejkowe do trenowania modeli uczenia maszynowego [K_U11]
U6 - Student potrafi ocenić efektywność obliczeń realizowanych w ramach uczenia maszynowego [K_U10]
K1 - Student potrafi samodzielnie planować działania badawcze oraz systematycznie i terminowo realizować założone cele, podejmując w razie potrzeby trudne decyzje [K_K08, K_K09 ]
K2 - Student potrafi uczestniczyć w merytorycznych dyskusjach, wypracowywać kompromisy oraz definiować wspólne stanowisko zespołu [K_K03, K_K05]
K3 - Student potrafi zachowywać się w sposób kulturalny i profesjonalny podczas dyskusji, z poszanowaniem innych uczestników [K_K10]
Kryteria oceniania
Efekty uczenia się K1–K3 są oceniane w sposób ciągły podczas zajęć.
Efekty uczenia się U1–U6 są oceniane w sposób ciągły podczas zajęć laboratoryjnych.
Efekty uczenia się W1–W6 są oceniane na egzaminie pisemnym, na podstawie którego studenci otrzymują ocenę końcową.
Praktyki zawodowe
Nie dotyczy.
Literatura
Materiały i kursy dostępne on-line.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: