Mixtral-8x7B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon

Mixtral-8x7B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon

Danes z veseljem sporočamo, da je Mixtral-8x7B velik jezikovni model (LLM), ki ga je razvil Mistral AI, je strankam na voljo prek Amazon SageMaker JumpStart za uvedbo z enim klikom za tekoče sklepanje. Mixtral-8x7B LLM je vnaprej usposobljena redka mešanica ekspertnega modela, ki temelji na hrbtenici s 7 milijardami parametrov z osmimi strokovnjaki na plast za naprej. Ta model lahko preizkusite s SageMaker JumpStart, središčem za strojno učenje (ML), ki omogoča dostop do algoritmov in modelov, tako da lahko hitro začnete uporabljati ML. V tem prispevku bomo predstavili, kako odkriti in uvesti model Mixtral-8x7B.

Kaj je Mixtral-8x7B

Mixtral-8x7B je temeljni model, ki ga je razvil Mistral AI, podpira angleško, francosko, nemško, italijansko in špansko besedilo z možnostjo generiranja kode. Podpira različne primere uporabe, kot so povzemanje besedila, klasifikacija, dopolnjevanje besedila in dopolnjevanje kode. V načinu klepeta se dobro obnaša. Da bi prikazal enostavno prilagodljivost modela, je Mistral AI izdal tudi model Mixtral-8x7B-instruct za primere uporabe klepeta, natančno nastavljen z uporabo različnih javno dostopnih podatkovnih nizov pogovorov. Modeli Mixtral imajo veliko dolžino konteksta do 32,000 žetonov.

Mixtral-8x7B zagotavlja znatne izboljšave zmogljivosti v primerjavi s prejšnjimi najsodobnejšimi modeli. Njegova redka mešanica arhitektur strokovnjakov mu omogoča doseganje boljših rezultatov delovanja pri 9 od 12 primerjalnih vrednosti obdelave naravnega jezika (NLP), ki jih je testiral Mistral AI. Mixtral se ujema ali presega zmogljivosti modelov, ki so do 10-krat večji od svoje velikosti. Z uporabo le delčka parametrov na žeton doseže večje hitrosti sklepanja in nižje računske stroške v primerjavi z zgoščenimi modeli enakovrednih velikosti – na primer s skupno 46.7 milijarde parametrov, vendar le 12.9 milijard uporabljenih na žeton. Zaradi te kombinacije visoke zmogljivosti, večjezične podpore in računalniške učinkovitosti je Mixtral-8x7B privlačna izbira za NLP aplikacije.

Model je na voljo pod permisivno licenco Apache 2.0 za uporabo brez omejitev.

Kaj je SageMaker JumpStart

S SageMaker JumpStart lahko praktiki ML izbirajo med rastočim seznamom najuspešnejših modelov temeljev. Strokovnjaki ML lahko uvedejo temeljne modele v namenske Amazon SageMaker primerke v omrežno izoliranem okolju in prilagodite modele z uporabo SageMakerja za usposabljanje in uvajanje modelov.

Zdaj lahko odkrijete in uvedete Mixtral-8x7B z nekaj kliki Amazon SageMaker Studio ali programsko prek SDK-ja SageMaker Python, kar vam omogoča, da izpeljete zmogljivost modela in kontrole MLOps s funkcijami SageMaker, kot je Amazonski cevovodi SageMaker, Napaka Amazon SageMaker, ali kontejnerski dnevniki. Model je nameščen v varnem okolju AWS in pod vašimi kontrolami VPC, kar pomaga zagotoviti varnost podatkov.

Odkrijte modele

Do modelov temeljev Mixtral-8x7B lahko dostopate prek SageMaker JumpStart v uporabniškem vmesniku SageMaker Studio in SDK SageMaker Python. V tem razdelku bomo opisali, kako odkriti modele v SageMaker Studio.

SageMaker Studio je integrirano razvojno okolje (IDE), ki ponuja enoten spletni vizualni vmesnik, kjer lahko dostopate do namensko izdelanih orodij za izvajanje vseh razvojnih korakov ML, od priprave podatkov do gradnje, usposabljanja in uvajanja vaših modelov ML. Za več podrobnosti o tem, kako začeti in nastaviti SageMaker Studio, glejte Amazon SageMaker Studio.

V SageMaker Studio lahko do SageMaker JumpStart dostopate tako, da izberete jumpstart v podoknu za krmarjenje.

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

Na ciljni strani SageMaker JumpStart lahko v iskalnem polju poiščete »Mixtral«. Videli boste rezultate iskanja, ki prikazujejo Mixtral 8x7B in Mixtral 8x7B Instruct.

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

Izberete lahko kartico modela, da si ogledate podrobnosti o modelu, kot so licenca, podatki, uporabljeni za usposabljanje, in način uporabe. Našli boste tudi uvajanje gumb, ki ga lahko uporabite za razmestitev modela in ustvarjanje končne točke.

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

Namestite model

Uvajanje se začne, ko izberete uvajanje. Ko je uvajanje končano, je bila ustvarjena končna točka. Končno točko lahko preizkusite tako, da posredujete koristno obremenitev zahteve za vzorčno sklepanje ali izberete možnost testiranja s SDK-jem. Ko izberete možnost za uporabo SDK-ja, boste videli primer kode, ki jo lahko uporabite v svojem želenem urejevalniku zvezkov v SageMaker Studio.

Za uvajanje s SDK-jem začnemo z izbiro modela Mixtral-8x7B, ki ga določi model_id with value huggingface-llm-mixtral-8x7b. Kateri koli od izbranih modelov lahko namestite na SageMaker z naslednjo kodo. Podobno lahko uvedete Mixtral-8x7B instruct z lastnim ID-jem modela:

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

To razmesti model v SageMaker s privzetimi konfiguracijami, vključno s privzeto vrsto primerka in privzetimi konfiguracijami VPC. Te konfiguracije lahko spremenite tako, da podate neprivzete vrednosti v JumpStartModel.

Ko je uveden, lahko izvajate sklepanje glede na uvedeno končno točko prek napovedovalca SageMaker:

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

Primer pozivov

Z modelom Mixtral-8x7B lahko komunicirate kot s katerim koli standardnim modelom za generiranje besedila, kjer model obdela vhodno zaporedje in izpiše predvidene naslednje besede v zaporedju. V tem razdelku ponujamo primere pozivov.

Ustvarjanje kode

Z uporabo prejšnjega primera lahko uporabimo pozive za ustvarjanje kode, kot so naslednji:

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

Dobite naslednji izhod:

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

Poziv za analizo razpoloženja

Z Mixtral 8x7B lahko izvedete analizo razpoloženja z naslednjim pozivom:

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)

Dobite naslednji izhod:

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

Pozivi za odgovarjanje na vprašanja

Z Mixtral-8x7B lahko uporabite poziv za odgovor na vprašanje, kot je ta:

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

Dobite naslednji izhod:

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

Različica Mixtral-8x7B, ki je prilagojena navodilom, sprejema oblikovana navodila, kjer se morajo vloge pogovora začeti z uporabniškim pozivom in preklapljati med uporabniškimi navodili in pomočnikom (vzorčni odgovor). Format navodil je treba strogo upoštevati, sicer bo model ustvaril neoptimalne rezultate. Predloga, ki se uporablja za izdelavo poziva za model Instruct, je definirana na naslednji način:

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

Upoštevajte, da <s> in </s> sta posebna žetona za začetek niza (BOS) in konec niza (EOS), medtem ko [INST] in [/INST] so navadni nizi.

Naslednja koda prikazuje, kako lahko formatirate poziv v obliki navodil:

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

Pridobivanje znanja

Za poziv za pridobivanje znanja lahko uporabite naslednjo kodo:

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)

Dobite naslednji izhod:

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

Kodiranje

Modeli Mixtral lahko prikažejo primerjalne prednosti za naloge kodiranja, kot je prikazano v naslednji kodi:

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)

Dobite naslednji izhod:

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

Matematika in sklepanje

Modeli Mixtral poročajo tudi o prednostih matematične natančnosti:

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)

Modeli Mixtral lahko zagotovijo razumevanje, kot je prikazano v naslednjem rezultatu z matematično logiko:

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

Čiščenje

Ko končate z zagonom zvezka, izbrišite vse vire, ki ste jih ustvarili med postopkom, da se vaše zaračunavanje ustavi. Uporabite naslednjo kodo:

predictor.delete_model()
predictor.delete_endpoint()

zaključek

V tej objavi smo vam pokazali, kako začeti uporabljati Mixtral-8x7B v SageMaker Studio in razmestiti model za sklepanje. Ker so osnovni modeli vnaprej usposobljeni, lahko pomagajo znižati stroške usposabljanja in infrastrukture ter omogočijo prilagoditev za vaš primer uporabe. Za začetek obiščite SageMaker JumpStart v SageMaker Studio.

viri


O avtorjih

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Rachna Chadha je glavni arhitekt rešitev AI/ML v Strategic Accounts pri AWS. Rachna je optimist, ki verjame, da lahko etična in odgovorna uporaba umetne inteligence izboljša družbo v prihodnosti ter prinese gospodarsko in družbeno blaginjo. V prostem času Rachna rada preživlja čas z družino, hodi na pohode in posluša glasbo.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Kyle Ulrich je uporabni znanstvenik z Vgrajeni algoritmi Amazon SageMaker ekipa. Njegovi raziskovalni interesi vključujejo skalabilne algoritme strojnega učenja, računalniški vid, časovne vrste, Bayesove neparametrične in Gaussove procese. Njegov doktorat je pridobil na Univerzi Duke in je objavil članke v NeurIPS, Cell in Neuron.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Christopherja Whittena je razvijalec programske opreme v ekipi JumpStart. Pomaga pri prilagajanju izbire modela in integraciji modelov z drugimi storitvami SageMaker. Chris je navdušen nad pospeševanjem vseprisotnosti umetne inteligence na različnih poslovnih področjih.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Fabio Nonato de Paula je višji vodja specialista GenAI SA, ki ponudnikom modelov in strankam pomaga pri prilagajanju generativne umetne inteligence v AWS. Fabio ima strast do demokratizacije dostopa do generativne tehnologije umetne inteligence. Zunaj dela lahko najdete Fabia, ki se vozi z motorjem po hribih doline Sonoma ali bere ComiXology.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Ashish Khetan je višji aplikativni znanstvenik z vgrajenimi algoritmi Amazon SageMaker in pomaga pri razvoju algoritmov strojnega učenja. Doktoriral je na Univerzi Illinois Urbana-Champaign. Je aktiven raziskovalec strojnega učenja in statističnega sklepanja ter je objavil številne članke na konferencah NeurIPS, ICML, ICLR, JMLR, ACL in EMNLP.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Karl Albertsen vodi izdelke, inženiring in znanost za Amazon SageMaker Algorithms in JumpStart, SageMakerjevo vozlišče za strojno učenje. Navdušen je nad uporabo strojnega učenja za odklepanje poslovne vrednosti.

Časovni žig:

Več od Strojno učenje AWS