מה זה RAT-SQL?
RAT-SQL או Relation-Aware Transformer SQL היא מסגרת מבוססת למידת מכונה שנועדה
לתרגם שאילתות בשפה טבעית לשפת SQL, תוך ניצול מודל טרנספורמר מתקדם שמודע למבנה
של מסדי נתונים רלציוניים.
RAT-SQL מציעה פתרון מתקדם לבעיה הקלאסית של Text-to-SQL – כלומר הפקת שאילתות מדויקות
מתוך טקסט חופשי.
המודל הוצג בשנת 2020 על ידי קבוצת חוקרים מאוניברסיטת ניו יורק (NYU), והוא נחשב לאחת ההתפתחויות
המשמעותיות בתחום ה־Semantic Parsing על מסדי נתונים רלציוניים.
הבעיה ש־RAT-SQL פותרת
מערכות רבות, כמו עוזרים חכמים או כלי BI, שואפות לאפשר למשתמשים לתקשר עם מסדי נתונים בשפה טבעית, למשל:
“מהו ממוצע ההכנסות לפי מחוז בשנת 2020?”
התרגום של בקשה כזו לשאילתת SQL מדויקת דורש הבנה של:
מבנה הסכימה של מסד הנתונים (טבלאות, עמודות, קשרים).
מונחים בשפה טבעית והשוואתם למונחים בסכימה.
פעולות לוגיות וחישוביות (סיכום, סינון, הצטרפות בין טבלאות וכו’).
RAT-SQL מתמודד עם האתגרים האלה דרך מודל טרנספורמר מותאם שיודע “לזכור” קשרים בין ישויות במסד הנתונים
ולהשוות ביניהן לבין הביטויים בטקסט החופשי.
איך RAT-SQL עובד?
המודל בנוי ממספר שלבים:
Encoding of Input Query and Schema
הטקסט הקלט (השאלה בשפה חופשית) והסכימה (הטבלאות והעמודות) מקודדים יחד באמצעות טרנספורמר.
RAT-SQL עושה שימוש ב־Relation-Aware Self-Attention – גרסה של מנגנון Attention שמביאה בחשבון
גם קשרים מבניים בין רכיבי הסכימה: טבלה–עמודה, מפתחות זרים ועוד.
Graph Encoding of Schema
הסכימה של מסד הנתונים מיוצגת כגרף.
הקשרים בין ישויות (טבלאות, עמודות) הם הקשתות בגרף.
ה־encoder מתחשב במבנה הזה, ולכן מבין טוב יותר אילו עמודות רלוונטיות לבקשה הנתונה.
Sketch-Based Decoder
RAT-SQL אינו יוצר את שאילתת SQL כטקסט, אלא מבנה Sketch – שלד של השאילתה (SELECT … FROM … WHERE …).
השלמת הפרטים מתבצעת מתוך מילון האובייקטים של הסכימה (column names, table names וכו’).
Training with Supervised Learning
המודל מאומן על מסד נתונים גדול של שאילתות SQL שמקושרות לטקסטים חופשיים.
הדאטהסט המרכזי לאימון הוא Spider, שמכיל שאילתות מורכבות על בסיס סכימות שונות.
יתרונות עיקריים של RAT-SQL
מודעות למבנה מסדי נתונים – אינו מתייחס לשמות עמודות כטקסט בלבד, אלא מבין את הקשרים ביניהם.
כלי גנרי למסדי נתונים מרובים – RAT-SQL מותאם לעבוד עם סכימות שונות, ולא רק עם מסד נתונים אחד.
תמיכה בשאילתות מורכבות – כולל שאילתות עם הצטרפויות, תתי-שאילתות, אגרגציות ועוד.
יכולת התאמה – ניתן להתאים את המודל למסדי נתונים פנים-ארגוניים.
דוגמה ליישום RAT-SQL
קלט בשפה טבעית:
“כמה לקוחות ביצעו יותר מ־3 רכישות ב־2024?”
RAT-SQL מתרגם ל־SQL:
sql
SELECT COUNT(*)
FROM customers
WHERE customer_id IN (
SELECT customer_id
FROM purchases
WHERE YEAR(purchase_date) = 2024
GROUP BY customer_id
HAVING COUNT(*) > 3
)
ביצועים של RAT-SQL
במבחני benchmark על דאטהסט Spider, RAT-SQL הציג:
שיפור משמעותי על פני מודלים קודמים (כגון SQLNet, SyntaxSQLNet).
דיוק של מעל 70% בשאילתות מורכבות עם הצטרפויות רבות.
כאשר RAT-SQL שולב עם מייצב שפה כמו BERT או T5, הוא השיג תוצאות פורצות דרך באותה תקופה.
יישומים של RAT-SQL
מערכות BI עם ממשק שפה טבעית.
שירותי תמיכה טכנית אוטומטיים (למשל, בדשבורדים של SQL).
עוזרים קוליים חכמים שמאפשרים שאילתות על מידע מובנה.
מערכות ניהול מידע רפואי / פיננסי המאפשרות שליפות מורכבות ללא ידע טכני.
שאלות ותשובות בנושא RAT-SQL
האם RAT-SQL יכול לעבוד על דאטה שלא נראה קודם?
כן, זהו אחד מיתרונותיו – הוא מסוגל להתאים את עצמו לסכימות חדשות, תוך שימוש בידע על מבנה
הקשרים בין ישויות.
מה החיסרון המרכזי של RAT-SQL?
המודל כבד יחסית ודורש משאבי חישוב משמעותיים. בנוסף, ביצועיו עשויים לרדת כששמות הטבלאות והעמודות
עמומים או בלתי אינטואיטיביים.
האם RAT-SQL תומך ב־UPDATE או DELETE?
המוקד שלו הוא שאילתות SELECT בלבד. ניתן להרחיב את המודל אך זו לא התמיכה המקורית.
מה ההבדל בינו לבין Codex או ChatGPT לצורכי SQL?
Codex ו־ChatGPT יכולים לכתוב SQL באופן חופשי ויצירתי, אך אינם מבוססים על ידע מפורש על סכימה.
RAT-SQL נבנה בדיוק בשביל משימה זו ומודע למבנה הסכימה כחלק אינטגרלי מהמודל.

