نماذج نماذج أولية في دفاتر الملاحظات باستخدام AI Platform

1. نظرة عامة

سيرشدك هذا النشاط إلى الأدوات المختلفة في "دفاتر ملاحظات منصة الذكاء الاصطناعي" لاستكشاف بياناتك وإنشاء نماذج أولية لنماذج تعلُّم الآلة.

المعلومات التي ستتعرّف عليها

ستتعرّف على كيفية:

  • إنشاء مثيل "دفتر ملاحظات AI Platform" وتخصيصه
  • تتبُّع رمز أوراق الملاحظات باستخدام git، وهو مدمج مباشرةً في "أوراق ملاحظات منصة الذكاء الاصطناعي"
  • استخدام أداة "ماذا لو" في دفتر ملاحظاتك

تبلغ التكلفة الإجمالية لتنفيذ هذا البرنامج التدريبي على Google Cloud حوالي $1. يمكنك الاطّلاع على التفاصيل الكاملة حول أسعار "أجهزة الكمبيوتر المحمول لتكنولوجيات الذكاء الاصطناعي" هنا.

2. إنشاء مثيل "دفاتر ملاحظات منصة الذكاء الاصطناعي"

ستحتاج إلى مشروع على Google Cloud Platform تم تفعيل ميزة الفوترة فيه لتشغيل هذا الدليل التعليمي. لإنشاء مشروع، اتّبِع التعليمات الواردة هنا.

الخطوة 2: تفعيل Compute Engine API

انتقِل إلى Compute Engine (محرك الحوسبة) واختَر تفعيل إذا لم يكن مفعّلاً. ستحتاج إلى هذا الإجراء لإنشاء مثيل دفتر ملاحظات.

الخطوة 3: إنشاء مثيل دفتر ملاحظات

انتقِل إلى قسم "مذكّرات AI Platform" في Cloud Console وانقر على مثيل جديد. بعد ذلك، اختَر أحدث نوع من مثيلات TensorFlow 2 Enterprise بدون وحدات معالجة الرسومات:

9f2bb4dec1ba4f4f.png

أدخِل اسمًا لمثيلك أو استخدِم الاسم التلقائي. بعد ذلك، سنستكشف خيارات التخصيص. انقر على الزر تخصيص:

63be602ba45ca7c9.png

تتضمّن "دفاتر ملاحظات منصة الذكاء الاصطناعي" العديد من خيارات التخصيص المختلفة، بما في ذلك المنطقة التي يتم نشر المثيل فيها ونوع الصورة وحجم الجهاز وعدد وحدات معالجة الرسومات وغير ذلك. سنستخدم الإعدادات التلقائية للمنطقة والبيئة. لضبط إعدادات الجهاز، سنستخدم جهاز n1-standard-8:

27101d232f765a17.png

لن نضيف أي وحدات معالجة رسومات، وسنستخدم الإعدادات التلقائية لقرص التمهيد والشبكة والأذونات. انقر على إنشاء لإنشاء المثيل. سيستغرق إكمال هذه الخطوة بضع دقائق.

بعد إنشاء المثيل، ستظهر علامة اختيار خضراء بجانبه في واجهة مستخدم "دفاتر ملاحظات Google". اختَر فتح JupyterLab لفتح المثيل وبدء إنشاء النماذج الأولية:

3598f414887ea9a8.png

عند فتح المثيل، أنشئ دليلاً جديدًا باسم codelab. في ما يلي الدليل الذي سنعمل منه خلال هذا الدرس التطبيقي:

c16a821546acd92.png

انقر على دليل codelab الذي أنشأته حديثًا من خلال النقر عليه مرّتين، ثم اختَر دفتر ملاحظات Python 3 من مشغّل التطبيقات:

4390b1614ae8eae4.png

أعِد تسمية دفتر الملاحظات باسم demo.ipynb أو أي اسم تريده.

الخطوة 4: استيراد حِزم Python

أنشئ خلية جديدة في المفكرة واستورِد المكتبات التي سنستخدمها في هذا الدليل التعليمي للترميز:

import pandas as pd
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense

import numpy as np
import json

from sklearn.model_selection import train_test_split
from sklearn.utils import shuffle
from google.cloud import bigquery
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

3- ربط بيانات BigQuery بدفتر ملاحظاتك

إنّ BigQuery، وهو مستودع البيانات الكبيرة في Google Cloud، قد وفّر العديد من مجموعات البيانات المتاحة للجميع لاستكشافها. تتيح "مذكّرات AI Platform" الدمج المباشر مع BigQuery بدون الحاجة إلى المصادقة.

في هذا الدرس العملي، سنستخدم مجموعة بيانات الولادة. يحتوي هذا السجلّ على بيانات عن كلّ ولادة تقريبًا في الولايات المتحدة على مدار فترة زمنية تبلغ 40 عامًا، بما في ذلك وزن الطفل عند الولادة والمعلومات الديمغرافية عن والدي الطفل. سنستخدم مجموعة فرعية من الميزات للتنبؤ بوزن الطفل عند الولادة.

الخطوة 1: تنزيل بيانات BigQuery إلى دفتر البيانات

سنستخدم مكتبة Python العميل لخدمة BigQuery لتنزيل البيانات إلى إطار بيانات Pandas. تبلغ مساحة مجموعة البيانات الأصلية 21 غيغابايت وتحتوي على 123 مليون صف. ولنبسّط الأمر، سنستخدم 10,000 صف فقط من مجموعة البيانات.

أنشئ الطلب ومعاينَا إطار البيانات الناتج باستخدام الرمز البرمجي التالي. في ما يلي 4 ميزات من مجموعة البيانات الأصلية، بالإضافة إلى وزن الطفل (الشيء الذي سيتوقّعه النموذج). يعود تاريخ مجموعة البيانات إلى عدة سنوات، ولكن في هذا النموذج، سنستخدم البيانات من بعد عام 2000 فقط:

query="""
SELECT
  weight_pounds,
  is_male,
  mother_age,
  plurality,
  gestation_weeks
FROM
  publicdata.samples.natality
WHERE year > 2000
LIMIT 10000
"""
df = bigquery.Client().query(query).to_dataframe()
df.head()

للحصول على ملخّص للسمات الرقمية في مجموعة البيانات، يمكنك تنفيذ ما يلي:

df.describe()

يعرض هذا الجدول المتوسط والانحراف المعياري والحد الأدنى ومقاييس أخرى للأعمدة الرقمية. أخيرًا، لنحصل على بعض البيانات في عمودنا المنطقي الذي يشير إلى جنس الطفل. يمكننا إجراء ذلك باستخدام طريقة value_counts في Pandas:

df['is_male'].value_counts()

يبدو أنّ مجموعة البيانات متوازنة تقريبًا بنسبة 50/50 حسب الجنس.

الخطوة 2: إعداد مجموعة البيانات للتدريب

بعد تنزيل مجموعة البيانات إلى دفتر البيانات كإطار بيانات Pandas، يمكننا إجراء بعض المعالجة المسبقة وتقسيمها إلى مجموعتَي تدريب واختبار.

أولاً، لنتمكّن من إزالة الصفوف التي تحتوي على قيم فارغة من مجموعة البيانات وترتيب البيانات عشوائيًا:

df = df.dropna()
df = shuffle(df, random_state=2)

بعد ذلك، استخرِج عمود التصنيف إلى متغيّر منفصل وأنشئ إطار بيانات يتضمّن ميزاتنا فقط. بما أنّ is_male منطقي، سنحوّله إلى عدد صحيح لكي تكون كلّ مدخلات النموذج رقمية:

labels = df['weight_pounds']
data = df.drop(columns=['weight_pounds'])
data['is_male'] = data['is_male'].astype(int)

الآن، إذا كنت تريد معاينة مجموعة البيانات من خلال تشغيل data.head()، من المفترض أن تظهر لك السمات الأربع التي سنستخدمها في عملية التدريب.

4. إعداد git

تتيح لك "مذكّرات AI Platform" دمجًا مباشرًا مع git، ما يتيح لك التحكّم في الإصدارات مباشرةً ضمن بيئة المذكّرة. يتيح ذلك إرسال الرمز البرمجي مباشرةً في واجهة مستخدم دفتر الملاحظات، أو من خلال Terminal المتاح في JupyterLab. في هذا القسم، سنبدأ مستودعًا على git في دفتر الملاحظات ونُجري أول عملية إرسال من خلال واجهة المستخدم.

الخطوة 1: إعداد مستودع git

من دليل codelab، اختَر Git ثم Init من شريط القوائم العلوي في JupyterLab:

d9f1729358f18e58.png

عندما يُطلب منك تحديد ما إذا كنت تريد تحويل هذا الدليل إلى مستودع Git، اختَر نعم. بعد ذلك، انقر على رمز Git في الشريط الجانبي الأيمن للاطّلاع على حالة ملفاتك وعمليات الإضافة:

1648d6828f11a6db.png

الخطوة 2: إجراء أول عملية التزام

في واجهة المستخدم هذه، يمكنك إضافة ملفات إلى عملية إرسال، والاطّلاع على الاختلافات في الملفات (سنتناول ذلك لاحقًا)، وإرسال التغييرات. لنبدأ بنشر ملف دفتر البيانات الذي أضفناه للتو.

ضَع علامة في المربّع بجانب ملف دفتر ملاحظات demo.ipynb لإعداده للحفظ (يمكنك تجاهل الدليل .ipynb_checkpoints/). أدخِل رسالة تأكيد في مربّع النص، ثم انقر على علامة الاختيار لتأكيد التغييرات:

fe7366522a3a268f.png

أدخِل اسمك وبريدك الإلكتروني عندما يُطلَب منك ذلك. بعد ذلك، ارجع إلى علامة التبويب السجلّ للاطّلاع على أول عملية إرسال:

d03567c3592afb77.png

يُرجى العِلم أنّ لقطات الشاشة قد لا تتطابق تمامًا مع واجهة المستخدم في تطبيقك، وذلك بسبب التحديثات التي تم إجراؤها منذ نشر هذا الدليل التدريبي.

5- إنشاء نموذج TensorFlow وتدريبه

سنستخدم مجموعة بيانات الولادة في BigQuery التي نزّلناها إلى دفتر البيانات لإنشاء نموذج يتنبّأ بوزن الطفل. في هذا الدرس التطبيقي، سنركّز على أدوات دفتر البيانات بدلاً من دقة النموذج نفسه.

الخطوة 1: تقسيم بياناتك إلى مجموعات تدريب واختبار

سنستخدم أداة Scikit Learn train_test_split لتقسيم بياناتنا قبل إنشاء النموذج:

x,y = data,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

نحن الآن جاهزون لإنشاء نموذج TensorFlow.

الخطوة 2: إنشاء نموذج TensorFlow وتدريبه

سننشئ هذا النموذج باستخدام واجهة برمجة التطبيقات لنموذج tf.keras Sequential، ما يتيح لنا تحديد النموذج على أنّه حزمة من الطبقات. في ما يلي كل الرموز البرمجية التي نحتاجها لإنشاء النموذج:

model = Sequential([
    Dense(64, activation='relu', input_shape=(len(x_train.iloc[0]),)),
    Dense(32, activation='relu'),
    Dense(1)]
)

بعد ذلك، سنجمع النموذج لنتمكّن من تدريبه. سنختار هنا أداة تحسين النموذج ودالة الخسارة والمقاييس التي نريد أن يسجّلها النموذج أثناء التدريب. بما أنّ هذا نموذج انحدار (توقّع قيمة رقمية)، سنستخدم متوسّط الخطأ المربّع بدلاً من الدقّة كمقياس لنا:

model.compile(optimizer=tf.keras.optimizers.RMSprop(),
              loss=tf.keras.losses.MeanSquaredError(),
              metrics=['mae', 'mse'])

يمكنك استخدام دالة model.summary() المفيدة في Keras للاطّلاع على شكل المَعلمات القابلة للتدريب وعددها في النموذج في كل طبقة.

نحن الآن جاهزون لتدريب النموذج. كل ما علينا فعله هو استدعاء طريقة fit()، مع تمريرها ببيانات التدريب والتصنيفات. سنستخدم هنا المَعلمة validation_split الاختيارية التي ستحتوي على جزء من بيانات التدريب للتحقّق من صحة النموذج في كل خطوة. من الأفضل أن تلاحظ انخفاضًا في كلا فقدان التدريب والتحقق. ولكن تذكَّر أنّنا في هذا المثال نركّز أكثر على أدوات النماذج والملاحظات بدلاً من جودة النماذج:

model.fit(x_train, y_train, epochs=10, validation_split=0.1)

الخطوة 3: إنشاء توقّعات استنادًا إلى أمثلة اختبارية

لمعرفة مستوى أداء النموذج، لننشئ بعض التوقعات الاختبارية على أوّل 10 أمثلة من مجموعة البيانات الاختبارية.

num_examples = 10
predictions = model.predict(x_test[:num_examples])

وبعد ذلك، سنكرّر توقعات النموذج ونقارنها بالقيمة الفعلية:

for i in range(num_examples):
    print('Predicted val: ', predictions[i][0])
    print('Actual val: ',y_test.iloc[i])
    print()

الخطوة 4: استخدام git diff وتنفيذ التغييرات

بعد إجراء بعض التغييرات على دفتر البيانات، يمكنك تجربة ميزة git diff المتاحة في واجهة مستخدم git في "دفاتر ملاحظات Google". من المفترض أن تظهر الآن دفتر ملاحظات demo.ipynb ضمن قسم "العناصر التي تم تغييرها" في واجهة المستخدم. مرِّر مؤشر الماوس فوق اسم الملف وانقر على رمز الاختلافات:

a370facb3632fb32.png

بعد ذلك، من المفترض أن تتمكّن من الاطّلاع على اختلافات التغييرات التي أجريتها، مثل ما يلي:

461c502bd3ab910e.png

هذه المرة، سنُجري التغييرات من خلال سطر الأوامر باستخدام Terminal. من قائمة Git في شريط القوائم العلوي في JupyterLab، اختَر Git Command in Terminal (أمر Git في Terminal). إذا كانت علامة تبويب git في الشريط الجانبي الأيمن مفتوحة أثناء تنفيذ الأوامر أدناه، ستتمكّن من رؤية التغييرات التي تم إجراؤها في واجهة مستخدم git.

في مثيل الوحدة الطرفية الجديد، شغِّل ما يلي لإعداد ملف دفتر الملاحظات لإجرائه:

git add demo.ipynb

بعد ذلك، نفِّذ ما يلي لحفظ التغييرات (يمكنك استخدام أي رسالة حفظ تريدها):

git commit -m "Build and train TF model"

من المفترض أن يظهر لك أحدث عملية إرسال في السجلّ:

a4b44045e97cb7a7.png

6- استخدام "أداة ماذا لو" مباشرةً من دفتر الملاحظات

أداة "ماذا لو" هي واجهة مرئية تفاعلية مصمّمة لمساعدتك في عرض مجموعات البيانات بشكل مرئي وفهم نتائج نماذج الذكاء الاصطناعي بشكل أفضل. وهي أداة مفتوحة المصدر أنشأها فريق PAIR في Google. على الرغم من أنّه يعمل مع أي نوع من النماذج، إلا أنّه يتضمّن بعض الميزات المخصّصة حصريًا لمنصّة Cloud AI Platform.

تأتي "أداة ماذا لو" مثبَّتة مسبقًا في نُسخ "دفاتر ملاحظات" من Cloud AI Platform باستخدام TensorFlow. سنستخدمها هنا لمعرفة مستوى أداء النموذج بشكل عام وفحص سلوكه على نقاط البيانات من مجموعة الاختبار.

الخطوة 1: تحضير البيانات لأداة "ماذا لو"

للاستفادة إلى أقصى حد من "أداة الاحتمالات"، سنرسل إليها أمثلة من مجموعة الاختبار مع تصنيفات الحقائق الأساسية لهذه الأمثلة (y_test). بهذه الطريقة، يمكننا مقارنة ما توقّعه نموذجنا بالحقائق الأساسية. شغِّل سطر التعليمات البرمجية أدناه لإنشاء إطار بيانات جديد يتضمّن أمثلة الاختبار وتصنيفاتها:

wit_data = pd.concat([x_test, y_test], axis=1)

في هذا التمرين، سنربط "أداة ماذا لو" بالنموذج الذي درّبناه للتو في دفتر البيانات. لإجراء ذلك، علينا كتابة دالة ستستخدمها الأداة لتشغيل نقاط البيانات الاختبارية هذه في النموذج:

def custom_predict(examples_to_infer):
    preds = model.predict(examples_to_infer)
    return preds

الخطوة 2: إنشاء مثيل لأداة "ماذا لو"

سننشئ مثيلًا لأداة "ماذا لو" من خلال تمريرها بـ 500 مثال من مجموعة بيانات الاختبار المتسلسلة + تصنيفات الحقائق الأساسية التي أنشأناها للتو. ننشئ مثيلًا من WitConfigBuilder لإعداد الأداة، ونقدّم لها بياناتنا ودالة التوقّع المخصّصة التي حدّدناها أعلاه، بالإضافة إلى الهدف (الشيء الذي نتوقّعه) ونوع النموذج:

config_builder = (WitConfigBuilder(wit_data[:500].values.tolist(), data.columns.tolist() + ['weight_pounds'])
  .set_custom_predict_fn(custom_predict)
  .set_target_feature('weight_pounds')
  .set_model_type('regression'))
WitWidget(config_builder, height=800)

من المفترض أن يظهر لك ما يلي عند تحميل "أداة الاحتمالات":

fcdc1cb7ed8e364e.png

على محور x، يمكنك الاطّلاع على نقاط بيانات الاختبار المنتشرة حسب قيمة الوزن المتوقّعة للنموذج، weight_pounds.

الخطوة 3: استكشاف سلوك النموذج باستخدام "أداة ماذا لو"

هناك الكثير من الإجراءات الرائعة التي يمكنك اتّخاذها باستخدام "أداة ماذا لو". سنستكشف بعض هذه العوامل هنا. أولاً، لنطّلِع على محرِّر نقاط البيانات. يمكنك اختيار أي نقطة بيانات للاطّلاع على ميزاتها وتغيير قيمها. ابدأ بالنقر على أي نقطة بيانات:

2ba944f16240ff4b.png

على يمين الصفحة، ستظهر لك قيم العناصر لنقطة البيانات التي اخترتها. يمكنك أيضًا مقارنة تصنيف الحقيقة الأساسية لنقطة البيانات هذه بالقيمة التي تنبأ بها النموذج. في الشريط الجانبي الأيمن، يمكنك أيضًا تغيير قيم السمات وإعادة تنفيذ توقّعات النموذج لمعرفة تأثير هذا التغيير في النموذج. على سبيل المثال، يمكننا تغيير gestation_weeks إلى 30 لهذه النقطة من البيانات من خلال النقر عليها مرّتين وإعادة إجراء التوقّع:

aaa6a937c66758cf.png

باستخدام القوائم المنسدلة في قسم الرسم البياني ضمن "أداة الاحتمالات"، يمكنك إنشاء جميع أنواع الرسومات البيانية المخصّصة. على سبيل المثال، إليك رسم بياني يعرض الوزن المتوقّع للنماذج على محور x وعمر الأم على محور y والنقاط الملوّنة حسب خطأ الاستنتاج (يشير اللون الداكن إلى اختلاف أكبر بين الوزن المتوقّع والوزن الفعلي). يبدو هنا أنّه كلما انخفضت القيمة، زاد خطأ النموذج قليلاً:

cd2ce527a9044e7b.png

بعد ذلك، ضَع علامة في المربّع بجانب الزر رسومات التبعية الجزئية على يمين الصفحة. يوضّح ذلك مدى تأثير كلّ ميزة في توقّعات النموذج. على سبيل المثال، مع زيادة مدة الحمل، يزداد أيضًا وزن الطفل المتوقّع في النموذج:

1fec2a64fb03f432.png

لمزيد من أفكار الاستكشاف باستخدام "أداة ماذا لو"، اطّلِع على الروابط في بداية هذا القسم.

7- اختياري: ربط مستودع git المحلي بـ GitHub

أخيرًا، سنتعرّف على كيفية ربط مستودع git في مثيل دفتر البيانات بمستودع في حسابنا على GitHub. إذا أردت تنفيذ هذه الخطوة، ستحتاج إلى حساب على GitHub.

الخطوة 1: إنشاء مستودع جديد على GitHub

في حسابك على GitHub، أنشئ مستودعًا جديدًا. أدخِل اسمًا ووصفًا للملف، وحدِّد ما إذا كنت تريد أن يكون متاحًا للجميع، ثم اختَر إنشاء مستودع (لست بحاجة إلى إعداده باستخدام ملف README). في الصفحة التالية، اتّبِع التعليمات لدفع مستودع حالي من سطر الأوامر.

افتح نافذة Terminal (وحدة التحكّم الطرفية) وأضِف مستودعك الجديد كمستودع بعيد. استبدِل username في عنوان URL للمستودع أدناه باسم المستخدم الخاص بك على GitHub، واستبدِل your-repo باسم المستودع الذي أنشأته للتو:

git remote add origin git@github.com:username/your-repo.git

الخطوة 2: المصادقة على GitHub في مثيل "دفاتر الملاحظات"

بعد ذلك، عليك المصادقة على GitHub من داخل مثيل دفتر البيانات. تختلف هذه العملية حسب ما إذا كانت ميزة "المصادقة الثنائية" مفعّلة على GitHub.

إذا لم تكن متأكّدًا من كيفية البدء، اتّبِع الخطوات الواردة في مستندات GitHub لإنشاء مفتاح SSH ثم إضافة المفتاح الجديد إلى GitHub.

الخطوة 3: التأكّد من ربط مستودع GitHub بشكل صحيح

للتأكّد من أنّك أعددت الإعدادات بشكل صحيح، يمكنك تشغيل git remote -v في المحطة الطرفية. من المفترض أن يظهر لك مستودعك الجديد مُدرَجًا كجهاز تحكّم عن بُعد. بعد ظهور عنوان URL لمستودع GitHub وإجراء مصادقة على GitHub من دفتر الملاحظات، تكون مستعدًا للدفع مباشرةً إلى GitHub من مثيل دفتر الملاحظات.

لمزامنة مستودع git لدفتر الملاحظات المحلي مع مستودع GitHub الذي تم إنشاؤه حديثًا، انقر على زر تحميل السحابة الإلكترونية في أعلى الشريط الجانبي في Git:

eec001587bb9cfb1.png

أعِد تحميل مستودع GitHub، ومن المفترض أن يظهر لك رمز المفكرة مع عمليات الإضافة السابقة. إذا كان بإمكان مستخدمين آخرين الوصول إلى مستودع GitHub وأردت تنزيل أحدث التغييرات على دفتر ملاحظاتك، انقر على رمز تنزيل السحابة الإلكترونية لمزامنة هذه التغييرات.

في علامة التبويب "السجلّ" ضمن واجهة مستخدم git في "دفاتر الملاحظات"، يمكنك معرفة ما إذا كانت عمليات الإضافة أو التعديل المحلية قد تمت مزامنتها مع GitHub. في هذا المثال، يتوافق origin/master مع مستودعنا على GitHub:

2c3d1eb7cf95c24e.png

كلما أجريت عمليات إرسال جديدة، ما عليك سوى النقر على زر تحميل السحابة الإلكترونية مرة أخرى لدفع هذه التغييرات إلى مستودع GitHub.

8. تهانينا!

لقد حقّقت الكثير في هذا الدرس التطبيقي 👏👏👏.

للتلخيص، لقد تعلمت كيفية:

  • إنشاء مثيل مخصّص لدفتر ملاحظات AI Platform
  • يمكنك إعداد مستودع git محلي في هذه الحالة، وإضافة عمليات الحفظ من خلال واجهة مستخدم git أو سطر الأوامر، وعرض الاختلافات في git في واجهة مستخدم git في "دفتر ملاحظات Google".
  • إنشاء نموذج TensorFlow 2 بسيط وتدريبه
  • استخدام أداة "ماذا لو" ضمن مثيل "دفتر ملاحظات"
  • ربط مستودع git الخاص بـ Notebook بمستودع خارجي على GitHub

9. تنظيف

إذا أردت مواصلة استخدام دفتر الملاحظات هذا، ننصحك بإيقاف تشغيله عندما لا يكون قيد الاستخدام. من واجهة مستخدم "دفاتر ملاحظات Google" في Cloud Console، اختَر دفتر الملاحظات ثم اختَر إيقاف:

ba727f9a0aefbc30.png

إذا أردت حذف جميع الموارد التي أنشأتها في هذا البرنامج التدريبي، ما عليك سوى حذف مثيل دفتر البيانات بدلاً من إيقافه.

باستخدام قائمة التنقّل في Cloud Console، انتقِل إلى "مساحة التخزين" وحذِف كلتا الحزمتَين اللتين أنشأتهما لتخزين مواد عرض النماذج.