Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού της Amazon

Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού της Amazon

Σήμερα, είμαστε ενθουσιασμένοι που ανακοινώνουμε ότι τα μοντέλα βάσης Code Llama, που αναπτύχθηκαν από τη Meta, είναι διαθέσιμα για τους πελάτες μέσω Amazon SageMaker JumpStart για ανάπτυξη με ένα κλικ για εκτέλεση συμπερασμάτων. Το Code Llama είναι ένα υπερσύγχρονο μοντέλο μεγάλων γλωσσών (LLM) ικανό να παράγει κώδικα και φυσική γλώσσα σχετικά με τον κώδικα τόσο από κώδικα όσο και από προτροπές φυσικής γλώσσας. Μπορείτε να δοκιμάσετε αυτό το μοντέλο με το SageMaker JumpStart, έναν κόμβο μηχανικής εκμάθησης (ML) που παρέχει πρόσβαση σε αλγόριθμους, μοντέλα και λύσεις ML, ώστε να μπορείτε να ξεκινήσετε γρήγορα με την ML. Σε αυτήν την ανάρτηση, περιγράφουμε πώς να ανακαλύψετε και να αναπτύξετε το μοντέλο Code Llama μέσω του SageMaker JumpStart.

Κωδικός Llama

Το Code Llama είναι ένα μοντέλο που κυκλοφόρησε από Meta που είναι χτισμένο πάνω στο Llama 2. Αυτό το μοντέλο τελευταίας τεχνολογίας έχει σχεδιαστεί για να βελτιώνει την παραγωγικότητα για εργασίες προγραμματισμού για προγραμματιστές, βοηθώντας τους να δημιουργούν υψηλής ποιότητας, καλά τεκμηριωμένο κώδικα. Τα μοντέλα υπερέχουν σε Python, C++, Java, PHP, C#, TypeScript και Bash και έχουν τη δυνατότητα να εξοικονομήσουν χρόνο από τους προγραμματιστές και να κάνουν τις ροές εργασίας λογισμικού πιο αποτελεσματικές.

Διατίθεται σε τρεις παραλλαγές, σχεδιασμένες για να καλύπτουν μια μεγάλη ποικιλία εφαρμογών: το βασικό μοντέλο (Code Llama), ένα εξειδικευμένο μοντέλο Python (Code Llama Python) και ένα μοντέλο που ακολουθεί τις οδηγίες για την κατανόηση των οδηγιών φυσικής γλώσσας (Code Llama Instruct). Όλες οι παραλλαγές Code Llama διατίθενται σε τέσσερα μεγέθη: παραμέτρους 7B, 13B, 34B και 70B. Οι παραλλαγές βάσης και οδηγιών 7B και 13B υποστηρίζουν συμπλήρωση με βάση το περιβάλλον περιεχόμενο, καθιστώντας τις ιδανικές για εφαρμογές βοηθού κώδικα. Τα μοντέλα σχεδιάστηκαν χρησιμοποιώντας το Llama 2 ως βάση και στη συνέχεια εκπαιδεύτηκαν σε 500 δισεκατομμύρια μάρκες δεδομένων κώδικα, με την εξειδικευμένη έκδοση της Python να εκπαιδεύεται σε σταδιακά 100 δισεκατομμύρια μάρκες. Τα μοντέλα Code Llama παρέχουν σταθερές γενιές με έως και 100,000 διακριτικά περιβάλλοντος. Όλα τα μοντέλα εκπαιδεύονται σε ακολουθίες 16,000 μάρκες και παρουσιάζουν βελτιώσεις στις εισόδους με έως και 100,000 μάρκες.

Το μοντέλο διατίθεται κάτω από το ίδιο κοινοτική άδεια ως Llama 2.

Μοντέλα θεμελίωσης στο SageMaker

Το SageMaker JumpStart παρέχει πρόσβαση σε μια σειρά μοντέλων από δημοφιλείς κόμβους μοντέλων, συμπεριλαμβανομένων των Hugging Face, PyTorch Hub και TensorFlow Hub, τα οποία μπορείτε να χρησιμοποιήσετε στη ροή εργασιών ανάπτυξης ML στο SageMaker. Οι πρόσφατες εξελίξεις στην ML οδήγησαν σε μια νέα κατηγορία μοντέλων που είναι γνωστά ως μοντέλα θεμελίωσης, τα οποία συνήθως εκπαιδεύονται σε δισεκατομμύρια παραμέτρους και είναι προσαρμόσιμα σε μια ευρεία κατηγορία περιπτώσεων χρήσης, όπως η σύνοψη κειμένων, η δημιουργία ψηφιακής τέχνης και η μετάφραση γλώσσας. Επειδή αυτά τα μοντέλα είναι ακριβά στην εκπαίδευση, οι πελάτες θέλουν να χρησιμοποιήσουν τα υπάρχοντα προεκπαιδευμένα μοντέλα θεμελίωσης και να τα προσαρμόσουν όπως απαιτείται, αντί να εκπαιδεύσουν οι ίδιοι αυτά τα μοντέλα. Το SageMaker παρέχει μια επιμελημένη λίστα μοντέλων από τα οποία μπορείτε να επιλέξετε στην κονσόλα SageMaker.

Μπορείτε να βρείτε μοντέλα θεμελίωσης από διαφορετικούς παρόχους μοντέλων στο SageMaker JumpStart, επιτρέποντάς σας να ξεκινήσετε γρήγορα με τα μοντέλα θεμελίωσης. Μπορείτε να βρείτε μοντέλα θεμελίωσης που βασίζονται σε διαφορετικές εργασίες ή παρόχους μοντέλων και να ελέγξετε εύκολα τα χαρακτηριστικά του μοντέλου και τους όρους χρήσης. Μπορείτε επίσης να δοκιμάσετε αυτά τα μοντέλα χρησιμοποιώντας ένα δοκιμαστικό γραφικό στοιχείο διεπαφής χρήστη. Όταν θέλετε να χρησιμοποιήσετε ένα μοντέλο θεμελίωσης σε κλίμακα, μπορείτε να το κάνετε χωρίς να φύγετε από το SageMaker χρησιμοποιώντας προκατασκευασμένα σημειωματάρια από παρόχους μοντέλων. Επειδή τα μοντέλα φιλοξενούνται και αναπτύσσονται σε AWS, μπορείτε να είστε βέβαιοι ότι τα δεδομένα σας, είτε χρησιμοποιούνται για αξιολόγηση είτε για χρήση του μοντέλου σε κλίμακα, δεν κοινοποιούνται ποτέ σε τρίτους.

Ανακαλύψτε το μοντέλο Code Llama στο SageMaker JumpStart

Για να αναπτύξετε το μοντέλο Code Llama 70B, ολοκληρώστε τα παρακάτω βήματα Στούντιο Amazon SageMaker:

  1. Στην αρχική σελίδα του SageMaker Studio, επιλέξτε εκκίνηση με άλμα στο παράθυρο πλοήγησης.

    Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

  2. Αναζητήστε μοντέλα Code Llama και επιλέξτε το μοντέλο Code Llama 70B από τη λίστα μοντέλων που εμφανίζεται.

    Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

    Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με το μοντέλο στην κάρτα μοντέλου Code Llama 70B.

    Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

    Το ακόλουθο στιγμιότυπο οθόνης δείχνει τις ρυθμίσεις του τελικού σημείου. Μπορείτε να αλλάξετε τις επιλογές ή να χρησιμοποιήσετε τις προεπιλεγμένες.

  3. Αποδεχτείτε την Άδεια Χρήσης Τελικού Χρήστη (EULA) και επιλέξτε Ανάπτυξη.
    Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

    Αυτό θα ξεκινήσει τη διαδικασία ανάπτυξης τελικού σημείου, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

    Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Αναπτύξτε το μοντέλο με το SageMaker Python SDK

Εναλλακτικά, μπορείτε να αναπτύξετε μέσω του παραδείγματος σημειωματάριο επιλέγοντας Ανοίξτε το Σημειωματάριο στη σελίδα λεπτομερειών μοντέλου του Classic Studio. Το παράδειγμα σημειωματάριο παρέχει καθοδήγηση από άκρο σε άκρο σχετικά με τον τρόπο ανάπτυξης του μοντέλου για εξαγωγή συμπερασμάτων και εκκαθάριση πόρων.

Για να αναπτύξουμε χρησιμοποιώντας σημειωματάριο, ξεκινάμε επιλέγοντας ένα κατάλληλο μοντέλο, που καθορίζεται από το model_id. Μπορείτε να αναπτύξετε οποιοδήποτε από τα επιλεγμένα μοντέλα στο SageMaker με τον ακόλουθο κώδικα:

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

Αυτό αναπτύσσει το μοντέλο στο SageMaker με προεπιλεγμένες διαμορφώσεις, συμπεριλαμβανομένου του προεπιλεγμένου τύπου παρουσίας και των προεπιλεγμένων διαμορφώσεων VPC. Μπορείτε να αλλάξετε αυτές τις διαμορφώσεις καθορίζοντας μη προεπιλεγμένες τιμές JumpStartModel. Σημειώστε ότι από προεπιλογή, accept_eula έχει οριστεί σε False. Πρέπει να ρυθμίσετε accept_eula=True για να αναπτύξετε το τελικό σημείο με επιτυχία. Με αυτόν τον τρόπο, αποδέχεστε τη συμφωνία άδειας χρήσης χρήστη και την πολιτική αποδεκτής χρήσης, όπως αναφέρθηκε προηγουμένως. Μπορείτε επίσης να κατεβάσετε τη συμφωνία άδειας χρήσης.

Επικαλέστε ένα τελικό σημείο του SageMaker

Μετά την ανάπτυξη του τελικού σημείου, μπορείτε να πραγματοποιήσετε συμπεράσματα χρησιμοποιώντας το Boto3 ή το SageMaker Python SDK. Στον παρακάτω κώδικα, χρησιμοποιούμε το SageMaker Python SDK για να καλέσουμε το μοντέλο για συμπέρασμα και να εκτυπώσουμε την απάντηση:

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

η λειτουργία print_response παίρνει ένα ωφέλιμο φορτίο που αποτελείται από το ωφέλιμο φορτίο και την απόκριση του μοντέλου και εκτυπώνει το αποτέλεσμα. Το Code Llama υποστηρίζει πολλές παραμέτρους κατά την εκτέλεση συμπερασμάτων:

  • μέγιστο μήκος – Το μοντέλο δημιουργεί κείμενο μέχρι να φτάσει το μήκος εξόδου (το οποίο περιλαμβάνει το μήκος του περιβάλλοντος εισαγωγής). max_length. Εάν ορίζεται, πρέπει να είναι θετικός ακέραιος.
  • max_new_tokens – Το μοντέλο δημιουργεί κείμενο μέχρι να φτάσει το μήκος εξόδου (εξαιρουμένου του μήκους περιβάλλοντος εισαγωγής). max_new_tokens. Εάν ορίζεται, πρέπει να είναι θετικός ακέραιος.
  • num_beams – Αυτό καθορίζει τον αριθμό των ακτίνων που χρησιμοποιούνται στην άπληστη αναζήτηση. Εάν ορίζεται, πρέπει να είναι ακέραιος αριθμός μεγαλύτερος ή ίσος με num_return_sequences.
  • no_repeat_ngram_size – Το μοντέλο διασφαλίζει ότι μια ακολουθία λέξεων του no_repeat_ngram_size δεν επαναλαμβάνεται στην ακολουθία εξόδου. Εάν ορίζεται, πρέπει να είναι θετικός ακέραιος μεγαλύτερος από 1.
  • θερμοκρασία – Αυτό ελέγχει την τυχαιότητα στην έξοδο. Πιο ψηλά temperature καταλήγει σε μια ακολουθία εξόδου με λέξεις χαμηλής πιθανότητας και χαμηλότερη temperature καταλήγει σε μια ακολουθία εξόδου με λέξεις υψηλής πιθανότητας. Αν temperature είναι 0, καταλήγει σε άπληστη αποκωδικοποίηση. Εάν καθορίζεται, πρέπει να είναι θετικός float.
  • νωρίς_διακοπή - Αν True, η δημιουργία κειμένου ολοκληρώνεται όταν όλες οι υποθέσεις δέσμης φτάσουν στο τέλος της πρότασης. Εάν ορίζεται, πρέπει να είναι Boolean.
  • do_sample - Αν True, το μοντέλο λαμβάνει δείγματα της επόμενης λέξης σύμφωνα με την πιθανότητα. Εάν ορίζεται, πρέπει να είναι Boolean.
  • top_k – Σε κάθε βήμα δημιουργίας κειμένου, το μοντέλο λαμβάνει δείγματα μόνο από το top_k πιθανότατα λόγια. Εάν ορίζεται, πρέπει να είναι θετικός ακέραιος.
  • top_p – Σε κάθε βήμα δημιουργίας κειμένου, το μοντέλο λαμβάνει δείγματα από το μικρότερο δυνατό σύνολο λέξεων με αθροιστική πιθανότητα top_p. Εάν καθορίζεται, πρέπει να είναι float μεταξύ 0 και 1.
  • επιστροφή_πλήρους_κειμένου - Αν True, το κείμενο εισαγωγής θα είναι μέρος του παραγόμενου κειμένου εξόδου. Εάν ορίζεται, πρέπει να είναι Boolean. Η προεπιλεγμένη τιμή για αυτό είναι False.
  • στάση – Εάν ορίζεται, πρέπει να είναι μια λίστα συμβολοσειρών. Η δημιουργία κειμένου σταματά αν δημιουργηθεί οποιαδήποτε από τις καθορισμένες συμβολοσειρές.

Μπορείτε να καθορίσετε οποιοδήποτε υποσύνολο αυτών των παραμέτρων ενώ καλείτε ένα τελικό σημείο. Στη συνέχεια, δείχνουμε ένα παράδειγμα για το πώς να καλέσετε ένα τελικό σημείο με αυτά τα ορίσματα.

Ολοκλήρωση κώδικα

Τα ακόλουθα παραδείγματα δείχνουν πώς να εκτελέσετε τη συμπλήρωση κώδικα όπου η αναμενόμενη απόκριση τελικού σημείου είναι η φυσική συνέχεια της προτροπής.

Εκτελούμε πρώτα τον παρακάτω κώδικα:

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)

Παίρνουμε την ακόλουθη έξοδο:

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

Για το επόμενο παράδειγμά μας, εκτελούμε τον ακόλουθο κώδικα:

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)

Παίρνουμε την ακόλουθη έξοδο:

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

Δημιουργία κώδικα

Τα ακόλουθα παραδείγματα δείχνουν τη δημιουργία κώδικα Python με χρήση κώδικα Llama.

Εκτελούμε πρώτα τον παρακάτω κώδικα:

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)

Παίρνουμε την ακόλουθη έξοδο:

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

Για το επόμενο παράδειγμά μας, εκτελούμε τον ακόλουθο κώδικα:

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)

Παίρνουμε την ακόλουθη έξοδο:

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

Αυτά είναι μερικά από τα παραδείγματα εργασιών που σχετίζονται με κώδικα που χρησιμοποιούν το Code Llama 70B. Μπορείτε να χρησιμοποιήσετε το μοντέλο για να δημιουργήσετε ακόμα πιο περίπλοκο κώδικα. Σας ενθαρρύνουμε να το δοκιμάσετε χρησιμοποιώντας τις δικές σας περιπτώσεις και παραδείγματα χρήσης που σχετίζονται με τον κώδικα!

εκκαθάριση

Αφού δοκιμάσετε τα τελικά σημεία, βεβαιωθείτε ότι έχετε διαγράψει τα τελικά σημεία συμπερασμάτων του SageMaker και το μοντέλο για να αποφύγετε χρεώσεις. Χρησιμοποιήστε τον παρακάτω κώδικα:

predictor.delete_endpoint()

Συμπέρασμα

Σε αυτήν την ανάρτηση, παρουσιάσαμε το Code Llama 70B στο SageMaker JumpStart. Το Code Llama 70B είναι ένα μοντέλο αιχμής για τη δημιουργία κώδικα από προτροπές φυσικής γλώσσας καθώς και κώδικα. Μπορείτε να αναπτύξετε το μοντέλο με μερικά απλά βήματα στο SageMaker JumpStart και στη συνέχεια να το χρησιμοποιήσετε για να εκτελέσετε εργασίες που σχετίζονται με τον κώδικα, όπως η δημιουργία κώδικα και η συμπλήρωση κώδικα. Ως επόμενο βήμα, δοκιμάστε να χρησιμοποιήσετε το μοντέλο με τις δικές σας περιπτώσεις χρήσης και δεδομένα που σχετίζονται με τον κώδικα.


Σχετικά με τους συγγραφείς

Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δόκτωρ Kyle Ulrich είναι Εφαρμοσμένος Επιστήμονας με την ομάδα Amazon SageMaker JumpStart. Τα ερευνητικά του ενδιαφέροντα περιλαμβάνουν κλιμακωτούς αλγόριθμους μηχανικής μάθησης, όραση υπολογιστή, χρονοσειρές, μη παραμετρικές Μπεϋζιανές και διεργασίες Gauss. Το διδακτορικό του είναι από το Πανεπιστήμιο Duke και έχει δημοσιεύσει εργασίες στα NeurIPS, Cell και Neuron.

Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Φαρούκ Σαμπίρ είναι Ανώτερος Αρχιτέκτονας Λύσεων Ειδικός Τεχνητής Νοημοσύνης και Μηχανικής Μάθησης στο AWS. Είναι κάτοχος διδακτορικού και μεταπτυχιακού τίτλου στον Ηλεκτρολόγο Μηχανικό από το Πανεπιστήμιο του Τέξας στο Ώστιν και μεταπτυχιακό στην Επιστήμη Υπολογιστών από το Ινστιτούτο Τεχνολογίας της Τζόρτζια. Έχει πάνω από 15 χρόνια εργασιακή εμπειρία και επίσης του αρέσει να διδάσκει και να καθοδηγεί φοιτητές. Στην AWS, βοηθά τους πελάτες να διαμορφώσουν και να λύσουν τα επιχειρηματικά τους προβλήματα στην επιστήμη δεδομένων, τη μηχανική μάθηση, την όραση υπολογιστών, την τεχνητή νοημοσύνη, την αριθμητική βελτιστοποίηση και τους σχετικούς τομείς. Με έδρα το Ντάλας του Τέξας, αυτός και η οικογένειά του λατρεύουν να ταξιδεύουν και να κάνουν μακρινά οδικά ταξίδια.

Το Code Llama 70B είναι πλέον διαθέσιμο στο Amazon SageMaker JumpStart | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Ο Ιούνιος νίκησε είναι διαχειριστής προϊόντων με το SageMaker JumpStart. Επικεντρώνεται στο να κάνει τα μοντέλα θεμελίων εύκολα ανιχνεύσιμα και χρησιμοποιήσιμα για να βοηθήσει τους πελάτες να δημιουργήσουν παραγωγικές εφαρμογές τεχνητής νοημοσύνης. Η εμπειρία του στο Amazon περιλαμβάνει επίσης εφαρμογή αγορών για κινητά και παράδοση τελευταίου μιλίου.

Σφραγίδα ώρας:

Περισσότερα από Μηχανική εκμάθηση AWS