Llama Mety: Więcej niż model językowy

Ewolucja Llamy: Kwestionowanie Status Quo

Kiedy Llama po raz pierwszy się pojawiła, rzuciła wyzwanie dominacji dużych, zamkniętych modeli LLM od gigantów technologicznych. Meta AI przyjęła strategię, która koncentrowała się na mniejszych, bardziej uogólnionych modelach. Podstawową ideą było to, że te mniejsze modele, wytrenowane na ogromnej liczbie tokenów, byłyby łatwiejsze i bardziej opłacalne do ponownego trenowania i dostrajania do specjalistycznych zadań. Takie podejście ostro kontrastowało z trendem budowania coraz większych, zasobochłonnych modeli.

Jednak ‘otwartoźródłowy’ charakter Llamy jest przedmiotem debaty. Licencja Meta Llama zawiera specyficzne ograniczenia dotyczące komercyjnego i akceptowalnego użytkowania. Chociaż te ograniczenia są prawdopodobnie uzasadnione, są sprzeczne z ścisłą definicją open source określoną przez Open Source Initiative. Doprowadziło to do ciągłych dyskusji na temat tego, czy Llama naprawdę kwalifikuje się jako open source.

Nawigacja po wyzwaniach prawnych: Obawy dotyczące praw autorskich

Rozwój Llamy nie obył się bez przeszkód prawnych. W 2023 roku Meta stanęła w obliczu dwóch pozwów zbiorowych od autorów, którzy twierdzili, że ich książki chronione prawem autorskim zostały wykorzystane bez pozwolenia do trenowania Llamy. Te pozwy podkreślają złożone kwestie praw autorskich dotyczące danych treningowych używanych do tworzenia dużych modeli językowych. Jak dotąd sądy nie były zbyt przychylne roszczeniom autorów.

Rozszerzanie możliwości: Rosnąca rodzina modeli Llamy

Od końca 2023 roku Meta AI znacznie rozszerzyła rodzinę Llama. Modele nie są już ograniczone do interakcji tekstowych. Obecny ekosystem Llama obejmuje modele multimodalne zdolne do przetwarzania zarówno danych tekstowych, jak i wizualnych, a także modele przeznaczone do interpretacji kodu i integracji narzędzi. Ponadto Meta wprowadziła komponenty bezpieczeństwa, znane jako Llama Guard, w celu identyfikacji i łagodzenia potencjalnych zagrożeń i ataków; są one zaprojektowane jako część ogólnego frameworku o nazwie ‘Llama Stack’.

Oto głębsze spojrzenie na niektóre z kluczowych modeli w rodzinie Llama (skrócone z kart modeli Meta AI):

Llama Guard 1: Zabezpieczanie interakcji

Llama Guard 1 to model o 7 miliardach parametrów oparty na Llama 2. Służy jako zabezpieczenie wejścia-wyjścia, klasyfikując treść zarówno w zapytaniach użytkownika (klasyfikacja zapytań), jak i odpowiedziach LLM (klasyfikacja odpowiedzi). Ten model pomaga zapewnić bezpieczniejsze i bardziej odpowiedzialne interakcje z systemami opartymi na Llama.

Llama Guard wykorzystujesześciopoziomową taksonomię do kategoryzowania potencjalnych szkód:

  • Violence & Hate (Przemoc i nienawiść): Treści promujące przemoc lub nienawiść wobec osób lub grup.
  • Sexual Content (Treści seksualne): Materiały o charakterze seksualnym lub treści, które wykorzystują, znęcają się lub zagrażają dzieciom.
  • Guns & Illegal Weapons (Broń i nielegalna broń): Treści związane z nielegalną sprzedażą, używaniem lub modyfikacją broni palnej i innej broni.
  • Regulated or Controlled Substances (Substancje regulowane lub kontrolowane): Treści promujące nielegalne używanie lub sprzedaż narkotyków, alkoholu lub tytoniu.
  • Suicide & Self Harm (Samobójstwo i samookaleczenie): Treści, które zachęcają lub dostarczają instrukcji dotyczących samobójstwa lub samookaleczenia.
  • Criminal Planning (Planowanie przestępcze): Treści, które ułatwiają lub planują nielegalne działania.

Code Llama 70B: Triada biegłości w kodowaniu

Code Llama 70B oznaczała znaczące rozszerzenie możliwości kodowania Llamy. Ten model jest dostępny w trzech odrębnych wariantach:

  • Code Llama: Podstawowy model przeznaczony do ogólnej syntezy i rozumienia kodu. Może generować kod, wyjaśniać funkcjonalność kodu i pomagać w debugowaniu.
  • Code Llama – Python: Specjalistyczna wersja dostosowana do programowania w Pythonie. Ten model jest zoptymalizowany pod kątem generowania i rozumienia kodu Pythona, co czyni go cennym narzędziem dla programistów Pythona.
  • Code Llama – Instruct: Wariant skupiony na wykonywaniu instrukcji i zapewnieniu bezpieczniejszego wdrażania. Ten model jest szczególnie przydatny do generowania kodu, który jest zgodny z określonymi wytycznymi i protokołami bezpieczeństwa.

Wszystkie trzy warianty są dostępne w różnych rozmiarach: 7 miliardów, 13 miliardów, 34 miliardy i 70 miliardów parametrów. Code Llama i jej warianty są przeznaczone zarówno do użytku komercyjnego, jak i badawczego, głównie w języku angielskim i powiązanych językach programowania. Istnieje wiele dowodów sugerujących, że Code Llama posiada silne zdolności kodowania.

Llama Guard 2: Ulepszona klasyfikacja bezpieczeństwa

Llama Guard 2 opiera się na fundamencie swojego poprzednika, oferując ulepszone możliwości klasyfikacji bezpieczeństwa. Ten model o 8 miliardach parametrów, oparty na Llama 3, jest wytrenowany do przewidywania etykiet bezpieczeństwa w 11 kategoriach, zgodnie z taksonomią zagrożeń MLCommons.

Kategorie zagrożeń objęte przez Llama Guard 2 obejmują:

  • S1: Violent Crimes (Przestępstwa z użyciem przemocy): Treści związane z brutalnymi czynami przestępczymi.
  • S2: Non-Violent Crimes (Przestępstwa bez użycia przemocy): Treści związane z przestępstwami bez użycia przemocy.
  • S3: Sex-Related Crimes (Przestępstwa na tle seksualnym): Treści dotyczące przestępstw seksualnych.
  • S4: Child Sexual Exploitation (Wykorzystywanie seksualne dzieci): Treści, które wykorzystują, znęcają się lub zagrażają dzieciom seksualnie.
  • S5: Specialized Advice (Specjalistyczne porady): Niewykwalifikowane lub wprowadzające w błąd porady w specjalistycznych dziedzinach (np. medycyna, prawo, finanse).
  • S6: Privacy (Prywatność): Treści, które naruszają prywatność lub ujawniają dane osobowe bez zgody.
  • S7: Intellectual Property (Własność intelektualna): Treści, które naruszają prawa własności intelektualnej.
  • S8: Indiscriminate Weapons (Broń masowego rażenia): Treści związane z bronią, która powoduje rozległe i masowe szkody.
  • S9: Hate (Nienawiść): Treści wyrażające nienawiść lub uprzedzenia wobec osób lub grup.
  • S10: Suicide & Self-Harm (Samobójstwo i samookaleczenie): Treści promujące lub dostarczające instrukcji dotyczących samobójstwa lub samookaleczenia.
  • S11: Sexual Content (Treści seksualne): Materiały o charakterze seksualnym.

Meta Llama 3: Wszechstronność w dialogu

Meta Llama 3 jest oferowana w dwóch rozmiarach, 8 miliardów i 70 miliardów parametrów, z wariantami zarówno wstępnie wytrenowanymi, jak i dostrojonymi instrukcjami. Modele dostrojone instrukcjami są specjalnie zoptymalizowane pod kątem aplikacji opartych na dialogu, co czyni je odpowiednimi dla chatbotów i systemów konwersacyjnej sztucznej inteligencji.

Prompt Guard: Obrona przed złośliwymi danymi wejściowymi

Prompt Guard to model klasyfikatora zaprojektowany do wykrywania złośliwych zapytań, w tym jailbreaków (prób obejścia ograniczeń bezpieczeństwa) i wstrzyknięć zapytań (prób manipulowania danymi wyjściowymi modelu za pomocą spreparowanych danych wejściowych). Meta AI zaleca dostrojenie Prompt Guard za pomocą danych specyficznych dla aplikacji, aby osiągnąć optymalną wydajność.

W przeciwieństwie do Llama Guard, Prompt Guard nie wymaga określonej struktury zapytania. Działa na danych wejściowych w postaci ciągu znaków, klasyfikując je jako bezpieczne lub niebezpieczne (na dwóch różnych poziomach dotkliwości). Jest to model BERT, który generuje wyłącznie etykiety.

Llama Guard 3: Multimodalne i wielojęzyczne bezpieczeństwo

Llama Guard 3 jest dostępny w trzech wersjach: Llama Guard 3 1B, Llama Guard 3 8B i Llama Guard 3 11B-Vision. Pierwsze dwa to modele tylko tekstowe, podczas gdy trzeci zawiera możliwości rozumienia obrazu modelu Llama 3.2 11B-Vision. Wszystkie wersje są wielojęzyczne (dla zapytań tylko tekstowych) i są zgodne z kategoriami zagrożeń zdefiniowanymi przez konsorcjum MLCommons.

Llama Guard 3 8B może być również używany dla kategorii S14, Code Interpreter Abuse. Należy zauważyć, że model Llama Guard 3 1B nie jest zoptymalizowany pod kątem tej konkretnej kategorii.

Kategorie zagrożeń, rozszerzające te z Llama Guard 2, to:

  • S1: Violent Crimes (Przestępstwa z użyciem przemocy)
  • S2: Non-Violent Crimes (Przestępstwa bez użycia przemocy)
  • S3: Sex-Related Crimes (Przestępstwa na tle seksualnym)
  • S4: Child Sexual Exploitation (Wykorzystywanie seksualne dzieci)
  • S5: Defamation (Zniesławienie)
  • S6: Specialized Advice (Specjalistyczne porady)
  • S7: Privacy (Prywatność)
  • S8: Intellectual Property (Własność intelektualna)
  • S9: Indiscriminate Weapons (Broń masowego rażenia)
  • S10: Hate (Nienawiść)
  • S11: Suicide & Self-Harm (Samobójstwo i samookaleczenie)
  • S12: Sexual Content (Treści seksualne)
  • S13: Elections (Wybory)
  • S14: Code Interpreter Abuse (Nadużycie interpretera kodu)

Meta Llama 3.1: Wielojęzyczne modele generatywne

Kolekcja Meta Llama 3.1 obejmuje wielojęzyczne duże modele językowe, w tym wstępnie wytrenowane i dostrojone instrukcjami modele generatywne w rozmiarach 8 miliardów, 70 miliardów i 405 miliardów parametrów (wejście tekstowe, wyjście tekstowe).

Obsługiwane języki to: angielski, niemiecki, francuski, włoski, portugalski, hindi, hiszpański i tajski.

Meta Llama 3.2: Ulepszone możliwości dialogowe

Kolekcja Llama 3.2 zawiera wielojęzyczne duże modele językowe, obejmujące wstępnie wytrenowane i dostrojone instrukcjami modele generatywne w rozmiarach 1 miliarda i 3 miliardów parametrów (wejście tekstowe, wyjście tekstowe). Dostępne są również skwantowane wersje tych modeli. Modele Llama 3.2 dostrojone instrukcjami, tylko tekstowe, są zoptymalizowane pod kątem wielojęzycznego dialogu, doskonale sprawdzając się w zadaniach takich jak agentic retrieval i podsumowywanie. Modele 1B i 3B są mniejszymi, mniej wydajnymi pochodnymi Llama 3.1.

Oficjalnie obsługiwane języki to: angielski, niemiecki, francuski, włoski, portugalski, hindi, hiszpański i tajski. Jednak Llama 3.2 została wytrenowana na szerszym zakresie języków niż te osiem.

Llama 3.2-Vision: Rozumowanie i rozumienie obrazu

Kolekcja Llama 3.2-Vision wprowadza multimodalne duże modele językowe. Te modele są wstępnie wytrenowane i dostrojone instrukcjami do rozumowania obrazu, dostępne w rozmiarach 11 miliardów i 90 miliardów parametrów (wejście tekstowe i obrazowe, wyjście tekstowe). Modele dostrojone instrukcjami są zoptymalizowane pod kątem rozpoznawania wizualnego, rozumowania obrazu, tworzenia napisów i odpowiadania na ogólne pytania dotyczące obrazów.

W przypadku zadań tylko tekstowych oficjalnie obsługiwane języki to: angielski, niemiecki, francuski, włoski, portugalski, hindi, hiszpański i tajski. Llama 3.2 została wytrenowana na szerszym zestawie języków, ale w przypadku aplikacji obraz+tekst jedynym obsługiwanym językiem jest angielski.

Meta Llama 3.3: Potężny model 70B

Wielojęzyczny duży model językowy Meta Llama 3.3 to wstępnie wytrenowany i dostrojony instrukcjami model generatywny z 70 miliardami parametrów (wejście tekstowe, wyjście tekstowe).

Obsługiwane języki: angielski, niemiecki, francuski, włoski, portugalski, hindi, hiszpański i tajski.

Należy pamiętać, że duże modele językowe, w tym Llama 3.2, nie są przeznaczone do samodzielnego wdrażania. Powinny być zintegrowane z kompleksowym systemem AI z odpowiednimi zabezpieczeniami. Oczekuje się, że programiści wdrożą zabezpieczenia systemowe, zwłaszcza podczas budowania systemów agentowych.

Llama 3.3, Llama 3.2 (modele tylko tekstowe) i Llama 3.1 zawierają wbudowaną obsługę następujących narzędzi:

  • Brave Search: Wywołanie narzędzia do wykonywania wyszukiwań w Internecie.
  • Wolfram Alpha: Wywołanie narzędzia do wykonywania złożonych obliczeń matematycznych.
  • Code Interpreter: Wywołanie narzędzia umożliwiające modelowi generowanie kodu Pythona.

Uwaga: Modele Llama 3.2 vision nie obsługują wywoływania narzędzi z danymi wejściowymi tekst+obraz.

Llama Stack: Ujednolicony framework

Sama liczba modeli Llama może być przytłaczająca. Aby uprościć proces wyboru i integracji, Meta oferuje Llama Stack. Ten framework kładzie nacisk na modele Llama, ale zapewnia również adaptery do powiązanych możliwości, takich jak wektorowe bazy danych do generowania rozszerzonego o pobieranie (RAG).

Llama Stack obsługuje obecnie zestawy SDK w językach Python, Swift, Node i Kotlin. Oferuje różne dystrybucje, w tym:

  • Dystrybucja lokalna (za pomocą Ollama): Do lokalnego programowania i testowania.
  • Dystrybucje na urządzeniu (iOS i Android): Do wdrażania modeli Llama na urządzeniach mobilnych.
  • Dystrybucje dla GPU: Do wykorzystania mocy GPU w celu szybszego przetwarzania.
  • Dystrybucje hostowane zdalnie (Together i Fireworks): Do uzyskiwania dostępu do modeli Llama za pośrednictwem usług opartych na chmurze.

Podstawową koncepcją Llama Stack jest umożliwienie programistom tworzenia aplikacji lokalnie, a następnie łatwego przejścia do środowiska produkcyjnego. Zapewnia nawet interaktywny Llama Stack Playground do lokalnego programowania w oparciu o zdalny Llama Stack.

Uruchamianie modeli Llama: Wszechstronne opcje wdrażania

Modele Llama można wdrażać na różnych platformach, w tym Linux, Windows, macOS i w chmurze. Skwantowane modele Llama, takie jak Llama 3.2 i Llama 3.2-Vision, mogą działać efektywnie na nowoczesnym sprzęcie, nawet na laptopach takich jak M4 Pro MacBook Pro, przy użyciu narzędzi takich jak Ollama.

Meta udostępnia kompleksowe przewodniki dotyczące wdrażania i używania modeli Llama. Ponadto dostępne są przewodniki integracji dla popularnych frameworków, takich jak LangChain i LlamaIndex.

Podsumowując, Llama przestała być tylko prostym modelem językowym, a stała się multimodalnym frameworkiem AI z funkcjami bezpieczeństwa, generowaniem kodu i obsługą wielu języków. System Meta umożliwia wdrażanie w wielu miejscach, ale kwestie prawne związane z danymi treningowymi i spory dotyczące tego, czy Llama jest open source, trwają.