Mixtral-8x7B on nyt saatavilla Amazon SageMaker JumpStart | Amazon Web Services

Mixtral-8x7B on nyt saatavilla Amazon SageMaker JumpStart | Amazon Web Services

Lähdesolmu: 3033174

Tänään meillä on ilo ilmoittaa, että Mixtral-8x7B Mistral AI:n kehittämä laaja kielimalli (LLM) on asiakkaiden saatavilla kautta Amazon SageMaker JumpStart ottaa käyttöön yhdellä napsautuksella päättelyn suorittamiseksi. Mixtral-8x7B LLM on valmiiksi koulutettu harva asiantuntijamallin sekoitus, joka perustuu 7 miljardin parametrin runkoon, jossa on kahdeksan asiantuntijaa eteenpäinsyöttökerrosta kohti. Voit kokeilla tätä mallia SageMaker JumpStartilla, koneoppimiskeskuksella (ML), joka tarjoaa pääsyn algoritmeihin ja malleihin, jotta voit nopeasti aloittaa ML:n käytön. Tässä viestissä käymme läpi, kuinka löytää ja ottaa käyttöön Mixtral-8x7B-malli.

Mikä on Mixtral-8x7B

Mixtral-8x7B on Mistral AI:n kehittämä perusmalli, joka tukee englannin-, ranskan-, saksan-, italia- ja espanjankielistä tekstiä koodin luontikyvyllä. Se tukee useita käyttötapauksia, kuten tekstin yhteenvetoa, luokittelua, tekstin täydentämistä ja koodin viimeistelyä. Se käyttäytyy hyvin chat-tilassa. Mallin suoraviivaisen muokattavuuden osoittamiseksi Mistral AI on myös julkaissut Mixtral-8x7B-ohjemallin chat-käyttötapauksiin, joita on hienosäädetty käyttämällä erilaisia ​​julkisesti saatavilla olevia keskustelutietosarjoja. Mixtral-malleilla on suuri kontekstipituus, jopa 32,000 XNUMX merkkiä.

Mixtral-8x7B tarjoaa merkittäviä suorituskyvyn parannuksia verrattuna aikaisempiin huippuluokan malleihin. Sen harva asiantuntija-arkkitehtuuri mahdollistaa paremman suorituskyvyn yhdeksässä 9:sta luonnollisen kielen käsittelyn (NLP) vertailuarvosta, jotka on testattu. Mistral AI. Mixtral vastaa tai ylittää mallien suorituskyvyn jopa 10 kertaa kokoonsa. Hyödyntämällä vain murto-osaa parametreista tunnistetta kohden, se saavuttaa nopeammat päättelynopeudet ja pienemmät laskentakustannukset verrattuna tiheisiin ja samankokoisiin malleihin – esimerkiksi yhteensä 46.7 miljardia parametria, mutta vain 12.9 miljardia tunnistetta kohden. Tämä korkean suorituskyvyn, monikielisen tuen ja laskentatehokkuuden yhdistelmä tekee Mixtral-8x7B:stä houkuttelevan valinnan NLP-sovelluksiin.

Malli on saatavilla sallitulla Apache 2.0 -lisenssillä käytettäväksi ilman rajoituksia.

Mikä on SageMaker JumpStart

SageMaker JumpStartin avulla ML-harjoittajat voivat valita kasvavasta luettelosta parhaiten suoriutuvia meikkipohjamalleja. ML-ammattilaiset voivat ottaa käyttöön perustamismalleja omistettuihin Amazon Sage Maker instansseja verkosta eristetyssä ympäristössä ja mukauta malleja SageMakerin avulla mallin koulutusta ja käyttöönottoa varten.

Voit nyt löytää ja ottaa käyttöön Mixtral-8x7B:n muutamalla napsautuksella Amazon SageMaker Studio tai ohjelmallisesti SageMaker Python SDK:n kautta, jonka avulla voit johtaa mallin suorituskykyä ja MLOps-säätimiä SageMaker-ominaisuuksilla, kuten Amazon SageMaker -putkistot, Amazon SageMaker -korjaamotai konttitukkeja. Malli on otettu käyttöön suojatussa AWS-ympäristössä ja VPC-ohjaimissasi, mikä auttaa varmistamaan tietoturvan.

Tutustu malleihin

Pääset käsiksi Mixtral-8x7B-pohjamalleihin SageMaker JumpStartin kautta SageMaker Studion käyttöliittymässä ja SageMaker Python SDK:ssa. Tässä osiossa käymme läpi kuinka löytää mallit SageMaker Studiossa.

SageMaker Studio on integroitu kehitysympäristö (IDE), joka tarjoaa yhden web-pohjaisen visuaalisen käyttöliittymän, jossa voit käyttää tarkoitukseen rakennettuja työkaluja kaikkien ML-kehitysvaiheiden suorittamiseen tietojen valmistelusta ML-mallien rakentamiseen, koulutukseen ja käyttöönottoon. Katso lisätietoja SageMaker Studion aloittamisesta ja määrittämisestä Amazon SageMaker Studio.

SageMaker Studiossa pääset SageMaker JumpStartiin valitsemalla Kaapelikäynnistys navigointipaneelissa.

SageMaker JumpStart -aloitussivulta voit etsiä "Mixtral" hakukentästä. Näet hakutuloksissa Mixtral 8x7B ja Mixtral 8x7B Instruct.

Voit valita mallikortin nähdäksesi mallin tiedot, kuten lisenssin, koulutuksessa käytetyt tiedot ja käytön. Löydät myös Sijoittaa -painiketta, jonka avulla voit ottaa mallin käyttöön ja luoda päätepisteen.

Ota malli käyttöön

Käyttöönotto alkaa, kun valitset Sijoittaa. Kun käyttöönotto on valmis, sinulle on luotu päätepiste. Voit testata päätepistettä välittämällä esimerkkipäätelmäpyynnön hyötykuorman tai valitsemalla testausvaihtoehdon SDK:n avulla. Kun valitset SDK:n käyttövaihtoehdon, näet esimerkkikoodin, jota voit käyttää haluamassasi muistikirjaeditorissa SageMaker Studiossa.

Ottaaksesi käyttöön SDK:n avulla aloitamme valitsemalla Mixtral-8x7B-mallin, jonka määrittelee model_id with value huggingface-llm-mixtral-8x7b. Voit ottaa minkä tahansa valitun mallin käyttöön SageMakerissa seuraavalla koodilla. Vastaavasti voit ottaa käyttöön Mixtral-8x7B-ohjeen käyttämällä sen omaa mallitunnusta:

from sagemaker.jumpstart.model import JumpStartModel

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

Tämä ottaa mallin käyttöön SageMakerissa oletuskokoonpanoilla, mukaan lukien oletusinstanssityypin ja VPC-oletuskokoonpanot. Voit muuttaa näitä määrityksiä määrittämällä ei-oletusarvoja JumpStartModel.

Kun se on otettu käyttöön, voit suorittaa päätelmiä käyttöön otettua päätepistettä vastaan ​​SageMaker-ennustajan kautta:

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

Esimerkkikehotteet

Voit olla vuorovaikutuksessa Mixtral-8x7B-mallin kanssa kuten minkä tahansa tavallisen tekstin luontimallin kanssa, jossa malli käsittelee syöttösekvenssin ja tulostaa sarjan ennustetut seuraavat sanat. Tässä osiossa tarjoamme esimerkkikehotteita.

Koodin luonti

Edellisen esimerkin avulla voimme käyttää koodinluontikehotteita, kuten seuraavat:

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

Saat seuraavan tuloksen:

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

Tunneanalyysin kehotus

Mixtral 8x7B:n kanssa voit suorittaa tunneanalyysin käyttämällä seuraavanlaista kehotetta:

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)

Saat seuraavan tuloksen:

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

Kysymyksiin vastaaminen

Voit käyttää Mixtral-8x7B:n kanssa seuraavan kaltaista kysymykseen vastauskehotetta:

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

Saat seuraavan tuloksen:

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 ohje

Mixtral-8x7B:n ohjeistettu versio hyväksyy muotoiltuja ohjeita, joissa keskusteluroolien on aloitettava käyttäjän kehotteella ja vaihdettava käyttäjän ohjeen ja avustajan välillä (mallivastaus). Ohjemuotoa on ehdottomasti noudatettava, muuten malli tuottaa optimaalista huonompia tuloksia. Instruct-mallin kehotteen luomiseen käytetty malli on määritelty seuraavasti:

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

Huomaa, että <s> ja </s> ovat erikoismerkkejä merkkijonon alkuun (BOS) ja merkkijonon loppuun (EOS), kun taas [INST] ja [/INST] ovat tavallisia merkkijonoja.

Seuraava koodi näyttää, kuinka voit muotoilla kehotteen ohjemuotoon:

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

Tietojen haku

Voit käyttää seuraavaa koodia tiedonhakukehotteeseen:

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)

Saat seuraavan tuloksen:

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

Koodaus

Mixtral-mallit voivat osoittaa vertailukohtaisia ​​vahvuuksia koodaustehtävissä seuraavan koodin osoittamalla tavalla:

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)

Saat seuraavan tuloksen:

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

Matematiikka ja päättely

Mixtral-mallit kertovat myös vahvuuksista matematiikan tarkkuudessa:

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-mallit voivat tarjota ymmärrystä seuraavan tuloksen osoittamalla tavalla matemaattisella logiikalla:

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

Puhdistaa

Kun olet lopettanut muistikirjan käyttämisen, poista kaikki prosessin aikana luomasi resurssit, jotta laskutuksesi lopetetaan. Käytä seuraavaa koodia:

predictor.delete_model()
predictor.delete_endpoint()

Yhteenveto

Tässä viestissä näytimme sinulle, kuinka pääset alkuun Mixtral-8x7B:n kanssa SageMaker Studiossa ja otat mallin käyttöön johtopäätösten tekemiseen. Koska perusmallit ovat valmiiksi koulutettuja, ne voivat auttaa alentamaan koulutus- ja infrastruktuurikustannuksia ja mahdollistaa räätälöinnin käyttötilanteeseesi. Aloita käymällä SageMaker JumpStartissa SageMaker Studiossa nyt.

Esittelymateriaalit


Tietoja kirjoittajista

Rachna Chadha on AWS:n strategisten tilien pääratkaisuarkkitehti AI/ML. Rachna on optimisti, joka uskoo, että tekoälyn eettinen ja vastuullinen käyttö voi parantaa yhteiskuntaa tulevaisuudessa ja tuoda taloudellista ja sosiaalista vaurautta. Vapaa-ajallaan Rachna viettää mielellään aikaa perheensä kanssa, vaeltaa ja kuuntelee musiikkia.

Tohtori Kyle Ulrich on soveltuva tutkija Amazon SageMakerin sisäänrakennetut algoritmit tiimi. Hänen tutkimusalueitaan ovat skaalautuvat koneoppimisalgoritmit, tietokonenäkö, aikasarjat, Bayesin ei-parametrit ja Gaussin prosessit. Hänen tohtorinsa on Duken yliopistosta ja hän on julkaissut artikkeleita NeurIPS-, Cell- ja Neuron-julkaisuissa.

Christopher Whitten on ohjelmistokehittäjä JumpStart-tiimissä. Hän auttaa skaalautumaan mallien valinnassa ja integroimaan malleja muihin SageMaker-palveluihin. Chris on intohimoinen tekoälyn yleistymisen nopeuttamiseen useilla liiketoiminta-alueilla.

Tohtori Fabio Nonato de Paula on Senior Manager, Specialist GenAI SA, joka auttaa mallintarjoajia ja asiakkaita skaalaamaan generatiivista tekoälyä AWS:ssä. Fabiolla on intohimo demokratisoida pääsy generatiiviseen tekoälyteknologiaan. Töiden ulkopuolella voit löytää Fabio ajamassa moottoripyörällään Sonoma Valleyn kukkuloilla tai lukemassa ComiXologya.

Tohtori Ashish Khetan on vanhempi soveltuva tutkija, jolla on sisäänrakennetut Amazon SageMaker -algoritmit ja auttaa kehittämään koneoppimisalgoritmeja. Hän sai tohtorin tutkinnon Illinois Urbana-Champaignin yliopistosta. Hän on aktiivinen koneoppimisen ja tilastollisen päättelyn tutkija, ja hän on julkaissut monia artikkeleita NeurIPS-, ICML-, ICLR-, JMLR-, ACL- ja EMNLP-konferensseissa.

Karl Albertsen johtaa tuotteita, suunnittelua ja tiedettä Amazon SageMaker Algorithmsille ja JumpStartille, SageMakerin koneoppimiskeskukselle. Hän on intohimoinen koneoppimisen soveltamisesta liiketoiminnan arvon avaamiseen.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen