Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon-webservices

Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon-webservices

Vandaag zijn we verheugd om aan te kondigen dat Code Llama-funderingsmodellen, ontwikkeld door Meta, beschikbaar zijn voor klanten via Amazon SageMaker JumpStart om met รฉรฉn klik te implementeren voor het uitvoeren van gevolgtrekkingen. Code Llama is een geavanceerd groottaalmodel (LLM) dat code en natuurlijke taal over code kan genereren op basis van zowel code- als natuurlijke taalprompts. U kunt dit model uitproberen met SageMaker JumpStart, een machine learning (ML)-hub die toegang biedt tot algoritmen, modellen en ML-oplossingen, zodat u snel aan de slag kunt met ML. In dit bericht bekijken we hoe u het Code Llama-model kunt ontdekken en implementeren via SageMaker JumpStart.

Code Lama

Code Llama is een model uitgebracht door meta dat bovenop Llama 2 is gebouwd. Dit ultramoderne model is ontworpen om de productiviteit van programmeertaken voor ontwikkelaars te verbeteren door hen te helpen hoogwaardige, goed gedocumenteerde code te creรซren. De modellen blinken uit in Python, C++, Java, PHP, C#, TypeScript en Bash, en hebben het potentieel om ontwikkelaars tijd te besparen en softwareworkflows efficiรซnter te maken.

Het komt in drie varianten, ontworpen om een โ€‹โ€‹breed scala aan toepassingen te dekken: het basismodel (Code Llama), een gespecialiseerd Python-model (Code Llama Python) en een instructievolgend model voor het begrijpen van instructies in natuurlijke taal (Code Llama Instruct). Alle Code Llama-varianten zijn verkrijgbaar in vier maten: 7B-, 13B-, 34B- en 70B-parameters. De basis- en instructievarianten 7B en 13B ondersteunen het invullen op basis van omringende inhoud, waardoor ze ideaal zijn voor code-assistenttoepassingen. De modellen zijn ontworpen met Llama 2 als basis en vervolgens getraind op 500 miljard tokens aan codegegevens, waarbij de gespecialiseerde Python-versie is getraind op incrementeel 100 miljard tokens. De Code Llama-modellen bieden stabiele generaties met maximaal 100,000 tokens aan context. Alle modellen zijn getraind op reeksen van 16,000 tokens en tonen verbeteringen bij invoer met maximaal 100,000 tokens.

Het model wordt onder dezelfde versie beschikbaar gesteld gemeenschapslicentie als Llama 2.

Funderingsmodellen in SageMaker

SageMaker JumpStart biedt toegang tot een reeks modellen van populaire modelhubs, waaronder Hugging Face, PyTorch Hub en TensorFlow Hub, die u kunt gebruiken binnen uw ML-ontwikkelingsworkflow in SageMaker. Recente ontwikkelingen op het gebied van ML hebben aanleiding gegeven tot een nieuwe klasse modellen, bekend als funderingsmodellen, die doorgaans zijn getraind op miljarden parameters en kunnen worden aangepast aan een brede categorie gebruiksscenario's, zoals het samenvatten van teksten, het genereren van digitale kunst en het vertalen van talen. Omdat het trainen van deze modellen duur is, willen klanten bestaande, vooraf getrainde basismodellen gebruiken en deze indien nodig verfijnen, in plaats van deze modellen zelf te trainen. SageMaker biedt een samengestelde lijst met modellen waaruit u kunt kiezen op de SageMaker-console.

Binnen SageMaker JumpStart vindt u funderingsmodellen van verschillende modelaanbieders, zodat u snel aan de slag kunt met funderingsmodellen. U kunt funderingsmodellen vinden op basis van verschillende taken of modelaanbieders, en eenvoudig modelkenmerken en gebruiksvoorwaarden bekijken. U kunt deze modellen ook uitproberen met behulp van een test-UI-widget. Als u een basismodel op schaal wilt gebruiken, kunt u dit doen zonder SageMaker te verlaten door kant-en-klare notebooks van modelaanbieders te gebruiken. Omdat de modellen worden gehost en geรฏmplementeerd op AWS, kunt u er zeker van zijn dat uw gegevens, ongeacht of deze worden gebruikt voor de evaluatie of het gebruik van het model op schaal, nooit met derden worden gedeeld.

Ontdek het Code Llama-model in SageMaker JumpStart

Om het Code Llama 70B-model te implementeren, voert u de volgende stappen uit in Amazon SageMaker Studio:

  1. Kies op de startpagina van SageMaker Studio snelle start in het navigatievenster.

    Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

  2. Zoek naar Code Llama-modellen en kies het Code Llama 70B-model uit de weergegeven lijst met modellen.

    Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

    Meer informatie over het model vindt u op de Code Llama 70B-modelkaart.

    Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

    De volgende schermafbeelding toont de eindpuntinstellingen. U kunt de opties wijzigen of de standaardopties gebruiken.

  3. Accepteer de licentieovereenkomst voor eindgebruikers (EULA) en kies Implementeren.
    Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

    Hiermee wordt het implementatieproces voor het eindpunt gestart, zoals weergegeven in de volgende schermafbeelding.

    Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Implementeer het model met de SageMaker Python SDK

U kunt ook via het voorbeeldnotebook implementeren door te kiezen Notitieblok openen op de modeldetailpagina van Classic Studio. Het voorbeeldnotebook biedt end-to-end richtlijnen voor het implementeren van het model voor gevolgtrekking en het opschonen van bronnen.

Om te implementeren met behulp van een notebook, beginnen we met het selecteren van een geschikt model, gespecificeerd door de model_id. U kunt elk van de geselecteerde modellen op SageMaker implementeren met de volgende code:

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

Dit implementeert het model op SageMaker met standaardconfiguraties, inclusief standaard instantietype en standaard VPC-configuraties. U kunt deze configuraties wijzigen door niet-standaardwaarden op te geven in JumpStart-model. Houd er rekening mee dat standaard accept_eula is ingesteld op False. Je moet instellen accept_eula=True om het eindpunt succesvol te implementeren. Door dit te doen, accepteert u de gebruikerslicentieovereenkomst en het beleid voor acceptabel gebruik, zoals eerder vermeld. Je kan ook Download de licentieovereenkomst.

Roep een SageMaker-eindpunt aan

Nadat het eindpunt is geรฏmplementeerd, kunt u gevolgtrekkingen uitvoeren met behulp van Boto3 of de SageMaker Python SDK. In de volgende code gebruiken we de SageMaker Python SDK om het model aan te roepen voor gevolgtrekking en het antwoord af te drukken:

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

De functie print_response neemt een payload bestaande uit de payload en het modelantwoord en drukt de uitvoer af. Code Llama ondersteunt veel parameters tijdens het uitvoeren van gevolgtrekkingen:

  • maximale lengte โ€“ Het model genereert tekst totdat de uitvoerlengte (inclusief de invoercontextlengte) bereikt is max_length. Indien gespecificeerd, moet het een positief geheel getal zijn.
  • max_nieuwe_tokens โ€“ Het model genereert tekst totdat de uitvoerlengte (exclusief de lengte van de invoercontext) is bereikt max_new_tokens. Indien gespecificeerd, moet het een positief geheel getal zijn.
  • aantal_beams โ€“ Dit specificeert het aantal balken dat wordt gebruikt bij de hebzuchtige zoekopdracht. Indien opgegeven, moet het een geheel getal groter dan of gelijk aan zijn num_return_sequences.
  • no_repeat_ngram_size โ€“ Het model zorgt ervoor dat een reeks woorden van no_repeat_ngram_size wordt niet herhaald in de uitgangsvolgorde. Indien gespecificeerd, moet het een positief geheel getal groter dan 1 zijn.
  • temperatuur- โ€“ Hiermee regelt u de willekeur in de uitvoer. Hoger temperature resulteert in een uitvoerreeks met woorden met een lage waarschijnlijkheid, en lager temperature resulteert in een uitvoerreeks met woorden met een hoge waarschijnlijkheid. Als temperature 0 is, resulteert dit in hebzuchtige decodering. Indien gespecificeerd, moet het een positieve float zijn.
  • vroeg_stoppen - Indien True, is het genereren van tekst voltooid wanneer alle bundelhypothesen het einde van het zintoken bereiken. Indien gespecificeerd, moet het Booleaans zijn.
  • doen_voorbeeld - Indien True, bemonstert het model het volgende woord op basis van de waarschijnlijkheid. Indien gespecificeerd, moet het Booleaans zijn.
  • top_k โ€“ Bij elke stap van het genereren van tekst neemt het model alleen monsters van de top_k meest waarschijnlijke woorden. Indien gespecificeerd, moet het een positief geheel getal zijn.
  • top_p โ€“ In elke stap van het genereren van tekst neemt het model een steekproef uit de kleinst mogelijke reeks woorden met cumulatieve waarschijnlijkheid top_p. Indien gespecificeerd, moet het een float tussen 0 en 1 zijn.
  • return_full_text - Indien True, zal de invoertekst deel uitmaken van de door de uitvoer gegenereerde tekst. Indien gespecificeerd, moet het Booleaans zijn. De standaardwaarde hiervoor is False.
  • stoppen โ€“ Indien opgegeven, moet het een lijst met tekenreeksen zijn. Het genereren van tekst stopt als een van de opgegeven tekenreeksen wordt gegenereerd.

U kunt elke subset van deze parameters opgeven terwijl u een eindpunt aanroept. Vervolgens laten we een voorbeeld zien van hoe u een eindpunt kunt aanroepen met deze argumenten.

Code aanvulling

De volgende voorbeelden laten zien hoe u code kunt voltooien waarbij de verwachte eindpuntreactie de natuurlijke voortzetting van de prompt is.

We voeren eerst de volgende code uit:

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)

We krijgen de volgende uitvoer:

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

Voor ons volgende voorbeeld voeren we de volgende code uit:

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)

We krijgen de volgende uitvoer:

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

Codegeneratie

De volgende voorbeelden tonen het genereren van Python-code met behulp van Code Llama.

We voeren eerst de volgende code uit:

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)

We krijgen de volgende uitvoer:

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

Voor ons volgende voorbeeld voeren we de volgende code uit:

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)

We krijgen de volgende uitvoer:

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

Dit zijn enkele voorbeelden van codegerelateerde taken waarbij Code Llama 70B wordt gebruikt. U kunt het model gebruiken om nog ingewikkelder code te genereren. We moedigen u aan om het te proberen met uw eigen codegerelateerde gebruiksscenario's en voorbeelden!

Opruimen

Nadat u de eindpunten hebt getest, moet u ervoor zorgen dat u de SageMaker-inferentie-eindpunten en het model verwijdert om te voorkomen dat er kosten in rekening worden gebracht. Gebruik de volgende code:

predictor.delete_endpoint()

Conclusie

In dit bericht hebben we Code Llama 70B geรฏntroduceerd op SageMaker JumpStart. Code Llama 70B is een geavanceerd model voor het genereren van code op basis van natuurlijke taalprompts en code. U kunt het model met een paar eenvoudige stappen in SageMaker JumpStart implementeren en het vervolgens gebruiken om codegerelateerde taken uit te voeren, zoals het genereren van code en het aanvullen van code. Probeer als volgende stap het model te gebruiken met uw eigen codegerelateerde gebruiksscenario's en gegevens.


Over de auteurs

Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Dr Kyle Ulrich is een Applied Scientist bij het Amazon SageMaker JumpStart-team. Zijn onderzoeksinteresses omvatten schaalbare machine learning-algoritmen, computervisie, tijdreeksen, Bayesiaanse niet-parametrische gegevens en Gaussiaanse processen. Zijn PhD is van Duke University en hij heeft artikelen gepubliceerd in NeurIPS, Cell en Neuron.

Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Dr. Farooq Sabir is een Senior Artificial Intelligence en Machine Learning Specialist Solutions Architect bij AWS. Hij heeft een doctoraat en een MS-graad in Electrical Engineering van de Universiteit van Texas in Austin en een MS in Computer Science van het Georgia Institute of Technology. Hij heeft meer dan 15 jaar werkervaring en geeft ook graag les en begeleidt studenten. Bij AWS helpt hij klanten bij het formuleren en oplossen van hun zakelijke problemen op het gebied van datawetenschap, machine learning, computervisie, kunstmatige intelligentie, numerieke optimalisatie en aanverwante domeinen. Gevestigd in Dallas, Texas, houden hij en zijn gezin van reizen en lange roadtrips maken.

Code Llama 70B is nu beschikbaar in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.juni gewonnen is een productmanager bij SageMaker JumpStart. Hij richt zich op het gemakkelijk vindbaar en bruikbaar maken van basismodellen om klanten te helpen bij het bouwen van generatieve AI-applicaties. Zijn ervaring bij Amazon omvat ook mobiele winkelapplicaties en last mile-bezorging.

Tijdstempel:

Meer van AWS-machine learning