ما هو Fastai؟

Fastai هي مكتبة تعلم عميق مفتوحة المصدر مبنية على PyTorch، صُممت لإتاحة الذكاء الاصطناعي للجميع من خلال تسهيل تطوير ونشر الشبكات العصبية.

المكونات الأساسية في Fastai

1. مكتبة Fastai

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

يمثل Fastai v2 إعادة كتابة كاملة تهدف إلى تعزيز السرعة والمرونة وسهولة الاستخدام. وقد بُنيت على مكتبات أساسية مثل fastcore وfastgpu التي تدعم مكونات Fastai عالية المستوى وهي مفيدة للعديد من المبرمجين وعلماء البيانات.

2. واجهة برمجية طبقية

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

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

3. دورة التعلم العميق العملي للمبرمجين

توفر Fastai دورة مجانية مفتوحة عبر الإنترنت بعنوان “التعلم العميق العملي للمبرمجين”. تقدم هذه الدورة تجربة عملية في التعلم العميق، مع الاكتفاء بمعرفة بايثون كمتطلب أساسي. وتغطي الدورة مواضيع متعددة مثل تصنيف الصور، ومعالجة اللغة الطبيعية، والشبكات التوليدية التنافسية (GANs)، مع التركيز على التطبيقات الواقعية. وتكملها كتاب “التعلم العميق للمبرمجين مع Fastai وPyTorch” الذي يتناول تطبيقات الذكاء الاصطناعي دون الحاجة إلى شهادة دكتوراه.

الميزات الرئيسية في Fastai

1. واجهة برمجية عالية المستوى

تبسط الواجهة العالية في Fastai تدريب نماذج التعلم العميق من خلال دمج البنية والبيانات والتحسين في نظام متكامل. تختار تلقائيًا دوال الخسارة والخوارزميات المناسبة، مما يقلل من أخطاء المستخدم. هذه الواجهة مفيدة بشكل خاص للمبتدئين والراغبين في تطبيق الأساليب الحالية دون التعمق في تعقيدات الكود الأساسي.

2. التعلم بالنقل

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

3. واجهة بيانات مرنة (Data Block API)

واجهة البيانات في Fastai نظام مرن لتحديد خطوط معالجة البيانات. تتيح للمستخدمين تحديد مصادر البيانات والتحويلات وآليات التحميل بطريقة معيارية. وتعد هذه الواجهة أساسية لإدارة مجموعات البيانات المعقدة وضمان تجهيز البيانات بشكل صحيح لتدريب النماذج، وتوفر نهجًا موحدًا لمجالات متعددة.

4. نظام رد نداء ثنائي الاتجاه

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

5. مفتوح المصدر ويقوده المجتمع

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

حالات الاستخدام والتطبيقات

الرؤية الحاسوبية

يبسط Fastai تطوير نماذج الرؤية الحاسوبية بكتابة قليلة من الكود. فعلى سبيل المثال، يمكن ضبط نموذج ImageNet على مجموعة بيانات محددة مثل Oxford IIT Pets لتحقيق دقة عالية بسهولة. وتكامل المكتبة مع PyTorch يتيح الاستفادة من أحدث الهياكل والتقنيات.

النصوص

تحتوي Fastai على أدوات لمعالجة اللغة الطبيعية (NLP)، مما يمكّن من تنفيذ مهام مثل تحليل المشاعر وتصنيف النصوص ونمذجة اللغة. ويسمح التكامل مع PyTorch باستخدام هياكل NLP الحديثة لتطوير نماذج لغوية قوية قادرة على فهم اللغة البشرية وتوليدها.

البيانات الجدولية

يوفر Fastai مكونات لمعالجة البيانات الجدولية، ويدعم مهام الانحدار والتصنيف. وتعد واجهة البيانات الخاصة به مفيدة جدًا لتحويل وتحميل مجموعات البيانات الجدولية بكفاءة ودقة، ما يجعلها ملائمة للتطبيقات في التحليلات التجارية والرعاية الصحية والمالية.

الترشيح التعاوني

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

النشر والإنتاج

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

Fastai في الأوراق البحثية

Fastai هي مكتبة تعلم عميق تهدف إلى توفير مكونات عالية المستوى للممارسين لتحقيق نتائج متقدمة بسرعة وسهولة في مجالات التعلم العميق القياسية، كما توفر مكونات منخفضة المستوى للباحثين لتطوير نهج جديدة دون التضحية بسهولة الاستخدام أو المرونة أو الأداء. يتحقق ذلك من خلال بنية منظمة تستفيد من ديناميكية بايثون ومرونة PyTorch. وتقدم المكتبة عدة ميزات مبتكرة منها نظام توزيع الأنواع في بايثون، ومكتبة رؤية حاسوبية محسنة للمعالج الرسومي، ومحسّن يُبسط خوارزميات التحسين الحديثة، ونظام رد نداء ثنائي الاتجاه جديد. وقد تم استخدام Fastai بنجاح لإنشاء دورة تعلم عميق شاملة، وتستخدم على نطاق واسع في البحث والصناعة والتعليم. لمزيد من التفاصيل يمكن الاطلاع على الورقة البحثية على arXiv.

  • مثال في الزراعة:
    في مجال الزراعة، تم تطبيق Fastai بفاعلية لبناء نموذج تصنيف للتعرف على أمراض النباتات باستخدام مجموعة بيانات صور أوراق التفاح. وباستخدام نموذج ResNet34 مدرب مسبقًا مع إطار Fastai، حققت الدراسة دقة تصنيف بلغت 93.765%. وهذا يُظهر قدرة المكتبة على تقليل وقت التدريب وتحسين أداء النماذج في التطبيقات العملية. مزيد من المعلومات في الدراسة على arXiv.

  • مثال ضغط النماذج:
    بالإضافة إلى ذلك، تم الاستفادة من نظام رد النداء في Fastai في مكتبات أخرى مثل FasterAI، التي تركز على تقنيات ضغط الشبكات العصبية مثل التخفيف (sparsification) والتقليم (pruning). وهذا يوضح مرونة Fastai وسهولة دمجه مع أدوات أخرى لتطبيق تقنيات متطورة بكفاءة. تفاصيل هذا التطبيق متوفرة في ورقة FasterAI على arXiv.

أمثلة على الاستخدام

التثبيت

لبدء استخدام fastai، يمكنك تثبيته بسهولة إما باستخدام conda أو pip كما يلي:

  • Conda (موصى به لأنظمة لينكس أو ويندوز):
    conda install -c fastai fastai
  • Pip (يعمل على جميع الأنظمة):
    pip install fastai
  • Google Colab:
    استخدم fastai دون تثبيت من خلال Google Colab الذي يدعم بيئة GPU لحسابات أسرع.

بالإضافة إلى ذلك، يمكن للمستخدمين تصفح الوثائق الرسمية لـ fastai ومنتديات المجتمع لحل مشكلات التثبيت الشائعة أو البحث عن حلول لإعدادات محددة. ويساعد التكامل مع دفاتر Jupyter وGoogle Colab في توفير بيئة تفاعلية للتجريب والتعلم.

الواجهة عالية المستوى

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

أمثلة على استخدام الواجهة عالية المستوى

1. تصنيف الصور

from fastai.vision.all import * 
path = untar_data(URLs.PETS) 
dls = ImageDataLoaders.from_name_re(
    path=path, 
    fnames=get_image_files(path/"images"),
    pat=r'/([^/]+)_\d+.jpg$', 
    item_tfms=RandomResizedCrop(450, min_scale=0.75), 
    batch_tfms=[*aug_transforms(size=224, max_warp=0.), Normalize.from_stats(*imagenet_stats)]
)
learn = cnn_learner(dls, resnet34, metrics=error_rate)
learn.fit_one_cycle(4)

يوضح هذا المثال كيفية إعداد وتدريب مصنف صور على مجموعة Oxford IIT Pets باستخدام الواجهة عالية المستوى في fastai.

2. تحليل مشاعر النصوص

from fastai.text.all import *
path = untar_data(URLs.IMDB)
dls = TextDataLoaders.from_folder(path, valid='test')
learn = text_classifier_learner(dls, AWD_LSTM, drop_mult=0.5, metrics=accuracy)
learn.fine_tune(1)

في هذا المثال يُستخدم fastai لبناء نموذج تحليل مشاعر للنصوص على مجموعة بيانات IMDB.

3. البيانات الجدولية

from fastai.tabular.all import *
path = untar_data(URLs.ADULT_SAMPLE)
dls = TabularDataLoaders.from_csv(
    path/'adult.csv', path=path, y_names="salary",
    cat_names=['workclass', 'education', 'marital-status', 'occupation', 'relationship', 'race'],
    cont_names=['age', 'fnlwgt', 'education-num'],
    procs=[Categorify, FillMissing, Normalize]
)
learn = tabular_learner(dls, metrics=accuracy)
learn.fit_one_cycle(3)

يوضح هذا المثال استخدام fastai للبيانات الجدولية، وتحديدًا مجموعة بيانات Adult.

الواجهة المتوسطة المستوى

توفر الواجهة المتوسطة في fastai إمكانيات تخصيص أكثر من الواجهة العالية، حيث يمكن للمستخدمين تعديل مكونات عملية التدريب دون الحاجة للدخول في التفاصيل الأدنى، وتحقق توازنًا بين سهولة الاستخدام والمرونة.

مكونات الواجهة المتوسطة المستوى

  • Learner: مكون أساسي يجمع بين النموذج والبيانات وحلقة التدريب، ويمكن تخصيصه بهياكل ومحسنات ومقاييس متعددة.
  • Callbacks: دوال تسمح بتمديد حلقة التدريب بسلوكيات مخصصة مثل حفظ النقاط، وتعديل معدلات التعلم، أو تسجيل المقاييس.

مثال على الاستخدام

learn = cnn_learner(dls, resnet18, metrics=accuracy, cbs=[SaveModelCallback(monitor='accuracy')])
learn.fine_tune(2)

في هذا المثال، يُستخدم رد نداء لحفظ النموذج بأفضل دقة أثناء التدريب، ما يوضح مرونة الواجهة المتوسطة.

الواجهة منخفضة المستوى

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

ميزات الواجهة منخفضة المستوى

  • خطوط المعالجة والتحويلات: سلاسل معالجة بيانات قابلة للتخصيص حسب الحاجة.
  • Tensors كائنية التوجه: تحسينات على Tensors في PyTorch لتسهيل التعامل البرمجي.
  • عمليات محسنة: عمليات فعالة على Tensors تستفيد من إمكانيات PyTorch.

مثال على الاستخدام

from fastai.data.all import *
pipe = Pipeline([PILImage.create, Resize(128), ToTensor])
img = pipe('path/to/image.jpg')

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

Fastai عمليًا: أمثلة منشورة

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

  2. تقسيم الأوعية الدقيقة في برنامج أطلس الجزيئات الحيوية البشرية (HuBMAP)
    المؤلفون: يوسف سلطان، يونغكيانغ وانغ، جيمس سكانلون، ليزا دي ليما
    استخدمت هذه الدراسة Fastai لتقسيم الصور في برنامج HuBMAP، مع التركيز على تقسيم البنى الوعائية الدقيقة في الكلى البشرية. تبدأ المنهجية بنموذج U-Net من Fastai وتستكشف هياكل ونماذج عميقة بديلة لتحسين دقة التقسيم. يبرز هذا العمل قدرة Fastai على أن تكون أداة أساسية في التصوير الطبي وتقديم رؤى حول تقنيات التقسيم المتقدمة ومقارنتها بالنماذج الأساسية. اقرأ المزيد

  3. Egglog Python: مكتبة بايثونية لـ E-graphs
    المؤلف: سول شانبروك
    رغم أن الورقة ليست عن Fastai مباشرة، إلا أنها تقدم روابط بايثون لمكتبة egglog وتبرز دمج تقنيات e-graph في بايثون. ويعكس هذا نهج Fastai في الاستفادة من قوة بايثون لتعزيز الابتكار في تعلم الآلة والحوسبة العلمية، كما يوضح كيف يمكن لواجهات برمجية بايثونية تسهيل التعاون والابتكار في مجالات متعددة، بما يدعم مرونة Fastai. [اقرأ المزيد](https://arxiv.org/abs/2404

الأسئلة الشائعة

ما هو Fastai؟

Fastai هي مكتبة تعلم عميق شاملة ومفتوحة المصدر مبنية فوق PyTorch. تبسط إنشاء وتدريب الشبكات العصبية من خلال واجهات برمجية عالية المستوى، وتدعم مهام الرؤية الحاسوبية، ومعالجة اللغة الطبيعية، والبيانات الجدولية، والترشيح التعاوني، وتهدف إلى إتاحة التعلم العميق للمستخدمين من جميع المستويات.

من طور Fastai؟

تم تطوير Fastai بواسطة جيريمي هوارد ورايتشل توماس كجزء من مهمة لجعل التعلم العميق متاحًا وعمليًا للجميع.

ما الذي يميز Fastai؟

تقدم Fastai واجهة برمجية طبقية بمكونات عالية ومتوسطة ومنخفضة المستوى، وتجريدات سهلة الاستخدام، ودعمًا للتعلم بالنقل، وواجهة بيانات مرنة، ونظام رد نداء قوي. وهي مفتوحة المصدر ويدعمها مجتمع نشط.

ما هي الاستخدامات الشائعة لـ Fastai؟

يستخدم Fastai في الرؤية الحاسوبية، ومعالجة اللغة الطبيعية (NLP)، وتحليل البيانات الجدولية، والترشيح التعاوني (أنظمة التوصية)، ونشر النماذج في الإنتاج. وهي شائعة في البحث والصناعة والتعليم.

كيف أقوم بتثبيت Fastai؟

يمكنك تثبيت Fastai عبر conda باستخدام 'conda install -c fastai fastai' أو عبر pip باستخدام 'pip install fastai'. كما تعمل بسلاسة في Google Colab ودفاتر Jupyter.

هل Fastai مجاني للاستخدام؟

نعم، Fastai مفتوحة المصدر بالكامل بموجب رخصة Apache 2.0. جميع البرمجيات والأبحاث والدورات متاحة مجانًا لضمان الوصول العالمي.

استكشف Fastai وطور حلول ذكاء اصطناعي

اكتشف كيف يمكن لواجهات Fastai عالية المستوى وأدواتها مفتوحة المصدر تسريع مشاريعك في الذكاء الاصطناعي ورحلتك التعليمية. جرب FlowHunt لتطوير ذكاء اصطناعي بسلاسة.

اعرف المزيد

كيراس

كيراس

كيراس هو واجهة برمجة تطبيقات قوية وسهلة الاستخدام وعالية المستوى للشبكات العصبية مفتوحة المصدر، مكتوبة بلغة بايثون وقادرة على العمل فوق TensorFlow أو CNTK أو Th...

5 دقيقة قراءة
Keras Deep Learning +3
تورچ

تورچ

تورچ هو مكتبة مفتوحة المصدر للتعلم الآلي وإطار للحوسبة العلمية مبني على لغة Lua، ومُحسَّن لمهام التعلم العميق والذكاء الاصطناعي. يوفر أدوات لبناء الشبكات العصبي...

5 دقيقة قراءة
Torch Deep Learning +3
باي تورش

باي تورش

باي تورش هو إطار تعلم آلي مفتوح المصدر تم تطويره بواسطة Meta AI، ويشتهر بمرونته، ورسومه البيانية الديناميكية للحساب، وتسريع وحدة معالجة الرسومات، ودمجه السلس مع...

8 دقيقة قراءة
PyTorch Deep Learning +4