Code Llama 70B זמין כעת באמזון SageMaker JumpStart | שירותי האינטרנט של אמזון

Code Llama 70B זמין כעת באמזון SageMaker JumpStart | שירותי האינטרנט של אמזון

היום, אנו נרגשים להכריז כי מודלים של בסיס Code Lama, שפותחו על ידי Meta, זמינים עבור לקוחות באמצעות אמזון SageMaker JumpStart לפרוס בלחיצה אחת להפעלת הסקה. Code Llama הוא מודל שפה גדול (LLM) מתקדם המסוגל ליצור קוד ושפה טבעית לגבי קוד הן מהנחיות קוד והן בשפה טבעית. אתה יכול לנסות את המודל הזה עם SageMaker JumpStart, רכזת למידת מכונה (ML) המספקת גישה לאלגוריתמים, מודלים ופתרונות ML כדי שתוכל להתחיל במהירות עם ML. בפוסט זה, אנו עוברים דרך כיצד לגלות ולפרוס את מודל Code Llama באמצעות SageMaker JumpStart.

קוד לאמה

Code Lama הוא דגם ששוחרר על ידי 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 אסימונים.

הדגם זמין תחת אותו רישיון קהילה בתור לאמה 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, השלם את השלבים הבאים ב סטודיו SageMaker של אמזון:

  1. בדף הבית של SageMaker Studio, בחר קפיצת פתיחה בחלונית הניווט.

    Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

  2. חפש דגמי Code Llama ובחר את דגם Code Llama 70B מרשימת הדגמים המוצגים.

    Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

    תוכל למצוא מידע נוסף על הדגם בכרטיס הדגם Code Llama 70B.

    Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

    צילום המסך הבא מציג את הגדרות נקודת הקצה. אתה יכול לשנות את האפשרויות או להשתמש בברירת המחדל.

  3. קבל את הסכם הרישיון למשתמש הקצה (EULA) ובחר לפרוס.
    Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

    זה יתחיל את תהליך פריסת נקודות הקצה, כפי שמוצג בצילום המסך הבא.

    Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services 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, זה גורם לפענוח חמדני. אם צוין, זה חייב להיות ציפה חיובית.
  • עצירה מוקדמת - אם True, יצירת טקסט מסתיימת כאשר כל השערות האלומה מגיעות לסוף המשפט. אם צוין, זה חייב להיות בוליאני.
  • do_sample - אם True, המודל דוגם את המילה הבאה לפי הסבירות. אם צוין, זה חייב להיות בוליאני.
  • top_k – בכל שלב של יצירת טקסט, המודל דוגם רק מה- top_k סביר להניח מילים. אם צוין, זה חייב להיות מספר שלם חיובי.
  • top_p - בכל שלב של יצירת טקסט, המודל דוגם מקבוצת המילים הקטנה ביותר האפשרית עם הסתברות מצטברת top_p. אם צוין, זה חייב להיות צף בין 0 ל-1.
  • return_full_text - אם True, טקסט הקלט יהיה חלק מהטקסט שנוצר בפלט. אם צוין, זה חייב להיות בוליאני. ערך ברירת המחדל עבורו הוא 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 באמצעות Code 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 זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר קייל אולריך הוא מדען יישומי בצוות אמזון SageMaker JumpStart. תחומי המחקר שלו כוללים אלגוריתמים של למידת מכונה ניתנים להרחבה, ראייה ממוחשבת, סדרות זמן, אי-פרמטריות בייסיאניות ותהליכי גאוס. הדוקטורט שלו הוא מאוניברסיטת דיוק והוא פרסם מאמרים ב-NeurIPS, Cell, and Neuron.

Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר פארוק סאביר הוא ארכיטקט פתרונות בכיר בבינה מלאכותית ולמידת מכונה ב-AWS. הוא בעל תואר דוקטור ותואר שני בהנדסת חשמל מאוניברסיטת טקסס באוסטין ותואר שני במדעי המחשב מהמכון הטכנולוגי של ג'ורג'יה. יש לו למעלה מ-15 שנות ניסיון בעבודה וגם אוהב ללמד ולהדריך סטודנטים. ב-AWS הוא עוזר ללקוחות לגבש ולפתור את הבעיות העסקיות שלהם במדעי הנתונים, למידת מכונה, ראייה ממוחשבת, בינה מלאכותית, אופטימיזציה מספרית ותחומים קשורים. ממוקם בדאלאס, טקסס, הוא ומשפחתו אוהבים לטייל ולצאת לנסיעות ארוכות.

Code Llama 70B זמין כעת באמזון SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.יוני זכה הוא מנהל מוצר עם SageMaker JumpStart. הוא מתמקד בהפיכת מודלים בסיסיים לניתנים לגילוי ושימוש בקלות כדי לעזור ללקוחות לבנות יישומי בינה מלאכותית. הניסיון שלו באמזון כולל גם אפליקציית קניות ניידת ומשלוח מייל אחרון.

בול זמן:

עוד מ למידת מכונות AWS