יצירת חוד מידע עם גישה לשיחה לנתונים

יצירת חוד מידע עם גישה לשיחה לנתונים

צומת המקור: 2737787

AI שיחה לניתוח נתונים

איור 1: ייצוג של זרימת Text2SQL

ככל שהעולם שלנו הופך גלובלי ודינאמי יותר, עסקים תלויים יותר ויותר בנתונים לקבלת החלטות מושכלות, אובייקטיביות ובזמן. עם זאת, נכון לעכשיו, מיצוי מלוא הפוטנציאל של נתונים ארגוניים הוא לעתים קרובות פריבילגיה של קומץ מדעני נתונים ואנליסטים. רוב העובדים אינם שולטים בערכת הכלים המקובלת למדעי הנתונים (SQL, Python, R וכו'). כדי לגשת לנתונים הרצויים, הם עוברים דרך שכבה נוספת שבה אנליסטים או צוותי BI "מתרגמים" את הפרוזה של שאלות עסקיות לשפת הנתונים. הפוטנציאל לחיכוך וחוסר יעילות במסע הזה הוא גבוה - לדוגמה, הנתונים עשויים להימסר בעיכובים או אפילו כשהשאלה כבר התיישנה. מידע עלול ללכת לאיבוד בדרך כאשר הדרישות אינן מתורגמות במדויק לשאילתות אנליטיות. חוץ מזה, יצירת תובנות באיכות גבוהה דורשת גישה איטרטיבית שנמנעת בכל שלב נוסף בלולאה. מצד שני, אינטראקציות אד-הוק אלו יוצרות הפרעה לכישרון נתונים יקר ומסיחות את דעתם מעבודת נתונים אסטרטגית יותר, כפי שמתואר ב"וידויים" אלה של מדען נתונים:

כשהייתי ב-Square והצוות היה קטן יותר, היה לנו רוטציה מפחידה של "אנליטיקס כוננות". זה התחלף בקפדנות על בסיס שבועי, ואם זה היה התור שלך ידעת שתעשה מעט מאוד עבודה "אמיתית" באותו שבוע ותבלה את רוב זמנך בשאלות אד-הוק מצוותי המוצר והתפעול השונים ב- חברה (SQL Monkeying, קראנו לזה). הייתה תחרות קשה על תפקידי מנהל בצוות הניתוח ואני חושב שזו הייתה תוצאה של פטור של מנהלים מהרוטציה הזו - שום פרס סטטוס לא יכול להתחרות בגזר של אי ביצוע עבודה כוננית.[1]

אכן, האם זה לא יהיה מגניב לדבר ישירות עם הנתונים שלך במקום לעבור סבבים מרובים של אינטראקציה עם צוות הנתונים שלך? חזון זה מאומץ על ידי ממשקי שיחה המאפשרים לבני אדם לקיים אינטראקציה עם נתונים באמצעות שפה, ערוץ התקשורת האינטואיטיבי והאוניברסלי ביותר שלנו. לאחר ניתוח שאלה, אלגוריתם מקודד אותה לצורה לוגית מובנית בשפת השאילתה המועדפת, כגון SQL. כך, משתמשים שאינם טכניים יכולים לשוחח עם הנתונים שלהם ולהניח ידם במהירות על מידע ספציפי, רלוונטי ובזמן, מבלי לבצע את העקיפה באמצעות צוות BI. במאמר זה, נשקול את היבטי היישום השונים של Text2SQL ונתמקד בגישות מודרניות עם שימוש במודלים של שפה גדולה (LLMs), המשיגים את הביצועים הטובים ביותר נכון לעכשיו (ראה [2]; לסקר על גישות חלופיות מעבר ללימודי תואר שני, קוראים לקוראים [3]). המאמר בנוי על פי "המודל המנטלי" הבא של המרכיבים העיקריים שיש לקחת בחשבון בעת ​​תכנון ובניית תכונת AI:

AI שיחה לניתוח נתונים
איור 2: מודל מנטלי של תכונת AI

בואו נתחיל עם הסוף בראש ונסכם את הערך - מדוע הייתם בונים תכונה של Text2SQL למוצר הנתונים או הניתוח שלכם. שלושת היתרונות העיקריים הם:

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

עכשיו, מהם תרחישי המוצר שבהם אתה עשוי לשקול את Text2SQL? שלוש ההגדרות העיקריות הן:

  • אתה מציע א נתונים מדרגיים/מוצר BI ורוצים לאפשר ליותר משתמשים לגשת לנתונים שלהם בצורה לא טכנית, ובכך להגדיל גם את השימוש וגם את בסיס המשתמשים. כדוגמה, ל-ServiceNow יש שאילתות נתונים משולבות בהיצע שיחה גדול יותר, ו אטלן לאחרונה הכריז על חקר נתונים בשפה טבעית.
  • אתה מחפש לבנות משהו בתחום הנתונים/AI כדי לדמוקרטיזציה של גישה לנתונים בחברות, ובמקרה זה אתה יכול לשקול MVP עם Text2SQL בליבה. ספקים אוהבים AI2SQL ו Text2sql.ai כבר עושים כניסה לחלל הזה.
  • אתה עובד על א מערכת BI מותאמת אישית ורוצים למקסם ולדמוקרטיז את השימוש בו בחברה הבודדת.

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

  • גדול וצומח, כך ש-Text2SQL יוכל לפרוש את ערכו לאורך זמן ככל שיותר ויותר מהנתונים ממונפים.
  • באיכות גבוהה, כדי שאלגוריתם Text2SQL לא יצטרך להתמודד עם רעש מוגזם (חוסר עקביות, ערכים ריקים וכו') בנתונים. באופן כללי, לנתונים שנוצרים אוטומטית על ידי יישומים יש איכות ועקביות גבוהה יותר מאשר נתונים שנוצרים ומתוחזקים על ידי בני אדם.
  • בוגר מבחינה סמנטית בניגוד לגולמי, כך שבני אדם יכולים לבצע שאילתות בנתונים על סמך מושגים מרכזיים, קשרים ומדדים הקיימים במודל המנטלי שלהם. שים לב שניתן להשיג בגרות סמנטית על ידי שלב טרנספורמציה נוסף אשר מתאים נתונים גולמיים למבנה מושגי (ראה סעיף "העשרת ההנחיה במידע על מסד הנתונים").

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

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

1. נתונים

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

AI שיחה לניתוח נתונים
איור 3: בייצוג Text2SQL זה, אלמנטים וקשרים הקשורים לנתונים מסומנים בצהוב.

1.1 פורמט ומבנה הנתונים

בדרך כלל, זוג קלט-פלט גולמי של Text2SQL מורכב משאלת שפה טבעית ומשאילתת SQL המתאימה, לדוגמה:

שאלה: "רשום את השם ומספר העוקבים עבור כל משתמש."

שאילתת SQL:

בחר שם, עוקבים מ-user_profiles

במרחב נתוני האימון, המיפוי בין שאלות ושאילתות SQL הוא הרבה לרבים:

  • ניתן למפות שאילתת SQL לשאלות רבות ושונות בשפה טבעית; לדוגמה, סמנטיקה של השאילתה לעיל יכולה לבוא לידי ביטוי על ידי: "הראה לי את השמות והמספרים של עוקבים לכל משתמש","כמה עוקבים יש לכל משתמש?" וכו.
  • תחביר SQL הוא רב תכליתי, וכמעט כל שאלה יכולה להיות מיוצגת ב-SQL במספר דרכים. הדוגמה הפשוטה ביותר היא סדרים שונים של סעיפי WHERE. בעמדה מתקדמת יותר, כל מי שעשה אופטימיזציה של שאילתות SQL ידע שדרכים רבות מובילות לאותה תוצאה, ולשאילתות שוות ערך מבחינה סמנטית עשויות להיות תחביר שונה לחלוטין.

האיסוף הידני של נתוני אימון עבור Text2SQL הוא מייגע במיוחד. זה לא רק דורש שליטה ב-SQL מצד המציין, אלא גם יותר זמן לכל דוגמה מאשר משימות לשוניות כלליות יותר כמו ניתוח סנטימנטים וסיווג טקסט. כדי להבטיח כמות מספקת של דוגמאות אימון, ניתן להשתמש בהגדלת נתונים - לדוגמה, ניתן להשתמש ב-LLMs כדי ליצור פרפראזות עבור אותה שאלה. [3] מספק סקר שלם יותר של טכניקות הגדלת נתונים של Text2SQL.

1.2 העשרת ההנחיה במידע על מסד הנתונים

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

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

קיימות שתי אפשרויות לשילוב ידע בבסיס הנתונים: מצד אחד, ניתן להגביל את נתוני ההדרכה לדוגמאות שנכתבו עבור בסיס הנתונים הספציפי, ובמקרה זה הסכימה נלמדת ישירות משאילתת ה-SQL והמיפוי שלה לשאלה. הגדרה זו של מסד נתונים יחיד מאפשרת לייעל את האלגוריתם עבור מסד נתונים ו/או חברה בודדים. עם זאת, זה מבטל את כל השאיפות להרחבה, מכיוון שצריך לכוונן את המודל עבור כל לקוח או מסד נתונים בודדים. לחלופין, בהגדרה מרובה מסד נתונים, ניתן לספק את סכימת מסד הנתונים כחלק מהקלט, מה שמאפשר לאלגוריתם "להכליל" לסכימות מסד נתונים חדשות, בלתי נראות. אמנם תצטרך ללכת על גישה זו אם תרצה להשתמש ב- Text2SQL במסדי נתונים רבים ושונים, זכור שזה דורש מאמץ הנדסי ניכר. עבור כל מסד נתונים עסקי סביר, כולל המידע המלא בהנחיה יהיה מאוד לא יעיל וככל הנראה בלתי אפשרי בגלל מגבלות אורך מהיר. לפיכך, הפונקציה האחראית על ניסוח מהיר צריכה להיות חכמה מספיק כדי לבחור תת-קבוצת מידע של מסד נתונים שהיא הכי "שימושית" עבור שאלה נתונה, ולעשות זאת עבור מסדי נתונים שעלולים להיות בלתי נראים.

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

2. אלגוריתם

AI שיחה לניתוח נתונים
איור 4: בייצוג Text2SQL זה, אלמנטים וקשרים הקשורים לאלגוריתם מסומנים בצהוב.

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

  • תחביר SQL וסמנטיקה
  • מבנה מסד הנתונים
  • הבנת שפה טבעית (NLU)
  • מיפוי בין שפה טבעית לשאילתות SQL (תחבירית, מילונית וסמנטית)

2.1 פתרון שונות לשונית בקלט

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

AI שיחה לניתוח נתונים
איור 5: אלגוריתם Text2SQL צריך להתמודד עם גרסאות שונות של שאלה

LLMs כגון דגמי GPT, T5 ו- CodeX מתקרבים יותר ויותר לפתרון האתגר הזה. לומדים מכמויות עצומות של טקסט מגוון, הם לומדים להתמודד עם מספר רב של דפוסים לשוניים ואי סדרים. בסופו של דבר, הם הופכים להיות מסוגלים להכליל על שאלות הדומות מבחינה סמנטית למרות שיש להן צורות פנים שונות. ניתן ליישם LLMs מחוץ לקופסה (זריקה אפס) או לאחר כוונון עדין. הראשון, אמנם נוח, מוביל לדיוק נמוך יותר. זה האחרון דורש יותר מיומנות ועבודה, אבל יכול להגביר משמעותית את הדיוק.

מבחינת דיוק, כצפוי, הדגמים בעלי הביצועים הטובים ביותר הם הדגמים העדכניים ביותר של משפחת GPT כולל דגמי CodeX. באפריל 2023, GPT-4 הוביל לעלייה דרמטית ברמת הדיוק של יותר מ-5% בהשוואה לחדשנות הקודמת והשיגה דיוק של 85.3% (במדד "ביצוע עם ערכים").[4] במחנה הקוד הפתוח, ניסיונות ראשוניים לפתור את חידת Text2SQL התמקדו במודלים של קידוד אוטומטי כגון BERT, המצטיינים במשימות NLU.[5, 6, 7] עם זאת, בתוך ההייפ סביב AI גנרטיבי, הגישות האחרונות מתמקדות בדגמים אוטורגרסיביים כגון דגם T5. T5 מאומן מראש באמצעות למידה מרובת משימות ובכך מסתגל בקלות למשימות לשוניות חדשות, כולל. גרסאות שונות של ניתוח סמנטי. עם זאת, למודלים אוטורגרסיביים יש פגם מהותי בכל הנוגע למשימות ניתוח סמנטי: יש להם מרחב פלט לא מוגבל וללא מעקות בטיחות סמנטיים שיגבילו את הפלט שלהם, מה שאומר שהם יכולים להיות יצירתיים בצורה מדהימה בהתנהגותם. למרות שזה חומר מדהים להפקת תוכן חופשי, זה מטרד עבור משימות כמו Text2SQL שבהן אנו מצפים לפלט יעד מוגבל ומובנה היטב.

2.2 אימות ושיפור שאילתות

כדי להגביל את פלט LLM, אנו יכולים להציג מנגנונים נוספים לאימות ושיפור השאילתה. ניתן ליישם זאת כשלב אימות נוסף, כפי שהוצע במערכת PICARD.[8] PICARD משתמש במנתח SQL שיכול לאמת אם שאילתת SQL חלקית יכולה להוביל לשאילתת SQL חוקית לאחר השלמתה. בכל שלב יצירה של ה-LLM, אסימונים שיבטלו את השאילתה נדחים, והאסימונים החוקיים בעלי ההסתברות הגבוהה ביותר נשמרים. בהיותה דטרמיניסטית, גישה זו מבטיחה 100% תוקף של SQL כל עוד המנתח שומר על כללי SQL נכונים. זה גם מנתק את אימות השאילתה מהדור, ובכך מאפשר לשמור על שני הרכיבים ללא תלות זה בזה ולשדרג ולשנות את ה-LLM.

גישה נוספת היא לשלב ידע מבני ו-SQL ישירות לתוך ה-LLM. לדוגמה, Graphix [9] משתמש בשכבות מודעות לגרפים כדי להחדיר ידע SQL מובנה למודל T5. בשל האופי ההסתברותי של גישה זו, היא מטה את המערכת לשאילתות נכונות, אך אינה מספקת ערובה להצלחה.

לבסוף, ה-LLM יכול לשמש כסוכן רב-שלבי שיכול לבדוק ולשפר באופן אוטונומי את השאילתה.[10] באמצעות שלבים מרובים בהנחיה של שרשרת מחשבה, ניתן להטיל על הסוכן לשקף את נכונות השאילתות שלו ולשפר את כל הפגמים. אם עדיין לא ניתן לבצע את השאילתה המאומתת, ניתן להעביר את העקיבה לאחור של חריג SQL לסוכן כמשוב נוסף לשיפור.

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

2.3 הערכה

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

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

  • דיוק התאמה מדויק: שאילתות ה-SQL שנוצרו ושאילתות היעד מפוצלות למרכיביהן, והקבוצות המתקבלות מושוות עבור זהות.[11] החיסרון כאן הוא שהוא מסביר רק וריאציות סדר בשאילתת SQL, אך לא להבדלים תחביריים בולטים יותר בין שאילתות שוות ערך סמנטית.
  • דיוק ביצוע: מערכי הנתונים הנובעים משאילתות SQL שנוצרו ושאילתות היעד מושוות לצורך זהות. עם מזל טוב, שאילתות עם סמנטיקה שונה עדיין יכולות לעבור את המבחן הזה במופע מסד נתונים ספציפי. לדוגמה, בהנחה שמסד נתונים שבו כל המשתמשים מעל גיל 30, שתי השאילתות הבאות יחזירו תוצאות זהות למרות שיש להן סמנטיקה שונה:
    בחר * מהמשתמש
    בחר * ממשתמש שבו גיל מעל 30
  • דיוק חבילת בדיקה: דיוק חבילת בדיקות הוא גרסה מתקדמת יותר ופחות מתירנית של דיוק ביצוע. עבור כל שאילתה נוצרת קבוצה ("חבילת מבחן") של מסדי נתונים המובחנים מאוד ביחס למשתנים, לתנאים ולערכים בשאילתה. לאחר מכן, דיוק הביצוע נבדק בכל אחד מבסיסי הנתונים הללו. למרות שדורש מאמץ נוסף כדי להנדס את יצירת חבילת הבדיקה, מדד זה גם מפחית משמעותית את הסיכון לתוצאות חיוביות שגויות בהערכה.[12]

3. חווית משתמש

AI שיחה לניתוח נתונים
איור 6: בייצוג Text2SQL זה, אלמנטים וקשרים הקשורים ל-UX מסומנים בצהוב.

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

3.1 ניהול כשלים

Text2SQL יכול להיכשל בשני מצבים, שצריך לתפוס אותם בדרכים שונות:

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

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

3.2 אינטראקציה בין אדם למכונה

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

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

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

מִשׁתַמֵשׁ: הראה לי את המשימות של ג'ון בספרינט הזה.

עוזר: האם תרצה לראות משימות שג'ון יצר, או את אלה שהוא עובד עליהן?

מִשׁתַמֵשׁ: משימות שג'ון יצר

עוזר: אוקיי, הנה מזהי המשימות:

AI שיחה לניתוח נתונים

מִשׁתַמֵשׁ: תודה, אני גם רוצה לראות מידע נוסף על המשימות. נא למיין גם לפי דחיפות.

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

AI שיחה לניתוח נתונים

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

4. דרישות לא פונקציונליות

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

4.1 דיוק

עבור Text2SQL, הדרישות לגבי דיוק גבוהות. ראשית, Text2SQL מיושם בדרך כלל בהגדרת שיחה שבה חיזויים נעשים אחד אחד. לפיכך, "חוק המספרים הגדולים" שעוזר בדרך כלל לאזן את השגיאה בתחזיות קבוצתיות, לא עוזר. שנית, תוקף תחבירי ולקסיקלי הוא תנאי "קשה": על המודל ליצור שאילתת SQL מעוצבת היטב, פוטנציאלית עם תחביר וסמנטיקה מורכבים, אחרת לא ניתן לבצע את הבקשה מול מסד הנתונים. ואם זה הולך כשורה וניתן להפעיל את השאילתה, היא עדיין יכולה להכיל שגיאות סמנטיות ולהוביל למערך נתונים שגוי שהוחזר (ראה סעיף 3.1 ניהול כשלים).

4.2 מדרגיות

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

מהירות 4.3

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

4.4 הסבר ושקיפות

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

פרטיות 4.5

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

  • אין מידע
  • סכימת מסד נתונים
  • תוכן מסד נתונים

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

4.6 הסתגלות לאורך זמן

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

סיכום

בואו נסכם את נקודות המפתח של המאמר:

  • Text2SQL מאפשר ליישם גישה אינטואיטיבית ודמוקרטית לנתונים בעסק, ובכך למקסם את הערך של הנתונים הזמינים.
  • נתוני Text2SQL מורכבים משאילתות בקלט, ושאילתות SQL בפלט. המיפוי בין שאלות לשאילתות SQL הוא הרבה לרבים.
  • חשוב לספק מידע על מאגר המידע כחלק מההנחיה. בנוסף, ניתן לבצע אופטימיזציה של מבנה מסד הנתונים כדי להקל על האלגוריתם ללמוד ולהבין אותו.
  • לגבי הקלט, האתגר העיקרי הוא השונות הלשונית של שאלות בשפה טבעית, שניתן לגשת אליהן באמצעות LLMs שהוכשרו מראש על מגוון רחב של סגנונות טקסט שונים
  • הפלט של Text2SQL צריך להיות שאילתת SQL חוקית. ניתן לשלב אילוץ זה על ידי "הזרקת" ידע SQL לתוך האלגוריתם; לחילופין, באמצעות גישה איטרטיבית, ניתן לבדוק ולשפר את השאילתה במספר שלבים.
  • בשל ההשפעה הפוטנציאלית הגבוהה של "כשלים שקטים" המחזירים נתונים שגויים לקבלת החלטות, ניהול כשלים הוא הדאגה העיקרית בממשק המשתמש.
  • בצורה "מוגברת", משתמשים יכולים להיות מעורבים באופן פעיל באימות איטרטיבי ושיפור של שאילתות SQL. זה אמנם הופך את האפליקציה לפחות זורמת, אבל זה גם מפחית את שיעורי הכשלים, מאפשר למשתמשים לחקור נתונים בצורה גמישה יותר ויוצר אותות בעלי ערך ללמידה נוספת.
  • הדרישות העיקריות שאינן פונקציונליות שיש לקחת בחשבון הן דיוק, מדרגיות, מהירות, יכולת הסבר, פרטיות והתאמה לאורך זמן. הפשרות העיקריות מורכבות בין דיוק מחד, לבין מדרגיות, מהירות ופרטיות מאידך.

הפניות

[1] קן ואן הארן. 2023. החלפת אנליסט SQL ב-26 הנחיות רקורסיביות של GPT

[2] Nitarshan Rajkumar et al. 2022. הערכת יכולות הטקסט ל-SQL של ​​מודלים גדולים של שפה

[3] Naihao Deng et al. 2023. ההתקדמות האחרונה בטקסט ל-SQL: סקר של מה יש לנו ומה אנחנו מצפים

[4] מוחמדרזה פורזה ואח'. 2023. DIN-SQL: למידה מפורקת בתוך ההקשר של טקסט ל-SQL עם תיקון עצמי

[5] Victor Zhong et al. 2021. התאמה מבוססת לניתוח סמנטי הניתן לביצוע בצילום אפס

[6] שי ויקטוריה לין וחב'. 2020. גישור נתונים טקסטואליים וטבלאריים עבור ניתוח טקסט ל-SQL סמנטי חוצה תחומים

[7] Tong Guo et al. 2019. תוכן משופר יצירת טקסט ל-SQL מבוסס BERT

[8] Torsten Scholak et al. 2021. PICARD: ניתוח בהדרגה עבור פענוח אוטומטי רגרסיבי מוגבל ממודלים של שפה

[9] Jinyang Li et al. 2023. Graphix-T5: ערבוב רובוטריקים מאומנים מראש עם שכבות מודעות לגרפים לניתוח טקסט ל-SQL

[10] LangChain. 2023. LLMs ו-SQL

[11] טאו יו וחב'. 2018. עכביש: מערך נתונים עם תווית אנושית בקנה מידה גדול עבור ניתוח סמנטי מורכב וחוצה תחומים ומשימות טקסט ל-SQL

[12] Ruiqi Zhong et al. 2020. הערכה סמנטית עבור טקסט ל-SQL עם סוויטות בדיקה מזוקקות

[13] קתרין טיאן וחב'. 2023. פשוט בקש כיול: אסטרטגיות להעלאת ציוני ביטחון מכוילים ממודלים של שפה המכוונים היטב עם משוב אנושי

[14] ברידן הנקוק וחב'. 2019. ללמוד מדיאלוג לאחר הפריסה: האכל את עצמך, צ'טבוט!

[15] אחמד אלגוהרי וחב'. 2020. דבר אל המנתח שלך: טקסט ל-SQL אינטראקטיבי עם משוב בשפה טבעית

[16] יאנה ליפנקובה. 2022. דבר איתי! שיחות Text2SQL עם הנתונים של החברה שלך, שיחה ב-New York Natural Language Processing Meetup.

כל התמונות הן של המחבר.

מאמר זה פורסם במקור ב לקראת מדעי נתונים ופורסם מחדש ל- TOPBOTS באישור המחבר.

נהנים מהמאמר הזה? הירשם לעדכוני מחקר AI נוספים.

נודיע לך כשנפרסם מאמרים נוספים בנושא זה.

בול זמן:

עוד מ עליון