Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services

Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services

I dag er vi glade for å kunngjøre at Code Llama-fundamentmodeller, utviklet av Meta, er tilgjengelige for kunder gjennom Amazon SageMaker JumpStart å distribuere med ett klikk for å kjøre inferens. Code Llama er en toppmoderne storspråksmodell (LLM) som er i stand til å generere kode og naturlig språk om kode fra både kode- og naturspråklige spørsmål. Du kan prøve denne modellen med SageMaker JumpStart, en maskinlæringshub (ML) som gir tilgang til algoritmer, modeller og ML-løsninger slik at du raskt kan komme i gang med ML. I dette innlegget går vi gjennom hvordan du oppdager og distribuerer Code Llama-modellen via SageMaker JumpStart.

Kode Lama

Code Llama er en modell utgitt av Meta som er bygget på toppen av Llama 2. Denne toppmoderne modellen er designet for å forbedre produktiviteten for programmeringsoppgaver for utviklere ved å hjelpe dem med å lage høykvalitets, godt dokumentert kode. Modellene utmerker seg i Python, C++, Java, PHP, C#, TypeScript og Bash, og har potensial til å spare utviklernes tid og gjøre programvarearbeidsflyten mer effektiv.

Den kommer i tre varianter, konstruert for å dekke et bredt spekter av bruksområder: grunnmodellen (Code Llama), en Python spesialisert modell (Code Llama Python), og en instruksjonsfølgende modell for å forstå instruksjoner for naturlig språk (Code Llama Instruct). Alle Code Llama-varianter kommer i fire størrelser: 7B, 13B, 34B og 70B parametere. 7B og 13B base og instruksvarianter støtter utfylling basert på omkringliggende innhold, noe som gjør dem ideelle for kodeassistentapplikasjoner. Modellene ble designet med Llama 2 som base og deretter trent på 500 milliarder tokens med kodedata, med Python-spesialiserte versjonen trent på inkrementelle 100 milliarder tokens. Code Llama-modellene gir stabile generasjoner med opptil 100,000 16,000 tokens av kontekst. Alle modellene er trent på sekvenser på 100,000 XNUMX tokens og viser forbedringer på innganger med opptil XNUMX XNUMX tokens.

Modellen er gjort tilgjengelig under samme samfunnslisens som Llama 2.

Fundamentmodeller i SageMaker

SageMaker JumpStart gir tilgang til en rekke modeller fra populære modellhuber, inkludert Hugging Face, PyTorch Hub og TensorFlow Hub, som du kan bruke i ML-utviklingsarbeidsflyten i SageMaker. Nylige fremskritt innen ML har gitt opphav til en ny klasse modeller kjent som grunnmodeller, som vanligvis er trent på milliarder av parametere og kan tilpasses en bred kategori av brukstilfeller, for eksempel tekstoppsummering, digital kunstgenerering og språkoversettelse. Fordi disse modellene er dyre å trene, ønsker kundene å bruke eksisterende forhåndstrente fundamentmodeller og finjustere dem etter behov, i stedet for å trene disse modellene selv. SageMaker gir en kurert liste over modeller som du kan velge mellom på SageMaker-konsollen.

Du kan finne fundamentmodeller fra forskjellige modellleverandører i SageMaker JumpStart, slik at du raskt kan komme i gang med fundamentmodeller. Du kan finne fundamentmodeller basert på ulike oppgaver eller modellleverandører, og enkelt gjennomgå modellens egenskaper og bruksvilkår. Du kan også prøve ut disse modellene ved å bruke en test UI-widget. Når du vil bruke en grunnmodell i stor skala, kan du gjøre det uten å forlate SageMaker ved å bruke forhåndsbygde notatbøker fra modellleverandører. Fordi modellene er vert og distribuert på AWS, kan du være trygg på at dataene dine, enten de brukes til å evaluere eller bruke modellen i stor skala, aldri deles med tredjeparter.

Oppdag Code Llama-modellen i SageMaker JumpStart

For å distribuere Code Llama 70B-modellen, fullfør følgende trinn i Amazon SageMaker Studio:

  1. Velg på SageMaker Studio-hjemmesiden tjuvstart i navigasjonsruten.

    Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

  2. Søk etter Code Llama-modeller og velg Code Llama 70B-modellen fra listen over modeller som vises.

    Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

    Du finner mer informasjon om modellen på modellkortet Code Llama 70B.

    Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

    Følgende skjermbilde viser endepunktinnstillingene. Du kan endre alternativene eller bruke standard.

  3. Godta sluttbrukerlisensavtalen (EULA) og velg Distribuer.
    Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

    Dette vil starte endepunktdistribusjonsprosessen, som vist i følgende skjermbilde.

    Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Distribuer modellen med SageMaker Python SDK

Alternativt kan du distribuere gjennom eksempelnotisboken ved å velge Åpne Notebook på modelldetaljsiden til Classic Studio. Eksempelnotisboken gir ende-til-ende veiledning om hvordan du kan distribuere modellen for slutninger og rydde opp i ressurser.

For å distribuere ved hjelp av bærbar PC, starter vi med å velge en passende modell, spesifisert av model_id. Du kan distribuere hvilken som helst av de valgte modellene på SageMaker med følgende kode:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="meta-textgeneration-llama-codellama-70b")
predictor = model.deploy(accept_eula=False) # Change EULA acceptance to True

Dette distribuerer modellen på SageMaker med standardkonfigurasjoner, inkludert standard forekomsttype og standard VPC-konfigurasjoner. Du kan endre disse konfigurasjonene ved å spesifisere ikke-standardverdier i JumpStartModel. Merk at som standard, accept_eula er satt til False. Du må stille inn accept_eula=True for å distribuere endepunktet på en vellykket måte. Ved å gjøre det godtar du brukerlisensavtalen og akseptabel brukspolicy som nevnt tidligere. Du kan også nedlasting lisensavtalen.

Påkalle et SageMaker-endepunkt

Etter at endepunktet er distribuert, kan du utføre slutninger ved å bruke Boto3 eller SageMaker Python SDK. I den følgende koden bruker vi SageMaker Python SDK for å kalle modellen for slutning og skrive ut svaret:

def print_response(payload, response): print(payload["inputs"]) print(f"> {response[0]['generated_text']}") print("n==================================n")

Funksjonen print_response tar en nyttelast som består av nyttelasten og modellresponsen og skriver ut resultatet. Code Llama støtter mange parametere mens du utfører inferens:

  • maks lengde – Modellen genererer tekst til utdatalengden (som inkluderer inndatakontekstlengden) når max_length. Hvis det er spesifisert, må det være et positivt heltall.
  • max_new_tokens – Modellen genererer tekst til utdatalengden (ekskludert inndatakontekstlengden) når max_new_tokens. Hvis det er spesifisert, må det være et positivt heltall.
  • antall_bjelker – Dette spesifiserer antall stråler som brukes i det grådige søket. Hvis spesifisert, må det være et heltall større enn eller lik num_return_sequences.
  • no_repeat_ngram_size – Modellen sikrer at en sekvens av ord av no_repeat_ngram_size gjentas ikke i utgangssekvensen. Hvis det er spesifisert, må det være et positivt heltall større enn 1.
  • temperatur – Dette kontrollerer tilfeldigheten i utgangen. Høyere temperature resulterer i en utdatasekvens med ord med lav sannsynlighet, og lavere temperature resulterer i en utdatasekvens med høysannsynlighetsord. Hvis temperature er 0, resulterer det i grådig dekoding. Hvis spesifisert, må det være en positiv flyte.
  • tidlig_stopping - Hvis True, tekstgenerering er fullført når alle strålehypoteser når slutten av setningstoken. Hvis det er spesifisert, må det være boolsk.
  • do_sample - Hvis True, modellen prøver neste ord i henhold til sannsynligheten. Hvis det er spesifisert, må det være boolsk.
  • topp_k – I hvert trinn av tekstgenerering prøver modellen kun fra top_k mest sannsynlige ord. Hvis det er spesifisert, må det være et positivt heltall.
  • topp_s – I hvert trinn av tekstgenerering prøver modellen fra det minste mulige settet med ord med kumulativ sannsynlighet top_p. Hvis det er spesifisert, må det være en flyte mellom 0 og 1.
  • return_full_text - Hvis True, vil inndatateksten være en del av den utdatagenererte teksten. Hvis det er spesifisert, må det være boolsk. Standardverdien for den er False.
  • stoppe – Hvis det er spesifisert, må det være en liste over strenger. Tekstgenerering stopper hvis en av de angitte strengene genereres.

Du kan spesifisere et hvilket som helst delsett av disse parameterne mens du påkaller et endepunkt. Deretter viser vi et eksempel på hvordan man kan påkalle et endepunkt med disse argumentene.

Kodeavslutning

Følgende eksempler viser hvordan du utfører kodefullføring der forventet endepunktsrespons er den naturlige fortsettelsen av ledeteksten.

Vi kjører først følgende kode:

prompt = """
import socket def ping_exponential_backoff(host: str): """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Vi får følgende utgang:

""" Pings the given host with exponential backoff. """ timeout = 1 while True: try: socket.create_connection((host, 80), timeout=timeout) return except socket.error: timeout *= 2

For vårt neste eksempel kjører vi følgende kode:

prompt = """
import argparse
def main(string: str): print(string) print(string[::-1])
if __name__ == "__main__": """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
predictor.predict(payload)

Vi får følgende utgang:

parser = argparse.ArgumentParser(description='Reverse a string') parser.add_argument('string', type=str, help='String to reverse') args = parser.parse_args() main(args.string)

Kodegenerering

Følgende eksempler viser Python-kodegenerering ved bruk av Code Llama.

Vi kjører først følgende kode:

prompt = """
Write a python function to traverse a list in reverse. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Vi får følgende utgang:

def reverse(list1): for i in range(len(list1)-1,-1,-1): print(list1[i]) list1 = [1,2,3,4,5]
reverse(list1)

For vårt neste eksempel kjører vi følgende kode:

prompt = """
Write a python function to to carry out bubble sort. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.1, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

Vi får følgende utgang:

def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

Dette er noen av eksemplene på koderelaterte oppgaver som bruker Code Llama 70B. Du kan bruke modellen til å generere enda mer komplisert kode. Vi oppfordrer deg til å prøve det ved å bruke dine egne koderelaterte brukstilfeller og eksempler!

Rydd opp

Etter at du har testet endepunktene, sørg for at du sletter SageMaker-slutningsendepunktene og modellen for å unngå kostnader. Bruk følgende kode:

predictor.delete_endpoint()

konklusjonen

I dette innlegget introduserte vi Code Llama 70B på SageMaker JumpStart. Code Llama 70B er en toppmoderne modell for å generere kode fra naturlige språkoppfordringer så vel som kode. Du kan distribuere modellen med noen få enkle trinn i SageMaker JumpStart og deretter bruke den til å utføre koderelaterte oppgaver som kodegenerering og kodeutfylling. Som et neste trinn kan du prøve å bruke modellen med dine egne koderelaterte brukstilfeller og data.


Om forfatterne

Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dr. Kyle Ulrich er en Applied Scientist med Amazon SageMaker JumpStart-teamet. Hans forskningsinteresser inkluderer skalerbare maskinlæringsalgoritmer, datasyn, tidsserier, Bayesianske ikke-parametriske og Gaussiske prosesser. Hans doktorgrad er fra Duke University og han har publisert artikler i NeurIPS, Cell og Neuron.

Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dr. Farooq Sabir er senior spesialistløsningsarkitekt for kunstig intelligens og maskinlæring ved AWS. Han har PhD- og MS-grader i elektroteknikk fra University of Texas i Austin og en MS i informatikk fra Georgia Institute of Technology. Han har over 15 års arbeidserfaring og liker også å undervise og veilede studenter. Hos AWS hjelper han kunder med å formulere og løse forretningsproblemer innen datavitenskap, maskinlæring, datasyn, kunstig intelligens, numerisk optimalisering og relaterte domener. Basert i Dallas, Texas, elsker han og familien å reise og dra på lange bilturer.

Code Llama 70B er nå tilgjengelig i Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.juni vant er produktsjef hos SageMaker JumpStart. Han fokuserer på å gjøre grunnmodeller lett synlige og brukbare for å hjelpe kunder med å bygge generative AI-applikasjoner. Hans erfaring hos Amazon inkluderer også mobil shoppingapplikasjon og siste mil levering.

Tidstempel:

Mer fra AWS maskinlæring