GPT
N

NSText2SQL

קוד פתוח

NumbersStationother2023-07-11

  • text-to-sql

מאגר שמקבץ כ־290,000 זוגות של הוראות טקסט ושאילתות SQL מעשרות מקורות שונים. הוא מתאים למי שרוצה לאמן מודל שפה לייצור קוד בלי לאסוף ולנקות נתונים ידנית.

  • 409הורדות בחודש
  • 90לייקים

מה זה

המאגר מכיל כ־290,000 רשומות המיועדות לאימון מודלים להמרת טקסט חופשי לשאילתות מסדי נתונים. הנתונים נאספו ממעל עשרים מקורות ציבוריים שונים ברחבי הרשת, ובהם Spider, WikiSQL, Criteria2SQL ומאגרים רפואיים כמו MIMIC ו־eICU. כל רשומה כוללת הוראה מובנית, את שאילתת היעד הנכונה, ואת שם המאגר שממנו הגיעה הדוגמה.

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

מתאים ל

  • אימון מודלי קוד ל־SQL

    אימון מודל שפה בסיסי כך שידע לקבל סכמה ושאלה ולהחזיר שאילתת SQLite תקינה.

  • הערכת ביצועי מודלים

    בדיקת הדיוק של מודלים קיימים ביצירת SQL על פני מגוון רחב של מעל עשרים תחומי תוכן שונים.

  • סינון נתונים לתחום מסוים

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

איפה זה נופל

הנתונים כולם באנגלית, בלי שום ייצוג לעברית או לשפות אחרות. השאילתות מותאמות אך ורק לניב של SQLite, כך שאם אתם עובדים מול PostgreSQL, Oracle או BigQuery, תצטרכו לבצע התאמות תחביר בעצמכם. חלק מההוראות נוצרו על ידי מודלי שפה, מה שעלול להכניס ניסוחים סינתטיים או שגיאות עדינות בהבנת השאילתה. מעבר לכך, המאגר פורסם ביולי 2023 ואינו מתעדכן, ואין בכרטיס פירוט לגבי חלוקת train ו־test מוכנה מראש.

שאלות
נפוצות

האם מותר להשתמש במאגר לפיתוח מוצר מסחרי?

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

האם יש במאגר שאלות בעברית?

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

מה עשו בנתונים לפני שפרסמו אותם?

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

באיזה ניב SQL מנוסחות השאילתות?

כל שאילתות היעד במאגר מנוסחות בניב SQLite בלבד. אם בסיס הנתונים שלכם דורש תחביר ייעודי של מנועים אחרים, המודל עשוי לייצר שגיאות תחביר ללא אימון נוסף.

איך טוענים

טוענים את המאגר ישירות דרך ספריית datasets של Hugging Face בפקודה אחת פשוטה, ללא צורך באישור גישה או במפתח מיוחד. הנתונים יושבים בקובץ train.jsonl שמכיל שלושה שדות בלבד: instruction שמכיל את תיאור הטבלאות והשאלה, output שמחזיק את שאילתת ה־SQL ב־SQLite, ו־source שמציין את המקור. שימו לב שההוראה כבר כוללת את הסכמה בפנים, כך שאין צורך לחבר ידנית טבלאות חיצוניות בזמן הריצה.

from datasets import load_dataset

ds = load_dataset("NumbersStation/NSText2SQL")

הרישיון

הרישיון הכללי מסומן כ־other כיוון שמדובר באוסף מיותר מעשרים מקורות שונים בעלי תנאים נפרדים. חלק מהמקורות משתמשים ברישיונות כמו MIT ו־Apache-2.0, אבל אחרים כפופים ל־CC-BY-SA-4.0 שמחייב שיתוף זהה, או לרישיונות שלא אותרו כלל בכרטיס. אם אתם מתכננים לאמן מודל לשימוש מסחרי, לא תוכלו להניח שהשימוש מותר בלי לבדוק ולסנן כל מקור ומקור לפי תנאיו המקוריים.

הרישיון המלא ב־Hugging Face ↗