Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Servizi Web di Amazon

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Servizi Web di Amazon

Oggi siamo entusiasti di annunciare che il Mixtral-8x7B il modello linguistico di grandi dimensioni (LLM), sviluppato da Mistral AI, è disponibile per i clienti tramite JumpStart di Amazon SageMaker da distribuire con un clic per eseguire l'inferenza. Mixtral-8x7B LLM è una miscela sparsa pre-addestrata di modello esperto, basata su una dorsale di 7 miliardi di parametri con otto esperti per livello feed-forward. Puoi provare questo modello con SageMaker JumpStart, un hub di machine learning (ML) che fornisce accesso ad algoritmi e modelli in modo da poter iniziare rapidamente con il ML. In questo post, spiegheremo come scoprire e distribuire il modello Mixtral-8x7B.

Cos'è Mixtral-8x7B

Mixtral-8x7B è un modello di base sviluppato da Mistral AI, che supporta testo inglese, francese, tedesco, italiano e spagnolo, con capacità di generazione di codice. Supporta una varietà di casi d'uso come riepilogo del testo, classificazione, completamento del testo e completamento del codice. Si comporta bene in modalità chat. Per dimostrare la semplice personalizzazione del modello, Mistral AI ha anche rilasciato un modello Mixtral-8x7B-instruct per casi d'uso di chat, ottimizzato utilizzando una varietà di set di dati di conversazione disponibili pubblicamente. I modelli Mixtral hanno una lunghezza del contesto ampia fino a 32,000 token.

Mixtral-8x7B offre miglioramenti significativi delle prestazioni rispetto ai precedenti modelli all'avanguardia. La sua sparsa combinazione di architettura professionale gli consente di ottenere risultati prestazionali migliori su 9 benchmark su 12 di elaborazione del linguaggio naturale (NLP) testati da Maestrale AI. Mixtral eguaglia o supera le prestazioni di modelli fino a 10 volte la sua dimensione. Utilizzando solo una frazione di parametri per token, raggiunge velocità di inferenza più elevate e costi computazionali inferiori rispetto a modelli densi di dimensioni equivalenti, ad esempio con 46.7 miliardi di parametri totali ma solo 12.9 miliardi utilizzati per token. Questa combinazione di prestazioni elevate, supporto multilingue ed efficienza computazionale rende Mixtral-8x7B una scelta interessante per le applicazioni NLP.

Il modello è reso disponibile sotto la licenza permissiva Apache 2.0, per un utilizzo senza restrizioni.

Cos'è SageMaker JumpStart

Con SageMaker JumpStart, i professionisti del machine learning possono scegliere da un elenco crescente di modelli di base con le migliori prestazioni. I professionisti del machine learning possono distribuire modelli di base a progetti dedicati Amazon Sage Maker istanze all'interno di un ambiente isolato di rete e personalizzare i modelli utilizzando SageMaker per l'addestramento e la distribuzione dei modelli.

Ora puoi scoprire e distribuire Mixtral-8x7B con pochi clic Amazon Sage Maker Studio o a livello di programmazione tramite SageMaker Python SDK, consentendoti di derivare le prestazioni del modello e i controlli MLOps con funzionalità SageMaker come Pipeline di Amazon SageMaker, Debugger di Amazon SageMakero log del contenitore. Il modello viene distribuito in un ambiente sicuro AWS e sotto i controlli VPC, contribuendo a garantire la sicurezza dei dati.

Scopri i modelli

Puoi accedere ai modelli di base Mixtral-8x7B tramite SageMaker JumpStart nell'interfaccia utente di SageMaker Studio e SageMaker Python SDK. In questa sezione, esamineremo come scoprire i modelli in SageMaker Studio.

SageMaker Studio è un ambiente di sviluppo integrato (IDE) che fornisce un'unica interfaccia visiva basata sul Web in cui è possibile accedere a strumenti specifici per eseguire tutte le fasi di sviluppo ML, dalla preparazione dei dati alla creazione, formazione e distribuzione dei modelli ML. Per ulteriori dettagli su come iniziare e configurare SageMaker Studio, fare riferimento a Amazon Sage Maker Studio.

In SageMaker Studio, puoi accedere a SageMaker JumpStart scegliendo inizio di salto nel pannello di navigazione.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Dalla pagina di destinazione JumpStart di SageMaker, puoi cercare "Mixtral" nella casella di ricerca. Vedrai i risultati della ricerca che mostrano Mixtral 8x7B e Mixtral 8x7B Instruct.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Puoi scegliere la scheda del modello per visualizzare i dettagli sul modello come licenza, dati utilizzati per l'addestramento e modalità di utilizzo. Troverai anche il Schierare pulsante, che puoi utilizzare per distribuire il modello e creare un endpoint.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Distribuisci un modello

La distribuzione inizia quando lo scegli tu Schierare. Al termine della distribuzione, è stato creato un endpoint. Puoi testare l'endpoint trasmettendo un payload di richiesta di inferenza di esempio o selezionando l'opzione di test utilizzando l'SDK. Quando selezioni l'opzione per utilizzare l'SDK, vedrai il codice di esempio che puoi utilizzare nel tuo editor di notebook preferito in SageMaker Studio.

Per eseguire la distribuzione utilizzando l'SDK, iniziamo selezionando il modello Mixtral-8x7B, specificato dal file model_id with value huggingface-llm-mixtral-8x7b. Puoi distribuire uno qualsiasi dei modelli selezionati su SageMaker con il seguente codice. Allo stesso modo, puoi distribuire l'istruzione Mixtral-8x7B utilizzando il proprio ID modello:

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

Questo distribuisce il modello su SageMaker con configurazioni predefinite, inclusi il tipo di istanza predefinito e le configurazioni VPC predefinite. È possibile modificare queste configurazioni specificando valori non predefiniti in Modello JumpStart.

Dopo la distribuzione, puoi eseguire l'inferenza sull'endpoint distribuito tramite il predittore SageMaker:

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

Esempi di prompt

Puoi interagire con un modello Mixtral-8x7B come qualsiasi modello standard di generazione di testo, in cui il modello elabora una sequenza di input e restituisce le parole successive previste nella sequenza. In questa sezione vengono forniti prompt di esempio.

Generazione del codice

Utilizzando l'esempio precedente, possiamo utilizzare prompt di generazione del codice come i seguenti:

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

Ottieni il seguente 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

Richiesta di analisi del sentiment

Puoi eseguire l'analisi del sentiment utilizzando un prompt come il seguente con 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)

Ottieni il seguente 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

Richieste di risposta alle domande

Puoi utilizzare una richiesta di risposta alla domanda come la seguente con 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)

Ottieni il seguente 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 Istruzione

La versione ottimizzata per le istruzioni di Mixtral-8x7B accetta istruzioni formattate in cui i ruoli di conversazione devono iniziare con un prompt dell'utente e alternarsi tra istruzione dell'utente e assistente (risposta modello). Il formato delle istruzioni deve essere rigorosamente rispettato, altrimenti il ​​modello genererà output non ottimali. Il modello utilizzato per creare un prompt per il modello Instruct è definito come segue:

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

Si noti che <s> ed </s> sono token speciali per l'inizio della stringa (BOS) e la fine della stringa (EOS), mentre [INST] ed [/INST] sono stringhe regolari.

Il codice seguente mostra come formattare il prompt nel formato istruzione:

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

Recupero della conoscenza

È possibile utilizzare il codice seguente per una richiesta di recupero della conoscenza:

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)

Ottieni il seguente 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.

codifica

I modelli Mixtral possono dimostrare punti di forza confrontati per le attività di codifica, come mostrato nel seguente codice:

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)

Ottieni il seguente 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.

Matematica e ragionamento

I modelli Mixtral riportano anche punti di forza nell’accuratezza matematica:

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)

I modelli Mixtral possono fornire la comprensione come mostrato nel seguente output con la logica matematica:

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

ripulire

Dopo aver terminato l'esecuzione del notebook, elimina tutte le risorse create nel processo in modo che la fatturazione venga interrotta. Utilizza il seguente codice:

predictor.delete_model()
predictor.delete_endpoint()

Conclusione

In questo post ti abbiamo mostrato come iniziare con Mixtral-8x7B in SageMaker Studio e distribuire il modello per l'inferenza. Poiché i modelli di base sono pre-addestrati, possono contribuire a ridurre i costi di formazione e infrastruttura e consentire la personalizzazione per il tuo caso d'uso. Visita subito SageMaker JumpStart in SageMaker Studio per iniziare.

Risorse


Circa gli autori

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Rachna Chada è Principal Solution Architect AI/ML in Strategic Accounts presso AWS. Rachna è un'ottimista che crede che l'uso etico e responsabile dell'IA possa migliorare la società in futuro e portare prosperità economica e sociale. Nel tempo libero, a Rachna piace passare il tempo con la sua famiglia, fare escursioni e ascoltare musica.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dottor Kyle Ulrich è uno scienziato applicato con il Algoritmi integrati di Amazon SageMaker squadra. I suoi interessi di ricerca includono algoritmi di machine learning scalabili, visione artificiale, serie storiche, bayesiani non parametrici e processi gaussiani. Il suo dottorato di ricerca è presso la Duke University e ha pubblicato articoli su NeurIPS, Cell e Neuron.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Christopher Whitten è uno sviluppatore di software nel team JumpStart. Aiuta a ridimensionare la selezione dei modelli e a integrare i modelli con altri servizi SageMaker. Chris è appassionato di accelerare l'ubiquità dell'intelligenza artificiale in una varietà di settori aziendali.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dott. Fabio Nonato de Paula è un Senior Manager, Specialist GenAI SA, che aiuta i fornitori di modelli e i clienti a scalare l'intelligenza artificiale generativa in AWS. Fabio ha una passione per la democratizzazione dell'accesso alla tecnologia dell'intelligenza artificiale generativa. Fuori dal lavoro, puoi trovare Fabio in sella alla sua moto sulle colline della Sonoma Valley o leggendo Comixology.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dottor Ashish Khetan è un Senior Applied Scientist con algoritmi integrati di Amazon SageMaker e aiuta a sviluppare algoritmi di machine learning. Ha conseguito il dottorato di ricerca presso l'Università dell'Illinois Urbana-Champaign. È un ricercatore attivo nell'apprendimento automatico e nell'inferenza statistica e ha pubblicato numerosi articoli nelle conferenze NeurIPS, ICML, ICLR, JMLR, ACL e EMNLP.

Mixtral-8x7B è ora disponibile in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Carlo Albertsen guida prodotti, ingegneria e scienza per Amazon SageMaker Algorithms e JumpStart, l'hub di machine learning di SageMaker. È appassionato di applicare l'apprendimento automatico per sbloccare il valore aziendale.

Timestamp:

Di più da Apprendimento automatico di AWS