Mixtral-8x7B este acum disponibil în Amazon SageMaker JumpStart | Amazon Web Services

Mixtral-8x7B este acum disponibil în Amazon SageMaker JumpStart | Amazon Web Services

Astăzi, suntem încântați să anunțăm că Mixtral-8x7B Modelul de limbaj mare (LLM), dezvoltat de Mistral AI, este disponibil pentru clienți prin intermediul Amazon SageMaker JumpStart pentru a implementa cu un singur clic pentru a rula inferența. Mixtral-8x7B LLM este un amestec rar pre-antrenat de model expert, bazat pe o coloană vertebrală de 7 miliarde de parametri, cu opt experți pe strat de feed-forward. Puteți încerca acest model cu SageMaker JumpStart, un hub de învățare automată (ML) care oferă acces la algoritmi și modele, astfel încât să puteți începe rapid cu ML. În această postare, vom explica cum să descoperim și să implementăm modelul Mixtral-8x7B.

Ce este Mixtral-8x7B

Mixtral-8x7B este un model de bază dezvoltat de Mistral AI, care acceptă texte în engleză, franceză, germană, italiană și spaniolă, cu abilități de generare de cod. Acceptă o varietate de cazuri de utilizare, cum ar fi rezumarea textului, clasificarea, completarea textului și completarea codului. Se comportă bine în modul chat. Pentru a demonstra personalizarea simplă a modelului, Mistral AI a lansat, de asemenea, un model Mixtral-8x7B-instruct pentru cazurile de utilizare a chat-ului, reglat fin folosind o varietate de seturi de date de conversație disponibile public. Modelele Mixtral au o lungime mare de context de până la 32,000 de jetoane.

Mixtral-8x7B oferă îmbunătățiri semnificative de performanță față de modelele anterioare de ultimă generație. Amestecul său rar de arhitectură de experți îi permite să obțină rezultate de performanță mai bune pe 9 din 12 benchmark-uri de procesare a limbajului natural (NLP) testate de Mistral AI. Mixtral se potrivește sau depășește performanța modelelor de până la 10 ori dimensiunea sa. Utilizând doar o fracțiune de parametri pe token, atinge viteze de inferență mai rapide și costuri de calcul mai mici în comparație cu modelele dense de dimensiuni echivalente - de exemplu, cu 46.7 miliarde de parametri în total, dar numai 12.9 miliarde utilizați per token. Această combinație de înaltă performanță, suport multilingv și eficiență de calcul face Mixtral-8x7B o alegere atrăgătoare pentru aplicațiile NLP.

Modelul este disponibil sub licența Apache 2.0 permisivă, pentru utilizare fără restricții.

Ce este SageMaker JumpStart

Cu SageMaker JumpStart, practicienii ML pot alege dintr-o listă tot mai mare de modele de fond de ten cu cele mai bune performanțe. Practicienii ML pot implementa modele de fundație pentru dedicate Amazon SageMaker instanțe într-un mediu izolat în rețea și personalizați modelele utilizând SageMaker pentru instruirea și implementarea modelelor.

Acum puteți descoperi și implementa Mixtral-8x7B cu câteva clicuri Amazon SageMaker Studio sau programatic prin intermediul SDK-ului SageMaker Python, permițându-vă să obțineți performanța modelului și controalele MLOps cu funcții SageMaker, cum ar fi Pipelines Amazon SageMaker, Debugger Amazon SageMaker, sau jurnalele containerului. Modelul este implementat într-un mediu securizat AWS și sub controalele dvs. VPC, contribuind la asigurarea securității datelor.

Descoperă modele

Puteți accesa modelele de fundație Mixtral-8x7B prin SageMaker JumpStart în SageMaker Studio UI și SageMaker Python SDK. În această secțiune, vom analiza cum să descoperiți modelele în SageMaker Studio.

SageMaker Studio este un mediu de dezvoltare integrat (IDE) care oferă o interfață vizuală unică bazată pe web, unde puteți accesa instrumente special create pentru a efectua toți pașii de dezvoltare ML, de la pregătirea datelor până la construirea, antrenamentul și implementarea modelelor dvs. ML. Pentru mai multe detalii despre cum să începeți și să configurați SageMaker Studio, consultați Amazon SageMaker Studio.

În SageMaker Studio, puteți accesa SageMaker JumpStart alegând pornire în panoul de navigare.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Din pagina de destinație SageMaker JumpStart, puteți căuta „Mixtral” în caseta de căutare. Veți vedea rezultatele căutării care arată Mixtral 8x7B și Mixtral 8x7B Instruct.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Puteți alege cardul model pentru a vedea detalii despre model, cum ar fi licența, datele utilizate pentru antrenament și modul de utilizare. Veți găsi, de asemenea, Lansa butonul, pe care îl puteți folosi pentru a implementa modelul și a crea un punct final.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Implementați un model

Implementarea începe atunci când alegeți Lansa. După finalizarea implementării, a fost creat un punct final. Puteți testa punctul final prin transmiterea unui eșantion de sarcină utilă a cererii de inferență sau selectând opțiunea de testare folosind SDK-ul. Când selectați opțiunea de utilizare a SDK-ului, veți vedea exemplu de cod pe care îl puteți utiliza în editorul de notebook-uri preferat din SageMaker Studio.

Pentru a implementa folosind SDK-ul, începem prin a selecta modelul Mixtral-8x7B, specificat de model_id with value huggingface-llm-mixtral-8x7b. Puteți implementa oricare dintre modelele selectate pe SageMaker cu următorul cod. În mod similar, puteți implementa instrucțiunile Mixtral-8x7B folosind propriul ID de model:

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

Aceasta implementează modelul pe SageMaker cu configurații implicite, inclusiv tipul de instanță implicit și configurațiile VPC implicite. Puteți modifica aceste configurații specificând valori care nu sunt implicite în JumpStartModel.

După ce este implementat, puteți rula inferențe împotriva punctului final implementat prin predictorul SageMaker:

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

Exemple de solicitări

Puteți interacționa cu un model Mixtral-8x7B ca orice model standard de generare de text, în care modelul procesează o secvență de intrare și scoate cuvintele următoare prezise din secvență. În această secțiune, oferim exemple de solicitări.

Generarea codului

Folosind exemplul precedent, putem folosi solicitări de generare de cod precum următoarele:

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

Obțineți următoarea ieșire:

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

Prompt de analiză a sentimentelor

Puteți efectua o analiză a sentimentelor folosind un prompt ca următorul cu Mixtral 8x7B:

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)

Obțineți următoarea ieșire:

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

Solicitări de răspuns la întrebări

Puteți utiliza un prompt de răspuns la întrebări precum următorul cu Mixtral-8x7B:

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

Obțineți următoarea ieșire:

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

Mixtral-8x7B Instruct

Versiunea ajustată pentru instrucțiuni a Mixtral-8x7B acceptă instrucțiuni formatate în care rolurile de conversație trebuie să înceapă cu un prompt al utilizatorului și să alterneze între instrucțiunile utilizatorului și asistent (răspuns model). Formatul de instrucțiuni trebuie respectat cu strictețe, altfel modelul va genera rezultate suboptime. Șablonul utilizat pentru a construi un prompt pentru modelul Instruct este definit după cum urmează:

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

Rețineți că <s> și </s> sunt jetoane speciale pentru începutul șirului (BOS) și sfârșitul șirului (EOS), în timp ce [INST] și [/INST] sunt șiruri obișnuite.

Următorul cod arată cum puteți formata promptul în format de instrucțiune:

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")

Recuperarea cunoștințelor

Puteți utiliza următorul cod pentru o solicitare de recuperare a cunoștințelor:

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)

Obțineți următoarea ieșire:

> 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.

Codificare

Modelele Mixtral pot demonstra punctele forte evaluate pentru sarcinile de codificare, așa cum se arată în următorul cod:

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)

Obțineți următoarea ieșire:

> 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.

Matematică și raționament

Modelele mixtrale raportează, de asemenea, puncte forte în acuratețea matematicii:

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)

Modelele Mixtral pot oferi înțelegere, așa cum se arată în următoarea ieșire, cu logica matematică:

> 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.

A curăța

După ce ați terminat de rulat blocnotesul, ștergeți toate resursele pe care le-ați creat în acest proces, astfel încât facturarea să fie oprită. Utilizați următorul cod:

predictor.delete_model()
predictor.delete_endpoint()

Concluzie

În această postare, v-am arătat cum să începeți cu Mixtral-8x7B în SageMaker Studio și să implementați modelul pentru inferență. Deoarece modelele de fundație sunt pregătite în prealabil, ele pot ajuta la reducerea costurilor de instruire și infrastructură și pot permite personalizarea pentru cazul dvs. de utilizare. Vizitați SageMaker JumpStart în SageMaker Studio acum pentru a începe.

Resurse


Despre autori

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Rachna Chadha este arhitect principal de soluții AI/ML în conturi strategice la AWS. Rachna este o optimistă care crede că utilizarea etică și responsabilă a inteligenței artificiale poate îmbunătăți societatea în viitor și poate aduce prosperitate economică și socială. În timpul liber, Rachnei îi place să petreacă timpul cu familia ei, să facă drumeții și să asculte muzică.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Kyle Ulrich este un om de știință aplicat cu Algoritmi încorporați Amazon SageMaker echipă. Interesele sale de cercetare includ algoritmi scalabili de învățare automată, viziunea computerizată, serii temporale, non-parametrice bayesiene și procese gaussiene. Doctoratul său este de la Universitatea Duke și a publicat lucrări în NeurIPS, Cell, and Neuron.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Christopher Whitten este un dezvoltator de software în echipa JumpStart. El ajută la selectarea modelelor la scară și la integrarea modelelor cu alte servicii SageMaker. Chris este pasionat de accelerarea omniprezentei AI într-o varietate de domenii de afaceri.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Fabio Nonato de Paula este Senior Manager, Specialist GenAI SA, ajutând furnizorii de modele și clienții să scaleze AI generativă în AWS. Fabio are o pasiune pentru democratizarea accesului la tehnologia AI generativă. În afara serviciului, îl puteți găsi pe Fabio mergând cu motocicleta pe dealurile din Valea Sonoma sau citind ComiXology.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Ashish Khetan este un om de știință senior aplicat cu algoritmi încorporați Amazon SageMaker și ajută la dezvoltarea algoritmilor de învățare automată. Și-a luat doctoratul la Universitatea din Illinois Urbana-Champaign. Este un cercetător activ în învățarea automată și inferența statistică și a publicat multe lucrări în conferințele NeurIPS, ICML, ICLR, JMLR, ACL și EMNLP.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Karl Albertsen conduce produse, inginerie și știință pentru Amazon SageMaker Algorithms și JumpStart, centrul de învățare automată al SageMaker. Este pasionat de aplicarea învățării automate pentru a debloca valoarea afacerii.

Timestamp-ul:

Mai mult de la Învățare automată AWS