الأحرف الأولى من GPT تعني المحول التوليدي المُدرب مسبقًا. لذا فإن الكلمة الأولى واضحة بما فيه الكفاية، فهي روبوتات تولد نصًا جديدًا. يشير التدريب المسبق إلى كيفية خضوع النموذج لعملية التعلم من كمية هائلة من البيانات، وتشير البادئة إلى أن هناك مساحة أكبر لضبطه في مهام محددة مع تدريب إضافي. لكن الكلمة الأخيرة، هذه هي القطعة الرئيسية الحقيقية. المحول هو نوع محدد من الشبكات العصبية، وهو نموذج للتعلم الآلي، وهو الاختراع الأساسي الكامن وراء الطفرة الحالية في الذكاء الاصطناعي. ما أريد أن أفعله بهذا الفيديو والفصول التالية هو تقديم شرح بصري لما يحدث بالفعل داخل المحول. سنقوم بمتابعة البيانات التي تتدفق من خلاله ونتحرك خطوة بخطوة. هناك العديد من أنواع النماذج المختلفة التي يمكنك بنائها باستخدام المحولات. تأخذ بعض النماذج الصوت وتنتج نصًا. تأتي هذه الجملة من نموذج يسير في الاتجاه المعاكس، وينتج خطابًا تركيبيًا من النص فقط. كل تلك الأدوات التي اجتاحت العالم في عام 2022 مثل Dolly وMidjourney التي تأخذ وصفًا نصيًا وتنتج صورة تعتمد على المحولات. حتى لو لم أتمكن من فهم ما يفترض أن يكون عليه مخلوق الفطيرة، ما زلت مندهشًا من أن هذا النوع من الأشياء ممكن حتى ولو عن بعد. وتم اختراع المحول الأصلي الذي قدمته Google في عام 2017 لحالة الاستخدام المحددة لترجمة النص من لغة إلى أخرى. لكن المتغير الذي سنركز عليه أنا وأنت، وهو النوع الذي يكمن وراء أدوات مثل ChatGPT، سيكون نموذجًا تم تدريبه على استيعاب جزء من النص، ربما حتى مع بعض الصور المحيطة أو الصوت المصاحب له، وإنتاج تنبؤ لما سيأتي بعد ذلك في المقطع. يأخذ هذا التنبؤ شكل توزيع احتمالي على العديد من أجزاء النص المختلفة التي قد تتبعها. للوهلة الأولى، قد تعتقد أن التنبؤ بالكلمة التالية يبدو وكأنه هدف مختلف تمامًا عن إنشاء نص جديد. ولكن بمجرد أن يكون لديك نموذج تنبؤ مثل هذا، فإن الشيء البسيط الذي يمكنك إنشاء جزء أطول من النص هو إعطائه مقتطفًا أوليًا للعمل معه، وجعله يأخذ عينة عشوائية من التوزيع الذي أنشأه للتو، وإلحاق تلك العينة بالنص ، ثم قم بتشغيل العملية برمتها مرة أخرى لإجراء تنبؤ جديد استنادًا إلى النص الجديد بالكامل، بما في ذلك ما تمت إضافته للتو. لا أعرف عنك، لكن يبدو أن هذا لا ينبغي أن ينجح حقًا. في هذه الرسوم المتحركة، على سبيل المثال، أقوم بتشغيل GPT-2 على جهاز الكمبيوتر المحمول الخاص بي وأطلب منه التنبؤ بشكل متكرر وأخذ عينات من الجزء التالي من النص لإنشاء قصة بناءً على النص الأولي. القصة ليس لها معنى كبير حقًا. ولكن إذا قمت باستبدالها باستدعاءات واجهة برمجة التطبيقات (API) إلى GPT-3 بدلاً من ذلك، وهو نفس النموذج الأساسي، ولكنه أكبر بكثير، فسنحصل فجأة وبطريقة سحرية تقريبًا على قصة معقولة، قصة يبدو أنها تستنتج أن مخلوق باي سيعيش في عالم أرض الرياضيات والحساب. هذه العملية هنا من التنبؤ المتكرر وأخذ العينات هي في الأساس ما يحدث عندما تتفاعل مع ChatGPT أو أي من نماذج اللغات الكبيرة الأخرى هذه وتراهم ينتجون كلمة واحدة في كل مرة. في الواقع، إحدى الميزات التي سأستمتع بها كثيرًا هي القدرة على رؤية التوزيع الأساسي لكل كلمة جديدة تختارها. دعونا نبدأ الأمور بمعاينة عالية المستوى لكيفية تدفق البيانات عبر المحول. سنقضي المزيد من الوقت في التحفيز والتفسير والتوسع في تفاصيل كل خطوة، ولكن بشكل عام، عندما يقوم أحد روبوتات الدردشة هذه بإنشاء كلمة معينة، إليك ما يحدث تحت الغطاء. أولاً، يتم تقسيم المدخلات إلى مجموعة من القطع الصغيرة. تسمى هذه القطع بالرموز، وفي حالة النص، تميل هذه إلى أن تكون كلمات أو أجزاء صغيرة من الكلمات أو مجموعات أحرف مشتركة أخرى. إذا كانت الصور أو الصوت متضمنة، فيمكن أن تكون الرموز المميزة عبارة عن بقع صغيرة من تلك الصورة أو أجزاء صغيرة من هذا الصوت. يتم بعد ذلك ربط كل واحدة من هذه الرموز المميزة بمتجه، مما يعني قائمة من الأرقام، والتي تهدف إلى تشفير معنى تلك القطعة بطريقة ما. إذا كنت تعتقد أن هذه المتجهات تعطي إحداثيات في مساحة ذات أبعاد عالية جدًا، فإن الكلمات ذات المعاني المتشابهة تميل إلى الهبوط على ناقلات قريبة من بعضها البعض في ذلك الفضاء. يمر تسلسل المتجهات هذا عبر عملية تُعرف باسم كتلة الانتباه، وهذا يسمح للمتجهات بالتحدث مع بعضها البعض وتمرير المعلومات ذهابًا وإيابًا لتحديث قيمها. على سبيل المثال، يختلف معنى كلمة نموذج في عبارة نموذج التعلم الآلي عن معناها في عبارة نموذج أزياء. إن كتلة الانتباه هي المسؤولة عن معرفة الكلمات في السياق ذات الصلة بتحديث معاني الكلمات الأخرى، وكيف يجب تحديث هذه المعاني بالضبط. ومرة أخرى، كلما استخدمت معنى الكلمة، يتم تشفيرها بالكامل بطريقة أو بأخرى في مدخلات تلك المتجهات. بعد ذلك، تمر هذه المتجهات من خلال نوع مختلف من العمليات، واعتمادًا على المصدر الذي تقرأه، سيشار إلى ذلك باسم الإدراك الحسي متعدد الطبقات أو ربما طبقة التغذية الأمامية. وهنا لا تتحدث المتجهات مع بعضها البعض، بل تمر جميعها بنفس العملية بالتوازي. وعلى الرغم من صعوبة تفسير هذه الكتلة قليلًا، سنتحدث لاحقًا عن كيف أن الخطوة تشبه إلى حدٍ ما طرح قائمة طويلة من الأسئلة حول كل متجه، ثم تحديثها بناءً على إجابات تلك الأسئلة. تبدو جميع العمليات في كلتا الكتلتين وكأنها كومة ضخمة من مضاعفات المصفوفات، وستكون مهمتنا الأساسية هي فهم كيفية قراءة المصفوفات الأساسية. أقوم بتغطية بعض التفاصيل حول بعض خطوات التطبيع التي تحدث بينهما، ولكن هذه في النهاية معاينة عالية المستوى. بعد ذلك، تتكرر العملية بشكل أساسي، وتتنقل ذهابًا وإيابًا بين كتل الانتباه وكتل الإدراك الحسي متعددة الطبقات، حتى النهاية، يكون الأمل هو أن كل المعنى الأساسي للمقطع قد تم بطريقة ما خبزه في المتجه الأخير في الترتيب. نقوم بعد ذلك بإجراء عملية معينة على المتجه الأخير الذي ينتج توزيعًا احتماليًا على جميع الرموز المميزة المحتملة، وجميع الأجزاء الصغيرة المحتملة من النص التي قد تأتي بعد ذلك. وكما قلت، بمجرد أن يكون لديك أداة تتنبأ بما سيأتي بعد ذلك في ضوء مقتطف من النص، يمكنك تغذيتها بقليل من النص الأولي وجعلها تلعب بشكل متكرر لعبة التنبؤ بما سيأتي بعد ذلك، وأخذ عينات من التوزيع، والإلحاق ذلك، ثم تكرره مراراً وتكراراً. ربما يتذكر البعض منكم من ذوي الخبرة المدة التي سبقت ظهور ChatGPT في المشهد، هذا هو الشكل الذي كانت تبدو عليه العروض التوضيحية المبكرة لـ GPT-3، حيث يمكنك إكمال القصص والمقالات تلقائيًا بناءً على مقتطف أولي. لتحويل أداة كهذه إلى روبوت دردشة، فإن أسهل نقطة بداية هي الحصول على القليل من النص الذي يحدد إعدادات المستخدم الذي يتفاعل مع مساعد الذكاء الاصطناعي المفيد، وهو ما يمكن أن تسميه موجه النظام، وبعد ذلك ستستخدم السؤال الأولي للمستخدم أو المطالبة به هو الجزء الأول من الحوار، وبعد ذلك يمكنك البدء في التنبؤ بما سيقوله مساعد الذكاء الاصطناعي المفيد ردًا على ذلك. هناك الكثير مما يمكن قوله عن خطوة التدريب المطلوبة لإنجاح هذا الأمر، ولكن على مستوى عالٍ، هذه هي الفكرة. في هذا الفصل، سنتوسع أنا وأنت في تفاصيل ما يحدث في بداية الشبكة، وفي نهايتها، وأريد أيضًا قضاء الكثير من الوقت في مراجعة بعض الأجزاء المهمة من المعرفة الأساسية أشياء كانت ستصبح طبيعة أي مهندس تعلم آلي بحلول الوقت الذي ظهرت فيه المحولات. إذا كنت مرتاحًا لهذه المعرفة الأساسية وقليل الصبر، فلا تتردد في الانتقال إلى الفصل التالي، والذي سيركز على كتل الانتباه، والتي تعتبر بشكل عام قلب المحول. بعد ذلك أريد أن أتحدث أكثر عن كتل الإدراك الحسي متعددة الطبقات، وكيفية عمل التدريب، وعدد من التفاصيل الأخرى التي سيتم تخطيها حتى تلك النقطة. للحصول على سياق أوسع، تعد مقاطع الفيديو هذه إضافات إلى سلسلة مصغرة حول التعلم العميق، ولا بأس إذا لم تكن قد شاهدت مقاطع الفيديو السابقة، أعتقد أنه يمكنك القيام بذلك خارج النظام، ولكن قبل الغوص في المحولات على وجه التحديد، أعتقد من الجدير التأكد من أننا على نفس الصفحة حول الفرضية الأساسية وبنية التعلم العميق. على الرغم من المخاطرة بتوضيح ما هو واضح، فهذا هو أحد أساليب التعلم الآلي، والذي يصف أي نموذج تستخدم فيه البيانات لتحديد كيفية تصرف النموذج بطريقة أو بأخرى. ما أعنيه بذلك هو، لنفترض أنك تريد وظيفة تلتقط صورة وتنتج علامة تصفها، أو مثالنا للتنبؤ بالكلمة التالية في ضوء مقطع من النص، أو أي مهمة أخرى يبدو أنها تتطلب بعض العناصر الحدس والتعرف على الأنماط. نحن نعتبر هذا الأمر أمرا مفروغا منه هذه الأيام، ولكن الفكرة في التعلم الآلي هي أنه بدلا من محاولة تحديد إجراء واضح لكيفية القيام بهذه المهمة في التعليمات البرمجية، وهو ما كان سيفعله الناس في الأيام الأولى للذكاء الاصطناعي، بدلا من ذلك قم بإعداد بنية مرنة للغاية مع معلمات قابلة للضبط، مثل مجموعة من المقابض والأقراص، ثم تستخدم بطريقة ما العديد من الأمثلة حول الشكل الذي يجب أن يبدو عليه الإخراج لمدخل معين لتعديل وضبط قيم تلك المعلمات لتقليد هذا السلوك. على سبيل المثال، ربما يكون أبسط شكل من أشكال التعلم الآلي هو الانحدار الخطي، حيث تكون المدخلات والمخرجات عبارة عن أرقام فردية، شيء مثل اللقطات المربعة للمنزل وسعره، وما تريده هو العثور على خط أفضل ملاءمة من خلال هذا البيانات، كما تعلمون، للتنبؤ بأسعار المنازل في المستقبل. يتم وصف هذا الخط بمعلمتين مستمرتين، على سبيل المثال الميل والتقاطع y، والهدف من الانحدار الخطي هو تحديد تلك المعلمات لمطابقة البيانات بشكل وثيق. وغني عن القول أن نماذج التعلم العميق تصبح أكثر تعقيدًا. GPT-3، على سبيل المثال، لا يحتوي على اثنين، بل 175 مليار معلمة. ولكن هذا هو الأمر، ليس من المسلم به أنه يمكنك إنشاء نموذج عملاق يحتوي على عدد كبير من المعلمات دون الحاجة إلى الإفراط في تجهيز بيانات التدريب بشكل كبير أو استعصاء التدريب تمامًا. يصف التعلم العميق فئة من النماذج التي أثبتت في العقدين الماضيين أنها قابلة للتوسع بشكل ملحوظ. ما يوحدهم هو نفس خوارزمية التدريب، التي تسمى الانتشار العكسي، والسياق الذي أريدك أن تحصل عليه أثناء تقدمنا هو أنه لكي تعمل خوارزمية التدريب هذه بشكل جيد على نطاق واسع، يجب أن تتبع هذه النماذج تنسيقًا محددًا معينًا. إذا كنت تعرف هذا التنسيق، فمن المفيد أن تشرح العديد من الاختيارات الخاصة بكيفية معالجة المحول للغة، والتي قد تتعرض لخطر الشعور بالتعسف. أولاً، أيًا كان النموذج الذي تقوم بإنشائه، يجب تنسيق الإدخال كمصفوفة من الأرقام الحقيقية. قد يعني هذا قائمة من الأرقام، أو يمكن أن تكون مصفوفة ثنائية الأبعاد، أو في كثير من الأحيان تتعامل مع مصفوفات ذات أبعاد أعلى، حيث المصطلح العام المستخدم هو الموتر. غالبًا ما تفكر في أن بيانات الإدخال يتم تحويلها تدريجيًا إلى العديد من الطبقات المتميزة، حيث يتم تنظيم كل طبقة دائمًا كنوع من مجموعة من الأرقام الحقيقية، حتى تصل إلى الطبقة النهائية التي تعتبرها المخرجات. على سبيل المثال، الطبقة الأخيرة في نموذج معالجة النص لدينا هي قائمة من الأرقام التي تمثل التوزيع الاحتمالي لجميع الرموز المميزة التالية الممكنة. في التعلم العميق، يُشار دائمًا إلى معلمات النموذج هذه بالأوزان، وذلك لأن الميزة الرئيسية لهذه النماذج هي أن الطريقة الوحيدة لتفاعل هذه المعلمات مع البيانات التي تتم معالجتها هي من خلال المبالغ المرجحة. يمكنك أيضًا رش بعض الوظائف غير الخطية طوال الوقت، لكنها لن تعتمد على المعلمات. عادةً، بدلًا من رؤية المجاميع المرجحة كلها عارية ومكتوبة بشكل واضح بهذه الطريقة، ستجدها مجمعة معًا كمكونات مختلفة في منتج متجه المصفوفة. إنه يعني قول الشيء نفسه، إذا فكرت مرة أخرى في كيفية عمل ضرب متجه المصفوفة، فإن كل مكون في الإخراج يبدو وكأنه مجموع مرجح. غالبًا ما يكون من الأنظف من الناحية المفاهيمية بالنسبة لي ولكم التفكير في المصفوفات المملوءة بمعلمات قابلة للضبط والتي تحول المتجهات التي يتم استخلاصها من البيانات التي تتم معالجتها. على سبيل المثال، تم تنظيم تلك الأوزان البالغ عددها 175 مليارًا في GPT-3 في ما يقل قليلاً عن 28000 مصفوفة متميزة. تنقسم هذه المصفوفات بدورها إلى ثماني فئات مختلفة، وما سنفعله أنا وأنت هو المرور عبر كل واحدة من هذه الفئات لفهم ما يفعله هذا النوع. بينما نمضي قدمًا، أعتقد أنه من الممتع الرجوع إلى الأرقام المحددة من GPT-3 لحساب مصدر تلك الـ 175 مليارًا بالضبط. حتى لو كانت هناك نماذج أكبر وأفضل في الوقت الحاضر، فإن هذا النموذج يتمتع بسحر معين باعتباره نموذج اللغة الكبيرة لجذب انتباه العالم خارج مجتمعات تعلم الآلة. ومن الناحية العملية أيضًا، تميل الشركات إلى الالتزام بأرقام محددة للشبكات الأكثر حداثة. أريد فقط أن أبدأ المشهد، فبينما تنظر إلى أسفل الغطاء لترى ما يحدث داخل أداة مثل ChatGPT، تبدو كل العمليات الحسابية الفعلية تقريبًا مثل مضاعفة متجهات المصفوفات. هناك القليل من المخاطرة بالضياع في بحر مليارات الأرقام، ولكن يجب أن ترسم تمييزًا حادًا للغاية في عقلك بين أوزان النموذج، والتي سألونها دائمًا باللون الأزرق أو الأحمر، والبيانات التي يتم الحصول عليها تمت معالجتها، والتي سألونها دائمًا باللون الرمادي. الأوزان هي العقول الفعلية، وهي الأشياء التي يتم تعلمها أثناء التدريب، وهي التي تحدد كيفية تصرفه. تقوم البيانات التي تتم معالجتها ببساطة بتشفير أي مدخلات محددة يتم إدخالها في النموذج لتشغيل معين، مثل مقتطف من النص. مع كل ذلك كأساس، دعونا نتعمق في الخطوة الأولى من مثال معالجة النص هذا، وهو تقسيم المدخلات إلى أجزاء صغيرة وتحويل تلك الأجزاء إلى متجهات. لقد ذكرت كيف تسمى هذه القطع بالرموز، والتي قد تكون أجزاء من الكلمات أو علامات الترقيم، ولكن بين الحين والآخر في هذا الفصل وخاصة في الفصل التالي، أود فقط أن أتظاهر بأنها مقسمة بشكل أكثر وضوحًا إلى كلمات. نظرًا لأننا نحن البشر نفكر بالكلمات، فإن هذا سيجعل من الأسهل بكثير الرجوع إلى أمثلة صغيرة وتوضيح كل خطوة. يحتوي النموذج على مفردات محددة مسبقًا، وقائمة من كل الكلمات الممكنة، على سبيل المثال 50000 منها، والمصفوفة الأولى التي سنواجهها، والمعروفة باسم مصفوفة التضمين، تحتوي على عمود واحد لكل كلمة من هذه الكلمات. هذه الأعمدة هي التي تحدد المتجه الذي تتحول إليه كل كلمة في تلك الخطوة الأولى. نسميها نحن، ومثل كل المصفوفات التي نراها، تبدأ قيمها بشكل عشوائي، ولكن سيتم تعلمها بناءً على البيانات. كان تحويل الكلمات إلى متجهات ممارسة شائعة في التعلم الآلي قبل فترة طويلة من المحولات، ولكنه أمر غريب بعض الشيء إذا لم يسبق لك رؤيته من قبل، وهو يضع الأساس لكل ما يلي، لذلك دعونا نتوقف لحظة للتعرف عليه. غالبًا ما نطلق على هذا التضمين كلمة، مما يدعوك إلى التفكير في هذه المتجهات بشكل هندسي للغاية كنقاط في مساحة عالية الأبعاد. لن يكون تصور قائمة من ثلاثة أرقام كإحداثيات لنقاط في مساحة ثلاثية الأبعاد مشكلة، لكن تضمين الكلمات يميل إلى أن يكون ذو أبعاد أعلى بكثير. في GPT-3 لديهم 12288 بُعدًا، وكما سترون، من المهم العمل في مساحة بها الكثير من الاتجاهات المميزة. بنفس الطريقة التي يمكنك من خلالها أخذ شريحة ثنائية الأبعاد عبر مساحة ثلاثية الأبعاد وإسقاط جميع النقاط على تلك الشريحة، من أجل تحريك تضمينات الكلمات التي يقدمها لي نموذج بسيط، سأفعل شيئًا مشابهًا عن طريق اختيار شريحة ثلاثية الأبعاد عبر هذا الفضاء ذي الأبعاد العالية جدًا، وإسقاط متجهات الكلمات عليها وعرض النتائج. الفكرة الكبيرة هنا هي أنه عندما يقوم النموذج بتعديل وضبط أوزانه لتحديد كيفية دمج الكلمات كمتجهات أثناء التدريب، فإنه يميل إلى الاستقرار على مجموعة من التضمينات حيث يكون للاتجاهات في الفضاء نوع من المعنى الدلالي. بالنسبة لنموذج تحويل الكلمة إلى ناقل البسيط الذي أستخدمه هنا، إذا قمت بإجراء بحث عن جميع الكلمات التي تكون تضميناتها أقرب إلى كلمة برج، ستلاحظ كيف تبدو جميعها وكأنها تعطي مشاعر برجية متشابهة جدًا. وإذا كنت تريد تعلم بعض لغة بايثون واللعب بها في المنزل، فهذا هو النموذج المحدد الذي أستخدمه لصنع الرسوم المتحركة. إنه ليس محولاً، لكنه يكفي لتوضيح فكرة أن الاتجاهات في الفضاء يمكن أن تحمل معنى دلاليًا. أحد الأمثلة الكلاسيكية على ذلك هو أنه إذا أخذت الفرق بين المتجهات الخاصة بالمرأة والرجل، وهو شيء يمكن أن تتخيله كمتجه صغير يربط طرف أحدهما بطرف الآخر، فهو مشابه جدًا للفرق بين الملك والرجل ملكة. لنفترض أنك لا تعرف كلمة ملكة أنثى، يمكنك العثور عليها عن طريق أخذ الملك، وإضافة اتجاه المرأة-الرجل، والبحث عن التضمينات الأقرب إلى تلك النقطة. على الأقل نوعا ما. على الرغم من كونه مثالًا كلاسيكيًا للنموذج الذي ألعب به، فإن التضمين الحقيقي للملكة هو في الواقع أبعد قليلاً عما قد يوحي به هذا، ربما لأن الطريقة التي يتم بها استخدام الملكة في بيانات التدريب ليست مجرد نسخة أنثوية من الملك. وعندما تجولت في الأمر، بدا أن العلاقات الأسرية توضح الفكرة بشكل أفضل بكثير. النقطة المهمة هي أنه يبدو أثناء التدريب أن النموذج وجد أنه من المفيد اختيار التضمينات بحيث يقوم اتجاه واحد في هذا الفضاء بتشفير المعلومات المتعلقة بالجنس. مثال آخر هو أنك إذا أخذت تضمين إيطاليا، وطرحت تضمين ألمانيا، وأضفت ذلك إلى تضمين هتلر، فستحصل على شيء قريب جدًا من تضمين موسوليني. يبدو الأمر كما لو أن النموذج تعلم ربط بعض الاتجاهات بالهوية الإيطالية، وأخرى بقادة محور الحرب العالمية الثانية. ربما المثال المفضل لدي في هذا السياق هو كيف أنه في بعض النماذج، إذا أخذت الفرق بين ألمانيا واليابان، وأضفته إلى السوشي، فسينتهي بك الأمر قريبًا جدًا من النقانق. أيضًا أثناء لعب لعبة العثور على أقرب الجيران، سررت برؤية مدى قرب كات من الوحش والوحش. أحد الأمور الرياضية البديهية التي من المفيد أن نأخذها في الاعتبار، خاصة في الفصل التالي، هو كيف يمكن اعتبار المنتج النقطي لمتجهين وسيلة لقياس مدى توافقهما. من الناحية الحسابية، تتضمن المنتجات النقطية ضرب جميع المكونات المقابلة ثم إضافة النتائج، وهو أمر جيد، نظرًا لأن الكثير من حساباتنا يجب أن تبدو وكأنها مبالغ مرجحة. هندسيًا، يكون حاصل الضرب النقطي موجبًا عندما تشير المتجهات إلى اتجاهات متشابهة، ويكون صفرًا إذا كانت متعامدة، ويكون سالبًا عندما تشير إلى اتجاهات متعاكسة. على سبيل المثال، لنفترض أنك كنت تلعب بهذا النموذج، وتفترض أن تضمين القطط ناقص القطة قد يمثل نوعًا من اتجاه التعددية في هذا الفضاء. لاختبار ذلك، سأأخذ هذا المتجه وأحسب حاصل ضربه النقطي مقابل تضمينات بعض الأسماء المفردة، ومقارنته مع نواتج الضرب النقطية مع أسماء الجمع المقابلة. إذا تلاعبت بهذا، ستلاحظ أن الجمع يبدو أنه يعطي دائمًا قيمًا أعلى من القيم المفردة، مما يشير إلى أنها تتماشى أكثر مع هذا الاتجاه. ومن الممتع أيضًا أنه إذا أخذت هذا المنتج النقطي مع تضمينات الكلمات 1، 2، 3، وما إلى ذلك، فإنها تعطي قيمًا متزايدة، لذا يبدو الأمر كما لو أننا نستطيع قياس كمي مدى عثور النموذج على كلمة معينة. مرة أخرى، يتم تعلم تفاصيل كيفية تضمين الكلمات باستخدام البيانات. إن مصفوفة التضمين هذه، التي تخبرنا أعمدتها بما يحدث لكل كلمة، هي أول كومة من الأوزان في نموذجنا. باستخدام أرقام GPT-3، يبلغ حجم المفردات على وجه التحديد 50257، ومرة أخرى، لا يتكون هذا من الناحية الفنية من كلمات في حد ذاتها، بل من الرموز المميزة. بُعد التضمين هو 12,288، وبضرب ذلك يخبرنا أن هذا يتكون من حوالي 617 مليون وزن. دعونا نمضي قدمًا ونضيف هذا إلى حصيلة جارية، متذكرين أنه في النهاية يجب أن نحصي ما يصل إلى 175 مليارًا. في حالة المحولات، أنت تريد حقًا أن تفكر في المتجهات الموجودة في مساحة التضمين هذه على أنها لا تمثل مجرد كلمات فردية. لسبب واحد، أنها تقوم أيضًا بتشفير معلومات حول موضع تلك الكلمة، وهو ما سنتحدث عنه لاحقًا، ولكن الأهم من ذلك، يجب أن تفكر فيها على أنها تتمتع بالقدرة على استيعاب السياق. على سبيل المثال، قد يتم سحب وسحب المتجه الذي بدأ حياته كدمج لكلمة "ملك" بواسطة كتل مختلفة في هذه الشبكة، بحيث يشير في النهاية إلى اتجاه أكثر تحديدًا ودقة والذي يشفر بطريقة أو بأخرى. كان ملكًا عاش في اسكتلندا، وقد وصل إلى منصبه بعد قتل الملك السابق، ويتم وصفه باللغة الشكسبيرية. فكر في فهمك لكلمة معينة. يتم تحديد معنى هذه الكلمة بوضوح من خلال البيئة المحيطة، وفي بعض الأحيان يتضمن ذلك السياق من مسافة بعيدة، لذلك عند تجميع نموذج لديه القدرة على التنبؤ بالكلمة التي تأتي بعد ذلك، فإن الهدف هو تمكينه بطريقة ما من دمج السياق بكفاءة. لكي نكون واضحين، في تلك الخطوة الأولى، عندما تقوم بإنشاء مجموعة من المتجهات بناءً على نص الإدخال، يتم انتزاع كل واحد منها ببساطة من مصفوفة التضمين، لذلك في البداية يمكن لكل واحد فقط تشفير معنى كلمة واحدة بدون أي مدخلات من محيطه. لكن يجب أن تفكر في الهدف الأساسي لهذه الشبكة التي تتدفق من خلالها على أنه تمكين كل واحد من تلك المتجهات من استيعاب معنى أكثر ثراءً وتحديدًا مما يمكن أن تمثله مجرد كلمات فردية. يمكن للشبكة معالجة عدد ثابت فقط من المتجهات في المرة الواحدة، وهو ما يُعرف بحجم السياق الخاص بها. بالنسبة لـ GPT-3، تم تدريبه بحجم سياق يبلغ 2048، وبالتالي فإن البيانات المتدفقة عبر الشبكة تبدو دائمًا مثل هذه المجموعة المكونة من 2048 عمودًا، يحتوي كل منها على 12000 بُعدًا. يحد حجم السياق هذا من مقدار النص الذي يمكن للمحول دمجه عند التنبؤ بالكلمة التالية. وهذا هو السبب في أن المحادثات الطويلة مع بعض برامج الدردشة الآلية، مثل الإصدارات الأولى من ChatGPT، غالبًا ما أعطت شعورًا بأن الروبوت يفقد خيط المحادثة مع استمرارك لفترة طويلة جدًا. سنتناول تفاصيل الاهتمام في الوقت المناسب، ولكن بالتخطي للأمام، أريد أن أتحدث لمدة دقيقة عما يحدث في النهاية. تذكر أن الناتج المطلوب هو توزيع احتمالي على جميع الرموز المميزة التي قد تأتي بعد ذلك. على سبيل المثال، إذا كانت الكلمة الأخيرة هي "بروفيسور"، وكان السياق يتضمن كلمات مثل "هاري بوتر"، وقبل ذلك مباشرة نرى المعلم الأقل تفضيلًا، وأيضًا إذا أعطيتني بعض الحرية من خلال السماح لي بالتظاهر بأن الرموز تبدو ببساطة وكأنها كلمات كاملة، إذن من المفترض أن تقوم الشبكة المدربة جيدًا والتي اكتسبت المعرفة بهاري بوتر بتخصيص رقم كبير لكلمة Snape. وهذا ينطوي على خطوتين مختلفتين. الأول هو استخدام مصفوفة أخرى تقوم بتعيين المتجه الأخير في هذا السياق إلى قائمة مكونة من 50000 قيمة، واحدة لكل رمز مميز في المفردات. ثم هناك دالة تعمل على تطبيع هذا إلى توزيع احتمالي، تسمى Softmax وسنتحدث عنها أكثر خلال ثانية واحدة فقط، ولكن قبل ذلك قد يبدو غريبًا بعض الشيء استخدام هذا التضمين الأخير فقط للتنبؤ، عندما بعد كل شيء، في تلك الخطوة الأخيرة، هناك الآلاف من المتجهات الأخرى في الطبقة الموجودة هناك مع معانيها الغنية بالسياق. يتعلق هذا بحقيقة أنه في عملية التدريب يتبين أن الأمر أكثر كفاءة إذا استخدمت كل واحد من تلك المتجهات في الطبقة النهائية للتنبؤ في نفس الوقت بما سيأتي بعده مباشرة. هناك الكثير مما يمكن قوله عن التدريب لاحقًا، لكني أريد فقط أن أذكر ذلك الآن. تسمى هذه المصفوفة بمصفوفة Unembedding ونعطيها التسمية WU. مرة أخرى، مثل جميع مصفوفات الوزن التي نراها، تبدأ إدخالاتها بشكل عشوائي، ولكن يتم تعلمها أثناء عملية التدريب. للحفاظ على النتيجة في إجمالي عدد المعلمات لدينا، تحتوي مصفوفة إلغاء التضمين هذه على صف واحد لكل كلمة في المفردات، وكل صف يحتوي على نفس عدد العناصر مثل بُعد التضمين. إنها تشبه إلى حد كبير مصفوفة التضمين، فقط مع تبديل الترتيب، لذا فهي تضيف 617 مليون معلمة أخرى إلى الشبكة، مما يعني أن عددنا حتى الآن يزيد قليلاً عن مليار، وهو جزء صغير ولكنه ليس ضئيلًا تمامًا من الـ 175 مليارًا التي لدينا. سوف ينتهي في المجموع. كدرس صغير أخير في هذا الفصل، أريد أن أتحدث أكثر عن وظيفة softmax هذه، لأنها تظهر لنا مرة أخرى عندما نغوص في كتل الانتباه. الفكرة هي أنه إذا كنت تريد أن تعمل سلسلة من الأرقام كتوزيع احتمالي، مثل التوزيع على جميع الكلمات التالية المحتملة، فيجب أن تكون كل قيمة بين 0 و1، وتحتاج أيضًا إلى جمعها جميعًا حتى 1 . ومع ذلك، إذا كنت تلعب لعبة تعليمية حيث يبدو كل ما تفعله مثل الضرب بمصفوفة ومتجه، فإن المخرجات التي تحصل عليها افتراضيًا لا تلتزم بهذا على الإطلاق. غالبًا ما تكون القيم سالبة، أو أكبر بكثير من 1، ومن المؤكد تقريبًا ألا يكون مجموعها 1. Softmax هي الطريقة القياسية لتحويل قائمة عشوائية من الأرقام إلى توزيع صالح بطريقة تجعل القيم الأكبر تنتهي الأقرب إلى 1، والقيم الأصغر تنتهي قريبة جدًا من 0. هذا كل ما تحتاج إلى معرفته حقًا. لكن إذا كنت فضوليًا، فإن الطريقة التي يتم بها الأمر هي أولاً رفع e إلى قوة كل رقم، وهو ما يعني أن لديك الآن قائمة من القيم الموجبة، وبعد ذلك يمكنك جمع كل تلك القيم الموجبة وتقسيمها كل مصطلح بهذا المبلغ، مما يؤدي إلى تطبيعه في قائمة تضيف ما يصل إلى 1. ستلاحظ أنه إذا كان أحد الأرقام في المدخلات أكبر بكثير من الباقي، ففي المخرجات، يهيمن المصطلح المقابل على التوزيع، لذلك إذا كنت تأخذ عينات منه فمن المؤكد تقريبًا أنك تختار المدخلات القصوى. ولكنه أكثر ليونة من مجرد اختيار الحد الأقصى، بمعنى أنه عندما تكون القيم الأخرى كبيرة بشكل مماثل، فإنها تحصل أيضًا على وزن ذي معنى في التوزيع، وكل شيء يتغير بشكل مستمر حيث تقوم باستمرار بتغيير المدخلات. في بعض المواقف، مثل عندما يستخدم ChatGPT هذا التوزيع لإنشاء كلمة تالية، هناك مساحة لقليل من المرح الإضافي عن طريق إضافة القليل من الإثارة الإضافية إلى هذه الوظيفة، مع إضافة ثابت t إلى مقام تلك الأسس. نحن نسميها درجة الحرارة، لأنها تشبه بشكل غامض دور درجة الحرارة في بعض معادلات الديناميكا الحرارية، والتأثير هو أنه عندما تكون t أكبر، فإنك تعطي وزنًا أكبر للقيم الأقل، مما يعني أن التوزيع يكون أكثر تجانسًا قليلاً، وإذا إذا كان t أصغر، فإن القيم الأكبر سوف تهيمن بقوة أكبر، حيث في الحالة القصوى، تعيين t يساوي الصفر يعني أن كل الوزن يذهب إلى القيمة القصوى. على سبيل المثال، سأطلب من GPT-3 إنشاء قصة بالنص الأساسي، ذات مرة كان هناك A، لكنني سأستخدم درجات حرارة مختلفة في كل حالة. درجة الحرارة صفر تعني أنها تتوافق دائمًا مع الكلمة الأكثر توقعًا، وما تحصل عليه في نهاية المطاف هو مشتق مبتذل من المعتدل. تمنحك درجة الحرارة المرتفعة فرصة لاختيار كلمات أقل احتمالية، ولكنها تنطوي على مخاطرة. في هذه الحالة، تبدأ القصة بشكل أكثر أصالة، حول فنان ويب شاب من كوريا الجنوبية، لكنها سرعان ما تتحول إلى هراء. من الناحية الفنية، لا تسمح لك واجهة برمجة التطبيقات (API) باختيار درجة حرارة أكبر من 2. لا يوجد سبب رياضي لذلك، إنه مجرد قيد تعسفي مفروض لمنع أدواتهم من الظهور وهي تولد أشياء لا معنى لها. لذا، إذا كنت فضوليًا، فإن الطريقة التي تعمل بها هذه الرسوم المتحركة في الواقع هي أنني آخذ الـ 20 رمزًا التاليًا الأكثر احتمالية التي ينشئها GPT-3، والذي يبدو أنه الحد الأقصى الذي سيعطونه لي، ثم أقوم بتعديل الاحتمالات بناءً على على الأس 15. كمصطلح آخر، بنفس الطريقة التي يمكنك من خلالها تسمية مكونات مخرجات هذه الدالة بالاحتمالات، غالبًا ما يشير الأشخاص إلى المدخلات على أنها سجلات، أو يقول بعض الأشخاص سجلات، ويقول بعض الأشخاص سجلات، سأقول سجلات . على سبيل المثال، عندما تقوم بتغذية بعض النصوص، فإن كل هذه الكلمات المضمنة تتدفق عبر الشبكة، وتقوم بإجراء هذا الضرب النهائي باستخدام مصفوفة إلغاء التضمين، وسيشير الأشخاص الذين يتعلمون الآلة إلى المكونات الموجودة في هذا الناتج الأولي غير الطبيعي باسم اللوجيستات للتنبؤ بالكلمة التالية. كان الكثير من الهدف في هذا الفصل هو وضع الأسس لفهم آلية الانتباه، أسلوب طفل الكاراتيه الشمع على الشمع. كما ترى، إذا كان لديك حدس قوي لتضمين الكلمات، ولسوفت ماكس، لكيفية قياس المنتجات النقطية للتشابه، وكذلك الفرضية الأساسية التي مفادها أن معظم الحسابات يجب أن تبدو مثل ضرب المصفوفات بمصفوفات مليئة بالمعلمات القابلة للضبط، ثم فهم الاهتمام يجب أن تكون هذه الآلية، وهي حجر الزاوية في الطفرة الحديثة في الذكاء الاصطناعي، سلسة نسبيًا. لذلك، تعال وانضم إلي في الفصل التالي. بينما أنشر هذا، تتوفر مسودة الفصل التالي للمراجعة من قبل مؤيدي Patreon. من المفترض أن يتم نشر النسخة النهائية للعامة خلال أسبوع أو أسبوعين، ويعتمد ذلك عادةً على مقدار التغيير الذي سأقوم به في نهاية المطاف بناءً على تلك المراجعة. في هذه الأثناء، إذا كنت تريد التعمق في الاهتمام، وإذا كنت تريد مساعدة القناة قليلاً، فهي تنتظرك.