AI & GPU
كيفية تحسين نموذج LLaMA2 بسرعة وسهولة

كيفية تحسين نموذج LLaMA2 بسرعة وسهولة

الجزء الأول: مقدمة عن تحسين نموذج LLaMA-2

الفقرة الأولى: نظرة عامة على LLaMA-2 وقدراته

LLaMA-2 هو التحديث الثاني لنموذج اللغة العملاقة للذكاء الاصطناعي (LLaMA) المطوّر من قِبَل Anthropic. إنه نموذج لغة قوي ومتعدد الاستخدامات يمكن استخدامه في مجموعة واسعة من مهام معالجة اللغات الطبيعية، مثل توليد النصوص، والإجابة على الأسئلة، وترجمة اللغات.

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

أحد الميزات الرئيسية لنموذج LLaMA-2 هو قدرته على التكيف مع مجموعات البيانات المتضمنة في نطاق مجالات محددة، مما يتيح له التكيف مع المهام والسيناريوهات المتخصصة. يركز هذا البرنامج التعليمي على عملية تحسين النموذج، حيث يمكن للمستخدمين الاستفادة من قوة نموذج LLaMA-2 المدربة مسبقًا وتعديلها لتلبية احتياجاتهم الخاصة.

الفقرة الثانية: أهمية تحسين المهام الموجهة لاتجاه النطاق الفرعي

في حين أن نموذج LLaMA-2 المدرب مسبقًا قادر بشكل كبير، إلا أنه صُمم ليكون نموذج لغة عام، يتم تدريبه على تجميع جسم واسع من البيانات. ومع ذلك، فهناك حاجة في العديد من التطبيقات العملية إلى تكييف النموذج مع مجالات أو مهام أو مجموعات بيانات محددة.

تحسين نموذج LLaMA-2 بواسطة بيانات تتعلق بمجالات محددة يمكن أن يؤدي إلى العديد من الفوائد:

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

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

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

  4. الكفاءة: يكون تحسين النموذج المدرب مسبقًا بشكل عام أكثر كفاءة وسرعة من تدريب نموذج جديد من الصفر، حيث يمتلك النموذج المدرب مسبقًا بالفعل تمثيلات وأنماط قيمة تعلمها من بيانات التدريب بمقياس كبير.

في الأقسام التالية، سنرشدك خلال عملية تحسين نموذج LLaMA-2 لمهمة محددة، مع تغطية الخطوات اللازمة وأفضل الأساليب لضمان تكييف النموذج بنجاح وفعالية.

الجزء الثاني: إعداد البيئة

الفقرة الأولى: متطلبات النظام

قبل أن نبدأ في عملية التحسين، من المهم التأكد من أن نظامك يفي بمتطلبات الأجهزة والبرمجيات اللازمة.

1. المعدات

عملية تحسين نماذج LLaMA-2 هي عملية مكثفة حسابيًا، لذا يوصى بأن يكون لديك حامل GPU قوي، ومفضّلًا بذاكرة فيديو تبلغ 16 جيجابايت على الأقل. قد تختلف المتطلبات الفعلية للمعدات حسب حجم مجموعة البيانات الخاصة بك وتعقيد المهمة، ولكن الحامل GPU عالي الأداء سيسرّع بشكل كبير عملية التدريب.

بالإضافة إلى ذلك، ستحتاج إلى ذاكرة نظام كافية (RAM) لاستيعاب النموذج وبيانات التدريب. كإرشاد عام، يُنصح بالحصول على 32 جيجابايت من ذاكرة الوصول العشوائي، ولكن المتطلبات الفعلية قد تختلف تبعًا لحالة الاستخدام الخاصة بك.

2. البرمجيات

سيتم إجراء عملية التحسين باستخدام لغة Python، لذا يجب أن تكون لديك بيئة Python معدة على نظامك. نوصي باستخدام Python 3.7 أو الإصدارات الأحدث.

بالإضافة إلى ذلك، ستحتاج إلى تثبيت المكتبات الرئيسية التالية:

  • PyTorch: إطار عمل تعلم عميق مشهور سيتم استخدامه لتحميل ومعالجة نموذج LLaMA-2.
  • Hugging Face Transformers: مكتبة قوية توفر واجهات سهلة الاستخدام للعمل مع نماذج اللغة المدربة مسبقًا، بما في ذلك LLaMA-2.
  • NumPy: مكتبة أساسية للحوسبة العلمية في Python، يتم استخدامها لمعالجة البيانات والتحضير المسبق.
  • Pandas: مكتبة لمعالجة البيانات وتحليلها، قد تكون مفيدة للعمل مع البيانات الجدولية.
  • Tensorboard: أداة لتصور وتتبع مختلف المقاييس خلال عملية التحسين.

الفقرة الثانية: تثبيت المكتبات اللازمة

يمكنك تثبيت المكتبات المطلوبة باستخدام برنامج pip، وهو برنامج تثبيت الحزم الخاص بلغة Python. افتح نافذة الطرفية أو سطر الأوامر وقم بتشغيل الأوامر التالية:

pip install torch transformers numpy pandas tensorboard

بدلاً من ذلك، يمكنك إنشاء بيئة افتراضية وتثبيت التبعيات داخل تلك البيئة لتجنب التعارض مع حزم Python الأخرى في نظامك.

# إنشاء بيئة افتراضية
python -m venv finetuning-env
# تفعيل البيئة الافتراضية
source finetuning-env/bin/activate
# تثبيت المكتبات المطلوبة
pip install torch transformers numpy pandas tensorboard

بمجرد أن يكون لديك متطلبات الأجهزة والبرمجيات اللازمة، أنت الآن جاهز للانتقال إلى الخطوة التالية: الحصول على نموذج LLaMA-2.

الجزء الثالث: الحصول على نموذج LLaMA-2

الفقرة الأولى: تنزيل نموذج LLaMA-2 مدرب مسبقًا

النموذج LLaMA-2 غير متاح حاليًا بشكل عام، حيث أنه نموذج مخصص تم تطويره بواسطة منظمة Anthropic. ومع ذلك، قد قامت Anthropic بإصدار مجموعة من النماذج LLaMA المدربة مسبقًا، والتي يمكن استخدامها كنقطة انطلاق لعملية التحسين.

للحصول على نموذج LLaMA المدرب مسبقًا، ستحتاج إلى اتباع التعليمات المقدمة من قِبَل Anthropic. وهذا عادة ما يتضمن التسجيل للحصول على الوصول والموافقة على شروط الاستخدام. بمجرد الحصول على الوصول، يمكنك تنزيل ملفات النموذج من موقع أنثروبيك أو مستودعها.

الفقرة الثانية: التحقق من سلامة النموذج

بعد تحميل ملفات نموذج LLaMA، من المهم التحقق من سلامتها للتأكد من أن الملفات قد تم تنزيلها بشكل صحيح ولم يتم تلاعب بها.

يمكنك القيام بذلك عن طريق التحقق من تجزئة الملفات التي قدمتها شركة Anthropic ومقارنتها مع تجزئة الملفات التي تم تنزيلها. يمكنك استخدام الأمر sha256sum (في نظام Linux أو macOS) أو أداة مثل Get-FileHash (في Windows PowerShell) لحساب تجزئة SHA-256 للملفات التي تم تنزيلها ومقارنتها مع القيم المتوقعة.

فيما يلي مثال للتحقق من سلامة الملفات على نظام Linux أو macOS:

# حساب تجزئة SHA-256 لملف النموذج المحمل
sha256sum llama.7b.pth

# مقارنة التجزئة المحسوبة مع القيمة المتوقعة التي قدمتها Anthropic

إذا تطابقت التجزئة، يمكنك أن تكون واثقًا من أن الملفات التي تم تنزيلها أصلية ولم تتلف أثناء عملية التنزيل.

مع ملفات نموذج LLaMA-2 في اليد والتحقق من السلامة، أنت الآن جاهز لبدء عملية التحسين.

الجزء الرابع: تحسين نموذج LLaMA-2 لمهمة محددة

الفقرة الأولى: تعريف المهمة والمجموعة من البيانات

الخطوة الأولى في عملية التحسين هي تعريف المهمة التي ترغب في تنفيذها ومجموعة البيانات التي ستستخدمها في التحسين.

1. تحديد المهمة

نوع المهمة التي تختارها سيعتمد على حالتك الاستخدامية ومتطلباتك الخاصة. بعض المهام الشائعة التي يمكن التعامل معها من خلال تحسين LLaMA-2 تشمل:

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

2. إعداد مجموعة البيانات

بمجرد تحديد المهمة، ستحتاج إلى إعداد مجموعة البيانات التي ستستخدم لعملية التحسين. ينطوي ذلك على الخطوات التالية:

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

من خلال تعريف المهمة بوضوح وإعداد مجموعة بيانات عالية الجودة، ستحدد المسرحية لعملية تحسين ناجحة.

الفقرة الثانية: إعداد خط أنابيب التحسين

بعد وضع المهمة ومجموعة البيانات، يمكنك الآن البدء في إعداد خط أنابيب التحسين. ينطوي ذلك على الخطوات التالية:

1. إعداد الرمزنة

أول خطوة هي إعداد الرمزنة، والتي تكون مسؤولة عن تحويل النص المدخل إلى سلسلة من الرموز التي يمكن معالجتها بواسطة النموذج. توفر مكتبة Hugging Face Transformers رموزًا مدربة مسبقًا لنماذج مختلفة، بما في ذلك LLaMA-2.

from transformers import LlamaTokenizer
 
tokenizer = LlamaTokenizer.from_pretrained('path/to/llama-2-model')

2. تحميل ومعالجة البيانات

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

from torch.utils.data import Dataset, DataLoader
 
class MyDataset(Dataset):
    def __init__(self, data, tokenizer):
        self.data = data
        self.tokenizer = tokenizer
 
    def __len__(self):
        return len(self.data)
 
    def __getitem__(self, idx):
        # معالجة البيانات وإرجاع الأزواج المدخل-المخرج

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

input_ids = self.tokenizer.encode(self.data[idx][0], return_tensors='pt')
output_ids = self.tokenizer.encode(self.data[idx][1], return_tensors='pt')
return input_ids ، output_ids
 
# إنشاء مجموعة البيانات و محمّل البيانات
dataset = MyDataset(train_data, tokenizer)
dataloader = DataLoader(dataset, batch_size=8, shuffle=True)

تهيئة وتكوين النموذج والبدء بعملية التحسين المستمر

لإعداد نموذج LLaMA-2 وتكوينه للمهمة المحددة، يجب تحميل أوزان النموذج المدرب مسبقًا وإعداد المكونات النمطية اللازمة.

from transformers import LlamaForCausalLM
 
model = LlamaForCausalLM.from_pretrained('path/to/llama-2-model')
model.config.pad_token_id = tokenizer.pad_token_id

مع المكون النمطي ومجموعة البيانات والنموذج الجاهز، أنت الآن جاهز لتنفيذ عملية تحسين النمذجة.

C. تنفيذ عملية تحسين النمذجة

ينطوي عملية تحسين النمذجة على تدريب نموذج LLaMA-2 على مجموعة البيانات المتخصصة، وتحديث معلمات النموذج لتحسين أدائه على المهمة المستهدفة.

1. تعريف حلقة التدريب

حلقة التدريب هي النواة الأساسية لعملية تحسين النموذج، حيث يتم تحديث معلمات النموذج استنادًا لبيانات التدريب. فيما يلي مثال أساسي:

import torch.optim as optim
import torch.nn.functional as F
 
# إعداد المحسن ووظيفة الخسارة
optimizer = optim.AdamW(model.parameters(), lr=1e-5)
loss_fn = F.cross_entropy
 
# حلقة التدريب
for epoch in range(num_epochs):
    for inputs, outputs in dataloader:
        optimizer.zero_grad()
        logits = model(inputs, labels=outputs).logits
        loss = loss_fn(logits.view(-1, logits.size(-1)), outputs.view(-1))
        loss.backward()
        optimizer.step()
 
    # قيم النموذج على مجموعة التحقق
    # وتنفيذ توقف مبكر إذا كنت ترغب في ذلك

في هذا المثال، نستخدم المحسن AdamW ووظيفة الخسارة cross-entropy لتدريب النموذج. يمكنك تجربة خوارزميات التحسين المختلفة ووظائف الخسارة ومعلمات التحسين المختلفة لإيجاد التكوين الأفضل للمهمة المحددة.

2. مراقبة وتقييم النمذجة المستمرة

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

  • الوجهة المتنوعة: قياس مدى تنبؤ النموذج الجيد للرمز القادم في التسلسل.
  • تحسين النقاط اللازمة:وهو المقياس المستخدم لتقييم جودة الترجمة الآلية أو توليد النص.
  • نقطة المطابقة:مقياس يستخدم لتقييم جودة الترجمة الآلية أو توليد النص.
  • نقطة مقاسة (F1 score ): هو مقياس يستخدم لقياس الدقة والاسترجاع في المطابقة بين البيانات الفعلية والبيانات المتوقعة.

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

تشتمل مكونات شبكة النيورال على:

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

اليكم مثال لتصميم بسيط لشبكة ال CNNs لتصنيف الصور:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
 
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))

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

شبكات النيورال المتكررة (RNNs) شبكات النيورال المتكررة (RNNs) هي نوع من الشبكات العصبية المتكاملة المصممة للتعامل مع البيانات التتابعية ، مثل النصوص والخطاب وبيانات السلاسل الزمنية. على عكس الشبكات العصبية المتقدمة ، التي تقوم بمعالجة البيانات بشكل مستقل ، تحتفظ بشبكات النيورال المتكررة بـ "ذاكرة" للمداخل السابقة ، مما يتيح لها التقاط التبعيات المؤقتة في البيانات.

تشتمل المكونات الرئيسية للشبكات العصبية المتكررة على:

  1. طبقات عصبية متكررة: تعالج هذه الطبقات التسلسل الدخلي عنصرًا واحدًا في كل مرة ، مع الحفاظ على حالة مستخبئة تمر بها من الخطوة الزمنية السابقة إلى الخطوة التالية.
  2. طبقات متصلة تمامًا: تأخذ هذه الطبقات مخرجات طبقات متكررة والطبقات التحويل الأخرى وتستخدمها لتنفيذ المهمة النهائية للتصنيف أو التنبؤ.

إليك مثال ل RNN بسيطة لتصنيف النصوص:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense
 
# نفترض لديك مجموعة بيانات النص المرمّزة
num_words = 10000
max_length = 100
 
model = Sequential()
model.add(Embedding(num_words, 128, input_length=max_length))
model.add(LSTM(64))
model.add(Dense(1, activation='sigmoid'))

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

ذاكرة النيورال طويلة - الأجل (LSTMs)

ذاكرة النيورال طويلة - الأجل (LSTMs) هي نوع خاص من الشبكات العصبية المتكررة تم تصميمه لمعالجة مشكلة التلاشي الانحداري ، والتي يمكن أن تجعل من الصعب على الشبكات العصبية التقليدية تعلم التبعيات طويلة الأجل في البيانات.

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

إليك مثال ل LSTM للتنبؤ بسلسلة زمنية:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
 
# نفترض لديك مجموعة البيانات سلاسل زمنية
n_features = 5
n_steps = 10
 
model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(n_steps, n_features)))
model.add(Dense(1))

هذا النموذج يأخذ سلسلة من 10 خطوات زمنية ، يحتوي كل واحد منها على 5 سمات ، ويستخدم طبقة LSTM بـ 50 وحدة لمعالجة السلسلة. تنتج الطبقة الكاملة المتصلة الناتج الواحد ، الذي يمكن استخدامه لمهام توقع سلاسل الزمن.

شبكات النيورال المولّدة تنافسياً (GANs) شبكات النيورال المولّدة (GANs) هي نوع من النموذج العميق يتكون من شبكتين عصبيتين: مولد ومميز. تتم تدريب شبكة المولّد لتوليد بيانات جديدة تشبه بيانات التدريب ، بينما تتم تدريب شبكة المميز للتمييز بين البيانات الحقيقية والبيانات المولدة.

تتكون المكونات الأساسية لـ GAN من:

  1. شبكة المولّد: تأخذ هذه الشبكة متجه ضوضاء عشوائية وتولّد بيانات جديدة تشبه بيانات التدريب.
  2. شبكة المميز: تأخذ هذه الشبكة إما بيانات حقيقية أو بيانات مولّدة وتنتج احتمالية لكل نقطة بيانات تكون حقيقية.

تتم تدريب الشبكتين بشكل متنافس ، حيث يحاول المولّد خداع شبكة المميز ، ويحاول المميز التمييز بدقة بين البيانات الحقيقية والبيانات المولدة.

إليك مثال ل GAN بسيطة لإنشاء أرقام يدوية :

import tensorflow as tf
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Dense, Reshape, Flatten, Conv2D, LeakyReLU, BatchNormalization
from tensorflow.keras.optimizers import Adam
 
# شبكة المولّد
generator = Sequential()
generator.add(Dense(7*7*256, input_shape=(100,), activation=LeakyReLU()))
generator.add(Reshape((7, 7, 256)))
generator.add(Conv2D(128, (5, 5), padding='same', activation=LeakyReLU()))
generator.add(BatchNormalization())
generator.add(Conv2D(64, (5, 5), padding='same', activation=LeakyReLU()))
generator.add(BatchNormalization())
generator.add(Conv2D(1, (5, 5), padding='same', activation='tanh'))
 
# شبكة المميز
discriminator = Sequential()
discriminator.add(Conv2D(64, (5, 5), padding='same', input_shape=(28, 28, 1), activation=LeakyReLU()))
discriminator.add(BatchNormalization())
discriminator.add(Conv2D(128, (5, 5), padding='same', activation=LeakyReLU()))
discriminator.add(BatchNormalization())
discriminator.add(Flatten())
discriminator.add(Dense(1, activation='sigmoid'))
 
# دمج شبكة المولّد وشبكة المميز في نموذج GAN
gan = Model(generator.input, discriminator(generator.output))

تستخدم هذه الشبكة المولّدة ومعرفة الشبكة لإنشاء الأرقام التي تشبه الأيدي. تأخذ شبكة المولّد متجه ضوضاء بعشوائية مقاس 100 وتولّد صور رمادية بحجم 28 × 28 ، بينما تأخذ شبكة المميز الصور الحقيقية أو الصور المولّدة وتنتج احتمالية لكون الصورة حقيقية.

استنتاج

في هذا البرنامج التعليمي، تم تغطية العديد من الهندسات العميقة المهمة ، بما في ذلك شبكات النيورال المتبلورة (CNNs)، الشبكات العصبية المتكررة (RNNs)، الذاكرة الرئيسية الطويلة - الأجل (LSTMs) وشبكات النيورال النموذجية (GANs). تم توفير أمثلة ومقاطع شفرة لتوضيح كيفية تنفيذ هذه النماذج باستخدام مكتبة TensorFlow / Keras.

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