FlexGen to silnik do uruchamiania botów AI podobnych do ChatGPT na systemach z jednym procesorem graficznym

Zespół badaczy z Uniwersytetu Stanforda, Uniwersytetu Kalifornijskiego w Berkeley, ETH Zurich, Graduate School of Economics, Carnegie Mellon University, a także Yandex i Meta opublikował kod źródłowy silnika do uruchamiania dużych modeli językowych na zasobach -systemy ograniczone. Na przykład silnik zapewnia możliwość tworzenia funkcjonalności przypominającej ChatGPT i Copilot poprzez uruchomienie wstępnie wytrenowanego modelu OPT-175B, obejmującego 175 miliardów parametrów, na zwykłym komputerze z gamingową kartą graficzną NVIDIA RTX3090 wyposażoną w 24 GB pamięci wideo. Kod napisany jest w języku Python, wykorzystuje framework PyTorch i jest rozpowszechniany na licencji Apache 2.0.

Zawiera przykładowy skrypt do tworzenia botów, który pozwala pobrać jeden z publicznie dostępnych modeli językowych i od razu rozpocząć komunikację (na przykład uruchamiając polecenie „python apps/chatbot.py —model facebook/opt-30b — -percent 0 100 100 0 100 0”). Jako bazę proponuje się wykorzystanie dużego modelu językowego opublikowanego przez Facebooka, przeszkolonego na zbiorach BookCorpus (10 tys. książek), CC-Stories, Pile (OpenSubtitles, Wikipedia, DM Mathematics, HackerNews itp.), Pushshift. io (na podstawie danych Reddit) i CCNewsV2 (archiwum aktualności). Model obejmuje około 180 miliardów tokenów (800 GB danych). Na szkolenie modelu poświęcono 33 dni pracy klastra z 992 procesorami graficznymi NVIDIA A100 80GB.

Podczas uruchamiania modelu OPT-175B w systemie z pojedynczym procesorem graficznym NVIDIA T4 (16 GB) silnik FlexGen wykazał wydajność do 100 razy większą niż wcześniej oferowane rozwiązania, dzięki czemu korzystanie z modeli wielojęzycznych stało się tańsze i umożliwiło ich działanie na systemów bez dedykowanych akceleratorów. Jednocześnie FlexGen może skalować w celu zrównoleglenia obliczeń z wieloma procesorami graficznymi. Aby zmniejszyć rozmiar modelu, zastosowano dodatkowo autorski schemat kompresji parametrów i mechanizm buforowania modelu.

Obecnie FlexGen obsługuje tylko modele językowe OPT, ale w przyszłości programiści obiecują dodać także obsługę BLOOM (176 miliardów parametrów, obsługuje 46 języków i 13 języków programowania), CodeGen (może generować kod w 22 językach programowania) oraz Modele GLM. Przykład dialogu z botem opartym na FlexGenie i modelu OPT-30B:

Człowiek: Jak nazywa się najwyższa góra na świecie?

Asystent: Everest.

Człowiek: Planuję wyjazd z okazji naszej rocznicy. Jakie rzeczy możemy zrobić?

Asystent: Cóż, jest wiele rzeczy, które możesz zrobić na swoją rocznicę. Po pierwsze, możesz grać w karty. Po drugie, możesz wybrać się na wycieczkę. Po trzecie, możesz iść do muzeum.

Źródło: opennet.ru

Dodaj komentarz