Mixtral-8x7B er nu tilgængelig i Amazon SageMaker JumpStart | Amazon Web Services

Mixtral-8x7B er nu tilgængelig i Amazon SageMaker JumpStart | Amazon Web Services

I dag er vi glade for at kunne meddele, at Mixtral-8x7B stor sprogmodel (LLM), udviklet af Mistral AI, er tilgængelig for kunder gennem Amazon SageMaker JumpStart at implementere med et klik for at køre inferens. Mixtral-8x7B LLM er en fortrænet sparsom blanding af ekspertmodeller, baseret på en 7-milliard parameter-rygrad med otte eksperter pr. feed-forward-lag. Du kan prøve denne model med SageMaker JumpStart, en maskinlæringshub (ML), der giver adgang til algoritmer og modeller, så du hurtigt kan komme i gang med ML. I dette indlæg gennemgår vi, hvordan du opdager og implementerer Mixtral-8x7B-modellen.

Hvad er Mixtral-8x7B

Mixtral-8x7B er en grundmodel udviklet af Mistral AI, der understøtter engelsk, fransk, tysk, italiensk og spansk tekst med kodegenereringsevner. Det understøtter en række forskellige brugssager såsom tekstresumé, klassificering, tekstfuldførelse og kodefuldførelse. Den opfører sig godt i chattilstand. For at demonstrere modellens enkle tilpasningsmuligheder har Mistral AI også udgivet en Mixtral-8x7B-instruktionsmodel til chatbrugssager, finjusteret ved hjælp af en række offentligt tilgængelige samtaledatasæt. Mixtral-modeller har en stor kontekstlængde på op til 32,000 tokens.

Mixtral-8x7B giver betydelige ydeevneforbedringer i forhold til tidligere avancerede modeller. Dens sparsomme blanding af ekspertarkitektur gør det muligt for den at opnå bedre præstationsresultater på 9 ud af 12 benchmarks for naturlig sprogbehandling (NLP) testet af Mistral AI. Mixtral matcher eller overgår ydeevnen af ​​modeller op til 10 gange størrelsen. Ved kun at bruge en brøkdel af parametre pr. token opnår den hurtigere inferenshastigheder og lavere beregningsomkostninger sammenlignet med tætte modeller af tilsvarende størrelser - for eksempel med 46.7 milliarder parametre i alt, men kun 12.9 milliarder brugt pr. Denne kombination af høj ydeevne, flersproget support og beregningseffektivitet gør Mixtral-8x7B til et tiltalende valg til NLP-applikationer.

Modellen er gjort tilgængelig under den tilladelige Apache 2.0-licens, til brug uden begrænsninger.

Hvad er SageMaker JumpStart

Med SageMaker JumpStart kan ML-praktiserende læger vælge fra en voksende liste over bedst ydende foundation-modeller. ML praktikere kan implementere fundamentmodeller til dedikerede Amazon SageMaker forekomster i et netværksisoleret miljø, og tilpasse modeller ved hjælp af SageMaker til modeltræning og implementering.

Du kan nu opdage og implementere Mixtral-8x7B med et par klik ind Amazon SageMaker Studio eller programmatisk gennem SageMaker Python SDK, så du kan udlede modelydelse og MLOps-kontroller med SageMaker-funktioner som f.eks. Amazon SageMaker Pipelines, Amazon SageMaker Debuggereller containerlogfiler. Modellen er implementeret i et AWS-sikkert miljø og under din VPC-kontrol, hvilket hjælper med at sikre datasikkerhed.

Opdag modeller

Du kan få adgang til Mixtral-8x7B-fundamentmodeller gennem SageMaker JumpStart i SageMaker Studio UI og SageMaker Python SDK. I dette afsnit gennemgår vi, hvordan du opdager modellerne i SageMaker Studio.

SageMaker Studio er et integreret udviklingsmiljø (IDE), der giver en enkelt webbaseret visuel grænseflade, hvor du kan få adgang til specialbyggede værktøjer til at udføre alle ML-udviklingstrin, fra forberedelse af data til opbygning, træning og implementering af dine ML-modeller. For flere detaljer om, hvordan du kommer i gang og opsætter SageMaker Studio, se Amazon SageMaker Studio.

I SageMaker Studio kan du få adgang til SageMaker JumpStart ved at vælge Forspring i navigationsruden.

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

Fra SageMaker JumpStart-landingssiden kan du søge efter "Mixtral" i søgefeltet. Du vil se søgeresultater, der viser Mixtral 8x7B og Mixtral 8x7B Instruct.

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

Du kan vælge modelkortet for at se detaljer om modellen, såsom licens, data, der bruges til at træne, og hvordan du bruger den. Du finder også Implementer knappen, som du kan bruge til at implementere modellen og oprette et slutpunkt.

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

Implementer en model

Implementeringen starter, når du vælger det Implementer. Når implementeringen er færdig, er du oprettet et slutpunkt. Du kan teste slutpunktet ved at videregive en prøveslutningsanmodningsnyttelast eller vælge din testindstilling ved hjælp af SDK. Når du vælger muligheden for at bruge SDK, vil du se eksempelkode, som du kan bruge i din foretrukne notesbogseditor i SageMaker Studio.

For at implementere ved hjælp af SDK starter vi med at vælge Mixtral-8x7B-modellen, specificeret af model_id with value huggingface-llm-mixtral-8x7b. Du kan implementere enhver af de valgte modeller på SageMaker med følgende kode. På samme måde kan du implementere Mixtral-8x7B-instruktion ved hjælp af sit eget model-id:

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

Dette implementerer modellen på SageMaker med standardkonfigurationer, inklusive standardinstanstypen og standard VPC-konfigurationer. Du kan ændre disse konfigurationer ved at angive ikke-standardværdier i JumpStartModel.

Efter det er implementeret, kan du køre slutninger mod det implementerede slutpunkt gennem SageMaker-prædiktoren:

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

Eksempler på opfordringer

Du kan interagere med en Mixtral-8x7B-model som enhver standard tekstgenereringsmodel, hvor modellen behandler en inputsekvens og udsender forudsagte næste ord i sekvensen. I dette afsnit giver vi eksempler på prompter.

Generering af kode

Ved at bruge det foregående eksempel kan vi bruge kodegenereringsprompts som følgende:

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

Du får følgende output:

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

Stemningsanalyse prompt

Du kan udføre sentimentanalyse ved hjælp af en prompt som følgende med 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)

Du får følgende output:

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

Spørgsmål besvare prompter

Du kan bruge en spørgsmålsbesvarelsesprompt som følgende med 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)

Du får følgende output:

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 Instruktion

Den instruktionsjusterede version af Mixtral-8x7B accepterer formaterede instruktioner, hvor samtaleroller skal starte med en brugerprompt og veksle mellem brugerinstruktion og assistent (modelsvar). Instruktionsformatet skal overholdes strengt, ellers vil modellen generere suboptimale output. Skabelonen, der bruges til at bygge en prompt til Instruct-modellen, er defineret som følger:

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

Bemærk, at <s> , </s> er specielle tokens for begyndelsen af ​​strengen (BOS) og slutningen af ​​strengen (EOS), hvorimod [INST] , [/INST] er almindelige strenge.

Følgende kode viser, hvordan du kan formatere prompten i instruktionsformat:

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

Indhentning af viden

Du kan bruge følgende kode til en prompt til at hente viden:

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)

Du får følgende output:

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

Kodning

Mixtral-modeller kan demonstrere benchmarked-styrker for kodningsopgaver, som vist i følgende kode:

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)

Du får følgende output:

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

Matematik og ræsonnement

Mixtral-modeller rapporterer også styrker i matematiknøjagtighed:

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)

Mixtral-modeller kan give forståelse som vist i følgende output med den matematiske logik:

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

Ryd op

Når du er færdig med at køre notesbogen, skal du slette alle ressourcer, du oprettede i processen, så din fakturering stoppes. Brug følgende kode:

predictor.delete_model()
predictor.delete_endpoint()

Konklusion

I dette indlæg viste vi dig, hvordan du kommer i gang med Mixtral-8x7B i SageMaker Studio og implementerer modellen til inferens. Fordi fundamentmodeller er foruddannede, kan de hjælpe med at sænke uddannelses- og infrastrukturomkostninger og muliggøre tilpasning til din brugssituation. Besøg SageMaker JumpStart i SageMaker Studio nu for at komme i gang.

Ressourcer


Om forfatterne

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Rachna Chadha er Principal Solution Architect AI/ML i Strategic Accounts hos AWS. Rachna er en optimist, der mener, at etisk og ansvarlig brug af kunstig intelligens kan forbedre samfundet i fremtiden og bringe økonomisk og social velstand. I sin fritid kan Rachna godt lide at bruge tid med sin familie, vandreture og lytte til musik.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Kyle Ulrich er en anvendt videnskabsmand med Amazon SageMaker indbyggede algoritmer hold. Hans forskningsinteresser omfatter skalerbare maskinlæringsalgoritmer, computervision, tidsserier, Bayesianske ikke-parametriske og Gaussiske processer. Hans ph.d. er fra Duke University, og han har udgivet artikler i NeurIPS, Cell og Neuron.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Christopher Whitten er softwareudvikler på JumpStart-teamet. Han hjælper med at skalere modelvalg og integrere modeller med andre SageMaker-tjenester. Chris brænder for at accelerere AI's allestedsnærværelse på tværs af en række forretningsdomæner.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Fabio Nonato de Paula er en Senior Manager, Specialist GenAI SA, der hjælper modeludbydere og kunder med at skalere generativ AI i AWS. Fabio har en passion for at demokratisere adgangen til generativ AI-teknologi. Uden for arbejdet kan du finde Fabio kørende på sin motorcykel i bakkerne i Sonoma Valley eller læse ComiXology.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dr. Ashish Khetan er en Senior Applied Scientist med Amazon SageMaker indbyggede algoritmer og hjælper med at udvikle machine learning algoritmer. Han fik sin ph.d. fra University of Illinois Urbana-Champaign. Han er en aktiv forsker i maskinlæring og statistisk inferens og har publiceret mange artikler i NeurIPS, ICML, ICLR, JMLR, ACL og EMNLP konferencer.

Mixtral-8x7B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Karl Albertsen fører produkt, teknik og videnskab for Amazon SageMaker Algorithms og JumpStart, SageMakers maskinlæringshub. Han brænder for at anvende maskinlæring til at frigøre forretningsværdi.

Tidsstempel:

Mere fra AWS maskinindlæring