Sukces generatywnych zastosowań sztucznej inteligencji w wielu branżach przyciągnął uwagę i zainteresowanie firm na całym świecie, które chcą odtworzyć i prześcignąć osiągnięcia konkurencji lub rozwiązać nowe, ekscytujące przypadki użycia. Klienci ci szukają podstawowych modeli, takich jak TII Falcon, Stable Diffusion XL lub GPT-3.5 OpenAI, jako silników napędzających innowacje generatywnej sztucznej inteligencji.
Modele podstawowe to klasa generatywnych modeli sztucznej inteligencji, które dzięki ogromnej ilości nieustrukturyzowanych danych są w stanie zrozumieć i wygenerować treści przypominające ludzkie. Modele te zrewolucjonizowały różne zadania związane z widzeniem komputerowym (CV) i przetwarzaniem języka naturalnego (NLP), w tym generowanie obrazów, tłumaczenie i odpowiadanie na pytania. Służą jako elementy konstrukcyjne wielu zastosowań sztucznej inteligencji i stały się kluczowym elementem w rozwoju zaawansowanych inteligentnych systemów.
Jednakże wdrożenie modeli podstawowych może wiązać się ze znaczącymi wyzwaniami, szczególnie pod względem wymagań dotyczących kosztów i zasobów. Modele te są znane ze swoich rozmiarów, często wahających się od setek milionów do miliardów parametrów. Ich duży rozmiar wymaga dużych zasobów obliczeniowych, w tym wydajnego sprzętu i znacznej pojemności pamięci. W rzeczywistości wdrażanie modeli podstawowych zwykle wymaga co najmniej jednego (często więcej) procesora graficznego, aby skutecznie obsłużyć obciążenie obliczeniowe. Na przykład model TII Falcon-40B Instruct wymaga pomyślnego załadowania do pamięci co najmniej instancji ml.g5.12xlarge, ale najlepiej radzi sobie z większymi instancjami. W rezultacie zwrot z inwestycji (ROI) we wdrażanie i utrzymywanie tych modeli może być zbyt niski, aby udowodnić wartość biznesową, zwłaszcza podczas cykli programistycznych lub w przypadku dużych obciążeń. Wynika to z kosztów bieżących posiadania instancji zasilanych procesorem graficznym podczas długich sesji, potencjalnie 24/7.
Ogłaszaliśmy to na początku tego roku Amazońska skała macierzysta, bezserwerowy interfejs API zapewniający dostęp do podstawowych modeli firmy Amazon i naszych partnerów zajmujących się generatywną sztuczną inteligencją. Chociaż jest obecnie w wersji Private Preview, jego bezserwerowy interfejs API umożliwia korzystanie z podstawowych modeli z Amazon, Anthropic, Stability AI i AI21, bez konieczności samodzielnego wdrażania jakichkolwiek punktów końcowych. Jednak modele open source ze społeczności takich jak Hugging Face bardzo się rozrosły i nie każdy z nich został udostępniony za pośrednictwem Amazon Bedrock.
W tym poście skupiamy się na tych sytuacjach i rozwiązujemy problem ryzykowania wysokich kosztów, wdrażając duże modele podstawowe Amazon Sage Maker asynchroniczne punkty końcowe od Amazon SageMaker JumpStart. Może to pomóc w obniżeniu kosztów architektury, umożliwiając punktowi końcowemu działanie tylko wtedy, gdy żądania znajdują się w kolejce i przez krótki czas życia, przy jednoczesnym skalowaniu do zera, gdy żadne żądania nie oczekują na obsługę. Brzmi to świetnie w wielu przypadkach użycia; jednakże punkt końcowy, który został przeskalowany do zera, wprowadzi czas zimnego startu, zanim będzie można wnioskować.
Omówienie rozwiązania
Poniższy diagram ilustruje naszą architekturę rozwiązania.
Wdrażana przez nas architektura jest bardzo prosta:
- Interfejs użytkownika to notebook, który można zastąpić interfejsem internetowym zbudowanym w technologii Streamlit lub podobnej. W naszym przypadku notatnik jest Studio Amazon SageMaker notebook, działający na instancji ml.m5.large z jądrem procesora PyTorch 2.0 Python 3.10.
- Notatnik wysyła zapytania do punktu końcowego na trzy sposoby: za pomocą pakietu SageMaker Python SDK, zestawu AWS SDK dla języka Python (Boto3) i LangChain.
- Punkt końcowy działa asynchronicznie w SageMaker i na punkcie końcowym wdrażamy model Falcon-40B Instruct. Jest to obecnie najnowocześniejszy model pod względem modeli instrukcji i dostępny w SageMaker JumpStart. Pojedyncze wywołanie API pozwala nam wdrożyć model na punkcie końcowym.
Co to jest wnioskowanie asynchroniczne SageMaker
Wnioskowanie asynchroniczne SageMaker to jedna z czterech opcji wdrażania w SageMaker, wraz z punktami końcowymi w czasie rzeczywistym, wnioskowaniem wsadowym i wnioskowaniem bezserwerowym. Aby dowiedzieć się więcej na temat różnych opcji wdrażania, zobacz Wdrażaj modele na potrzeby wnioskowania.
Asynchroniczne wnioskowanie SageMaker kolejkuje przychodzące żądania i przetwarza je asynchronicznie, co czyni tę opcję idealną w przypadku żądań o dużych rozmiarach ładunku, do 1 GB, długim czasie przetwarzania i wymaganiach dotyczących opóźnień w czasie zbliżonym do rzeczywistego. Jednak główną zaletą, jaką zapewnia w przypadku dużych modeli podstawowych, zwłaszcza podczas weryfikacji koncepcji (POC) lub podczas programowania, jest możliwość skonfigurowania wnioskowania asynchronicznego w celu skalowania do zerowej liczby wystąpień, gdy nie ma żądań procesu, oszczędzając w ten sposób koszty. Więcej informacji na temat wnioskowania asynchronicznego SageMaker można znaleźć w artykule Wnioskowanie asynchroniczne. Poniższy diagram ilustruje tę architekturę.
Aby wdrożyć punkt końcowy wnioskowania asynchronicznego, należy utworzyć plik AsyncInferenceConfig
obiekt. Jeśli tworzysz AsyncInferenceConfig
bez określenia argumentów, wartość domyślna S3OutputPath
będzie s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-outputs/{UNIQUE-JOB-NAME}
i S3FailurePath
będzie s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-failures/{UNIQUE-JOB-NAME}
.
Co to jest SageMaker JumpStart
Nasz model pochodzi z SageMaker JumpStart, funkcji SageMaker, która przyspiesza proces uczenia maszynowego (ML), oferując wstępnie wytrenowane modele, szablony rozwiązań i przykładowe notatniki. Zapewnia dostęp do szerokiej gamy wstępnie wyszkolonych modeli dla różnych typów problemów, umożliwiając rozpoczęcie zadań ML z solidnymi podstawami. SageMaker JumpStart oferuje także szablony rozwiązań do typowych zastosowań i przykładowe notesy do nauki. Dzięki SageMaker JumpStart możesz skrócić czas i wysiłek wymagany do rozpoczęcia projektów ML dzięki uruchamianiu rozwiązań jednym kliknięciem i kompleksowym zasobom zapewniającym praktyczne doświadczenie ML.
Poniższy zrzut ekranu przedstawia przykład tylko niektórych modeli dostępnych w interfejsie użytkownika SageMaker JumpStart.
Wdróż model
Naszym pierwszym krokiem jest wdrożenie modelu w SageMaker. W tym celu możemy skorzystać z interfejsu użytkownika SageMaker JumpStart lub pakietu SageMaker Python SDK, który udostępnia API, za pomocą którego możemy wdrożyć model w asynchronicznym punkcie końcowym:
Wykonanie tego połączenia może zająć około 10 minut. W tym czasie uruchamiany jest punkt końcowy, kontener wraz z artefaktami modelu jest pobierany do punktu końcowego, ładowana jest konfiguracja modelu z SageMaker JumpStart, następnie asynchroniczny punkt końcowy jest udostępniany poprzez punkt końcowy DNS. Aby mieć pewność, że nasz punkt końcowy będzie mógł skalować się do zera, musimy skonfigurować automatyczne skalowanie na asynchronicznym punkcie końcowym za pomocą automatycznego skalowania aplikacji. Najpierw musisz zarejestrować wariant punktu końcowego za pomocą automatycznego skalowania aplikacji, zdefiniować zasady skalowania, a następnie zastosować zasady skalowania. W tej konfiguracji używamy niestandardowej metryki za pomocą CustomizedMetricSpecification
, Zwane ApproximateBacklogSizePerInstance
, jak pokazano w poniższym kodzie. Aby zapoznać się ze szczegółową listą Amazon Cloud Watch metryki dostępne w punkcie końcowym wnioskowania asynchronicznego, zobacz Monitorowanie za pomocą CloudWatch.
Możesz sprawdzić, czy ta zasada została pomyślnie ustawiona, przechodząc do konsoli SageMaker i wybierając Punkty końcowe dla Wnioskowanie w okienku nawigacji i szukamy punktu końcowego, który właśnie wdrożyliśmy.
Wywołaj asynchroniczny punkt końcowy
Aby wywołać punkt końcowy, musisz umieścić ładunek żądania Usługa Amazon Simple Storage (Amazon S3) i podaj wskaźnik do tego ładunku jako część pliku InvokeEndpointAsync
wniosek. Po wywołaniu SageMaker umieszcza żądanie w kolejce do przetworzenia i w odpowiedzi zwraca identyfikator i lokalizację wyjściową. Po przetworzeniu SageMaker umieszcza wynik w lokalizacji Amazon S3. Opcjonalnie możesz wybrać opcję otrzymywania powiadomień o powodzeniu lub błędach Usługa prostego powiadomienia Amazon (Amazonskie SNS).
SageMaker SDK dla Pythona
Po zakończeniu wdrażania zwróci plik AsyncPredictor
obiekt. Aby wykonać wnioskowanie asynchroniczne, musisz przesłać dane do Amazon S3 i użyć predict_async()
metodę z identyfikatorem URI S3 jako danymi wejściowymi. Zwróci AsyncInferenceResponse
obiekt i możesz sprawdzić wynik za pomocą get_response()
Metoda.
Alternatywnie, jeśli chcesz okresowo sprawdzać wynik i zwracać go po wygenerowaniu, użyj opcji predict()
metoda. Tej drugiej metody używamy w następującym kodzie:
Boto3
Zbadajmy teraz invoke_endpoint_async
metoda z Boto3 sagemaker-runtime
klient. Umożliwia programistom asynchroniczne wywoływanie punktu końcowego SageMaker, zapewniając token do śledzenia postępu i późniejszego pobierania odpowiedzi. Boto3 nie oferuje możliwości oczekiwania na zakończenie wnioskowania asynchronicznego, jak w przypadku zestawu SDK SageMaker Python get_result()
operacja. Dlatego korzystamy z faktu, że Boto3 będzie przechowywać dane wyjściowe wnioskowania w Amazon S3 w formacie response["OutputLocation"]
. Możemy użyć następującej funkcji, aby poczekać, aż plik wnioskowania zostanie zapisany w Amazon S3:
Dzięki tej funkcji możemy teraz wysłać zapytanie do punktu końcowego:
LangChain
LangChain to platforma typu open source uruchomiona w październiku 2022 r. przez Harrisona Chase'a. Upraszcza tworzenie aplikacji wykorzystujących duże modele językowe (LLM), zapewniając integrację z różnymi systemami i źródłami danych. LangChain pozwala na analizę dokumentów, podsumowania, tworzenie chatbotów, analizę kodu i wiele więcej. Zyskał popularność dzięki wkładowi setek deweloperów i znacznemu finansowaniu od firm venture. LangChain umożliwia połączenie LLM ze źródłami zewnętrznymi, umożliwiając tworzenie dynamicznych aplikacji reagujących na dane. Oferuje biblioteki, interfejsy API i dokumentację usprawniające proces programowania.
LangChain udostępnia biblioteki i przykłady wykorzystania punktów końcowych SageMaker w swoim frameworku, ułatwiając korzystanie z modeli ML hostowanych w SageMaker jako „mózgu” łańcucha. Aby dowiedzieć się więcej o integracji LangChain z SageMaker, zapoznaj się z sekcją Punkt końcowy SageMakera w dokumentacji LangChain.
Jednym z ograniczeń obecnej implementacji LangChain jest to, że nie obsługuje ona natywnie asynchronicznych punktów końcowych. Aby użyć asynchronicznego punktu końcowego w LangChain, musimy zdefiniować nową klasę, SagemakerAsyncEndpoint
, który przedłuża SagemakerEndpoint
klasa już dostępna w LangChain. Dodatkowo podajemy następujące informacje:
- Wiadro i prefiks S3, w którym wnioskowanie asynchroniczne będzie przechowywać dane wejściowe (i wyjścia)
- Maksymalna liczba sekund oczekiwania przed upływem limitu czasu
- An
updated _call()
funkcja, za pomocą której można wysłać zapytanie do punktu końcowegoinvoke_endpoint_async()
zamiastinvoke_endpoint()
- Sposób na wybudzenie asynchronicznego punktu końcowego, jeśli znajduje się on w fazie zimnego startu (skalowany do zera)
Aby przejrzeć nowo utworzone SagemakerAsyncEndpoint
, Można sprawdzić sagemaker_async_endpoint.py
filet dostępne na GitHub.
Sprzątać
Po zakończeniu testowania generowania wniosków z punktu końcowego pamiętaj o usunięciu punktu końcowego, aby uniknąć dodatkowych opłat:
Wnioski
Podczas wdrażania dużych modeli podstawowych, takich jak TII Falcon, optymalizacja kosztów ma kluczowe znaczenie. Modele te wymagają wydajnego sprzętu i znacznej pojemności pamięci, co prowadzi do wysokich kosztów infrastruktury. Asynchroniczne wnioskowanie SageMaker, opcja wdrożenia, która przetwarza żądania asynchronicznie, zmniejsza wydatki poprzez skalowanie liczby instancji do zera, gdy nie ma żadnych oczekujących żądań. W tym poście zademonstrowaliśmy, jak wdrożyć duże modele podstawowe SageMaker JumpStart w asynchronicznych punktach końcowych SageMaker. Udostępniliśmy przykłady kodu wykorzystujące SageMaker Python SDK, Boto3 i LangChain, aby zilustrować różne metody wywoływania asynchronicznych punktów końcowych i pobierania wyników. Techniki te umożliwiają programistom i badaczom optymalizację kosztów przy jednoczesnym wykorzystaniu możliwości modeli podstawowych dla zaawansowanych systemów rozumienia języka.
Aby dowiedzieć się więcej o wnioskowaniu asynchronicznym i programie SageMaker JumpStart, zapoznaj się z następującymi postami:
O autorze
Davide Gallitelli jest Specjalistą Architektem Rozwiązań dla AI/ML w regionie EMEA. Ma siedzibę w Brukseli i ściśle współpracuje z klientami w krajach Beneluksu. Jest programistą od najmłodszych lat, zaczął kodować w wieku 7 lat. Zaczął uczyć się AI/ML na uniwersytecie i od tego czasu się w nim zakochał.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Motoryzacja / pojazdy elektryczne, Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- ChartPrime. Podnieś poziom swojej gry handlowej dzięki ChartPrime. Dostęp tutaj.
- Przesunięcia bloków. Modernizacja własności offsetu środowiskowego. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/optimize-deployment-cost-of-amazon-sagemaker-jumpstart-foundation-models-with-amazon-sagemaker-asynchronous-endpoints/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 10
- 100
- 12
- 13
- 15%
- 1M
- 2022
- 25
- 7
- a
- Zdolny
- O nas
- przyspiesza
- Akceptuje
- dostęp
- osiągnięcia
- w poprzek
- działalność
- do tego
- zaawansowany
- Korzyść
- Po
- wiek
- AI
- Modele AI
- AI / ML
- Pozwalać
- pozwala
- już
- również
- Chociaż
- Amazonka
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Amazon Web Services
- ilość
- kwoty
- an
- analiza
- i
- ogłosił
- Inne
- Antropiczny
- każdy
- api
- Pszczoła
- Zastosowanie
- aplikacje
- Aplikuj
- architektura
- SĄ
- argumenty
- Sztuka
- AS
- At
- Uwaga
- przyciąga
- samochód
- dostępny
- średni
- uniknąć
- AWS
- na podstawie
- BE
- stają się
- być
- zanim
- jest
- BEST
- większe
- miliardy
- Bloki
- ciało
- przerwa
- Bruksela
- Budowanie
- wybudowany
- biznes
- ale
- by
- wezwanie
- nazywa
- CAN
- możliwości
- zdolność
- zdolny
- Pojemność
- walizka
- Etui
- łańcuch
- więzy
- wyzwania
- Opłaty
- pościg
- chatbot
- ZOBACZ
- Dodaj
- Wybierając
- klasa
- klient
- dokładnie
- kod
- zimno
- jak
- byliśmy spójni, od początku
- wspólny
- społeczności
- Firmy
- konkurenci
- kompletny
- Zakończony
- Ukończył
- składnik
- wszechstronny
- komputer
- Wizja komputerowa
- pojęcie
- systemu
- połączenie
- Konsola
- Pojemnik
- zawartość
- składki
- Koszty:
- Koszty:
- Stwórz
- stworzony
- tworzenie
- istotny
- Aktualny
- Obecnie
- zwyczaj
- Klientów
- Ciąć
- koszty cięcia
- Cykle
- dane
- czynienia
- Domyślnie
- określić
- wymagania
- wykazać
- rozwijać
- wdrażane
- wdrażanie
- Wdrożenie
- szczegółowe
- dev
- Deweloper
- deweloperzy
- oprogramowania
- DICT
- różne
- Transmitowanie
- Wymiary
- niepełnosprawny
- dns
- do
- dokument
- dokumentacja
- Nie
- zrobić
- na dół
- z powodu
- podczas
- dynamiczny
- e
- łatwiej
- skutecznie
- wysiłek
- więcej
- EMEA
- umożliwiać
- Umożliwia
- Punkt końcowy
- silniki
- dość
- błąd
- szczególnie
- Każdy
- przykład
- przykłady
- Z wyjątkiem
- wyjątek
- ekscytujący
- wydatki
- doświadczenie
- odkryj
- narażony
- rozciąga się
- rozległy
- zewnętrzny
- dodatkowy
- Twarz
- fakt
- Upadły
- fałszywy
- Cecha
- filet
- firmy
- i terminów, a
- następujący
- W razie zamówieenia projektu
- Fundacja
- cztery
- Framework
- od
- funkcjonować
- Finansowanie
- zdobyte
- wygenerowane
- generujący
- generacja
- generatywny
- generatywna sztuczna inteligencja
- GitHub
- dobry
- GPU
- wspaniały
- Rozwój
- uchwyt
- sprzęt komputerowy
- Have
- mający
- he
- pomoc
- tutaj
- Wysoki
- hostowane
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- Setki
- setki milionów
- idealny
- identyfikator
- if
- ilustruje
- obraz
- realizacja
- importować
- in
- Włącznie z
- Przybywający
- wskazuje
- przemysłowa
- Informacja
- Infrastruktura
- Innowacja
- wkład
- Wejścia
- przykład
- zamiast
- Integruje się
- integracje
- Inteligentny
- odsetki
- Interfejs
- najnowszych
- przedstawiać
- inwestycja
- IT
- JEGO
- podróż
- jpg
- json
- właśnie
- znany
- język
- duży
- Utajenie
- później
- uruchomiona
- uruchamia
- prowadzący
- UCZYĆ SIĘ
- nauka
- najmniej
- biblioteki
- lubić
- Limity
- Lista
- załadować
- lokalizacja
- długo
- poszukuje
- Partia
- miłość
- niski
- maszyna
- uczenie maszynowe
- zrobiony
- Główny
- Utrzymywanie
- robić
- Dokonywanie
- wiele
- max
- maksymalny
- Pamięć
- metoda
- metody
- metryczny
- Metryka
- miliony
- minut
- ML
- model
- modele
- jeszcze
- Nazwa
- Naturalny
- Przetwarzanie języka naturalnego
- żeglujący
- Nawigacja
- Potrzebować
- Nowości
- nowo
- Następny
- nlp
- Nie
- notatnik
- powiadomienie
- Powiadomienia
- już dziś
- numer
- przedmiot
- październik
- of
- oferta
- oferuje
- Oferty
- często
- on
- ONE
- tylko
- open source
- działanie
- Optymalizacja
- optymalizacji
- Option
- Opcje
- or
- ludzkiej,
- na zewnątrz
- wydajność
- chleb
- parametry
- część
- szczególnie
- wzmacniacz
- w oczekiwaniu
- wykonać
- wykonuje
- obraz
- Miejsce
- Miejsca
- plato
- Analiza danych Platona
- PlatoDane
- PoC
- polityka
- popularność
- możliwy
- Post
- Wiadomości
- potencjalnie
- power
- mocny
- Praktyczny
- przepowiednia
- Urządzenie prognozujące
- Podgląd
- prywatny
- Problem
- wygląda tak
- procesów
- przetwarzanie
- Postęp
- projektowanie
- dowód
- dowód koncepcji
- Udowodnij
- zapewniać
- pod warunkiem,
- zapewnia
- że
- Python
- płomień
- zapytania
- pytanie
- podnieść
- zasięg
- nośny
- Czytaj
- gotowy
- w czasie rzeczywistym
- otrzymać
- zmniejszyć
- zmniejsza
- region
- zarejestrować
- pamiętać
- usunąć
- otrzymuje
- zażądać
- wywołań
- wymagać
- wymagany
- wymagania
- Wymaga
- Badacze
- Zasób
- Zasoby
- odpowiedź
- dalsze
- Efekt
- powrót
- powraca
- przeglądu
- zrewolucjonizował
- ryzykować
- ROI
- run
- bieganie
- sagemaker
- oszczędność
- skalowalny
- Skala
- skalowaniem
- Sdk
- druga
- sekund
- SAMEGO SIEBIE
- służyć
- Bezserwerowe
- usługa
- Usługi
- Sesje
- zestaw
- Short
- pokazane
- Targi
- znaczący
- podobny
- Prosty
- ponieważ
- pojedynczy
- sytuacje
- Rozmiar
- rozmiary
- solidny
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- kilka
- Źródła
- specjalista
- uprzedzony
- Stabilność
- stabilny
- początek
- rozpoczęty
- Startowy
- Stan
- Ewolucja krok po kroku
- Stop
- przechowywanie
- sklep
- bezpośredni
- opływowy
- znaczny
- sukces
- Z powodzeniem
- taki
- wsparcie
- podpory
- pewnie
- przewyższać
- systemy
- Brać
- cel
- zadania
- Techniki
- Technologia
- Szablony
- REGULAMIN
- Testowanie
- Podziękowania
- że
- Połączenia
- Państwo
- ich
- Im
- następnie
- Tam.
- a tym samym
- w związku z tym
- Te
- one
- to
- w tym roku
- trzy
- Przez
- poprzez
- czas
- czasy
- wyczucie czasu
- do
- razem
- żeton
- także
- Śledzenie
- przeszkolony
- Tłumaczenie
- prawdziwy
- próbować
- typy
- ui
- dla
- zrozumienie
- uniwersytet
- aż do
- na
- us
- posługiwać się
- Użytkownik
- Interfejs użytkownika
- za pomocą
- zazwyczaj
- wartość
- Wariant
- różnorodny
- Naprawiono
- przedsięwzięcie
- zweryfikować
- początku.
- przez
- wizja
- czekać
- Czekanie
- Budzić
- Obudzić się
- chcieć
- była
- Droga..
- sposoby
- we
- sieć
- usługi internetowe
- jeśli chodzi o komunikację i motywację
- czy
- który
- Podczas
- KIM
- szeroki
- Szeroki zasięg
- będzie
- w
- bez
- Wygrał
- działa
- na calym swiecie
- by
- napisany
- rok
- You
- młody
- Twój
- siebie
- zefirnet
- zero