שימוש ב-ML וב-AI עם BigQuery DataFrames
BigQuery DataFrames מספק יכולות של ML ו-AI ל-BigQuery DataFrames באמצעות ספריית bigframes.ml.
אתם יכולים לעבד מראש נתונים, ליצור אומדנים לאימון מודלים ב-BigQuery DataFrames, ליצור צינורות ML ולפצל מערכי נתונים לאימון ולבדיקה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לביצוע המשימות שמתוארות במסמך הזה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
שימוש במודלים מרוחקים או בפונקציות של AI:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
שימוש ב-BigQuery DataFrames במחברת BigQuery:
-
BigQuery User (
roles/bigquery.user) -
משתמש Notebook Runtime (
roles/aiplatform.notebookRuntimeUser) -
Code Creator (
roles/dataform.codeCreator)
-
BigQuery User (
-
שימוש בחיבור ברירת המחדל ל-BigQuery:
-
עריכה של נתוני BigQuery (
roles/bigquery.dataEditor) -
אדמין של BigQuery Connection (
roles/bigquery.connectionAdmin) -
Cloud Functions Developer (
roles/cloudfunctions.developer) -
משתמש בחשבון שירות (
roles/iam.serviceAccountUser) -
צפייה באובייקטים באחסון (
roles/storage.objectViewer)
-
עריכה של נתוני BigQuery (
-
שימוש במודלים מרוחקים של BigQuery DataFrames ML:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מיקומי ML
ספריית bigframes.ml תומכת באותם מיקומים כמו BigQuery ML. חיזוי מודלים של BigQuery ML ופונקציות אחרות של ML נתמכים בכל האזורים של BigQuery. התמיכה באימון מודלים משתנה בהתאם לאזור. מידע נוסף זמין במאמר מיקומים ב-BigQuery ML.
עיבוד מקדים של נתונים
יוצרים טרנספורמציות כדי להכין את הנתונים לשימוש באומדים (מודלים) באמצעות המודול bigframes.ml.preprocessing והמודול bigframes.ml.compose.
הספרייה BigQuery DataFrames מציעה את ההמרות הבאות:
כדי להגדיר נתונים רציפים במרווחים, משתמשים במחלקה
KBinsDiscretizerבמודולbigframes.ml.preprocessing.כדי לנרמל את תוויות היעד כערכים שלמים, משתמשים בבמחלקת
LabelEncoderבמודולbigframes.ml.preprocessing.כדי לשנות את קנה המידה של כל תכונה לטווח
[-1, 1]לפי הערך המקסימלי המוחלט שלה, צריך להשתמש במחלקהMaxAbsScalerבמודולbigframes.ml.preprocessing.כדי לתקנן תכונות על ידי שינוי קנה המידה של כל תכונה לטווח
[0, 1], צריך להשתמש במחלקהMinMaxScalerבמודולbigframes.ml.preprocessing.כדי לתקנן תכונות על ידי הסרת הממוצע ושינוי קנה המידה לשונות של יחידה, צריך להשתמש בבמחלקת
StandardScalerבמודולbigframes.ml.preprocessing.כדי להמיר ערכים קטגוריים לפורמט מספרי, משתמשים בבמחלקה
OneHotEncoderבמודולbigframes.ml.preprocessing.כדי להחיל טרנספורמציות על עמודות של DataFrames, משתמשים בבמחלקה
ColumnTransformerבמודולbigframes.ml.compose.
אימון מודלים
אפשר ליצור אומדים כדי לאמן מודלים ב-BigQuery DataFrames.
מודלים של אשכולות
אפשר ליצור אומדנים למודלים של אשכולות באמצעות המודול bigframes.ml.cluster.
כדי ליצור מודלים של אשכולות K-means, משתמשים במחלקה KMeans. אפשר להשתמש במודלים האלה לפילוח נתונים. לדוגמה, זיהוי פלחים של לקוחות. K-means היא טכניקה של למידה לא מפוקחת, ולכן אימון המודל לא דורש תוויות או פיצול נתונים לאימון או להערכה.
אפשר להשתמש במודול bigframes.ml.cluster כדי ליצור אומדנים למודלים של אשכולות.
דוגמת הקוד הבאה מראה איך להשתמש במחלקה bigframes.ml.cluster KMeans כדי ליצור מודל אשכולות k-means לפילוח נתונים:
מודלים של פירוק
אפשר ליצור אומדנים למודלים של פירוק באמצעות bigframes.ml.decomposition module.
כדי ליצור מודלים של ניתוח רכיבים עיקריים (PCA), משתמשים במחלקה PCA. אפשר להשתמש במודלים האלה כדי לחשב רכיבים ראשיים ולהשתמש בהם כדי לבצע שינוי בסיס בנתונים. השימוש במחלקה PCA מאפשר צמצום ממדיות על ידי הקרנת כל נקודה על הגרף רק על כמה מהרכיבים העיקריים הראשונים, כדי לקבל נתונים בממדים נמוכים יותר תוך שמירה על כמה שיותר מהשונות של הנתונים.
מודלים של Ensemble
אפשר ליצור אומדנים למודלים משולבים באמצעות המודול bigframes.ml.ensemble.
כדי ליצור מודלים של מסווג יער אקראי, משתמשים במחלקה
RandomForestClassifier. אפשר להשתמש במודלים האלה כדי לבנות כמה עצי החלטה של שיטות למידה לצורך סיווג.כדי ליצור מודלים של רגרסיה של יער אקראי, משתמשים במחלקה
RandomForestRegressor. אפשר להשתמש במודלים האלה כדי לבנות עצי החלטה של שיטות למידה שונות לניתוח רגרסיה.כדי ליצור מודלים של סיווג עצים עם שיפור גרדיאנט, משתמשים בבמחלקה
XGBClassifier. אפשר להשתמש במודלים האלה כדי ליצור באופן מצטבר עצי החלטה של שיטות למידה שונות לצורך סיווג.כדי ליצור מודלים של רגרסיה של עץ עם שיפור גרדיאנט, משתמשים במחלקה
XGBRegressor. אפשר להשתמש במודלים האלה כדי לבנות באופן מצטבר עצי החלטה של שיטות למידה מרובות לרגרסיה.
מודלים של תחזיות
אפשר ליצור אומדנים למודלים של תחזיות באמצעות המודול bigframes.ml.forecasting.
כדי ליצור מודלים של תחזיות של סדרות זמנים, משתמשים במחלקה ARIMAPlus.
מודלים מיובאים
אפשר ליצור אומדנים למודלים מיובאים באמצעות המודול bigframes.ml.imported.
כדי לייבא מודלים של Open Neural Network Exchange (ONNX), משתמשים במחלקה
ONNXModel.כדי לייבא מודל TensorFlow, משתמשים במחלקה
TensorFlowModel.כדי לייבא מודלים של XGBoostModel, משתמשים בבמחלקה
XGBoostModel.
מודלים לינאריים
יוצרים אומדים למודלים ליניאריים באמצעות מודול bigframes.ml.linear_model.
כדי ליצור מודלים של רגרסיה ליניארית, משתמשים במחלקה
LinearRegression. אפשר להשתמש במודלים האלה לחיזוי, למשל לחיזוי המכירות של פריט ביום מסוים.כדי ליצור מודלים של רגרסיה לוגיסטית, משתמשים במחלקה
LogisticRegression. אפשר להשתמש במודלים האלה לסיווג של שני ערכים אפשריים או יותר, למשל אם קלט הואlow-value, medium-valueאוhigh-value.
בדוגמת הקוד הבאה מוצג שימוש ב-bigframes.ml כדי לבצע את הפעולות הבאות:
- טעינת נתונים מ-BigQuery.
- לנקות ולהכין את נתוני האימון.
- יוצרים ומחילים מודל רגרסיה bigframes.ml.LinearRegression.
מודלים גדולים של שפה
אפשר ליצור אומדנים ל-LLM באמצעות המודול bigframes.ml.llm.
כדי ליצור מודלים של כלי ליצירת טקסט של Gemini, משתמשים ב
GeminiTextGeneratorclass. אפשר להשתמש במודלים האלה למשימות של יצירת טקסט.כדי ליצור אומדנים למודלים גדולים של שפה (LLM) מרחוק, משתמשים במודול
bigframes.ml.llm.
דוגמת הקוד הבאה מראה איך משתמשים במחלקה bigframes.ml.llm
GeminiTextGenerator כדי ליצור מודל Gemini ליצירת קוד:
מודלים מרחוק
כדי להשתמש במודלים מרוחקים של BigQuery DataFrames ML (bigframes.ml.remoteאו bigframes.ml.llm), צריך להפעיל את ממשקי ה-API הבאים:
BigQuery Connection API (
bigqueryconnection.googleapis.com)Cloud Resource Manager API (
cloudresourcemanager.googleapis.com)
כשמשתמשים במודלים מרוחקים של BigQuery DataFrames ML, צריך את תפקיד האדמין של IAM בפרויקט (roles/resourcemanager.projectIamAdmin) אם משתמשים בחיבור ברירת מחדל של BigQuery, או את תפקיד הדפדפן (roles/browser) אם משתמשים בחיבור שהוגדר מראש. כדי להימנע מהדרישה הזו, אפשר להגדיר את האפשרות bigframes.pandas.options.bigquery.skip_bq_connection_check לערך True. במקרה כזה, נעשה שימוש בחיבור (ברירת מחדל או שהוגדר מראש) כמו שהוא, בלי לבדוק את קיומו או את ההרשאות שלו. אם משתמשים בחיבור שהוגדר מראש ומדלגים על בדיקת החיבור, צריך לוודא את הדברים הבאים:
- החיבור נוצר במיקום הנכון.
- אם אתם משתמשים במודלים מרוחקים של BigQuery DataFrames ML, לחשבון השירות יש את התפקיד Vertex AI User (
roles/aiplatform.user) בפרויקט.
יצירת מודל מרוחק ב-BigQuery DataFrames יוצרת חיבור ל-BigQuery.
כברירת מחדל, נעשה שימוש בחיבור בשם bigframes-default-connection. אם אתם מעדיפים, אתם יכולים להשתמש בחיבור BigQuery שהוגדר מראש, ובמקרה כזה דילגנו על יצירת החיבור. לחשבון השירות של חיבור ברירת המחדל מוקצה התפקיד משתמש ב-Vertex AI (roles/aiplatform.user) בפרויקט.
יצירת צינורות עיבוד נתונים
אפשר ליצור צינורות עיבוד נתונים ללמידת מכונה באמצעות מודול bigframes.ml.pipeline.
צינורות מאפשרים לכם להרכיב כמה שלבים של למידת מכונה כדי לבצע אימות צולב שלהם ביחד, תוך הגדרת פרמטרים שונים. כך הקוד פשוט יותר, ואפשר לפרוס ביחד שלבים של עיבוד מקדים של נתונים ואומדן.
כדי ליצור צינור עיבוד נתונים של טרנספורמציות עם אומדן סופי, משתמשים במחלקת Pipeline.
בחירת דגמים
כדי לפצל את מערכי הנתונים לאימון ולבדיקה ולבחור את המודלים הכי טובים, משתמשים במודול bigframes.ml.model_selection:
כדי לפצל את הנתונים לאימון ולבדיקה (קבוצות הערכה), כמו שמוצג בדוגמת הקוד הבאה, משתמשים בפונקציה
train_test_split:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)כדי ליצור מערכי אימון ובדיקה מרובי-קיפולים לאימון ולהערכה של מודלים, כמו בדוגמת הקוד הבאה, משתמשים במחלקה
KFoldובשיטהKFold.split. התכונה הזו שימושית למערכי נתונים קטנים.kf = KFold(n_splits=5) for i, (X_train, X_test, y_train, y_test) in enumerate(kf.split(X, y)): # Train and evaluate models with training and testing setsכדי ליצור באופן אוטומטי מערכי אימון ובדיקה מרובי-קיפולים, לאמן את המודל ולהעריך אותו ולקבל את התוצאה של כל קיפול, כמו שמוצג בדוגמת הקוד הבאה, משתמשים בפונקציה
cross_validate:scores = cross_validate(model, X, y, cv=5)
המאמרים הבאים
- מידע נוסף על מערכת סוגי הנתונים של BigQuery DataFrames
- איך יוצרים קוד של BigQuery DataFrames באמצעות Gemini
- איך מנתחים הורדות של חבילות מ-PyPI באמצעות BigQuery DataFrames
- אפשר לראות את קוד המקור, מחברות לדוגמה ודוגמאות של BigQuery DataFrames ב-GitHub.
- אפשר לעיין בהפניית API של BigQuery DataFrames.