يبدو أن البرمجة باستخدام «شات جي بي تي» ليست بالسهولة التي يظنها البعض، هذا ما اكتشفه لانس أولانوف الصحفي الذي يعمل لدى (Techradar) بعد عدة ساعات من العمل مع الذكاء الاصطناعي.

«شات جي بي تي» هو أحد تطبيقات نماذج اللغة الكبيرة، التي تقوم بتحليل كميات هائلة من البيانات النصية ومعالجتها؛ بهدف توليد النصوص وتلخيصها وتعديلها.

يتلقى هذا التطبيق أوامر (Prompts) من المستخدم، ويقوم بتوليد نصوص مناسبة ومترابطة وفق الوصف الوارد في الأمر. إذ يُستخدم «شات جي بي تي» في كتابة أمور، مثل: مستندات الأعمال، والكتب، وسيناريوهات بسيطة -وضعيفة- لفيلم ما. ويمكنه أيضًا البرمجة، ولكن يمر هنا بصعوبات وتعقيدات عدّة، خصوصًا إن كان الشخص يستخدم النسخة المجانية من منصة (OpenAI).

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

اللعبة هي نسخة معدلة من لعبة (Tic-Tac-Toe) (أو كما تُعرف أحيانًا بلعبة XO). وأطلق عليها لانس اسم (Tic-Tac-Go)، وقال إنها ستكون أصعب من اللعبة الأصلية؛ إذ إنها سوف تتكون من 12 صفًا و12 عمودًا بدلًا من 3 صفوف و3 أعمدة.

قواعد اللعبة سهلة، وقد شرحها لانس للتطبيق بأمر (Prompt) مكتوب باللغة الانجليزية. وكانت ترجمة الأمر بالعربية كما يلي: «أريد إنشاء نسخة جديدة من لعبة (Tic-Tac-Toe)، ولكن أود أن تكون أكثر تعقيدًا. وستكون الشبكة (12×12)، ويجب أن تستخدم (X) و(O) مثل اللعبة الأصلية».

«تنص القواعد أنه بإمكان أي لاعب قطع الطريق أمام اللاعب الآخر بوضع (X) أو (O) في أي مربع في الشبكة، ما دامت تقع في إحدى المربعات المجاورة للّاعب الآخر. وبإمكانه أيضًا وضع (X) أو (O) في أي مربع لقطع الطريق أمام الحركات التالية».

«الهدف هو أن يكون لدى أي لاعب صف أو عمود أو خط مائل مكون من 6 (X) أو 6 (O) قبل اللاعب الآخر. وسيستخدم أحد اللاعبين (X) وسيستخدم الآخر (O). ويجب كتابة برنامج بسيط لهذه اللعبة بلغتي (HTML) و(JavaScript)، ولنسمي هذه اللعبة (Tic-Tac-GO)».

بدأ «شات جي بي تي» بالعمل وجرى كل شيء على ما يرام في بداية الأمر. وقد أنتج الذكاء الاصطناعي ثلاثة برامج؛ أحدها بلغة (HTML)، والثاني بلغة (CSS)، والثالث بلغة (JavaScript).

لاحظ لانس أن برنامج (JavaScript) لم يكن مكتملًا، لتصبح هذه مشكلة كبيرة ومتكررة مع انقضاء الساعات. ويظن لانس أن المشكلة تكمن في الحد الأعلى غير المذكور لعدد المحارف التي قد ينتجها «شات جي بي تي» في المرة الواحدة، ويبدو أن ذلك الحد هو 4096 محرف.

عندما سأل لانس «شات جي بي تي» عن سبب قطع البرنامج المكتوب بلغة (JavaScript) قبل إنهائه، اعتذر «شات جي بي تي» وأرسل بقية النص. وكانت معاملة التطبيق عامةً مريحة وإنسانية، وقد شبّه لانس ذلك بالتعامل مع مهندس مبتدئ مساعد وجادّ في عمله. يظن لانس أن ذلك إيجابي وسلبي في آن واحد؛ لأن «شات جي بي تي» بقي في وضع «المرءوس» طوال الوقت.

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

على الرغم من خبرة لانس في البرمجة بلغات (HTML) و(CSS) لتصميم المواقع في التسعينات، فقد نسي الكثير من القواعد الخاصة بذلك، فاستعان بمساعدة «شات جي بي تي» بالطبع، الذي زوّده بالعديد من النصائح الخاصة بكيفية التعامل مع هذه الملفات، ومن ثمّ تفقد لانس أسماء الملفات الثلاثة أكثر من مرة؛ لتكون متطابقة مع الأسماء المذكورة في ملف (HTML)، وحرص على إضافة اللاحقة المناسبة في اسم كل ملف، فمثلًا: اللاحقة (.js) لملف (JavaScript). ومع ذلك، ارتكب لانس خطأ في تسمية أحد الملفات، ما أبطأ سير العمل قليلًا.

من الملفت للانتباه أن «شات جي بي تي» ساعد لانس على تفقد الأخطاء وتصحيحها (debugging) في العديد من المواقف، وهو أمر مثير للإعجاب.

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

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

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

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

كان التطبيق يعمل في بداية الأمر، ولكن سرعان ما بدأ «شات جي بي تي» بنسيان أجزاء من الأوامر في منتصف الطريق. فمثلًا، لاحظ لانس أن التطبيق بدأ قطعة برمجية بلغة معينة، ثم أكمل القطعة نفسها في الجزء التالي بلغة أخرى!

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

أدرك لانس -بالنظر إلى بعض الأجزاء- أنه لم يعد يفهم كل جزء من الكود البرمجي وكيفية ترابطهم بعضهم ببعض. إذ قدّم «شات جي بي تي» العديد من الاقتراحات، مثل إنشاء ملف جديد يعمل مثل سجل لحفظ كل التغييرات التي تطرأ في اللعبة، واقترح إنشاء حساب (GitHub) لوضع المشروع البرمجي بأكمله في مكان واحد. وللأسف، لم ينجح أي من تلك المقترحات بتحقيق هدفهم.

شعر لانس بضرورة البدء من جديد، فقرر أن يكتب أمر (Prompt) أكثر وضوحًا من سابقه. فكتب: «ما زلت أريد ما طلبت من ملفات (HTML) و(JS) و(CSS)، وكل مرة تنتج أحدها، يجب أن تدمج جميع الأجزاء ببعضها. فهل يمكنك بالترتيب أن تولّد مجموعة (HTML) مجزأة لكي لا تتجاوز حد المحارف، ثم ملف (JS) مجزأ لكي لا يتجاوز حد المحارف، ثم ملف (CSS) مجزأ لكي لا يتجاوز حد المحارف؟ بالنسبة إلى (HTML)، قم بإصدار أفضل نسخة من اللعبة. ولا تأخذ طرقًا مختصرة فيما يتعلق بالمظهر والوظائف. وتفقد الكود قبل أن تعطيني إياه؛ الكود بأكمله من فضلك. ولا تمزج الكود ولا تنسى شيئًا».

بدأ الذكاء الاصطناعي بالعمل فورًا، وولّد الأجزاء الأولى من البرنامج، ولكن سرعان ما اعترضت عقبة أخرى الطريق؛ أخذ «شات جي بي تي» يصدر رسالة خطأ (error message) بشكل متكرر بغض النظر عن التغييرات التي أجراها لانس. وقال إنه شعر حينها بأنه عطّل الذكاء الاصطناعي.

في نهاية المطاف، النسخة الأفضل من اللعبة التي استطاع «شات جي بي تي» صنعها هي لعبة بمساحة لعب رمادية عريضة تحت التعليمات ولوحة تسجيل وزر إعادة التشغيل، حتى أنه قام بتغيير اسم اللعبة إلى (Tic-Tac-Do) لسبب ما!

يقول لانس في مقاله الصحفي: «شات جي بي تي» هو أداة بقدرات عالية لكتابة الأكواد النصية، ولكنه لا يزال حتى الآن مجرد مساعد وغير قادر على توليد برنامجك الكامل باستمرار».

يضيف: «اكتشفت أيضًا في مشاريع «شات جي بي تي» أخرى أنك كلما استخدمت منتج (OpenAI) أكثر، أصبح التطبيق أكثر تشوشًا، وكأنك تنطلق مع «شات جي بي تي» في رحلة ما، ولكنه يبتعد كثيرًا عن المنزل ويضل طريقه. وإن وضعت كل ثقتك واعتمادك على «شات جي بي تي»، فسوف يقودك للضياع».

صرح لانس إنه لا يزال عازمًا على إنشاء لعبته، وسوف يقوم بالمحاولة مجددًا باستخدام (ChatGPT-4).

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

اقرأ أيضًا:

تطبيق ChatGpt للذكاء الاصطناعي يمكنه النجاح في امتحان الترخيص الطبي في الولايات المتحدة

منع تطبيق الذكاء الاصطناعي (chatGPT) من مشاركة الأبحاث والأوراق العلمية!

ترجمة: نوار الشيخ

تدقيق: منال توفيق الضللي

مراجعة: هادية أحمد زكي

المصدر