תחילת העבודה עם הטבעת טקסט של Amazon Titan | שירותי האינטרנט של אמזון

תחילת העבודה עם הטבעת טקסט של Amazon Titan | שירותי האינטרנט של אמזון

צומת המקור: 3091547

הטמעות ממלאות תפקיד מפתח בעיבוד שפה טבעית (NLP) ולמידת מכונה (ML). הטבעת טקסט מתייחס לתהליך של הפיכת טקסט לייצוגים מספריים השוכנים במרחב וקטורי ממדי גבוה. טכניקה זו מושגת באמצעות שימוש באלגוריתמי ML המאפשרים הבנת המשמעות וההקשר של נתונים (יחסים סמנטיים) ולמידה של קשרים ודפוסים מורכבים בתוך הנתונים (יחסים תחביריים). אתה יכול להשתמש בייצוגים הוקטוריים המתקבלים עבור מגוון רחב של יישומים, כגון אחזור מידע, סיווג טקסט, עיבוד שפה טבעית ועוד רבים אחרים.

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

בפוסט זה, אנו דנים במודל Amazon Titan Text Embeddings, תכונותיו ומקרי שימוש לדוגמה.

כמה מושגי מפתח כוללים:

  • ייצוג מספרי של טקסט (וקטורים) לוכד סמנטיקה ויחסים בין מילים
  • ניתן להשתמש בהטבעות עשירות כדי להשוות דמיון טקסט
  • הטבעת טקסט רב לשונית יכולה לזהות משמעות בשפות שונות

כיצד מומר פיסת טקסט לווקטור?

ישנן מספר טכניקות להמרת משפט לווקטור. שיטה פופולרית אחת היא שימוש באלגוריתמים להטמעת מילים, כגון Word2Vec, GloVe או FastText, ולאחר מכן צבירת הטמעות המילה ליצירת ייצוג וקטור ברמת המשפט.

גישה נפוצה נוספת היא להשתמש במודלים של שפה גדולה (LLMs), כמו BERT או GPT, שיכולים לספק הטבעות בהקשר של משפטים שלמים. מודלים אלו מבוססים על ארכיטקטורות למידה עמוקה כגון רובוטריקים, שיכולות ללכוד את המידע ההקשרי והקשרים בין מילים במשפט בצורה יעילה יותר.

למה אנחנו צריכים דגם הטמעות?

הטמעות וקטוריות הן בסיסיות ללימודי LLM כדי להבין את הדרגות הסמנטיות של השפה, וגם מאפשרות ל-LLM לבצע ביצועים טובים במשימות NLP במורד הזרם כמו ניתוח סנטימנטים, זיהוי ישויות בשם וסיווג טקסט.

בנוסף לחיפוש סמנטי, אתה יכול להשתמש בהטמעות כדי להגדיל את ההנחיות שלך לקבלת תוצאות מדויקות יותר באמצעות Retrieval Augmented Generation (RAG) - אך כדי להשתמש בהן, תצטרך לאחסן אותן במסד נתונים עם יכולות וקטוריות.

מודל Amazon Titan Text Embeddings מותאם לאחזור טקסט כדי לאפשר מקרי שימוש ב-RAG. היא מאפשרת לך להמיר תחילה את נתוני הטקסט שלך לייצוגים מספריים או לוקטורים, ולאחר מכן להשתמש בוקטורים אלה כדי לחפש במדויק קטעים רלוונטיים ממסד נתונים וקטורי, מה שמאפשר לך להפיק את המרב מהנתונים הקנייניים שלך בשילוב עם מודלים בסיסיים אחרים.

כי Amazon Titan Text Embeddings הוא מודל מנוהל על סלע אמזון, הוא מוצע כחוויה נטולת שרתים לחלוטין. אתה יכול להשתמש בו דרך Amazon Bedrock REST API או AWS SDK. הפרמטרים הנדרשים הם הטקסט שברצונך ליצור את ההטמעות שלו וה- modelID פרמטר, המייצג את שמו של דגם Amazon Titan Text Embeddings. הקוד הבא הוא דוגמה לשימוש ב-AWS SDK עבור Python (Boto3):

import boto3
import json
 
#Create the connection to Bedrock
bedrock = boto3.client(
    service_name='bedrock',
    region_name='us-west-2', 
    
)
 
bedrock_runtime = boto3.client(
    service_name='bedrock-runtime',
    region_name='us-west-2', 
    
)
 
# Let's see all available Amazon Models
available_models = bedrock.list_foundation_models()
 
for model in available_models['modelSummaries']:
  if 'amazon' in model['modelId']:
    print(model)
 
# Define prompt and model parameters
prompt_data = """Write me a poem about apples"""
 
body = json.dumps({
    "inputText": prompt_data,
})
 
model_id = 'amazon.titan-embed-text-v1' #look for embeddings in the modelID
accept = 'application/json' 
content_type = 'application/json'
 
# Invoke model 
response = bedrock_runtime.invoke_model(
    body=body, 
    modelId=model_id, 
    accept=accept, 
    contentType=content_type
)
 
# Print response
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding')
 
#Print the Embedding
 
print(embedding)

הפלט ייראה בערך כך:

[-0.057861328, -0.15039062, -0.4296875, 0.31054688, ..., -0.15625]

עיין הגדרת Amazon Bedrock boto3 לפרטים נוספים כיצד להתקין את החבילות הנדרשות, התחבר לאמזון Bedrock והפעל דגמים.

תכונות של הטבעת טקסט של Amazon Titan

עם הטבעת טקסט של Amazon Titan, אתה יכול להזין עד 8,000 אסימונים, מה שהופך אותו למתאים היטב לעבודה עם מילים בודדות, ביטויים או מסמכים שלמים על סמך מקרה השימוש שלך. Amazon Titan מחזירה וקטורי פלט בגודל 1536, ומעניקה לו רמת דיוק גבוהה, תוך אופטימיזציה לתוצאות חסכוניות עם אחזור נמוך.

Amazon Titan Text Embeddings תומכת ביצירה ושאילתה של הטבעות עבור טקסט בלמעלה מ-25 שפות שונות. זה אומר שאתה יכול להחיל את המודל על מקרי השימוש שלך מבלי ליצור ולתחזק מודלים נפרדים עבור כל שפה שבה אתה רוצה לתמוך.

מודל הטמעות יחיד מאומן בשפות רבות מספק את היתרונות העיקריים הבאים:

  • טווח רחב יותר - על ידי תמיכה ביותר מ-25 שפות מהקופסה, אתה יכול להרחיב את טווח ההגעה של היישומים שלך למשתמשים ולתוכן בשווקים בינלאומיים רבים.
  • ביצוע עקבי - עם מודל מאוחד המכסה מספר שפות, אתה מקבל תוצאות עקביות בשפות במקום לבצע אופטימיזציה בנפרד לכל שפה. המודל מאומן בצורה הוליסטית כך שאתה מקבל את היתרון בין השפות.
  • תמיכה בשאילתות רב לשוניות - Embeddings של אמזון Titan מאפשר לבצע שאילתות של הטבעות טקסט בכל אחת מהשפות הנתמכות. זה מספק גמישות לאחזור תוכן דומה מבחינה סמנטית בשפות מבלי להיות מוגבל לשפה אחת. אתה יכול לבנות יישומים המבצעים שאילתות ומנתחים נתונים רב לשוניים באמצעות אותו מרחב הטמעות מאוחד.

נכון לכתיבת שורות אלה, השפות הבאות נתמכות:

  • ערבי
  • הסיני (פשוט)
  • סינית (מסורתית)
  • צ'כיה
  • הולנדי
  • אנגלית
  • צרפתית
  • גרמנית
  • עברית
  • הינדי
  • איטלקי
  • יפני
  • קנאדה
  • קוריאני
  • מליאלאם
  • מרתי
  • פולני
  • פורטוגזי
  • רוסי
  • ספרדי
  • שבדי
  • טגלוג פיליפיני
  • טמילית
  • טלוגו
  • תורכי

שימוש ב- Amazon Titan Text Embeddings עם LangChain

LangChain היא מסגרת קוד פתוח פופולרית לעבודה עם מודלים של בינה מלאכותית וטכנולוגיות תומכות. הוא כולל א לקוח BedrockEmbeddings שעוטף בנוחות את ה-Boto3 SDK בשכבת הפשטה. ה BedrockEmbeddings הלקוח מאפשר לך לעבוד עם טקסט והטבעות ישירות, מבלי לדעת את הפרטים של בקשת ה-JSON או מבני התגובה. להלן דוגמה פשוטה:

from langchain.embeddings import BedrockEmbeddings

#create an Amazon Titan Text Embeddings client
embeddings_client = BedrockEmbeddings() 

#Define the text from which to create embeddings
text = "Can you please tell me how to get to the bakery?"

#Invoke the model
embedding = embeddings_client.embed_query(text)

#Print response
print(embedding)

אתה יכול גם להשתמש ב-LangChain's BedrockEmbeddings לקוח לצד לקוח Amazon Bedrock LLM כדי לפשט את הטמעת RAG, חיפוש סמנטי ודפוסים אחרים הקשורים להטמעות.

שימוש במארזים להטמעות

למרות ש-RAG הוא כיום מקרה השימוש הפופולרי ביותר לעבודה עם הטבעות, ישנם מקרי שימוש רבים אחרים בהם ניתן ליישם הטבעות. להלן כמה תרחישים נוספים שבהם אתה יכול להשתמש בהטמעות כדי לפתור בעיות ספציפיות, לבד או בשיתוף עם LLM:

  • שאלה ותשובה - הטמעות יכולות לעזור לתמוך בממשקי שאלות ותשובות באמצעות דפוס RAG. יצירת הטמעות בשילוב עם מסד נתונים וקטורי מאפשרים לך למצוא התאמות קרובות בין שאלות ותוכן במאגר ידע.
  • המלצות בהתאמה אישית - בדומה לשאלות ותשובות, אתה יכול להשתמש בהטבעות כדי למצוא יעדי נופש, מכללות, רכבים או מוצרים אחרים על סמך הקריטריונים שסיפק המשתמש. זה יכול ללבוש צורה של רשימה פשוטה של ​​התאמות, או שאתה יכול להשתמש ב-LLM כדי לעבד כל המלצה ולהסביר כיצד היא עומדת בקריטריונים של המשתמש. אתה יכול גם להשתמש בגישה זו כדי ליצור "10 המאמרים הטובים ביותר" מותאמים אישית עבור משתמש בהתבסס על הצרכים הספציפיים שלו.
  • ניהול נתונים – כאשר יש לך מקורות נתונים שאינם ממפים זה לזה בצורה נקייה, אבל יש לך תוכן טקסט המתאר את רשומת הנתונים, אתה יכול להשתמש בהטמעות כדי לזהות רשומות כפולות פוטנציאליות. לדוגמה, תוכל להשתמש בהטמעות כדי לזהות מועמדים כפולים שעשויים להשתמש בפורמט שונה, בקיצורים או אפילו בעלי שמות מתורגמים.
  • רציונליזציה של תיק יישומים - כאשר מחפשים ליישר תיקי יישומים על פני חברת אם ורכישה, לא תמיד ברור היכן להתחיל למצוא חפיפה פוטנציאלית. האיכות של נתוני ניהול התצורה יכולה להוות גורם מגביל, וזה יכול להיות קשה לתאם בין צוותים כדי להבין את נוף היישומים. על ידי שימוש בהתאמה סמנטית עם הטבעות, אנו יכולים לבצע ניתוח מהיר בין תיקי יישומים כדי לזהות יישומים מועמדים בעלי פוטנציאל גבוה לרציונליזציה.
  • קיבוץ תוכן - אתה יכול להשתמש בהטמעות כדי לעזור לקבץ תוכן דומה לקטגוריות שאולי לא ידעת מראש. לדוגמה, נניח שהיה לך אוסף של הודעות דוא"ל של לקוחות או ביקורות מוצרים מקוונים. אתה יכול ליצור הטבעות עבור כל פריט, ואז להפעיל את ההטמעות הללו k- פירושו אשכולות לזהות קבוצות הגיוניות של חששות לקוחות, שבחים או תלונות על המוצר, או נושאים אחרים. לאחר מכן תוכל ליצור סיכומים ממוקדים מהתוכן של קבוצות אלה באמצעות LLM.

דוגמה לחיפוש סמנטי

בשלנו דוגמה ב-GitHub, אנו מדגימים אפליקציית חיפוש הטמעות פשוטה עם Amazon Titan Text Embeddings, LangChain ו-Streamlit.

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

לשם הפשטות, אנו משתמשים ב-in-memory FAISS מסד נתונים לאחסון וחיפוש וקטורי הטבעה. בתרחיש אמיתי בקנה מידה, סביר להניח שתרצה להשתמש במאגר נתונים מתמשך כמו מנוע וקטור עבור Amazon OpenSearch Serverless או pgvector הרחבה עבור PostgreSQL.

נסה כמה הנחיות מאפליקציית האינטרנט בשפות שונות, כגון הבאות:

  • כיצד אוכל לפקח על השימוש שלי?
  • איך אני יכול להתאים דגמים?
  • באילו שפות תכנות אני יכול להשתמש?
  • הערה mes données sont-elles sécurisées ?
  • 私のデータはどのように保護されていますか?
  • Quais fornecedores de modelos estão disponíveis por meio do Bedrock?
  • ב-welchen Regionen האם Amazon Bedrock זמינה?
  • 有哪些级别的支持?

שימו לב שלמרות שחומר המקור היה באנגלית, השאילתות בשפות אחרות הותאמו לערכים רלוונטיים.

סיכום

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

השלבים הבא

תוכל למצוא דוגמאות נוספות להטמעות כמחברות או יישומי הדגמה בסדנאות הבאות:


על הכותבים

ג'ייסון סטהל הוא אדריכל פתרונות בכיר ב-AWS, המבוסס באזור ניו אינגלנד. הוא עובד עם לקוחות כדי להתאים את יכולות AWS לאתגרים העסקיים הגדולים ביותר שלהם. מחוץ לעבודה, הוא מבלה את זמנו בבניית דברים וצפייה בסרטי קומיקס עם משפחתו.

ניטין אוזביוס הוא Sr. Enterprise Solutions Architect ב-AWS, מנוסה בהנדסת תוכנה, ארכיטקטורה ארגונית ו-AI/ML. הוא נלהב מאוד לחקור את האפשרויות של AI גנרטיבי. הוא משתף פעולה עם לקוחות כדי לעזור להם לבנות יישומים מעוצבים היטב בפלטפורמת AWS, ומוקדש לפתרון אתגרים טכנולוגיים וסיוע במסע הענן שלהם.

ראג' פאתאק הוא אדריכל פתרונות ראשי ויועץ טכני לחברות Fortune 50 גדולות ולמוסדות שירותים פיננסיים בינוניים (FSI) ברחבי קנדה וארצות הברית. הוא מתמחה ביישומי למידת מכונה כגון AI גנרטיבי, עיבוד שפה טבעית, עיבוד מסמכים חכם ו-MLOps.

מני חנוג'ה היא מובילה טכנולוגית – מומחי בינה מלאכותית, מחברת הספר – Applied Machine Learning and High Performance Computing on AWS, וחברה במועצת המנהלים של קרן החינוך לנשים בייצור. היא מובילה פרויקטים של למידת מכונה (ML) בתחומים שונים כמו ראייה ממוחשבת, עיבוד שפה טבעית ובינה מלאכותית גנרטיבית. היא עוזרת ללקוחות לבנות, לאמן ולפרוס מודלים גדולים של למידת מכונה בקנה מידה. היא מדברת בכנסים פנימיים וחיצוניים כגון re:Invent, Women in Manufacturing West, סמינרים מקוונים ביוטיוב ו-GHC 23. בזמנה הפנוי היא אוהבת לצאת לריצות ארוכות לאורך החוף.

מארק רוי הוא ארכיטקט למידת מכונה ראשי עבור AWS, שעוזר ללקוחות לתכנן ולבנות פתרונות AI/ML. עבודתו של מארק מכסה מגוון רחב של מקרי שימוש ב-ML, עם עניין עיקרי בראייה ממוחשבת, למידה עמוקה והרחבת ML ברחבי הארגון. הוא עזר לחברות בתעשיות רבות, כולל ביטוח, שירותים פיננסיים, מדיה ובידור, שירותי בריאות, שירותים וייצור. מארק מחזיק בשש הסמכות AWS, כולל הסמכת ML Specialty. לפני שהצטרף ל-AWS, מארק היה אדריכל, מפתח ומוביל טכנולוגיה במשך למעלה מ-25 שנים, כולל 19 שנים בשירותים פיננסיים.

בול זמן:

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