أكثر من 18 ساعة من الفيديو يأخذك على طول الطريق من VAEs إلى الانتشار المستقر في الوقت الفعلي مع Pytorch وعناق الوجه ... مع الكثير من الأمثلة العملية لجعل المتعة العميقة متعة مرة أخرى!
يحتوي هذا المستودع على التعليمات البرمجية والشرائح والأمثلة من دورة فيديو Programming AI.
البرمجة التوليدية AI هي جولة عملية في النمذجة العميقة ، وتأخذك من بناء شبكات عصبية بسيطة في Pytorch على طول الطريق إلى العمل مع نماذج كبيرة متعددة الوسائط قادرة على فهم كل من النصوص والصور. على طول الطريق ، سوف تتعلم كيفية تدريب النماذج التوليدية الخاصة بك من نقطة الصفر لإنشاء مجموعة من الصور ، وإنشاء نص مع نماذج لغة كبيرة (LLMs) مماثلة لتلك التي تعمل على تشغيل التطبيقات مثل ChatGPT ، وكتابة خط أنابيب من النص إلى صورة لفهم كيف تعمل النماذج المرتفعة في الواقع ، وتخصيص نماذج كبيرة مسروقة مثل الانتشار المستقر لتوليد صور جديدة في الأنماط المرئية الفريدة (من بين الأشياء الأخرى).
الكود والشرائح والتمارين في هذا المستودع (وسوف يكون دائمًا) متاحًا بحرية. يمكن شراء مقاطع الفيديو المقابلة في:
أسهل طريقة للبدء (مقاطع الفيديو أم لا) هي استخدام بيئة/منصة دفتر سحابة مثل Google Colab (أو Kaggle ، PaperSpace ، إلخ). من أجل الراحة ، قدمت روابط إلى أجهزة الكمبيوتر المحمولة Jupyter Raw للتطوير المحلي ، رابط NBViewer إذا كنت ترغب في تصفح الكود دون استنساخ الريبو (أو يمكنك استخدام عارض GitHub المضمن) ، ورابط كولاب إذا كنت ترغب في تشغيل الكود بشكل تفاعلي دون إعداد بيئة تطوير محلية (والقتال مع مكتبات CUDA).
| دفتر | الشرائح | NBViewer (ثابت) | جوجل كولاب (تفاعلي) |
|---|---|---|---|
| الدرس 1: ماذا ولماذا وكيف من الذكاء الاصطناعي التوليدي | |||
| الدرس 2: Pytorch for the Downer | |||
| الدرس 3: الفضاء الكامن يحكم كل شيء من حولي | |||
| الدرس 4: إزالة الغموض عن الانتشار | |||
| الدرس 5: توليد وترميز النص مع المحولات | |||
| الدرس 6: توصيل النص والصور | |||
| الدرس 7: إجراءات ما بعد التدريب لنماذج الانتشار |
إذا وجدت أي أخطاء في الكود أو المواد ، فيرجى فتح مشكلة github أو إرسال بريد إلكتروني إلى [email protected].
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-aiالكود الذي تم تنفيذه واختباره باستخدام Python 3.10.12 (من المحتمل أن تعمل الإصدارات الأخرى> = 3.8 بشكل جيد ولكن حذار المشتري ...). لتثبيت جميع الحزم المستخدمة عبر دفاتر الملاحظات في بيئة افتراضية محلية:
# pyenv install 3.10.12
python --version
# => Python 3.10.12
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt إذا كان استخدام pyenv لإدارة إصدارات Python ، فيجب على pyenv استخدام الإصدار المذكور تلقائيًا في .python-version عند التحول إلى هذا الدليل.
بالإضافة إلى ذلك ، يتم إعداد دفاتر الملاحظات باستخدام خلية لتحديد جهاز مناسب (GPU) تلقائيًا بناءً على ما هو متاح. إذا كان على جهاز Windows أو Linux ، فيجب أن يعمل كل من NVIDIA و AMD وحدات معالجة الرسومات (على الرغم من أن هذا قد تم اختباره فقط مع NVIDIA). وإذا كان على MAC Silicon Mac ، فسيتم استخدام تظليل الأداء المعدني.
import torch
# default device boilerplate
device = (
"cuda" # Device for NVIDIA or AMD GPUs
if torch . cuda . is_available ()
else "mps" # Device for Apple Silicon (Metal Performance Shaders)
if torch . backends . mps . is_available ()
else "cpu"
)
print ( f"Using { device } device" )إذا لم يكن من الممكن العثور على جهاز متوافق ، فسيتم افتراضي إلى الواجهة الخلفية لوحدة المعالجة المركزية. يجب أن يكون هذا جيدًا للدروس 1 و 2 ولكن لأي من أمثلة توليد الصور (إلى حد كبير كل شيء بعد الدرس 2) ، من المحتمل أن يكون استخدام وحدة معالجة الرسومات بطيئًا بشكل غير مريح - في هذه الحالة أوصي باستخدام روابط Google Colab في الجدول أعلاه.
وسيطة إلى متقدمة
يبدأ الدرس 1 بمقدمة لما هو في الواقع من الذكاء الاصطناعي ، على الأقل لأنه مناسب لهذه الدورة ، قبل الانتقال إلى تفاصيل النمذجة التوليدية العميقة. ويغطي عدد كبير من النماذج المتعددة الوسائط المحتملة (من حيث طرائق الإدخال والمخرجات) وكيف يمكن للخوارزميات لتوليد وسائط غنية على ما يبدو من الهواء. يختتم الدرس قليلاً من إضفاء الطابع الرسمي ونظرية النماذج التوليدية العميقة ، والمقايضات بين الأنواع المختلفة من بنية النمذجة التوليدية.
يبدأ الدرس 2 بمقدمة إلى Pytorch وأطر التعلم العميق بشكل عام. أريكم كيف أن الجمع بين التمايز التلقائي والحساب الشفاف على وحدات معالجة الرسومات قد مكّن حقًا الانفجار الحالي لأبحاث التعلم العميق والتطبيقات. بعد ذلك ، أريكم كيف يمكنك استخدام Pytorch لتنفيذ وتعلم نموذج الانحدار الخطي - كحجر انطلاق لبناء شبكات عصبية أكثر تعقيدًا. أخيرًا ، يختتم الدرس من خلال الجمع بين جميع المكونات التي يوفرها Pytorch لبناء Perceptron متعدد الطبقات.
يبدأ الدرس 3 بمباراة تمهيدية حول كيفية تمثيل برامج الكمبيوتر فعليًا صورًا كأرقام من الأرقام. أقوم بتغطية تفاصيل الشبكات العصبية التلافيفية والميزات المعمارية المحددة التي تمكن أجهزة الكمبيوتر "من رؤيتها". بعد ذلك ، تحصل على ذوقك الأول من النماذج المتغيرة الكامنة عن طريق بناء وتدريب مشفر تلقائي بسيط لتعلم تمثيل مضغوط لصور الإدخال. في نهاية الدرس ، تواجه أول نموذج توليلي مناسب عن طريق إضافة أخذ العينات الاحتمالية إلى بنية الشفرات التلقائية للوصول إلى Autoencoder التباين (VAE) - مكون رئيسي في النماذج التوليدية المستقبلية التي سنواجهها.
يبدأ الدرس 4 بمقدمة مفاهيمية لنماذج الانتشار ، وهو مكون رئيسي في الحالة الحالية للأنظمة النصية إلى النص مثل الانتشار المستقر. الدرس 4 هو أول مقدمة حقيقية لك للنظام الإيكولوجي للوجه المعانقة للمكتبات مفتوحة المصدر ، حيث سترى كيف يمكننا استخدام مكتبة الناشرون لإنشاء صور من ضوضاء عشوائية. ثم يقوم الدرس بتقشير الطبقات على المكتبة ببطء لتفكيك عملية الانتشار ويظهر لك تفاصيل كيفية عمل خط أنابيب الانتشار بالفعل. أخيرًا ، تتعلم كيفية الاستفادة من العمليات الفريدة لعملية تقليل التكرار في نموذج الانتشار للالتحاق بين الصور ، وأداء الترجمة صورة إلى صورة ، وحتى استعادة الصور وتعزيزها.
مثلما كان الدرس 4 يدور حول الصور ، فإن الدرس 5 يدور حول النص. يبدأ بمقدمة مفاهيمية لخط أنابيب معالجة اللغة الطبيعية ، بالإضافة إلى مقدمة في النماذج الاحتمالية للغة. ثم تتعلم كيف يمكنك تحويل النص إلى تمثيل أكثر فهمًا من خلال النماذج التوليدية ، واستكشاف الأداة الأوسع لتمثيل الكلمات كمتجهات. ينتهي الدرس بمعالجة بنية المحولات ، حيث سترى كيف يمكنك استخدام مكتبة محولات الوجه المعانقة لأداء الاستدلال مع نماذج لغة كبيرة مدربة مسبقًا (LLMs) لإنشاء نص من نقطة الصفر.
يبدأ الدرس 6 بمقدمة مفاهيمية للنماذج متعددة الوسائط والمكونات المطلوبة المطلوبة. ترى كيف يتعلم التدريب اللغوي المتباين مسبقًا نموذجًا مشتركًا من الصور والنص ، وتعلم كيف يمكن استخدام هذه المساحة الكامنة المشتركة لإنشاء محرك بحث عن الصور الدلالي. ينتهي الدرس بنظرة عامة مفاهيمية لنماذج الانتشار الكامن ، قبل تفكيك خط أنابيب انتشار مستقر لمعرفة كيف يمكن أن تقوم أنظمة النص بالتحول بالتحويل إلى صورة مستخدم إلى صورة لم يسبق لها مثيل.
الدرس 7 هو كل شيء عن تكييف وزيادة النماذج المتعددة الوسائط الموجودة قبل التدريب. إنه يبدأ بمهمة أكثر دنيوية ، ولكنها ذات أهمية استثنائية ، لتقييم النماذج التوليدية قبل الانتقال إلى الأساليب والتقنيات لضبط دقيق فعال. ثم تتعلم كيفية تعليم نموذج نص إلى نص تدريبي مسبقًا مثل الانتشار المستقر حول الأنماط والموضوعات والشروط الجديدة. ينتهي الدرس بتقنيات لجعل الانتشار أكثر كفاءة في الاقتراب بالقرب من توليد الصور في الوقت الفعلي.
© ️ 2024 جوناثان دينو. جميع الحقوق محفوظة. يُحظر صراحةً إزالة إشعار حقوق الطبع والنشر أو الاستنساخ جزئيًا أو كاملًا للنص والصور و/أو الكود.
للحصول على إذن لاستخدام المحتوى في العرض التقديمي الخاص بك (منشورات المدونة ، المحاضرات ، مقاطع الفيديو ، الدورات ، إلخ) ، يرجى الاتصال بـ [email protected].