W tym artykule pokażemy, jak uruchamiać duże modele językowe (LLM) lub inne zadania wymagające mocy obliczeniowej GPU na instancji RunPod bezpośrednio z PyCharm. Takie podejście umożliwia korzystanie z wydajnego sprzętu w chmurze, nie obciążając przy tym lokalnego komputera. Co więcej, w porównaniu z AWS, RunPod często okazuje się korzystniejszy cenowo dla obciążeń GPU, a ponadto wydatki są ograniczone kwotą, którą wcześniej zasilisz swój portfel na RunPod.
Czym jest RunPod i jak wypada w porównaniu do AWS:
RunPod to platforma specjalizująca się w udostępnianiu zasobów GPU na żądanie. Choć w pewnym stopniu przypomina Amazon Web Services (AWS), RunPod skupia się głównie na dostarczaniu instancji GPU przy potencjalnie niższych stawkach godzinowych. Dodatkowo, nie grożą Ci nieoczekiwane wysokie rachunki, ponieważ możesz wydać tylko tyle środków, ile wcześniej wpłacisz do portfela RunPod. - Już przydażyło mi się że zapomniałem wyłączyć instancję GPU. Dobrze że miałem tylko 10$ na koncie:)
Generowanie i dodawanie klucza SSH:
Aby bezpiecznie łączyć się z instancją RunPod, potrzebujesz pary kluczy SSH. Jeśli jeszcze takiej nie masz, wygeneruj ją lokalnie:
`ssh-keygen -t ed25519`
- Przyjmij lub zmodyfikuj domyślną lokalizację zapisu kluczy (np. ~/.ssh/id_ed25519).
- Skopiuj publiczną część klucza (np. ~/.ssh/id_ed25519.pub)
- W panelu RunPod przejdź do Settings -> SSH Public Keys . Wklej publiczny klucz do odpowiedniego pola
Dzięki temu Twój klucz SSH jest przypisany do konta RunPod i umożliwi połączenie z każdą uruchomioną przez Ciebie instancją.
Uruchamianie instancji RunPod:
Po dodaniu klucza i upewnieniu się że portfel RunPod ma wystarczające środki:
- Wybierz instancję. Wybrałem kontener GPU (NVIDIA RTX A4000)
- Skonfiguruj i uruchom – wybierz nazwę, Template, ilość GPU (1), oraz
rodzaj instancji (w zależności od dostępności) - Poczekaj aż RunPod przygotuje instancję. Może to chwilę potrwać
Najprostszy sposób przetestowania uruchomionego pod-a:
Wybierz jupyter notebook który otworzy się w przeglądarce:

To wygodne rozwiązanie do szybkich eksperymentów. Jednak dla uruchamiania projektu skonfigurujemy PyCharm.
Konfiguracja PyCharm do pracy zdalnej
Dodawanie zdalnego hosta w PyCharm
- Należy otworzyć ustawienia i wpisać ‚remote host’ lub kliknąć w lupę
i wpisać ‚remote host’. Pozwoli to na otworzenie panelu bocznego który umożliwi zdefiniowanie zdalnego hosta.

2. Klikamy w trzy kropki (…) aby otworzyć okno

Otworzy się okienko które służy do zdefiniowania zdalnego hosta.
Klikamy plusik w lewym górnym rogi i dodajemy nazwę zdalnego hosta. NP: 'run_pod', type: sftp, gdyż ten typ jest obsługiwany przez runpod według informacji zawartych w zakładce ConnectionOptions/SSH
W przygotowanej instancji definiujemy SSH configuration: Dane które tam wspisujemy bazujemy na informacji zawartej w zakładce ConnectionOptions/SSH -> SSH over exposed TCP . Oraz dodatkowo definiujemy typ autoryzacji przy użyciu zdefiniowanego klucza SSH.


W celu przetestowania połączenia ze zdalnym hostem klikamy "Test Connection". Ostatecznie powinniśmy mieć konfigurację, podobnie jak na poniższym zdjęciu:

Dodanie wirtualnego środowiska do zdalnego hosta
Należy dodać nowy interpreter, który będzie obsługiwał nasz projekt uruchomiony na zdalnej instancji.

W odpowiednie pola wpisać wartości dla host-a, port-u, oraz username (root).
Po zaakceptowaniu proces uruchamiania może chwilę potrwać.
Terminal
Prawy panel przedstawia zawartość która jest umieszczona na zdalnym hoście. W folderze /workspace możemy dodawać nasze pliki projektu.
Otwierając plik - w górnej zakładce otworzonych plików - będzie widoczne, że wybrany plik dotyczy zdalnego hosta. Jest to oznaczone przez poprzedzenie nazwy nagłówkiem <nazwa_romote_host> w moim przypadku <run_pod>.

Dodatkowo uwagę może zwrócić niebieski pasek zamieszczony zaraz pod zakładką plików. Po każdorazowej modyfikacji pliku, należy załadować zmiany poprzez kliknięcie przycisku upload.
Klikając prawym przyciskiem myszy na boczny panel zdalnego hosta,
możemy uruchomić terminal roota, w którym już bezpośrednio można
wywoływać komendy uruchamiania skryptów.

Start SSH Session

Pełny panel boczny który służy do zarządzania zasobami postawionym
na zdalnej isntancji może wyglądać podobnie do tego widocznego poniżej:

Kilka uwag
Należy zwrócić uwagę na kilka elementów:
- Od momentu postawienia instancji, każda kolejna godzina nawet nieobciążonego
GPU pobiera wskazaną ilość pieniędzy z portfela użytkownika - Instancję można ustawić w tryb stop. Pobierana jest wtedy dużo niższa
opłata. Wszystkie ustawienia i projekt który na niej otworzyliśmy nie
zostanie usunięty. - Usunięcie instancji wiąże się z koniecznością ponowego wgrywania
projektu
W dolnym prawym rogu środowiska będzie widoczny nowy interpreter
oraz zdalny host:

Dziękuję za przeczytanie artykułu, mam nadzieję że był pomocny:)

Dodaj komentarz