Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Usługi internetowe Amazona

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Usługi internetowe Amazona

Dziś z radością ogłaszamy, że Mixtral-8x7B model dużego języka (LLM), opracowany przez Mistral AI, jest dostępny dla klientów za pośrednictwem Amazon SageMaker JumpStart wdrożyć jednym kliknięciem, aby uruchomić wnioskowanie. Mixtral-8x7B LLM to wstępnie wytrenowana, rzadka mieszanka modelu eksperckiego, oparta na 7-miliardowym szkielecie parametrów z ośmioma ekspertami na warstwę wyprzedzającą. Możesz wypróbować ten model za pomocą SageMaker JumpStart, centrum uczenia maszynowego (ML), które zapewnia dostęp do algorytmów i modeli, dzięki czemu możesz szybko rozpocząć korzystanie z ML. W tym poście opisujemy, jak odkryć i wdrożyć model Mixtral-8x7B.

Co to jest Mixtral-8x7B

Mixtral-8x7B to podstawowy model opracowany przez Mistral AI, obsługujący tekst w języku angielskim, francuskim, niemieckim, włoskim i hiszpańskim, z możliwością generowania kodu. Obsługuje różne przypadki użycia, takie jak podsumowywanie tekstu, klasyfikacja, uzupełnianie tekstu i uzupełnianie kodu. Zachowuje się dobrze w trybie czatu. Aby zademonstrować łatwość dostosowywania modelu, Mistral AI wypuściło także model instrukcji Mixtral-8x7B do zastosowań w czacie, dopracowany przy użyciu różnych publicznie dostępnych zbiorów danych konwersacji. Modele Mixtral mają dużą długość kontekstu wynoszącą do 32,000 XNUMX tokenów.

Mixtral-8x7B zapewnia znaczną poprawę wydajności w porównaniu z poprzednimi, najnowocześniejszymi modelami. Jego rzadka mieszanka architektury eksperckiej umożliwia osiągnięcie lepszych wyników wydajności w 9 z 12 testów porównawczych przetwarzania języka naturalnego (NLP) przetestowanych przez Sztuczna inteligencja Mistrala. Mixtral dorównuje lub przewyższa wydajnością modele nawet 10-krotnie większe. Wykorzystując jedynie ułamek parametrów na token, osiąga większą prędkość wnioskowania i niższe koszty obliczeń w porównaniu z gęstymi modelami o równoważnych rozmiarach — na przykład z 46.7 miliardami parametrów ogółem, ale tylko 12.9 miliarda wykorzystywanych na token. To połączenie wysokiej wydajności, obsługi wielu języków i wydajności obliczeniowej sprawia, że ​​Mixtral-8x7B jest atrakcyjnym wyborem dla zastosowań NLP.

Model udostępniany jest na liberalnej licencji Apache 2.0, do wykorzystania bez ograniczeń.

Co to jest SageMaker JumpStart

Dzięki SageMaker JumpStart praktycy ML mogą wybierać z rosnącej listy najskuteczniejszych modeli fundamentów. Praktycy ML mogą wdrażać modele podstawowe w dedykowanych Amazon Sage Maker instancje w izolowanym środowisku sieciowym i dostosowywać modele za pomocą programu SageMaker do szkolenia modeli i wdrażania.

Możesz teraz odkryć i wdrożyć Mixtral-8x7B za pomocą kilku kliknięć Studio Amazon SageMaker lub programowo za pośrednictwem pakietu SageMaker Python SDK, co pozwala uzyskać wydajność modelu i elementy sterujące MLOps za pomocą funkcji SageMaker, takich jak Rurociągi Amazon SageMaker, Debuger Amazon SageMakerlub dzienniki kontenerów. Model jest wdrażany w bezpiecznym środowisku AWS i pod kontrolą VPC, co pomaga zapewnić bezpieczeństwo danych.

Odkryj modele

Dostęp do modeli podstawowych Mixtral-8x7B można uzyskać poprzez SageMaker JumpStart w interfejsie użytkownika SageMaker Studio i SageMaker Python SDK. W tej sekcji omówimy, jak odkryć modele w SageMaker Studio.

SageMaker Studio to zintegrowane środowisko programistyczne (IDE) zapewniające pojedynczy internetowy interfejs wizualny, w którym można uzyskać dostęp do specjalnie zaprojektowanych narzędzi umożliwiających wykonanie wszystkich etapów programowania ML, od przygotowania danych po budowanie, trenowanie i wdrażanie modeli ML. Aby uzyskać więcej informacji na temat rozpoczęcia i konfiguracji SageMaker Studio, zobacz Studio Amazon SageMaker.

W SageMaker Studio możesz uzyskać dostęp do SageMaker JumpStart, wybierając Szybki start w okienku nawigacji.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Na stronie docelowej SageMaker JumpStart możesz wyszukać „Mixtral” w polu wyszukiwania. Zobaczysz wyniki wyszukiwania pokazujące Mixtral 8x7B i Mixtral 8x7B Instruct.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Możesz wybrać kartę modelu, aby wyświetlić szczegółowe informacje na temat modelu, takie jak licencja, dane użyte do szkolenia i sposób korzystania. Znajdziesz tu także Rozmieścić przycisk, którego można użyć do wdrożenia modelu i utworzenia punktu końcowego.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wdróż model

Wdrożenie rozpoczyna się, kiedy wybierzesz Rozmieścić. Po zakończeniu wdrażania zostanie utworzony punkt końcowy. Możesz przetestować punkt końcowy, przekazując przykładowy ładunek żądania wnioskowania lub wybierając opcję testowania za pomocą zestawu SDK. Po wybraniu opcji użycia pakietu SDK zobaczysz przykładowy kod, którego możesz użyć w preferowanym edytorze notatników w SageMaker Studio.

Aby wdrożyć za pomocą pakietu SDK, zaczynamy od wybrania modelu Mixtral-8x7B określonego przez model_id with value huggingface-llm-mixtral-8x7b. Możesz wdrożyć dowolny z wybranych modeli w SageMaker za pomocą poniższego kodu. Podobnie możesz wdrożyć instrukcję Mixtral-8x7B przy użyciu własnego identyfikatora modelu:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="huggingface-llm-mixtral-8x7b")
predictor = model.deploy()

Spowoduje to wdrożenie modelu w SageMaker z domyślnymi konfiguracjami, w tym domyślnym typem instancji i domyślnymi konfiguracjami VPC. Można zmienić te konfiguracje, określając wartości inne niż domyślne w Model JumpStart.

Po wdrożeniu możesz uruchomić wnioskowanie na temat wdrożonego punktu końcowego za pomocą predyktora SageMaker:

payload = {"inputs": "Hello!"} predictor.predict(payload)

Przykładowe monity

Z modelem Mixtral-8x7B można wchodzić w interakcję jak z każdym standardowym modelem generowania tekstu, w którym model przetwarza sekwencję wejściową i wyprowadza przewidywane kolejne słowa w sekwencji. W tej sekcji podajemy przykładowe podpowiedzi.

Generowanie kodu

Korzystając z poprzedniego przykładu, możemy użyć podpowiedzi generowania kodu w następujący sposób:

# Code generation
payload = { "inputs": "Write a program to compute factorial in python:", "parameters": { "max_new_tokens": 200, },
}
predictor.predict(payload)

Otrzymasz następujące dane wyjściowe:

Input Text: Write a program to compute factorial in python:
Generated Text:
Factorial of a number is the product of all the integers from 1 to that number. For example, factorial of 5 is 1*2*3*4*5 = 120. Factorial of 0 is 1. Factorial of a negative number is not defined. The factorial of a number can be written as n!. For example, 5! = 120. ## Write a program to compute factorial in python ```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1) print(factorial(5))
``` Output: ```
120
``` ## Explanation: In the above program, we have defined a function called factorial which takes a single argument n. If n is equal to 0, then we return 1. Otherwise, we return n multiplied by the factorial of n-1. We then call the factorial function with the argument 5 and print the result. The output of the program is 120, which is the factorial of 5. ## How to compute factorial in python In the above program, we have used a recursive function to compute the factorial of a number. A recursive function is a function that calls itself. In this case, the factorial function calls itself with the argument n-1. This process continues until n is equal to 0, at which point the function returns 1. The factorial of a number can also be computed using a loop. For example, the following program uses a for loop to compute the factorial of a number: ```
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result

Monit dotyczący analizy nastrojów

W przypadku Mixtral 8x7B możesz przeprowadzić analizę nastrojów, korzystając z podpowiedzi podobnej do poniższej:

payload = { "inputs": """
Tweet: "I hate it when my phone battery dies."
Sentiment: Negative Tweet: "My day has been :+1:"
Sentiment: Positive Tweet: "This is the link to the article"
Sentiment: Neutral Tweet: "This new music video was incredibile"
Sentiment:""", "parameters": { "max_new_tokens": 2,
},
}
predictor.predict(payload)

Otrzymasz następujące dane wyjściowe:

Input Text: Tweet: "I hate it when my phone battery dies."
Sentiment: Negative
###
Tweet: "My day has been :+1:"
Sentiment: Positive
###
Tweet: "This is the link to the article"
Sentiment: Neutral
###
Tweet: "This new music video was incredibile"
Sentiment:
Generated Text:  Positive

Monity dotyczące odpowiedzi na pytania

W przypadku Mixtral-8x7B możesz użyć podpowiedzi odpowiadającej na pytanie w następujący sposób:

# Question answering
payload = { "inputs": "Could you remind me when was the C programming language invented?", "parameters": { "max_new_tokens": 100, },
}
query_endpoint(payload)

Otrzymasz następujące dane wyjściowe:

Input Text: Could you remind me when was the C programming language invented?
Generated Text: C was invented in 1972 by Dennis Ritchie at Bell Labs. C is a general-purpose programming language. It was invented to write the UNIX operating system. C is a structured programming language. It is a middle-level language. It is a procedural language. C is a compiled language. It is a portable language. C is a case-sensitive language. It is a free-form language

Instrukcja Mixtral-8x7B

Wersja Mixtral-8x7B dostosowana do instrukcji akceptuje sformatowane instrukcje, w których role konwersacyjne muszą rozpoczynać się od podpowiedzi użytkownika i naprzemiennie zawierać instrukcje użytkownika i asystenta (odpowiedź modelowa). Należy ściśle przestrzegać formatu instrukcji, w przeciwnym razie model będzie generował nieoptymalne wyniki. Szablon używany do budowania podpowiedzi dla modelu Instruct jest zdefiniowany w następujący sposób:

<s> [INST] Instruction [/INST] Model answer</s> [INST] Follow-up instruction [/INST]]

Należy pamiętać, że <s> i </s> są specjalnymi tokenami początku łańcucha (BOS) i końca łańcucha (EOS), natomiast [INST] i [/INST] są zwykłymi ciągami.

Poniższy kod pokazuje, jak sformatować zachętę w formacie instrukcji:

from typing import Dict, List def format_instructions(instructions: List[Dict[str, str]]) -> List[str]: """Format instructions where conversation roles must alternate user/assistant/user/assistant/...""" prompt: List[str] = [] for user, answer in zip(instructions[::2], instructions[1::2]): prompt.extend(["<s>", "[INST] ", (user["content"]).strip(), " [/INST] ", (answer["content"]).strip(), "</s>"]) prompt.extend(["<s>", "[INST] ", (instructions[-1]["content"]).strip(), " [/INST] ","</s>"]) return "".join(prompt) def print_instructions(prompt: str, response: str) -> None: bold, unbold = '33[1m', '33[0m' print(f"{bold}> Input{unbold}n{prompt}nn{bold}> Output{unbold}n{response[0]['generated_text']}n")

Wyszukiwanie wiedzy

Aby wyświetlić monit o odzyskanie wiedzy, możesz użyć następującego kodu:

instructions = [{"role": "user", "content": "what is the recipe of mayonnaise?"}]
prompt = format_instructions(instructions)
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 315, "do_sample": True}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Otrzymasz następujące dane wyjściowe:

> Input
<s>[INST] what is the recipe of mayonnaise? [/INST]</s> > Output
Here is a simple recipe for homemade mayonnaise: Ingredients: * 1 egg yolk
* 1 tablespoon of mustard (Dijon is a good choice)
* 1 cup of oil (canola or vegetable oil work well)
* 1-2 tablespoons of white vinegar or lemon juice
* Salt to taste Instructions: 1. In a medium bowl, whisk together the egg yolk and mustard. It is important that these ingredients are at room temperature.
2. Start adding the oil drop by drop, whisking continuously. This step is crucial to ensure that the mayonnaise emulsifies and does not separate.
3. Once you have added about a quarter of the oil and the mixture has thickened, you can start adding the oil in a thin stream, still whisking constantly.
4. When all the oil has been incorporated and the mayonnaise is thick, whisk in the vinegar or lemon juice and salt to taste.
5. If the mayonnaise is too thick, you can thin it with a little water.
6. Store the mayonnaise in the refrigerator and use within a few days. Note: It is important to use pasteurized eggs or egg yolks when making homemade mayonnaise to reduce the risk of foodborne illness.

Kodowanie

Modele Mixtral mogą wykazać mocne strony w zadaniach kodowania, jak pokazano w poniższym kodzie:

instructions = [
{ "role": "user", "content": "In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month?",
}
]
prompt = format_instructions(instructions)
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "do_sample": True, "temperature": 0.2}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Otrzymasz następujące dane wyjściowe:

> Input
<s>[INST] In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month? [/INST]</s>
> Output
ef{0.15cm} To list all text files in the current directory that have been modified in the last month, you can use a combination of the `find` and `grep` commands in Bash. Here's the command you're looking for: ```bash
find . -maxdepth 1 -type f -name "*.txt" -mtime -30
``` Let's break down this command: - `find .` starts a search in the current directory.
- `-maxdepth 1` limits the search to the current directory only (excluding subdirectories).
- `-type f` specifies that you're looking for files.
- `-name "*.txt"` filters the results to only include files with a `.txt` extension.
- `-mtime -30` filters the results to only include files modified within the last 30 days. This command will output the paths of all text files in the current directory that have been modified in the last month.

Matematyka i rozumowanie

Modele mieszane zgłaszają również mocne strony w zakresie dokładności matematycznej:

instructions = [
{ "role": "user", "content": "I bought an ice cream for 6 kids. Each cone was $1.25 and I paid with a $10 bill. How many dollars did I get back? Explain first before answering.",
}
]
prompt = format_instructions(instructions)
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 600, "do_sample": True, "temperature": 0.2}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Modele mikstralne mogą zapewnić zrozumienie, jak pokazano w poniższych wynikach, z logiką matematyczną:

> Input
<s>[INST] I bought an ice cream for 6 kids. Each cone was $1.25 and I paid with a $10 bill. How many dollars did I get back? Explain first before answering. [/INST] </s>
> Output
First, let's calculate the total cost of the ice cream cones. Since each cone costs $1.25 and you bought 6 cones, the total cost would be: Total cost = Cost per cone * Number of cones
Total cost = $1.25 * 6
Total cost = $7.50 Next, subtract the total cost from the amount you paid with the $10 bill to find out how much change you got back: Change = Amount paid - Total cost
Change = $10 - $7.50
Change = $2.50 So, you got $2.50 back.

Sprzątać

Po zakończeniu korzystania z notatnika usuń wszystkie zasoby utworzone w procesie, aby zatrzymać rozliczenia. Użyj następującego kodu:

predictor.delete_model()
predictor.delete_endpoint()

Wnioski

W tym poście pokazaliśmy, jak rozpocząć pracę z Mixtral-8x7B w SageMaker Studio i wdrożyć model na potrzeby wnioskowania. Ponieważ modele podstawowe są wstępnie wytrenowane, mogą pomóc w obniżeniu kosztów szkoleń i infrastruktury oraz umożliwić dostosowanie do konkretnego przypadku użycia. Aby rozpocząć, odwiedź teraz SageMaker JumpStart w SageMaker Studio.

Zasoby


O autorach

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Rachna Czadha jest głównym architektem rozwiązań AI/ML w obszarze kont strategicznych w AWS. Rachna jest optymistą, który wierzy, że etyczne i odpowiedzialne korzystanie z AI może w przyszłości poprawić społeczeństwo i przynieść dobrobyt gospodarczy i społeczny. W wolnym czasie Rachna lubi spędzać czas z rodziną, spacerować i słuchać muzyki.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.dr Kyle Ulrich jest naukowcem z Wbudowane algorytmy Amazon SageMaker zespół. Jego zainteresowania badawcze obejmują skalowalne algorytmy uczenia maszynowego, wizję komputerową, szeregi czasowe, nieparametryczne Bayesa i procesy Gaussa. Jego doktorat uzyskał na Uniwersytecie Duke'a i publikował artykuły w czasopismach NeurIPS, Cell i Neuron.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Krzysztofa Whittena jest programistą w zespole JumpStart. Pomaga w wyborze modeli w skali i integrowaniu ich z innymi usługami SageMaker. Chrisa pasjonuje się przyspieszaniem wszechobecności sztucznej inteligencji w różnych obszarach biznesowych.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Doktor Fabio Nonato de Paula jest starszym menedżerem, specjalistą GenAI SA, pomagającym dostawcom modeli i klientom skalować generatywną sztuczną inteligencję w AWS. Fabio ma pasję demokratyzacji dostępu do generatywnej technologii AI. Poza pracą możesz spotkać Fabio jeżdżącego na motocyklu po wzgórzach Doliny Sonoma lub czytającego ComiXology.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dr Ashish Khetan jest starszym naukowcem z wbudowanymi algorytmami Amazon SageMaker i pomaga rozwijać algorytmy uczenia maszynowego. Doktoryzował się na University of Illinois Urbana-Champaign. Jest aktywnym badaczem uczenia maszynowego i wnioskowania statystycznego oraz opublikował wiele artykułów na konferencjach NeurIPS, ICML, ICLR, JMLR, ACL i EMNLP.

Mixtral-8x7B jest teraz dostępny w Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Karola Albertsena kieruje produktem, inżynierią i nauką w Amazon SageMaker Algorithms i JumpStart, centrum uczenia maszynowego SageMaker. Pasjonuje się stosowaniem uczenia maszynowego w celu odblokowania wartości biznesowej.

Znak czasu:

Więcej z Uczenie maszynowe AWS