Logo Zephyrnet

Wywiad z dyrektorem ds. oprogramowania Nvidia, Kari Briski

Data:

Wywiad Konferencja Nvidii dotycząca technologii GPU zakończyła się w zeszłym tygodniu, przynosząc wieści o chipach Blackwell firmy i szeroko komentowanych cudach sztucznej inteligencji, wraz z całym drogo zakupionym sprzętem GPU, co się z tym wiąże.

Wokół firmy panuje taki szum, że cena jej akcji flirtuje z rekordowymi poziomami, w oparciu o pogląd, że wiele kreatywnych przedsięwzięć można wykonać szybciej, jeśli nie lepiej, dzięki automatyzacji możliwej dzięki modelom uczenia maszynowego.

To wciąż jest testowane na rynku.

Kiedyś George’a Santayany napisał: „Ci, którzy nie pamiętają przeszłości, są skazani na jej powtarzanie.” To zdanie często powtarzane. Jednak pamięć o przeszłych wydarzeniach tak naprawdę nie wyróżnia modeli sztucznej inteligencji. Potrafią pamiętać przeszłość, ale nadal są skazani na jej powtarzanie na żądanie, czasami błędnie.

Mimo to wielu przysięga na wszechpotężną sztuczną inteligencję, szczególnie ci, którzy sprzedają sprzęt AI lub usługi w chmurze. Między innymi Nvidia mocno na to stawia. Tak Rejestr złożył krótką wizytę na konferencji GPU, aby zobaczyć, o co to całe zamieszanie. Z pewnością nie chodziło o batony cytrynowe serwowane w czwartkowej hali wystawowej, z których wiele zakończyło swoją pierwotną ofertę publiczną niedokończoną w pojemnikach na podłodze.

O wiele bardziej wciągająca była rozmowa Rejestr rozmawiał z Kari Briski, wiceprezesem ds. zarządzania produktami w zakresie zestawów programistycznych AI i HPC w firmie Nvidia. Kieruje zarządzaniem oprogramowaniem dla podstawowych modeli firmy, bibliotek, zestawów SDK, a obecnie mikrousług zajmujących się uczeniem i wnioskowaniem, takich jak nowo ogłoszony NIM mikrousługi i te lepiej ugruntowane nemo ramy wdrażania.

Rejestr: W jaki sposób firmy będą korzystać z tych mikrousług – w chmurze, lokalnie?

Briski: To właściwie powód, dla którego zbudowaliśmy NIM-y. Trochę zabawne jest określenie „NIM”. Ale rozpoczęliśmy tę podróż dawno temu. Odkąd zacząłem, pracujemy nad wnioskowaniem — myślę, że gdy zaczynałem w 1.0 r., był to TensorRT 2016.

Przez lata powiększaliśmy nasz stos wnioskowań, dowiadując się więcej o każdym rodzaju obciążenia, zaczynając od systemów wizji komputerowej i systemów głębokiego rekomendacji oraz mowy, po automatyczne rozpoznawanie mowy i syntezę mowy, a teraz duże modele językowe. To był naprawdę stos skupiony na programistach. A teraz, gdy przedsiębiorstwa [zobaczyły] OpenAI i ChatGPT, rozumieją potrzebę posiadania tych dużych modeli językowych obok danych korporacyjnych lub w aplikacjach korporacyjnych.

Przeciętny dostawca usług w chmurze w przypadku usług zarządzanych zatrudnia setki inżynierów pracujących nad technikami wnioskowania i optymalizacji. Przedsiębiorstwa nie mogą tego zrobić. Muszą natychmiast uzyskać korzyści z czasu. Właśnie dlatego podsumowaliśmy wszystko, czego nauczyliśmy się przez lata, za pomocą TensorRT, dużych modeli językowych, naszego serwera wnioskowania Triton, standardowego interfejsu API i kontroli stanu. [Pomysł polega na tym, aby móc] zawrzeć to wszystko, aby można było przejść od zera do punktu końcowego modelu dużego języka w mniej niż pięć minut.

[Jeśli chodzi o lokalne i chmurowe centrum danych], wielu naszych klientów korzysta z chmury hybrydowej. Woleli obliczenia. Zamiast więc wysyłać dane do usługi zarządzanej, mogą uruchomić mikrousługę blisko swoich danych i uruchamiać ją w dowolnym miejscu.

Rejestr: Jak wygląda stos oprogramowania Nvidii dla sztucznej inteligencji pod względem języków programowania? Czy nadal jest to głównie CUDA, Python, C i C++? Szukasz gdzie indziej większej szybkości i wydajności?

Briski: Zawsze badamy miejsca, z których korzystają programiści. To zawsze był nasz klucz. Odkąd zacząłem pracować w Nvidii, pracowałem nad przyspieszonymi bibliotekami matematycznymi. Najpierw trzeba było programować w CUDA, aby uzyskać równoległość. A potem mieliśmy interfejsy API w języku C. I mieliśmy API Pythona. Chodzi więc o to, aby platforma była dostępna wszędzie tam, gdzie znajdują się programiści. W tej chwili programiści chcą po prostu trafić w naprawdę prosty punkt końcowy API, na przykład poleceniem curl, poleceniem Pythona lub czymś podobnym. To musi być więc super proste, bo właśnie tam dzisiaj spotykamy się z twórcami.

Rejestr: CUDA oczywiście odgrywa ogromną rolę w zwiększaniu efektywności obliczeń GPU. Co Nvidia robi, aby ulepszyć CUDA?

Briski: CUDA jest podstawą wszystkich naszych procesorów graficznych. Jest to procesor graficzny z obsługą CUDA i programowalnością w CUDA. Kilka lat temu nazwaliśmy to CUDA-X, ponieważ istniały języki specyficzne dla domeny. Jeśli więc masz [aplikację] do obrazowania medycznego, to tak cuCIM. Jeśli masz automatyczne rozpoznawanie mowy, na końcu masz dekoder przyspieszonego wyszukiwania wiązki CUDA. Istnieją więc wszystkie te specyficzne rzeczy dla każdego rodzaju obciążenia, które zostały przyspieszone przez CUDA. Przez lata zbudowaliśmy wszystkie te wyspecjalizowane biblioteki cuDF i CuMLi cu-to i tamto. Wszystkie te biblioteki CUDA są podstawą tego, co budowaliśmy przez lata, a teraz w pewnym sensie budujemy na tym.

Rejestr: Jak Nvidia podchodzi do kwestii kosztów w kontekście sposobu, w jaki projektuje swoje oprogramowanie i sprzęt? W przypadku czegoś takiego jak Nvidia AI Enterprise to 4,500 dolarów na procesor graficzny rocznie, co jest kwotą znaczną.

Briski: Po pierwsze, w przypadku mniejszych firm zawsze mamy Początek program. Zawsze współpracujemy z klientami – bezpłatny 90-dniowy okres próbny, czy jest to dla Ciebie naprawdę cenne? Czy naprawdę warto? Następnie, aby obniżyć koszty zakupu, zawsze optymalizujemy nasze oprogramowanie. Zatem jeśli kupujesz 4,500 dolarów za procesor rocznie za licencję i używasz komputera A100, a jutro będziesz korzystać z H100, cena będzie ta sama – koszt spadnie [w stosunku do przepustowości]. Dlatego zawsze przywracamy te optymalizacje oraz całkowity koszt posiadania i wydajność do oprogramowania.

Kiedy myślimy zarówno o szkoleniu, jak i wnioskowaniu, szkolenie zajmuje trochę więcej, ale mamy te automatyczne konfiguratory, dzięki którym możemy powiedzieć: „Ile masz danych? Ile obliczeń potrzebujesz? Jak długo chcesz, żeby to trwało?” Możesz więc mieć mniej zasobów obliczeniowych, ale wytrenowanie modelu może zająć więcej czasu… Czy chcesz go przeszkolić w ciągu tygodnia? A może chcesz to przeszkolić w jeden dzień? I tak możesz dokonać tych kompromisów.

Rejestr: Jeśli chodzi o bieżące problemy, czy jest coś szczególnego, co chciałbyś rozwiązać lub czy jest jakieś wyzwanie techniczne, które chciałbyś pokonać?

Briski: W tej chwili jest to zależne od wydarzeń Łachmany [co jest sposobem na uzupełnienie modeli AI danymi pobieranymi ze źródła zewnętrznego]. Wiele przedsiębiorstw myśli właśnie o klasycznym monitowaniu o wygenerowanie odpowiedzi. Ale tak naprawdę to, co chcemy zrobić, to [połączyć] wszystkie te systemy generatywne wspomagane wyszukiwaniem razem. Ponieważ jeśli pomyślisz o sobie i zadaniu, które możesz chcieć wykonać: „Och, muszę porozmawiać z zespołem ds. bazy danych. Zespół bazy danych musi porozmawiać z zespołem Tableau. Muszą zrobić mi pulpit nawigacyjny” i wszystkie te rzeczy muszą się wydarzyć, zanim będziesz mógł faktycznie ukończyć zadanie. Jest to więc rodzaj RAG sterowanego zdarzeniami. Nie powiedziałbym, że RAG rozmawiają z RAG, ale zasadniczo tak jest – agenci wychodzą, wykonują dużo pracy i wracają. A my jesteśmy o krok od tego. Myślę więc, że jest to coś, co bardzo mnie ekscytuje w 2024 roku.

Rejestr: Czy Nvidia testuje własną sztuczną inteligencję? Czy uważasz, że sztuczna inteligencja jest przydatna wewnętrznie?

Briski: Właściwie to pojechaliśmy i w zeszłym roku, ponieważ 2023 był rokiem eksploracji, w Nvidii znalazłem 150 zespołów – mogło być więcej – i próbowaliśmy powiedzieć, w jaki sposób korzystasz z naszych narzędzi, jakiego rodzaju przypadków użycia i zaczęliśmy łączyć wszystkie wnioski, coś w rodzaju rozkwitu tysiąca kwiatów, i w pewnym sensie połączyliśmy wszystkie wnioski w najlepsze praktyki w jednym repozytorium. Właściwie to właśnie wypuściliśmy i tak to nazywamy Przykłady generatywnej sztucznej inteligencji na GitHubie, ponieważ chcieliśmy po prostu mieć wszystkie najlepsze praktyki w jednym miejscu.

To coś, co zrobiliśmy strukturalnie. Ale jako wyraźny przykład myślę, że napisaliśmy naprawdę świetny artykuł zatytułowany ChipNeMo, i tak naprawdę chodzi o nasz zespół projektowy EDA, VLSI oraz o to, jak przyjęli model fundamentowy i przeszkolili go na podstawie naszych zastrzeżonych danych. Posiadamy własne języki kodowania dla VLSI. Dlatego kodowali drugich pilotów [modele generowania kodu open source], aby móc wygenerować nasz zastrzeżony język i zwiększyć produktywność nowych inżynierów, którzy nie do końca znają kod do pisania chipów VLSI.

I to przemawiało do każdego klienta. Jeśli więc rozmawiasz z SAP, mają oni BOP [Przetwarzanie zamówień oczekujących], które jest jak zastrzeżony kod SQL dla ich bazy danych. Rozmawiałem z trzema innymi klientami, którzy mieli różne, zastrzeżone języki – nawet SQL ma setki dialektów. Zatem możliwość generowania kodu nie jest przypadkiem użycia, który można natychmiast rozwiązać za pomocą RAG. Tak, RAG pomaga odzyskać dokumentację i niektóre fragmenty kodu, ale jeśli nie zostanie przeszkolony w generowaniu tokenów w tym języku, nie będzie w stanie po prostu stworzyć kodu.

Rejestr: Kiedy patrzysz na duże modele językowe i sposób, w jaki są one powiązane z aplikacjami, czy myślisz o opóźnieniach, które mogą wystąpić, i o tym, jak sobie z tym poradzić? Czy zdarzają się sytuacje, w których zwykłe zakodowanie drzewa decyzyjnego na stałe wydaje się mieć większy sens?

Briski: Masz rację, kiedy zadajesz konkretne pytanie lub podpowiadasz, może być, nawet w przypadku jednego pytania, może być już uruchomionych pięć lub siedem modeli, dzięki czemu możesz szybko przepisać i poręcze, aporter i zmianę rankingu a następnie generator. Dlatego NIM jest tak ważny, ponieważ zoptymalizowaliśmy go pod kątem opóźnień.

Z tego też powodu oferujemy różne wersje podstawowych modeli, ponieważ możesz mieć SLM, mały model językowy, który będzie lepszy w przypadku określonego zestawu zadań, a na koniec będziesz potrzebować większego modelu, aby uzyskać większą dokładność. Jednak połączenie tego wszystkiego w celu dopasowania do okna opóźnienia jest problemem, który rozwiązujemy przez lata w przypadku wielu usług hiperskalowych lub zarządzanych. Mają te okna opóźnień i wiele razy, gdy zadajesz pytanie lub przeprowadzasz wyszukiwanie, tak naprawdę wychodzą i zadają pytanie wiele razy. Mają więc wiele warunków wyścigu: „Jakie jest moje okno opóźnienia dla każdej małej części całkowitej odpowiedzi?” Więc tak, zawsze się temu przyglądamy.

Wracając do Twojego punktu widzenia na temat kodowania na stałe, właśnie rozmawiałem dzisiaj na ten temat z klientem. Wyszliśmy daleko poza kodowanie na stałe… Możesz użyć menedżera dialogów i mieć opcję „jeśli-to-else”. [Ale] zarządzanie tysiącami reguł jest naprawdę niemożliwe. I dlatego lubimy takie rzeczy jak poręcze, ponieważ poręcze stanowią swego rodzaju zamiennik klasycznego menedżera dialogu. Zamiast mówić: „Nie rozmawiaj o baseballu, nie rozmawiaj o softballu, nie rozmawiaj o piłce nożnej” i wymieniając je, możesz po prostu powiedzieć: „Nie rozmawiaj o sporcie”. A wtedy LLM wie, czym jest sport. Oszczędność czasu i możliwość późniejszego zarządzania tym kodem są o wiele lepsze. ®

spot_img

Najnowsza inteligencja

spot_img