Chmura obliczeniowa dla AI: GPU, koszty i pułapki przy trenowaniu modeli

0
206
4.5/5 - (2 votes)

Nawigacja:

Od „mam model do trenowania” do realnych kosztów w chmurze

Od pomysłu na model do pierwszej faktury

Typowy scenariusz wygląda podobnie: jest pomysł na model AI, kod wstępnie działa na laptopie, dane są mniej więcej przygotowane. Wtedy pojawia się naturalne pytanie: jak to teraz sensownie wytrenować w chmurze, żeby nie skończyć z rachunkiem większym niż cały budżet projektu. Sama świadomość, że „GPU w chmurze jest drogie”, nie pomaga podjąć decyzji, jaki wariant infrastruktury wybrać i jak ustawić trenowanie modeli na GPU w chmurze, żeby kontrolować ryzyko finansowe.

Do tego dochodzi obawa, że bez solidnych kompetencji DevOps korzystanie z chmury będzie udręką. Pojawiają się myśli w stylu: „czy naprawdę muszę rozumieć VPC, sieci, storage, obrazy maszyn i autoscaling, tylko po to, żeby odpalić kilka eksperymentów z trenowaniem modeli w chmurze?”. Dobra wiadomość jest taka, że na początek da się to zrobić prościej, choć pewnych decyzji i tak nie da się uniknąć.

Drugie źródło stresu to niepewność co do kosztów trenowania modeli w chmurze. Trudno oszacować, ile godzin realnie będzie potrzebnych: ile razy coś się wysypie, ile debugowania zajmie dobór hiperparametrów, jak często eksperymenty trzeba będzie powtarzać. Gdy nie ma prostego modelu kosztów, łatwo popłynąć: kilka dni niepilnowanego klastra GPU potrafi zjeść budżet całego sprintu.

Własny sprzęt vs chmura – co się naprawdę różni

Trenowanie modeli AI na własnym sprzęcie daje poczucie bezpieczeństwa: jest jednorazowy koszt zakupu GPU i stacji roboczej, brak niespodzianek na miesięcznym rachunku. Problem zaczyna się jednak wtedy, gdy model rośnie, potrzeba więcej VRAM, a czas trenowania liczy się w dniach. Wtedy brak elastyczności boli: fizyczna maszyna ani nie urośnie, ani nie sklonuje się w kilka minut.

Chmura obliczeniowa dla AI oferuje to, czego nie da się kupić jedną kartą graficzną: skalowanie w górę i w dół zgodnie z aktualną potrzebą. Dzisiaj jedno skromne GPU na POC, jutro kilka mocnych GPU na pełny trening, pojutrze tylko mały serwer do inference. Płaci się za czas użycia, nie za sprzęt stojący bezczynnie. Z drugiej strony, każdy błąd w konfiguracji, zapomniana instancja czy nieoptymalny pipeline może bez uprzedzenia przepalić budżet.

Różni się także ryzyko utopionych kosztów. Przy zakupie własnego GPU inwestuje się z góry: jeśli architektura modelu się nie sprawdzi, sprzęt i tak zostaje. W chmurze eksperyment nieudany technicznie czy koncepcyjnie oznacza wydatek, którego nie da się odzyskać. Z punktu widzenia zarządzania ryzykiem czasem bardziej opłaca się zrobić kilka tańszych, mniejszych eksperymentów niż rzucić się od razu na wielki trening na drogim GPU.

Praktyczna mapa drogi: od POC do większych klastrów

Rozsądny sposób wejścia w trenowanie modeli na GPU w chmurze można rozpisać na kilka kroków. Na start wystarczy pojedyncza instancja GPU z kartą średniej klasy (np. odpowiednik T4/A10) i stosunkowo mały model. Celem jest sprawdzenie, czy pipeline danych działa, czy kod trenuje się bez błędów i ile mniej więcej trwa jedna epoka na ograniczonym zbiorze danych.

Kolejnym krokiem jest stopniowe skalowanie: albo zwiększanie rozmiaru modelu, albo zbioru danych, albo batch size. W tym momencie zaczyna się testowanie, czy pojedyncze GPU nadal wystarcza, czy trzeba przejść na mocniejszą kartę (np. A100/H100) albo kilka GPU z równoległym trenowaniem. Każde takie przejście powinno być poprzedzone twardą oceną: po co mi ten skok, jaki efekt skrócenia czasu treningu jest oczekiwany i ile będzie to kosztowało na godzinę.

Na końcu tej drogi są większe klastry GPU uruchamiane na krótki, ale intensywny czas: trenowanie od zera dużych modeli językowych, rozbudowane eksperymenty z multimodalnością, masowe testy hiperparametrów. Dla wielu zespołów ten etap nigdy nie będzie potrzebny – w praktyce lepiej zainwestować w sprytne użycie fine-tuningu, LoRA i efektywnego transfer learningu niż ścigać się z największymi graczami na liczbę GPU.

Podstawy GPU dla AI – co naprawdę ma znaczenie

Dlaczego GPU, a nie CPU, przy trenowaniu AI

Modele głębokiego uczenia wykonują ogromną liczbę tych samych prostych operacji matematycznych na macierzach. GPU zostały stworzone właśnie do takiej równoległej obróbki danych. Dzięki tysiącom rdzeni wykonujących proste operacje równolegle, czas treningu spada z dni do godzin lub minut. To bezpośrednio przekłada się na tempo iteracji: im szybciej model się trenuje, tym więcej wariantów można sprawdzić w tym samym budżecie czasu.

CPU nadal pełni ważną rolę: przygotowuje batch’e danych, wykonuje część logiki aplikacyjnej, zarządza procesami. Samo trenowanie modeli na CPU w chmurze ma sens tylko w bardzo specyficznych scenariuszach (małe modele, testy jednostkowe, inference o bardzo niskim wolumenie). W każdej poważniejszej pracy z sieciami neuronowymi GPU jest podstawą.

Kluczowe parametry GPU widziane oczami inżyniera AI

Najczęściej przy wyborze GPU do AI patrzy się na nazwę karty i cenę za godzinę. To za mało. Żeby sensownie dobrać GPU do konkretnego modelu, trzeba znać kilka parametrów technicznych:

  • VRAM (pamięć karty) – kluczowa dla rozmiaru modelu, długości sekwencji wejściowej i batch size. Im więcej VRAM, tym większy model i większe batch’e można utrzymać na jednej karcie.
  • Przepustowość pamięci – wpływa na to, jak szybko dane są przesyłane w obrębie GPU. Przy dużych modelach o wysokiej liczbie parametrów może ograniczać rzeczywistą prędkość treningu.
  • Wsparcie dla precyzji FP16/BF16/INT8 – możliwość trenowania lub inferencji w niższej precyzji drastycznie zmniejsza zużycie VRAM i przyspiesza obliczenia dzięki Tensor Cores.
  • Tensor Cores i architektura – nowoczesne karty (np. A100, H100, L4) mają wyspecjalizowane jednostki do obliczeń tensorowych, co istotnie przyspiesza trenowanie modeli głębokich.

Dodatkowo, w praktyce liczy się również wydajność PCIe, wielkość i szybkość pamięci systemowej, a także to, czy dana instancja GPU w chmurze ma ograniczenia dzielenia GPU na wielu użytkowników (tzw. MIG i podobne rozwiązania). Te detale często decydują, czy GPU jest dobrze wykorzystane, czy nudzi się, czekając na dane.

Trening, fine-tuning, inference – różne zadania, różne wymagania

Nie każde zastosowanie AI potrzebuje takiej samej klasy GPU. Inne potrzeby ma ktoś, kto trenuje model od zera na ogromnym zbiorze danych, a inne osoba robiąca lekki fine-tuning istniejącego modelu. Dla uporządkowania warto rozróżnić trzy główne kategorie:

  • Trenowanie od zera (full training) – największe wymagania sprzętowe, ciągłe wykorzystanie GPU, długa praca. Zazwyczaj potrzeba kart o dużej ilości VRAM i wysokiej przepustowości (A100/H100 klasycznie), często kilku lub kilkunastu GPU.
  • Fine-tuning / transfer learning – można zadowolić się słabszymi kartami, szczególnie przy technikach typu LoRA/PEFT. Często wystarczy jedna, dobrze dobrana karta z umiarkowanym VRAM, zwłaszcza przy mniejszych modelach.
  • Inference (serwowanie modelu) – ważna jest przede wszystkim stabilność i przewidywalne opóźnienia. Można stosować GPU zoptymalizowane pod inference (np. T4, L4) lub nawet CPU przy mniejszych obciążeniach.

Świadomość, do czego dokładnie ma służyć GPU w chmurze – czy głównie do treningu, czy do produkcyjnego inference – pomaga dobrać instancję, która jest kosztowo sensowna. Częstym błędem jest używanie bardzo drogich kart treningowych do serwowania modeli, które spokojnie radzą sobie na tańszych, zoptymalizowanych pod inference GPU.

Typowe klasy GPU w chmurze i ich zastosowania

Większość dostawców chmury obliczeniowej dla AI oferuje podobny zestaw kart GPU, choć pod różnymi nazwami instancji. Schemat wykorzystania jest zbliżony:

  • Karty „entry-level” (np. T4, podobne odpowiedniki) – dobre do prostego inference, mniejszych modeli, testów i developmentu. Relatywnie tanie na godzinę.
  • Karty „mid-range” (np. A10, L4) – kompromis między ceną a wydajnością. Nadają się do fine-tuningu średnich modeli, poważniejszych POC i większego inference.
  • Karty „high-end” (np. A100, H100 i ich odpowiedniki) – przeznaczone do dużych modeli, intensywnego trenowania, ogromnych zbiorów danych. Mają dużo VRAM, wysoką przepustowość i zaawansowane wsparcie dla niskich precyzji.

Często różnice w nazwach instancji między dostawcami utrudniają porównanie usług chmurowych dla AI. Przy wyborze lepiej patrzeć na konkretną generację GPU, ilość VRAM i parametry techniczne niż tylko na marketingowe nazwy typów maszyn.

Gdzie łatwo się pomylić przy wyborze GPU

Najbardziej oczywisty błąd: „biorę najmocniejsze GPU, na jakie mnie stać, będzie szybciej”. W teorii tak, ale w praktyce może się okazać, że pipeline danych jest wąskim gardłem, a GPU wykorzystane jest w 30–40%. Wtedy przepłaca się za moc, której i tak nie widać w metrykach treningu. Bardziej zbalansowane podejście to najpierw zmierzyć, czy obecny GPU jest w pełni wykorzystywany, a dopiero później sięgać po mocniejsze instancje.

Drugi typowy błąd: dobieranie GPU wyłącznie po VRAM, bez patrzenia na generację, wsparcie dla FP16/BF16 i Tensor Cores. Starsze karty z dużą pamięcią mogą być kuszące cenowo, ale przy nowoczesnych bibliotekach deep learning mogą okazać się irytująco wolne. Oceniając optymalizację zużycia GPU, trzeba brać pod uwagę całą architekturę karty, nie tylko wielkość VRAM.

Zbliżenie na szafę serwerową z infrastrukturą do przetwarzania danych
Źródło: Pexels | Autor: panumas nikhomkhai

Jak dobrać GPU do konkretnego modelu i danych

Zależności między modelem, danymi i VRAM

Dla każdego zadania istnieje minimalny poziom GPU, poniżej którego trenowanie będzie nierealne albo skrajnie nieefektywne. Wyznaczają go głównie:

  • Rozmiar modelu (liczba parametrów) – duże modele językowe czy wizji potrafią zająć większość VRAM tylko na same wagi.
  • Długość wejścia (sekwencja, rozmiar obrazu) – dłuższe sekwencje tekstu czy wyższe rozdzielczości obrazów zwiększają zużycie pamięci w trakcie treningu.
  • Batch size – większy batch przyspiesza trening (lepsza efektywność GPU), ale szybko pożera VRAM.

Przybliżone zależności da się oszacować na podstawie testu na mniejszym GPU. Jeśli wiadomo, że model z batch size 4 i określoną długością sekwencji zajmuje 80% VRAM 16 GB karty, można dość realistycznie przewidzieć, że przy batch size 8 potrzeba będzie ok. 32 GB VRAM (z pewną rezerwą na overhead).

Prosty sposób na wstępne szacowanie wymagań GPU

Dobrym nawykiem jest zawsze zacząć od testu na mniejszym, tańszym GPU. Nawet jeśli wiadomo, że ostatecznie potrzebne będzie mocniejsze GPU, warto na start:

  • uruchomić model z minimalnym działającym batch size,
  • zmierzyć użycie VRAM przy typowej długości sekwencji / rozdzielczości,
  • przeliczyć, jak rośnie zużycie pamięci wraz z podwojeniem batch size lub długości sekwencji,
  • oszacować, ile czasu trwa jedna epoka na małym wycinku danych.

Na tej podstawie można dobrać klasę GPU: jeśli VRAM jest jedyną barierą, wystarczy przeskoczyć do karty z większą pamięcią. Jeśli ograniczeniem jest też prędkość, trzeba sięgnąć po nowszą generację GPU z większą przepustowością i Tensor Cores. Taka przymiarka na niskim koszcie zdecydowanie zmniejsza ryzyko przepalania budżetu na bezproduktywne eksperymenty.

Jedno duże GPU czy kilka mniejszych – dylemat skalowania

Chmura obliczeniowa dla AI pozwala wybierać między pojedynczym, mocnym GPU a kilkoma słabszymi kartami połączonymi w klaster. To nie jest wyłącznie kwestia ceny za godzinę, ale też złożoności konfiguracji i charakteru modelu. Główne warianty to:

  • Jedno mocne GPU – prostsze w konfiguracji, idealne dla większości zadań fine-tuningu i średnich modeli. Odpada problem synchronizacji gradientów i komunikacji między kartami.
  • Kilka mniejszych GPU (data parallel) – dane dzielą się na części, każdy GPU trenuje na swoim fragmencie, a gradienty są synchronizowane. Dobre, gdy model mieści się na pojedynczym GPU, ale czas treningu trzeba skrócić poprzez równoległość danych.
  • Model parallel / pipeline parallel – model dzieli się na części między GPU, bo nie mieści się na jednej karcie. Przydatne dla bardzo dużych modeli, ale złożone w konfiguracji i mniej wydajne w małych zespołach bez doświadczenia.

Jeśli rozmiar modelu pozwala, jedno większe GPU zazwyczaj jest bezpieczniejszym wyborem na początek. Konfiguracja wielu GPU wymaga szerszych kompetencji (np. w PyTorch Distributed, Horovod czy innych frameworkach rozproszonych) i generuje dodatkowe punkty potencjalnych błędów.

Przykładowy dobór GPU: model językowy vs model wizji

Model językowy: duże sekwencje, rosnące zapotrzebowanie na pamięć

Przy LLM kluczowe są trzy liczby: rozmiar modelu (parametry), długość kontekstu (sequence length) oraz batch size. Nawet jeśli parametry mieszczą się w VRAM, kontekst potrafi „zjeść” resztę pamięci w trakcie forward/backward pass.

Przykład praktyczny: fine-tuning modelu ~7B parametrów z kontekstem 2k tokenów na instrukcjach. Przy technikach typu LoRA/PEFT taki model da się sensownie prowadzić na karcie 24–32 GB, jeżeli batch size jest raczej mały, a gradient checkpointing włączony. Ten sam model z kontekstem 8k i większym batch size potrafi wymagać 40 GB i więcej, szczególnie przy klasycznym full fine-tuningu.

Przy LLM widać też, jak szybko rosną potrzeby przy multi-GPU. Jeżeli model mieści się „na styk” na pojedynczym GPU, z rozdzieleniem go na kilka kart (model parallel) pojawia się overhead komunikacji, buforów i replikacji części wag. W takiej sytuacji pojedynczy GPU z większym VRAM bywa paradoksalnie prostszy i tańszy niż kilka słabszych kart.

Model wizji: rozdzielczość i augmentacje jako główne „pożeracze” zasobów

W modelach wizji (klasyczne CNN, Vision Transformers) głównymi „gałkami” są rozdzielczość wejściowa i batch size. Sam rozmiar modelu też ma znaczenie, ale przy typowych architekturach (ResNet, EfficientNet, ViT-B/L) zwykle nie jest aż tak krytyczny jak w LLM.

Jeśli trening odbywa się na obrazach 224×224, to nawet karta z 16–24 GB VRAM pozwala na przyzwoite batch size. Problem zaczyna się przy obrazach 512×512, 1024×1024 i wyżej – tu pamięć rośnie kwadratowo wraz z rozdzielczością, a GPU „topi się” także przez augmentacje wykonywane na CPU.

Dobre praktyczne obserwacje:

  • gdy CPU nie nadąża z augmentacjami, GPU ma spadki wykorzystania – wtedy zamiast droższego GPU bardziej pomaga szybszy storage i mocniejsze CPU,
  • dla dużych rozdzielczości sensowne jest użycie mixed precision (FP16/BF16) oraz mniejszych batch size, a przy bardzo ograniczonym VRAM – techniki typu gradient checkpointing lub cropy/patchowanie obrazów.

Kiedy nie ma sensu kupować „lepszego” GPU

Czasem kusi, by przy każdym problemie z czasem treningu po prostu zmienić instancję na większą. Zanim to zrobisz, opłaca się sprawdzić kilka sygnałów ostrzegawczych:

  • Niskie wykorzystanie GPU (np. 20–40%) – wskazuje, że wąskim gardłem są dane lub kod, nie sama karta.
  • Wysokie zużycie CPU i niskie I/O dysku – przetwarzanie danych (augmentacje, parsowanie) dławi pipeline, a nie trening.
  • Duże przestoje między batchami – logi pokazują, że czas przygotowania batcha jest porównywalny lub większy niż czas treningu.

W takich scenariuszach lepiej zoptymalizować pipeline danych (np. przejść na zapis w formacie binarnym, użyć DataLoaderów z większą równoległością, trzymać część danych w pamięci lub na szybkim SSD sieciowym) niż zwiększać klasę GPU. Większa karta po prostu będzie się nudzić jeszcze szybciej.

Przegląd ofert chmury dla AI – na co patrzeć poza cennikiem

Typy instancji a realna dostępność GPU

Cennik na stronie rzadko pokazuje cały obraz. Dla projektów AI liczy się nie tylko to, ile kosztuje godzina GPU, ale też czy ta karta w ogóle będzie dostępna, kiedy jej potrzebujesz. W praktyce:

  • Instancje on-demand – pełna cena za godzinę, ale gwarancja, że jeśli zasób jest dostępny, dostajesz go bez przerw. Dobre do produkcji i krytycznych eksperymentów.
  • Instancje preemptible/spot – dużo tańsze (czasem kilka razy), ale dostawca może je odebrać z krótkim wyprzedzeniem. Świetne do eksperymentów, mniej do ciągłego inference.
  • Rezerwacje długoterminowe – opłacalne, gdy z góry wiadomo, że GPU będzie potrzebne przez większość czasu przez wiele miesięcy.

Przy intensywnym trenowaniu większych modeli często łączy się różne typy instancji: on-demand do krytycznych zadań i spot do testów i eksperymentów pobocznych. To pozwala utrzymać rozsądny budżet bez paraliżu pracy przy każdej przerwie spotowej.

Przepustowość sieci i topologia – ukryty czynnik skali

Przy pojedynczym GPU topologia sieci nie wydaje się ważna. Problem startuje, gdy model lub dane wymagają wielu kart w klastrze. Wtedy kluczowe są:

  • Rodzaj połączeń między GPU – NVLink, PCIe, Infiniband; od tego zależy szybkość wymiany gradientów i stanów modelu.
  • Przepustowość sieci między maszynami – szczególnie istotna przy treningu rozproszonym między wieloma węzłami.
  • Lokalność danych – czy dane są w tej samej strefie dostępności, w tym samym regionie, czy na współdzielonym, wolniejszym storage.

Przy dużych LLM różnica między klastrem z NVLink a zwykłą siecią może oznaczać nie kilka, ale kilkadziesiąt procent czasu treningu. Przy projektach, gdzie trening trwa tygodniami, przekłada się to na bardzo konkretne kwoty.

Storage: SSD, obiekty, cache – jak nie zabić GPU powolnym dyskiem

Częstą pułapką jest wybór taniego storage’u dla ogromnych zbiorów danych. Na papierze oszczędność wygląda dobrze, w praktyce GPU godzinami czeka na batch. Warto rozróżniać kilka poziomów:

  • Local SSD / NVMe – najszybsze, najdroższe za GB, ograniczone do konkretnej maszyny. Idealne na aktywny fragment zbioru danych.
  • Network-attached SSD – kompromis szybkości i wygody, zwykle wystarcza do większości szkoleń, jeśli dobrze ułożony jest caching.
  • Object storage (S3, GCS itp.) – świetny do trzymania „archiwum” danych, checkpointów i artefaktów, ale zbyt wolny jako główne źródło batchy bez dodatkowych warstw cache.

Praktyczna strategia: trzymać surowe dane w object storage, a przed treningiem budować skompresowane, binarne shard’y (np. WebDataset, TFRecord) i ściągać je na lokalne SSD instancji GPU albo do szybkiego cache’u sieciowego. Dzięki temu zmniejsza się liczbę przypadkowych odczytów małych plików, które zabijają IOPS.

Usługi „managed” vs „bare metal” – wygoda kontra kontrola

Dostawcy coraz częściej oferują platformy „managed” do trenowania modeli: gotowe środowiska, automatyczne skalowanie, pipeline’y MLOps. Alternatywą jest podejście „bare metal” – samodzielne stawianie maszyn i konfiguracja wszystkiego od zera.

Z grubsza wygląda to tak:

  • Managed AI platforms – szybszy start, mniej DevOps, często wygodne UI do monitoringu. Kosztują zwykle więcej za godzinę niż goła maszyna, ale oszczędzają czas zespołu.
  • Bare metal / IaaS – tańszy surowy GPU, pełna kontrola nad środowiskiem, ale wymaga więcej pracy przy setupie, aktualizacjach sterowników, bibliotek i zabezpieczeń.

Dla małych zespołów bez doświadczenia w infrastrukturze managed platforma może realnie wyjść taniej w całkowitym koszcie (czas ludzi + godziny GPU). Z kolei przy dużej skali i doświadczonym zespole DevOps opłaca się schodzić niżej, bliżej bare metal.

Limity konta, kwoty i „niewidzialne” ograniczenia

Na etapie planowania budżetu łatwo przeoczyć coś tak prozaicznego jak limity konta. Wiele chmur domyślnie nakłada ograniczenia na:

  • maksymalną liczbę GPU danego typu na projekt/region,
  • maksymalną liczbę instancji na konto,
  • budżet dzienny lub miesięczny, po którym przychodzi blokada.

Przy planowaniu większego treningu dobrze jest z wyprzedzeniem złożyć wniosek o zwiększenie limitów oraz przetestować, czy da się faktycznie zarezerwować kilka/kilkanaście GPU w tym samym regionie. Odkrycie ograniczeń w dniu startu treningu bywa frustrujące i drogie czasowo.

Nowoczesne serwery rackowe w centrum danych dla obliczeń AI
Źródło: Pexels | Autor: panumas nikhomkhai

Model kosztów trenowania – co generuje największe rachunki

Rozbicie kosztów: nie tylko GPU „robi budżet”

Z zewnątrz może się wydawać, że największym wydatkiem jest godzina GPU. Po kilku miesiącach projektu okazuje się jednak, że sporą część kosztów pochłaniają składowanie danych, transfer między regionami i ciągłe uruchamianie eksperymentów. Dobry model kosztów uwzględnia co najmniej:

  • czas GPU/CPU – bezpośredni koszt trenowania, inference, preprocessingu,
  • storage – dane treningowe, checkpointy, logi, artefakty modeli,
  • transfer danych – szczególnie wyjście poza chmurę (egress), często droższe niż ruch wewnętrzny,
  • usługi towarzyszące – bazy danych, kolejki, monitoring, systemy MLOps.

Jeśli rachunki z miesiąca na miesiąc zaskakują, najczęściej winny jest brak ograniczenia storage’u (stare checkpointy, logi, nieczyszczone dane po eksperymentach) oraz niekontrolowane eksperymenty na wielu GPU bez limitów czasu.

Jak oszacować koszt pojedynczego treningu

Prosta, przybliżona metoda pozwala z grubsza policzyć, ile będzie kosztował jeden pełny trening lub fine-tuning. Wystarczy kilka kroków:

  1. Na małym wycinku danych (np. 1–5% zbioru) zmierz czas jednej epoki na wybranym GPU.
  2. Przelicz, ile epok planujesz na pełnym zbiorze oraz ile razy większy jest pełny zbiór niż próbka.
  3. Pomnóż czas przez liczbę epok i przeskaluj względem wielkości zbioru.
  4. Do otrzymanego czasu dodaj margines (np. 20–30%) na przerwy, restarty, debugging.
  5. Pomnóż wynik przez cenę godziny danej instancji (GPU + CPU + storage local/SSD).

Taki „kalkulator na serwetce” nie uwzględnia wszystkich detali, ale daje rząd wielkości. Dzięki temu decyzja typu „czy opłaca się spróbować innego modelu lub dłuższego kontekstu” jest bardziej świadoma, a nie oparta wyłącznie na przeczuciu.

Koszt eksperymentowania vs koszt pojedynczego sukcesu

Przy ML i AI realny wydatek to ni