Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon

Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon

Danes z veseljem sporočamo, da so modeli temeljev Code Llama, ki jih je razvila Meta, na voljo strankam prek Amazon SageMaker JumpStart za uvedbo z enim klikom za tekoče sklepanje. Code Llama je najsodobnejši veliki jezikovni model (LLM), ki je sposoben generirati kodo in naravni jezik o kodi iz kodnih in naravnih jezikovnih pozivov. Ta model lahko preizkusite s SageMaker JumpStart, središčem za strojno učenje (ML), ki omogoča dostop do algoritmov, modelov in rešitev ML, tako da lahko hitro začnete uporabljati ML. V tem prispevku si ogledamo, kako odkriti in uvesti model Code Llama prek SageMaker JumpStart.

Šifra Llama

Code Llama je model, ki ga je izdal Meta ki je zgrajen na vrhu Llama 2. Ta najsodobnejši model je zasnovan za izboljšanje produktivnosti pri programskih nalogah za razvijalce, tako da jim pomaga ustvariti visokokakovostno, dobro dokumentirano kodo. Modeli se odlikujejo po Pythonu, C++, Javi, PHP, C#, TypeScriptu in Bashu ter imajo potencial, da razvijalcem prihranijo čas in naredijo delovne tokove programske opreme učinkovitejše.

Na voljo je v treh različicah, zasnovanih tako, da pokrivajo široko paleto aplikacij: temeljni model (Code Llama), specializirani model za Python (Code Llama Python) in model, ki sledi navodilom za razumevanje navodil naravnega jezika (Code Llama Instruct). Vse različice Code Llama so na voljo v štirih velikostih: parametri 7B, 13B, 34B in 70B. Različici 7B in 13B base in instruct podpirata izpolnjevanje na podlagi okoliške vsebine, zaradi česar sta idealni za aplikacije pomočnika kode. Modeli so bili zasnovani z uporabo Llama 2 kot osnove in nato usposobljeni na 500 milijardah žetonov podatkov kode, pri čemer je bila specializirana različica Python usposobljena na inkrementalnih 100 milijardah žetonov. Modeli Code Llama zagotavljajo stabilne generacije z do 100,000 žetoni konteksta. Vsi modeli so usposobljeni za zaporedja 16,000 žetonov in kažejo izboljšave pri vhodih z do 100,000 žetoni.

Model je na voljo pod isto licenca skupnosti kot Llama 2.

Modeli temeljev v SageMakerju

SageMaker JumpStart omogoča dostop do vrste modelov iz priljubljenih vozlišč za modele, vključno s Hugging Face, PyTorch Hub in TensorFlow Hub, ki jih lahko uporabite v delovnem procesu razvoja ML v SageMakerju. Nedavni napredek v ML je povzročil nov razred modelov, znan kot modeli temeljev, ki se običajno urijo na milijardah parametrov in so prilagodljivi široki kategoriji primerov uporabe, kot je povzemanje besedila, ustvarjanje digitalne umetnosti in prevajanje jezikov. Ker je usposabljanje teh modelov drago, stranke želijo uporabiti obstoječe vnaprej pripravljene modele temeljev in jih po potrebi natančno prilagoditi, namesto da bi te modele usposobile same. SageMaker ponuja izbran seznam modelov, med katerimi lahko izbirate na konzoli SageMaker.

V SageMaker JumpStart lahko najdete modele temeljev različnih ponudnikov modelov, kar vam omogoča, da hitro začnete z modeli temeljev. Poiščete lahko osnovne modele, ki temeljijo na različnih nalogah ali ponudnikih modelov, ter preprosto pregledate značilnosti modela in pogoje uporabe. Te modele lahko preizkusite tudi s testnim gradnikom uporabniškega vmesnika. Če želite uporabiti osnovni model v velikem obsegu, lahko to storite, ne da bi zapustili SageMaker, tako da uporabite vnaprej pripravljene prenosnike ponudnikov modelov. Ker modeli gostujejo in so nameščeni na AWS, ste lahko prepričani, da se vaši podatki, ne glede na to, ali se uporabljajo za ocenjevanje ali uporabo modela v velikem obsegu, nikoli ne delijo s tretjimi osebami.

Odkrijte model Code Llama v SageMaker JumpStart

Za uvedbo modela Code Llama 70B izvedite naslednje korake v Amazon SageMaker Studio:

  1. Na domači strani SageMaker Studio izberite jumpstart v podoknu za krmarjenje.

    Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

  2. Poiščite modele Code Llama in na seznamu prikazanih modelov izberite model Code Llama 70B.

    Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

    Več informacij o modelu najdete na kartici modela Code Llama 70B.

    Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

    Naslednji posnetek zaslona prikazuje nastavitve končne točke. Možnosti lahko spremenite ali uporabite privzete.

  3. Sprejmite licenčno pogodbo za končnega uporabnika (EULA) in izberite uvajanje.
    Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

    S tem se bo začel postopek uvajanja končne točke, kot je prikazano na naslednjem posnetku zaslona.

    Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Razmestite model s SDK SageMaker Python

Druga možnost je, da uvedete prek vzorčnega prenosnika tako, da izberete Odprite Beležnico na strani s podrobnostmi o modelu v programu Classic Studio. Primer zvezka nudi navodila od konca do konca o tem, kako razmestiti model za sklepanje in čiščenje virov.

Za uvajanje z uporabo prenosnega računalnika začnemo z izbiro ustreznega modela, ki ga določi model_id. Kateri koli od izbranih modelov lahko namestite na SageMaker z naslednjo kodo:

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

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. Upoštevajte, da je privzeto accept_eula nastavljena na False. Morate nastaviti accept_eula=True za uspešno namestitev končne točke. S tem sprejemate uporabniško licenčno pogodbo in politiko sprejemljive uporabe, kot je bilo omenjeno prej. Lahko tudi prenesi licenčno pogodbo.

Prikličite končno točko SageMaker

Ko je končna točka uvedena, lahko izvedete sklepanje z uporabo Boto3 ali SDK SageMaker Python. V naslednji kodi uporabljamo SDK SageMaker Python za klic modela za sklepanje in tiskanje odgovora:

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

funkcija print_response prevzame koristni tovor, sestavljen iz koristnega tovora in odziva modela, ter natisne izhod. Code Llama med izvajanjem sklepanja podpira številne parametre:

  • največja_dolžina – Model ustvarja besedilo, dokler ne doseže izhodne dolžine (ki vključuje dolžino vhodnega konteksta). max_length. Če je navedeno, mora biti pozitivno celo število.
  • max_new_tokens – Model generira besedilo, dokler ne doseže izhodne dolžine (razen dolžine vhodnega konteksta). max_new_tokens. Če je navedeno, mora biti pozitivno celo število.
  • št_žarkov – To določa število žarkov, uporabljenih pri pohlepnem iskanju. Če je navedeno, mora biti celo število, večje ali enako num_return_sequences.
  • no_repeat_ngram_size – Model zagotavlja, da zaporedje besed no_repeat_ngram_size se ne ponovi v izhodnem zaporedju. Če je navedeno, mora biti pozitivno celo število, večje od 1.
  • temperatura – To nadzoruje naključnost v izhodu. višje temperature povzroči izhodno zaporedje z besedami z nizko verjetnostjo in nižje temperature povzroči izhodno zaporedje z besedami z visoko verjetnostjo. če temperature je 0, ima za posledico pohlepno dekodiranje. Če je navedeno, mora biti pozitivno lebdeče.
  • zgodnje_ustavljanje - Če True, je generiranje besedila končano, ko vse hipoteze žarka dosežejo konec stavčnega žetona. Če je navedeno, mora biti logično.
  • do_sample - Če True, model vzorči naslednjo besedo glede na verjetnost. Če je navedeno, mora biti logično.
  • top_k – V vsakem koraku generiranja besedila model vzorči samo iz top_k najverjetneje besede. Če je navedeno, mora biti pozitivno celo število.
  • top_p – V vsakem koraku generiranja besedila model vzorči iz najmanjšega možnega niza besed s kumulativno verjetnostjo top_p. Če je podano, mora biti lebdeča vrednost med 0 in 1.
  • return_full_text - Če True, bo vhodno besedilo del izhodno ustvarjenega besedila. Če je navedeno, mora biti logično. Privzeta vrednost zanj je False.
  • stop – Če je navedeno, mora biti seznam nizov. Generiranje besedila se ustavi, če je ustvarjen kateri koli od navedenih nizov.

Med priklicem končne točke lahko podate kateri koli podnabor teh parametrov. Nato pokažemo primer, kako priklicati končno točko s temi argumenti.

Dopolnitev kode

Naslednji primeri prikazujejo, kako izvesti dokončanje kode, kjer je pričakovan odziv končne točke naravno nadaljevanje poziva.

Najprej zaženemo naslednjo kodo:

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)

Dobimo naslednji rezultat:

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

Za naš naslednji primer zaženemo naslednjo kodo:

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)

Dobimo naslednji rezultat:

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

Ustvarjanje kode

Naslednji primeri prikazujejo ustvarjanje kode Python z uporabo Code Llama.

Najprej zaženemo naslednjo kodo:

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)

Dobimo naslednji rezultat:

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

Za naš naslednji primer zaženemo naslednjo kodo:

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)

Dobimo naslednji rezultat:

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

To je nekaj primerov opravil, povezanih s kodo, ki uporabljajo Code Llama 70B. Model lahko uporabite za ustvarjanje še bolj zapletene kode. Priporočamo vam, da poskusite z uporabo lastnih primerov uporabe in primerov, povezanih s kodo!

Čiščenje

Ko ste preizkusili končne točke, se prepričajte, da ste izbrisali končne točke sklepanja SageMaker in model, da preprečite nastanek stroškov. Uporabite naslednjo kodo:

predictor.delete_endpoint()

zaključek

V tej objavi smo predstavili Code Llama 70B na SageMaker JumpStart. Code Llama 70B je najsodobnejši model za generiranje kode iz pozivov naravnega jezika in kode. Model lahko uvedete z nekaj preprostimi koraki v SageMaker JumpStart in ga nato uporabite za izvajanje nalog, povezanih s kodo, kot sta ustvarjanje kode in polnjenje kode. Kot naslednji korak poskusite uporabiti model z lastnimi primeri uporabe in podatki, povezanimi s kodo.


O avtorjih

Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Dr. Kyle Ulrich je uporabni znanstvenik pri ekipi Amazon SageMaker JumpStart. 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.

Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Dr. Farooq Sabir je višji strokovnjak za rešitve za umetno inteligenco in strojno učenje pri AWS. Ima doktorat in magisterij iz elektrotehnike na Univerzi v Teksasu v Austinu in magisterij iz računalništva na Georgia Institute of Technology. Ima več kot 15 let delovnih izkušenj, rad pa tudi poučuje in mentorira študente. Pri AWS strankam pomaga oblikovati in reševati njihove poslovne probleme na področju podatkovne znanosti, strojnega učenja, računalniškega vida, umetne inteligence, numerične optimizacije in sorodnih področij. S sedežem v Dallasu v Teksasu on in njegova družina radi potujejo in se odpravijo na dolga potovanja.

Code Llama 70B je zdaj na voljo v Amazon SageMaker JumpStart | Spletne storitve Amazon PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.junij zmagal je produktni vodja pri SageMaker JumpStart. Osredotoča se na to, da naredi temeljne modele enostavno odkrite in uporabne za pomoč strankam pri gradnji generativnih aplikacij AI. Njegove izkušnje pri Amazonu vključujejo tudi aplikacijo za mobilno nakupovanje in dostavo zadnjega kilometra.

Časovni žig:

Več od Strojno učenje AWS