Zdjęcie autora
Hugging Face opracował nowy format serializacji o nazwie Bezpieczniki, mające na celu uproszczenie i usprawnienie przechowywania i ładowania dużych i złożonych tensorów. Tensory są podstawową strukturą danych wykorzystywaną w głębokim uczeniu się, a ich rozmiar może stanowić wyzwanie, jeśli chodzi o wydajność.
Safetensory wykorzystują kombinację wydajnych algorytmów serializacji i kompresji, aby zmniejszyć rozmiar dużych tensorów, dzięki czemu są szybsze i wydajniejsze niż inne formaty serializacji, takie jak marynata. Oznacza to, że Safetensors jest 76.6 razy szybszy na procesorze i 2 razy szybszy na GPU w porównaniu z tradycyjnym formatem serializacji PyTorch, pytorch_model.bin z model.safetensors. Wymeldować się Porównanie prędkości.
Łatwy w użyciu
Safetensory mają prosty i intuicyjny interfejs API do serializacji i deserializacji tensorów w Pythonie. Oznacza to, że programiści mogą skupić się na budowaniu modeli głębokiego uczenia się, zamiast tracić czas na serializację i deserializację.
Kompatybilność między platformami
Możesz serializować w Pythonie i wygodnie ładować powstałe pliki w różnych językach programowania i platformach, takich jak C++, Java i JavaScript. Pozwala to na bezproblemowe udostępnianie modeli w różnych środowiskach programistycznych.
Prędkość
Safetensors jest zoptymalizowany pod kątem szybkości i może skutecznie obsługiwać serializację i deserializację dużych tensorów. W rezultacie jest to doskonały wybór dla aplikacji korzystających z dużych modeli językowych.
Optymalizacja rozmiaru
Wykorzystuje połączenie skutecznych algorytmów serializacji i kompresji, aby zmniejszyć rozmiar dużych tensorów, co skutkuje szybszą i bardziej wydajną wydajnością w porównaniu z innymi formatami serializacji, takimi jak pikle.
Zabezpieczać
Aby zapobiec uszkodzeniom podczas przechowywania lub przesyłania serializowanych tensorów, Safetensors wykorzystuje mechanizm sum kontrolnych. Gwarantuje to dodatkową warstwę bezpieczeństwa, zapewniając, że wszystkie dane przechowywane w Safetensorach są dokładne i niezawodne. Co więcej, zapobiega Ataki DOS-owe.
Powolne ładowanie
Podczas pracy w ustawieniach rozproszonych z wieloma węzłami lub procesorami graficznymi warto załadować tylko część tensorów do każdego modelu. BLOOM wykorzystuje ten format do załadowania modelu na 8 procesorów graficznych w zaledwie 45 sekund, w porównaniu do zwykłych wag PyTorch, które zajmowały 10 minut.
W tej sekcji przyjrzymy się API safetensors oraz sposobom zapisywania i ładowania plików tensorowych.
Możemy po prostu zainstalować bezpieczniki za pomocą menedżera pip:
pip install safetensors
Posłużymy się przykładem z Wspólne tensory palnika zbudować prostą sieć neuronową i zapisać model przy użyciu API safetensors.torch dla PyTorch.
from torch import nn class Model(nn.Module): def __init__(self): super().__init__() self.a = nn.Linear(100, 100) self.b = self.a def forward(self, x): return self.b(self.a(x)) model = Model()
print(model.state_dict())
Jak widać udało nam się stworzyć model.
OrderedDict([('a.weight', tensor([[-0.0913, 0.0470, -0.0209, ..., -0.0540, -0.0575, -0.0679], [ 0.0268, 0.0765, 0.0952, ..., -0.0616, 0.0146, -0.0343], [ 0.0216, 0.0444, -0.0347, ..., -0.0546, 0.0036, -0.0454], ...,
Teraz zapiszemy model podając obiekt model i nazwę pliku. Następnie załadujemy zapisany plik do obiektu model utworzonego przy użyciu nn.Module.
from safetensors.torch import load_model, save_model save_model(model, "model.safetensors") load_model(model, "model.safetensors")
print(model.state_dict())
OrderedDict([('a.weight', tensor([[-0.0913, 0.0470, -0.0209, ..., -0.0540, -0.0575, -0.0679], [ 0.0268, 0.0765, 0.0952, ..., -0.0616, 0.0146, -0.0343], [ 0.0216, 0.0444, -0.0347, ..., -0.0546, 0.0036, -0.0454], ...,
W drugim przykładzie spróbujemy zapisać tensor utworzony za pomocą torch.zeros. W tym celu użyjemy funkcji save_file.
import torch
from safetensors.torch import save_file, load_file tensors = { "weight1": torch.zeros((1024, 1024)), "weight2": torch.zeros((1024, 1024))
}
save_file(tensors, "new_model.safetensors")
Aby załadować tensory, użyjemy funkcji load_file.
load_file("new_model.safetensors")
{'weight1': tensor([[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]]), 'weight2': tensor([[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]])}
Interfejs API Safetensors jest dostępny dla Pytorch, Tensorflow, PaddlePaddle, Flax i Numpy. Można to zrozumieć czytając Bezpieczniki dokumentacja.
Obraz z API latarki
W skrócie, sejftensory to nowy sposób przechowywania dużych tensorów wykorzystywanych w aplikacjach głębokiego uczenia się. W porównaniu do innych technik oferuje szybsze, bardziej wydajne i przyjazne dla użytkownika funkcje. Dodatkowo zapewnia poufność i bezpieczeństwo danych, obsługując różne języki i platformy programowania. Wykorzystując Safetensory, inżynierowie zajmujący się uczeniem maszynowym mogą zoptymalizować swój czas i skoncentrować się na opracowywaniu doskonałych modeli.
Gorąco polecam stosowanie Safetensorów w Twoich projektach. Wiele czołowych firm zajmujących się sztuczną inteligencją, takich jak Hugging Face, EleutherAI i StabilityAI, wykorzystuje Safetensors w swoich projektach.
Numer Referencyjny
Abid Ali Awan (@ 1abidaliawan) jest certyfikowanym specjalistą ds. analityków danych, który uwielbia tworzyć modele uczenia maszynowego. Obecnie koncentruje się na tworzeniu treści i pisaniu blogów technicznych na temat technologii uczenia maszynowego i data science. Abid posiada tytuł magistra zarządzania technologią oraz tytuł licencjata inżynierii telekomunikacyjnej. Jego wizją jest zbudowanie produktu AI z wykorzystaniem grafowej sieci neuronowej dla studentów zmagających się z chorobami psychicznymi.
- 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.
- Przesunięcia bloków. Modernizacja własności offsetu środowiskowego. Dostęp tutaj.
- Źródło: https://www.kdnuggets.com/2023/07/introduction-safetensors.html?utm_source=rss&utm_medium=rss&utm_campaign=introduction-to-safetensors
- :ma
- :Jest
- 10
- 100
- 11
- 13
- 32
- 7
- 8
- a
- dokładny
- w poprzek
- w dodatku
- do tego
- Po
- AI
- wymierzony
- Algorytmy
- Wszystkie kategorie
- pozwala
- an
- i
- każdy
- api
- aplikacje
- SĄ
- AS
- At
- dostępny
- Mieszanka
- blogi
- Kwitnąć
- budować
- Budowanie
- by
- C + +
- nazywa
- CAN
- Dyplomowani
- wyzwania
- ZOBACZ
- wybór
- klasa
- połączenie
- byliśmy spójni, od początku
- Firmy
- w porównaniu
- kompleks
- koncentrować się
- poufność
- zawartość
- Tworzenie treści
- Korupcja
- CPU
- stworzony
- tworzenie
- Obecnie
- dane
- nauka danych
- naukowiec danych
- spadek
- głęboko
- głęboka nauka
- Stopień
- niezawodny
- rozwinięty
- deweloperzy
- rozwijanie
- różne
- dystrybuowane
- dokumentacja
- podczas
- każdy
- Efektywne
- efektywność
- wydajny
- skutecznie
- Inżynieria
- Inżynierowie
- zapewnia
- zapewnienie
- środowiska
- przykład
- doskonała
- Twarz
- szybciej
- Korzyści
- filet
- Akta
- Skupiać
- skupienie
- W razie zamówieenia projektu
- format
- od
- funkcjonować
- GPU
- GPU
- wykres
- Wykres sieci neuronowej
- gwarancji
- uchwyt
- Have
- he
- pomocny
- wysoko
- jego
- posiada
- W jaki sposób
- HTTPS
- choroba
- importować
- in
- zainstalować
- zamiast
- najnowszych
- Wprowadzenie
- intuicyjny
- IT
- Java
- JAVASCRIPT
- właśnie
- Knuggety
- język
- Języki
- duży
- warstwa
- nauka
- uczących się inżynierów
- lubić
- załadować
- załadunek
- Popatrz
- kocha
- maszyna
- uczenie maszynowe
- Dokonywanie
- i konserwacjami
- kierownik
- wiele
- mistrz
- znaczy
- mechanizm
- psychika
- Choroba umysłowa
- minuty
- model
- modele
- moduł
- jeszcze
- bardziej wydajny
- wielokrotność
- Nazwa
- sieć
- Nerwowy
- sieci neuronowe
- Nowości
- węzły
- tępy
- przedmiot
- of
- Oferty
- on
- tylko
- Optymalizacja
- zoptymalizowane
- or
- Inne
- na zewnątrz
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- Platformy
- plato
- Analiza danych Platona
- PlatoDane
- zapobiec
- zapobiega
- pierwotny
- Produkt
- profesjonalny
- Programowanie
- języki programowania
- projektowanie
- że
- Python
- płomień
- Czytający
- polecić
- zmniejszyć
- regularny
- dalsze
- wynikły
- powrót
- s
- Bezpieczeństwo
- Zapisz
- nauka
- Naukowiec
- bezszwowy
- druga
- sekund
- Sekcja
- bezpieczeństwo
- widzieć
- SAMEGO SIEBIE
- w panelu ustawień
- shared
- dzielenie
- Short
- Prosty
- upraszczanie
- po prostu
- Rozmiar
- prędkość
- Spędzanie
- przechowywanie
- sklep
- przechowywany
- usprawnienie
- Struktura
- Walka
- Studenci
- Z powodzeniem
- taki
- przełożony
- Wspierający
- Techniczny
- Techniki
- Technologies
- Technologia
- telekomunikacja
- tensorflow
- niż
- że
- Połączenia
- ich
- to
- czas
- do
- wziął
- Top
- pochodnia
- tradycyjny
- przenieść
- próbować
- zrozumieć
- posługiwać się
- używany
- łatwy w obsłudze
- zastosowania
- za pomocą
- wykorzystać
- wykorzystuje
- Wykorzystując
- różnorodny
- wizja
- Droga..
- we
- waga
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- KIM
- będzie
- w
- pracujący
- pisanie
- X
- ty
- Twój
- zefirnet