Εκτελέστε μετασχηματισμούς παρτίδων με τα μοντέλα μεγάλων γλωσσών του Amazon SageMaker Jumpstart Text2Text Generation | Υπηρεσίες Ιστού της Amazon

Εκτελέστε μετασχηματισμούς παρτίδων με τα μοντέλα μεγάλων γλωσσών του Amazon SageMaker Jumpstart Text2Text Generation | Υπηρεσίες Ιστού της Amazon

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

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

Ο μετασχηματισμός παρτίδας Jumpstart για μοντέλα Generation Text2Text σάς επιτρέπει να περάσετε τις υπερπαραμέτρους παρτίδας μέσω μεταβλητών περιβάλλοντος που αυξάνουν περαιτέρω την απόδοση και ελαχιστοποιούν την καθυστέρηση.

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

Σε αυτήν την ανάρτηση, δείχνουμε πώς να χρησιμοποιείτε τα προεκπαιδευμένα τελευταίας τεχνολογίας text2text μοντέλα FLAN T5 από το Hugging Face για μετασχηματισμό παρτίδας και συμπέρασμα παρτίδας σε πραγματικό χρόνο.

Επισκόπηση λύσεων

Το σημειωματάριο που δείχνει μετασχηματισμό παρτίδας προεκπαιδευμένων μοντέλων Text2Text FLAN T5 από Αγκαλιάζοντας το πρόσωπο διαθέσιμο στα παρακάτω Αποθετήριο GitHub. Αυτό το σημειωματάριο χρησιμοποιεί δεδομένα από το πρόσωπο που αγκαλιάζει cnn_dailymail σύνολο δεδομένων για μια εργασία σύνοψης κειμένου χρησιμοποιώντας το SageMaker SDK.

Τα παρακάτω είναι τα βασικά βήματα για την εφαρμογή μετασχηματισμού παρτίδας και συμπερασμάτων παρτίδας σε πραγματικό χρόνο:

  1. Ρυθμίστε προαπαιτούμενα.
  2. Επιλέξτε ένα προεκπαιδευμένο μοντέλο.
  3. Ανακτήστε αντικείμενα για το μοντέλο.
  4. Καθορίστε τις υπερπαραμέτρους εργασίας μετασχηματισμού παρτίδας.
  5. Προετοιμάστε δεδομένα για τον μετασχηματισμό παρτίδας.
  6. Εκτελέστε την εργασία μετασχηματισμού παρτίδας.
  7. Αξιολογήστε την περίληψη χρησιμοποιώντας α ΚΟΚΚΙΝΟ (Recall-Oriented Understudy for Gisting Evaluation) βαθμολογία.
  8. Εκτελέστε συμπέρασμα παρτίδας σε πραγματικό χρόνο.

Ρυθμίστε προαπαιτούμενα

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

sagemaker_session = Session()
aws_role = sagemaker_session.get_caller_identity_arn()
aws_region = boto3.Session().region_name
sess = sagemaker.Session()

Επιλέξτε ένα προεκπαιδευμένο μοντέλο

Ως προεπιλεγμένο μοντέλο χρησιμοποιούμε το μοντέλο huggingface-text2text-flan-t5-large. Προαιρετικά, μπορείτε να ανακτήσετε τη λίστα με τα διαθέσιμα μοντέλα Text2Text στο JumpStart και να επιλέξετε το μοντέλο που προτιμάτε. Αυτή η μέθοδος παρέχει έναν απλό τρόπο επιλογής διαφορετικών αναγνωριστικών μοντέλων χρησιμοποιώντας το ίδιο σημειωματάριο. Για λόγους επίδειξης, χρησιμοποιούμε το μοντέλο huggingface-text2text-flan-t5-large:

model_id, model_version, = ( "huggingface-text2text-flan-t5-large", "*",
)

Ανακτήστε αντικείμενα για το μοντέλο

Με το SageMaker, μπορούμε να κάνουμε συμπεράσματα για το προεκπαιδευμένο μοντέλο, ακόμη και χωρίς να το ρυθμίσουμε πρώτα σε ένα νέο σύνολο δεδομένων. Ξεκινάμε με την ανάκτηση του deploy_image_uri, deploy_source_uri, να model_uri για το προεκπαιδευμένο μοντέλο:

inference_instance_type = "ml.p3.2xlarge" # Retrieve the inference docker container uri. This is the base HuggingFace container image for the default model above.
deploy_image_uri = image_uris.retrieve(
region=None,
framework=None, # automatically inferred from model_id
image_scope="inference",
model_id=model_id,
model_version=model_version,
instance_type=inference_instance_type,
) # Retrieve the model uri.
model_uri = model_uris.retrieve(
model_id=model_id, model_version=model_version, model_scope="inference"
) #Create the SageMaker model instance
model = Model(
image_uri=deploy_image_uri,
model_data=model_uri,
role=aws_role,
predictor_cls=Predictor)

Καθορίστε τις υπερπαραμέτρους εργασίας μετασχηματισμού παρτίδας

Μπορείτε να μεταβιβάσετε οποιοδήποτε υποσύνολο υπερπαραμέτρων ως μεταβλητές περιβάλλοντος στην εργασία μετασχηματισμού παρτίδας. Μπορείτε επίσης να μεταβιβάσετε αυτές τις υπερπαράμετρους σε ένα ωφέλιμο φορτίο JSON. Ωστόσο, εάν ορίζετε μεταβλητές περιβάλλοντος για υπερπαραμέτρους όπως δείχνει ο παρακάτω κώδικας, τότε οι σύνθετες υπερπαράμετροι από τα μεμονωμένα παραδείγματα στο ωφέλιμο φορτίο των γραμμών JSON δεν θα χρησιμοποιηθούν. Εάν θέλετε να χρησιμοποιήσετε υπερπαράμετρους από το ωφέλιμο φορτίο, μπορεί να θέλετε να ορίσετε το hyper_params_dict Η παράμετρος είναι μηδενική.

#Specify the Batch Job Hyper Params Here, If you want to treate each example hyperparameters different please pass hyper_params_dict as None
hyper_params = {"batch_size":4, "max_length":50, "top_k": 50, "top_p": 0.95, "do_sample": True}
hyper_params_dict = {"HYPER_PARAMS":str(hyper_params)}

Προετοιμάστε δεδομένα για μετασχηματισμό παρτίδας

Τώρα είμαστε έτοιμοι να φορτώσουμε το cnn_dailymail σύνολο δεδομένων από το Hugging Face:

cnn_test = load_dataset('cnn_dailymail','3.0.0',split='test')

Προχωράμε σε κάθε καταχώριση δεδομένων και δημιουργούμε τα δεδομένα εισόδου στην απαιτούμενη μορφή. Δημιουργούμε ένα articles.jsonl αρχείο ως αρχείο δεδομένων δοκιμής που περιέχει άρθρα που πρέπει να συνοψιστούν ως ωφέλιμο φορτίο εισόδου. Καθώς δημιουργούμε αυτό το αρχείο, προσαρτούμε την προτροπή "Briefly summarize this text:" σε κάθε γραμμή εισόδου δοκιμής. Εάν θέλετε να έχετε διαφορετικές υπερπαράμετρους για κάθε είσοδο δοκιμής, μπορείτε να προσαρτήσετε αυτές τις υπερπαράμετρους ως μέρος της δημιουργίας του συνόλου δεδομένων.

Δημιουργούμε highlights.jsonl ως το αρχείο βασικής αλήθειας που περιέχει τα κυριότερα σημεία κάθε άρθρου που είναι αποθηκευμένο στο αρχείο δοκιμής articles.jsonl. Αποθηκεύουμε και τα δύο δοκιμαστικά αρχεία σε ένα Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος. Δείτε τον παρακάτω κώδικα:

#You can specify a prompt here
prompt = "Briefly summarize this text: "
#Provide the test data and the ground truth file name
test_data_file_name = "articles.jsonl"
test_reference_file_name = 'highlights.jsonl' test_articles = []
test_highlights =[] # We will go over each data entry and create the data in the input required format as described above
for id, test_entry in enumerate(cnn_test): article = test_entry['article'] highlights = test_entry['highlights'] # Create a payload like this if you want to have different hyperparameters for each test input # payload = {"id": id,"text_inputs": f"{prompt}{article}", "max_length": 100, "temperature": 0.95} # Note that if you specify hyperparameter for each payload individually, you may want to ensure that hyper_params_dict is set to None instead payload = {"id": id,"text_inputs": f"{prompt}{article}"} test_articles.append(payload) test_highlights.append({"id":id, "highlights": highlights}) with open(test_data_file_name, "w") as outfile: for entry in test_articles: outfile.write("%sn" % json.dumps(entry)) with open(test_reference_file_name, "w") as outfile: for entry in test_highlights: outfile.write("%sn" % json.dumps(entry)) # Uploading the data s3 = boto3.client("s3")
s3.upload_file(test_data_file_name, output_bucket, os.path.join(output_prefix + "/batch_input/articles.jsonl"))

Εκτελέστε την εργασία μετασχηματισμού παρτίδας

Όταν ξεκινάτε μια εργασία μαζικής μετατροπής, το SageMaker εκκινεί τους απαραίτητους υπολογιστικούς πόρους για την επεξεργασία των δεδομένων, συμπεριλαμβανομένων των παρουσιών CPU ή GPU ανάλογα με τον επιλεγμένο τύπο παρουσίας. Κατά τη διάρκεια της εργασίας μετασχηματισμού παρτίδας, το SageMaker παρέχει αυτόματα και διαχειρίζεται τους υπολογιστικούς πόρους που απαιτούνται για την επεξεργασία των δεδομένων, συμπεριλαμβανομένων των παρουσιών, της αποθήκευσης και των πόρων δικτύωσης. Όταν ολοκληρωθεί η εργασία μετασχηματισμού παρτίδας, οι υπολογιστικοί πόροι καθαρίζονται αυτόματα από το SageMaker. Αυτό σημαίνει ότι οι παρουσίες και η αποθήκευση που χρησιμοποιούνται κατά τη διάρκεια της εργασίας διακόπτονται και αφαιρούνται, απελευθερώνοντας πόρους και ελαχιστοποιώντας το κόστος. Δείτε τον παρακάτω κώδικα:

# Creating the Batch transformer object
batch_transformer = model.transformer( instance_count=1, instance_type=inference_instance_type, output_path=s3_output_data_path, assemble_with="Line", accept="text/csv", max_payload=1, env = hyper_params_dict
) # Making the predications on the input data
batch_transformer.transform(s3_input_data_path, content_type="application/jsonlines", split_type="Line") batch_transformer.wait()

Το παρακάτω είναι ένα παράδειγμα εγγραφής από το articles.jsonl αρχείο δοκιμής. Σημειώστε ότι η εγγραφή σε αυτό το αρχείο έχει ένα αναγνωριστικό που ταιριάζει με predict.jsonl εγγραφές αρχείου που εμφανίζει μια συνοπτική εγγραφή ως έξοδο από το μοντέλο Hugging Face Text2Text. Ομοίως, το αρχείο αληθείας βάσης έχει επίσης ένα αντίστοιχο αναγνωριστικό για την εγγραφή δεδομένων. Το αναγνωριστικό που ταιριάζουν στο αρχείο δοκιμής, το αρχείο αλήθειας γείωσης και το αρχείο εξόδου επιτρέπει τη σύνδεση των εγγραφών εισόδου με τις εγγραφές εξόδου για εύκολη ερμηνεία των αποτελεσμάτων.

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

{"id": 0, "text_inputs": "Briefly summarize this text: (CNN)The Palestinian Authority officially became the 123rd member of the International Criminal Court on Wednesday, a step that gives the court jurisdiction over alleged crimes in Palestinian territories. The formal accession was marked with a ceremony at The Hague, in the Netherlands, where the court is based. The Palestinians signed the ICC's founding Rome Statute in January, when they also accepted its jurisdiction over alleged crimes committed "in the occupied Palestinian territory, including East Jerusalem, since June 13, 2014." Later that month, the ICC opened a preliminary examination into the situation in Palestinian territories, paving the way for possible war crimes investigations against Israelis. As members of the court, Palestinians may be subject to counter-charges as well. Israel and the United States, neither of which is an ICC member, opposed the Palestinians' efforts to join the body. But Palestinian Foreign Minister Riad al-Malki, speaking at Wednesday's ceremony, said it was a move toward greater justice. "As Palestine formally becomes a State Party to the Rome Statute today, the world is also a step closer to ending a long era of impunity and injustice," he said, according to an ICC news release. "Indeed, today brings us closer to our shared goals of justice and peace." Judge Kuniko Ozaki, a vice president of the ICC, said acceding to the treaty was just the first step for the Palestinians. "As the Rome Statute today enters into force for the State of Palestine, Palestine acquires all the rights as well as responsibilities that come with being a State Party to the Statute. These are substantive commitments, which cannot be taken lightly," she said. Rights group Human Rights Watch welcomed the development. "Governments seeking to penalize Palestine for joining the ICC should immediately end their pressure, and countries that support universal acceptance of the court's treaty should speak out to welcome its membership," said Balkees Jarrah, international justice counsel for the group. "What's objectionable is the attempts to undermine international justice, not Palestine's decision to join a treaty to which over 100 countries around the world are members." In January, when the preliminary ICC examination was opened, Israeli Prime Minister Benjamin Netanyahu described it as an outrage, saying the court was overstepping its boundaries. The United States also said it "strongly" disagreed with the court's decision. "As we have said repeatedly, we do not believe that Palestine is a state and therefore we do not believe that it is eligible to join the ICC," the State Department said in a statement. It urged the warring sides to resolve their differences through direct negotiations. "We will continue to oppose actions against Israel at the ICC as counterproductive to the cause of peace," it said. But the ICC begs to differ with the definition of a state for its purposes and refers to the territories as "Palestine." While a preliminary examination is not a formal investigation, it allows the court to review evidence and determine whether to investigate suspects on both sides. Prosecutor Fatou Bensouda said her office would "conduct its analysis in full independence and impartiality." The war between Israel and Hamas militants in Gaza last summer left more than 2,000 people dead. The inquiry will include alleged war crimes committed since June. The International Criminal Court was set up in 2002 to prosecute genocide, crimes against humanity and war crimes. CNN's Vasco Cotovio, Kareem Khadder and Faith Karimi contributed to this report."}

Ακολουθεί το προβλεπόμενο αποτέλεσμα με περίληψη:

{'id': 0, 'generated_texts': ['The Palestinian Authority officially became a member of the International Criminal Court on Wednesday, a step that gives the court jurisdiction over alleged crimes in Palestinian territories.']}

Ακολουθεί η σύνοψη της βασικής αλήθειας για σκοπούς αξιολόγησης του μοντέλου:

{"id": 0, "highlights": "Membership gives the ICC jurisdiction over alleged crimes committed in Palestinian territories since last June .nIsrael and the United States opposed the move, which could open the door to war crimes investigations against Israelis ."}

Στη συνέχεια, χρησιμοποιούμε τη βασική αλήθεια και τα προβλεπόμενα αποτελέσματα για την αξιολόγηση του μοντέλου.

Αξιολογήστε το μοντέλο χρησιμοποιώντας μια βαθμολογία ROUGE¶

ΚΟΚΚΙΝΟ, ή Recall-Oriented Understudy for Gisting Evaluation, είναι ένα σύνολο μετρήσεων και ένα πακέτο λογισμικού που χρησιμοποιείται για την αξιολόγηση της αυτόματης σύνοψης και της αυτόματης μετάφρασης στην επεξεργασία φυσικής γλώσσας. Οι μετρήσεις συγκρίνουν μια σύνοψη ή μετάφραση που παράγεται αυτόματα με μια περίληψη ή μετάφραση αναφοράς (ανθρώπινη παραγωγή) ή ένα σύνολο αναφορών.

Στον παρακάτω κώδικα, συνδυάζουμε τις προβλεπόμενες και τις αρχικές περιλήψεις ενώνοντάς τις στο κοινό κλειδί id και χρησιμοποιήστε αυτό για να υπολογίσετε τη βαθμολογία ROUGE:

# Downloading the predictions
s3.download_file(
output_bucket, output_prefix + "/batch_output/" + "articles.jsonl.out", "predict.jsonl"
) with open('predict.jsonl', 'r') as json_file:
json_list = list(json_file) # Creating the prediction list for the dataframe
predict_dict_list = []
for predict in json_list:
if len(predict) > 1:
predict_dict = ast.literal_eval(predict)
predict_dict_req = {"id": predict_dict["id"], "prediction": predict_dict["generated_texts"][0]}
predict_dict_list.append(predict_dict_req) # Creating the predictions dataframe
predict_df = pd.DataFrame(predict_dict_list) test_highlights_df = pd.DataFrame(test_highlights) # Combining the predict dataframe with the original summarization on id to compute the rouge score
df_merge = test_highlights_df.merge(predict_df, on="id", how="left") rouge = evaluate.load('rouge')
results = rouge.compute(predictions=list(df_merge["prediction"]),references=list(df_merge["highlights"]))
print(results)
{'rouge1': 0.32749078992945646, 'rouge2': 0.126038645005132, 'rougeL': 0.22764277967933363, 'rougeLsum': 0.28162915746368966}

Εκτελέστε συμπέρασμα παρτίδας σε πραγματικό χρόνο

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

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

from sagemaker.utils import name_from_base
endpoint_name = name_from_base(f"jumpstart-example-{model_id}")
# deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class,
# for being able to run inference through the sagemaker API.
model_predictor = model.deploy( initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name
)

Στη συνέχεια, προετοιμάζουμε το ωφέλιμο φορτίο εισόδου. Για αυτό, χρησιμοποιούμε τα δεδομένα που ετοιμάσαμε νωρίτερα και εξάγουμε τις πρώτες 10 εισόδους δοκιμής και προσθέτουμε τις εισόδους κειμένου με υπερπαραμέτρους που θέλουμε να χρησιμοποιήσουμε. Παρέχουμε αυτό το ωφέλιμο φορτίο σε πραγματικό χρόνο invoke_endpoint. Το ωφέλιμο φορτίο απόκρισης επιστρέφεται στη συνέχεια ως λίστα απαντήσεων. Δείτε τον παρακάτω κώδικα:

#Provide all the text inputs to the model as a list
text_inputs = [entry["text_inputs"] for entry in test_articles[0:10]] # The information about the different Parameters is provided above
payload = { "text_inputs": text_inputs, "max_length": 50, "num_return_sequences": 1, "top_k": 50, "top_p": 0.95, "do_sample": True, "batch_size": 4
} def query_endpoint_with_json_payload(encoded_json, endpoint_name):
client = boto3.client("runtime.sagemaker")
response = client.invoke_endpoint(
EndpointName=endpoint_name, ContentType="application/json", Body=encoded_json
)
return response query_response = query_endpoint_with_json_payload(
json.dumps(payload).encode("utf-8"), endpoint_name=endpoint_name
) def parse_response_multiple_texts(query_response):
model_predictions = json.loads(query_response["Body"].read())
return model_predictions generated_text_list = parse_response_multiple_texts(query_response)
print(*generated_text_list, sep='n')

εκκαθάριση

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

Συμπέρασμα

Σε αυτό το σημειωματάριο, πραγματοποιήσαμε έναν μετασχηματισμό παρτίδας για να παρουσιάσουμε το μοντέλο Hugging Face Text2Text Generator για εργασίες σύνοψης. Ο μετασχηματισμός παρτίδας είναι πλεονεκτικός για τη λήψη συμπερασμάτων από μεγάλα σύνολα δεδομένων χωρίς να απαιτείται ένα μόνιμο τελικό σημείο. Συνδέσαμε τις εγγραφές εισόδου με συμπεράσματα για να βοηθήσουμε στην ερμηνεία των αποτελεσμάτων. Χρησιμοποιήσαμε τη βαθμολογία ROUGE για να συγκρίνουμε τη σύνοψη δεδομένων δοκιμής με τη σύνοψη που δημιουργήθηκε από το μοντέλο.

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

Δοκιμάστε τον μετασχηματισμό παρτίδας με τα μοντέλα Text2Text Generation στο SageMaker σήμερα και πείτε μας τα σχόλιά σας!


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

Εκτελέστε μετασχηματισμούς παρτίδων με τα μοντέλα μεγάλων γλωσσών του Amazon SageMaker Jumpstart Text2Text Generation | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Χέμαντ Σινγκ είναι Μηχανικός Μηχανικής Μάθησης με εμπειρία στους ενσωματωμένους αλγόριθμους Amazon SageMaker JumpStart και Amazon SageMaker. Πήρε το μεταπτυχιακό του από το Courant Institute of Mathematical Sciences και το B.Tech από το IIT Delhi. Έχει εμπειρία στην εργασία σε ένα ευρύ φάσμα προβλημάτων μηχανικής μάθησης στον τομέα της επεξεργασίας φυσικής γλώσσας, της όρασης υπολογιστή και της ανάλυσης χρονοσειρών.

Εκτελέστε μετασχηματισμούς παρτίδων με τα μοντέλα μεγάλων γλωσσών του Amazon SageMaker Jumpstart Text2Text Generation | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Rachna Chadha είναι κύριος αρχιτέκτονας λύσεων AI/ML σε Στρατηγικούς Λογαριασμούς στο AWS. Η Rachna είναι αισιόδοξη που πιστεύει ότι η ηθική και υπεύθυνη χρήση της τεχνητής νοημοσύνης μπορεί να βελτιώσει την κοινωνία στο μέλλον και να φέρει οικονομική και κοινωνική ευημερία. Στον ελεύθερο χρόνο της, στη Ράχνα αρέσει να περνά χρόνο με την οικογένειά της, να κάνει πεζοπορία και να ακούει μουσική.

Εκτελέστε μετασχηματισμούς παρτίδων με τα μοντέλα μεγάλων γλωσσών του Amazon SageMaker Jumpstart Text2Text Generation | Υπηρεσίες Ιστού Amazon PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.Δρ Ashish Khetan είναι Ανώτερος Εφαρμοσμένος Επιστήμονας με ενσωματωμένους αλγόριθμους του Amazon SageMaker και βοηθά στην ανάπτυξη αλγορίθμων μηχανικής μάθησης. Πήρε το διδακτορικό του από το Πανεπιστήμιο του Illinois Urbana-Champaign. Είναι ενεργός ερευνητής στη μηχανική μάθηση και στα στατιστικά συμπεράσματα και έχει δημοσιεύσει πολλές εργασίες σε συνέδρια NeurIPS, ICML, ICLR, JMLR, ACL και EMNLP.

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

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