ChatGPT أم Bard: أيهما أفضل في البرمجة؟

بالنسبة للمبرمجين، يقدم الذكاء الاصطناعي التوليدي فوائد ملموسة.

 فهو يساعد في كتابة التعليمات البرمجية وتصحيح الأخطاء، مما يجعل حياتنا المزدحمة أسهل قليلاً نتيجة لذلك. ولكن هناك الآن أدوات منافسة مثل ChatGPT و Bard ، الأمر الذي يطرح السؤال: أيهما أفضل بالنسبة لي لاستخدامه؟

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

ChatGPT وBard: ما الفرق؟

الفرق الأكبر بين ChatGPT وBard هو نماذج اللغات الكبيرة (LLMs) التي يتم تشغيلها بواسطتها. يستخدم ChatGPT المحول التوليدي المدرب مسبقًا 4 (GPT-4)، بينما يستخدم Bard نموذج اللغة لتطبيقات الحوار ( LaMBDA ).

 أيضًا، تم تطوير ChatGPT بواسطة OpenAI، بينما تم إنشاء Bard بواسطة Google.

من حيث القدرات، كلاهما يفعلان أشياء متشابهة جدًا. يمكن للمبرمجين استخدام ChatGPT من أجل:

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

تم تدريب كلا النموذجين على مجموعة بيانات ضخمة، بما في ذلك Common Crawl وWikipedia والكتب والمقالات والمستندات والمحتوى المستخرج من الإنترنت.

 ومع ذلك، يختلف Bard قليلًا من حيث أنه تم تدريبه على المحادثات والحوارات من الويب، بينما تم تدريب ChatGPT في الغالب على محتوى عام مسروق.

كلا المنتجين لا يزالان قيد التطوير، Bard أكثر قليلاً من ChatGPT. ولكن لإظهار مدى أهمية هذه الاختلافات فعليًا من الناحية العملية، إليك كيفية عملها عند اختبارها مقابل بعضها البعض.

اختبار ChatGPT وBard ضد بعضهما البعض

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

 دعونا نستهل هذا بالقول إن هذه ليست مقارنة علمية صارمة، بل هي مجموعة من الاختبارات الممزوجة بخبرتنا العملية حتى الآن.

1. توليد الكود

الخبز والزبدة لما نريده، أليس كذلك؟ لهذا، قمنا بتغذية الموجه التالي: “اكتب دالة في لغة بايثون تُرجع قائمة مكونة من 100 عدد أولي.” 

محاولة ترميز بارد

def get_prime_numbers(n):  """Returns a list of prime numbers up to n."""  primes = []  for i in range (2, n + 1):    is_prime = True    for j in range (2, i):      if i % j == 0:        is_prime = False        break    if is_prime:      primes.append(i)  return primesdef main ():  """Prints a list of 100 prime numbers."""  primes = get_prime_numbers(100)  print(primes)if __name__ == "__main__":  main ()

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

 لذلك دعونا نختبر ذلك ونرى.

توليد الكود

محاولة ترميز ChatGPT

def generate_primes(n):    primes = []    sieve = [True] * (n + 1)    for current in range (2, n + 1):        if sieve[current]! = 0:            primes.append(current)            for multiple in range (current, n + 1, current):                sieve[multiple] = False    return primes# Generate first 100 prime numbers# The 100th prime number is 541, so we set the limit to 550 to make sure we get at least 100 primesprimes_100 = generate_primes(550) [:100]print(primes_100)

عندما نقوم بتشغيل نفس الموجه بواسطة ChatGPT، يحدد هذا الكود دالة generator_primes(n) التي تأخذ عددًا صحيحًا n كمدخل وترجع قائمة بجميع الأعداد الأولية حتى n. 

ويستخدم خوارزمية غربال إراتوستينس لتوليد الأعداد الأولية.

كلاهما أنتج نتيجة وظيفية. يعتبر مثال ChatGPT أفضل في هذه الحالة، لأنه أكثر نظافة ويحتوي على تعليمات برمجية أقل بكثير.

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

 لذلك دعونا نرى كيف يتعامل Bard وChatGPT مع حالات الاستخدام المختلفة.

الفائز: ChatGPT 🏆

2. حل المشكلات

دعونا نرى كيف يتعامل هؤلاء LLM مع المشكلة. بدلًا من مجرد مطالبتهم بكتابة دالة عامة، فلنطرح عليهم مشكلة برمجية من Leetcode :

اكتب كود JavaScript الذي يعمل على تحسين جميع المصفوفات بحيث يمكنك استدعاء الأسلوب array.last() على أي مصفوفة وسيقوم بإرجاع العنصر الأخير. إذا لم تكن هناك عناصر في المصفوفة، فيجب أن ترجع -1.

حل مشكلة ChatGPT

Here's how you would do it in JavaScript:Array.prototype.last = function () {  if (this.length === 0) {    return -1;  } else {    return this [this.length - 1];  }};In this code:Array.prototype.last adds a new method called last to the Array.prototype object. This ensures that all arrays will have this method.this refers to the array object on which the last method is being called.this.length gives the number of elements in the array.If the array is empty (this.length === 0), the method returns -1.Otherwise, the method returns the last element of the array: this [this.length - 1].Here is how you would use it:let array = [1, 2, 3, 4, 5];console.log(array.last()); // prints: 5array = [];console.log(array.last()); // prints: -1Remember that extending built-in JavaScript objects like Array is generally not recommended, as it can lead to conflicts if the JavaScript environment (like a browser or Node.js) adds a method with the same name. This is generally called monkey patching and is usually avoided in production-grade code. But for quick and dirty hacks, or to understand how JavaScript works, it's a fun tool to use!

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

حل مشكلة ChatGPT

يبدو أن ChatGPT قد حل المشكلة من المحاولة الأولى! حان الوقت الآن لكي يصعد بارد إلى اللوحة.

حل مشكلة بارد

Sure, here is the JavaScript code that enhances all arrays such that you can call the array.last() method on any array and it will return the last element. If there are no elements in the array, it should return -1:// Define a new method on the Array prototypeArray.prototype.last = function () {  // If the array is empty, return -1  if (this.length === 0) {    return -1;  }  // Otherwise, return the last element  return this [this.length - 1];};Here is an example of how to use the array.last() method:const array = [1, 2, 3, 4, 5];// Get the last element of the arrayconst lastElement = array.last();// Print the last element of the arrayconsole.log(lastElement); // 5

حسنًا، لم نحصل على شرح شامل من Bard حول كيفية عمل الكود. ومع ذلك، فهو متطابق تقريبًا عند مقارنة ما أنتجه ChatGPT وBard. هل كانوا ينظرون إلى واجبات بعضهم البعض؟

حل مشكلة ChatGPT

بطبيعة الحال، لا يمكننا أن نأخذ كلام بارد على محمل الجد، لذلك قمنا بإجراء الاختبار من خلال Leetcode، و.

حل مشكلة ChatGPT

… إنها تعمل! وهو أمر متوقع، نظرًا لأن الإجابة كانت مطابقة تقريبًا لإجابة ChatGPT.

عندما يتعلق الأمر بحل المشكلات، يكون الأمر صعبًا بين الاثنين.

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

 كانت هذه هي تجربتنا الشاملة في استخدام ChatGPT: لن تحصل على حل محتمل لمشكلتك فحسب، بل سيرشدك ChatGPT إلى المزيد من التفاصيل.

الفائز:  ChatGPT 🏆

3. كود إعادة البناء

لنفترض أنك تريد العثور على طريقة أفضل للقيام بشيء ما. 

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

لذلك دعونا نرى كيف يفعل ذلك! وإليك العينة التي قدمناها.

What is a more optimized way to write this code?Array.prototype.last = function () {  if (this.length === 0) {    return -1;  } else {    return this [this.length - 1];  }};

محاولة إعادة هيكلة ChatGPT

محاولة إعادة هيكلة ChatGPT

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

محاولة إعادة هيكلة بارد

محاولة إعادة هيكلة بارد

رائع! الفرق بين ChatGPT وBard يشبه الطباشير والجبن: من الواضح أن Bard قد تجاوز الحدود. فهو لا يقدم تعليمات برمجية محسنة فحسب، بل يعرض تعليمات برمجية لإنشاء معيار مرجعي، ويعرض نتائج معيارية.

بشكل عام، وجدنا أن Bard أفضل قليلاً في إعادة البناء.

 من المحتمل أن يكون جزء من هذا لأن Bard يستخدم معلومات محرك البحث بالإضافة إلى كونه نموذج لغة كبير (LLM)، في حين أن ChatGPT هو حاليًا مجرد LLM. 

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

لكن في الوقت الحالي، علينا أن نمنح الفوز لبارد.

الفائز: بارد 🏆

4. المساعدة في تصحيح الأخطاء

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

تعرف على ما إذا كان بإمكانك اكتشافه قبل قيام ChatGPT وBard بذلك! إليك المطالبة التي استخدمناها: قم بتصحيح التعليمات البرمجية التالية التي تحتوي على خطأ. توفير التعليمات البرمجية التي تعمل على إصلاح الأخطاء المحتملة به.

def calculate_average(numbers):    total = 0    for number in numbers:        total += number    average = total / len(numbers)    return average

محاولة تصحيح أخطاء ChatGPT

حسنًا، لقد أعاد لنا ChatGPT ردًا يفيد بأننا بحاجة إلى إضافة بعض المنطق لمنع حدوث خطأ “ZeroDivision”. فهو يوفر خيارًا للقيام بذلك ويشرح المشكلة. الآن حان دور بارد.

محاولة تصحيح الأخطاء التي قام بها Bard

محاولة تصحيح الأخطاء التي قام بها Bard

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

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

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

الفائز:  بارد 🏆

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

من خلال ربط مكون إضافي لجهة خارجية بـ LLM، يمكننا توسيع قدراتهم ببعض الطرق البرية، مما يسمح لهم بتشغيل التعليمات البرمجية في محادثة الدردشة أو التكامل مع تطبيقات مثل Zapier. 

تقدم ChatGPT أكثر من 80 مكونًا إضافيًا لمشتركيها المميزين كميزة تجريبية في الوقت الحالي.

للتعرف على بعض هذه العناصر، راجع مقالتنا: ” أفضل مكونات ChatGPT الإضافية للمطورين. ” فيما يلي مثال لمتجر المكونات الإضافية لـ ChatGPT الآن:

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

وإليك مثال على متجر المكونات الإضافية الخاص بـ Bard:

…حسنًا، لا أستطيع أن أعرض عليك أي شيء، لأنه غير موجود! ويشاع أنه موجود على خارطة الطريق، لكن لا يوجد إطار زمني حتى الآن.

إذا كنت لا ترغب في استخدام واجهة الويب، فإن كلاً من ChatGPT وBard يقدمان واجهة برمجة التطبيقات (API).

ومع ذلك، لا تزال واجهة برمجة تطبيقات Bard مقتصرة على الدعوة فقط، لذلك لم نتمكن من اختبارها. ومع ذلك، فإن واجهة برمجة تطبيقات ChatGPT شاملة وكاملة للغاية.

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

بالنسبة لهذا، علينا أن نعطي النقطة إلى ChatGPT، نظرًا لعدم امتلاك Bard للميزات بعد، أو لإخفائها خلف قائمة الدعوات.

الفائز:  ChatGPT 🏆

6. سهولة الاستخدام

حسنًا، مقدمًا، كل من ChatGPT وBard سهل الاستخدام للغاية. كلاهما لهما واجهة ويب حيث يمكنك إدخال مطالبة والحصول على رد.

واضحة إلى حد ما، أليس كذلك؟ كلاهما أيضًا لديهما “محادثات” حيث يمكنهم الاحتفاظ بالسياق. ومع ذلك، هناك اختلافات بين الاثنين.

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

سهولة الاستخدام

بالمقارنة، لا يسمح لك Bard بتخزين محادثاتك السابقة والوصول إليها. يمكنك الوصول إلى السجل الخاص بك والبحث عما بحثت عنه، ولكن لا يمكنك النقر فوق محادثة وإعادة تشغيلها كما تفعل مع ChatGPT.

 يمكنك فقط رؤية ما كتبته للمطالبة. علاوة على ذلك، فإن Bard يحد من طول المحادثة، لذا عليك أن تبدأ من جديد إذا استمرت لفترة طويلة.

سهولة الاستخدام

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

سهولة الاستخدام

الفائز:  ChatGPT 🏆

7. التكلفة

أي أداة تحتاج إلى قسم حول تكلفة تكلفتها، أليس كذلك؟ يحتوي ChatGPT على إصدار مجاني ومميز يسمى ChatGPT Plus، بتكلفة 20 دولارًا شهريًا.

 يحصل المشتركون المميزون على إمكانية الوصول إلى ميزات البحث على الإنترنت في الوقت الفعلي، والمكونات الإضافية، وإجابات أفضل من نموذج GPT-4، وأوقات استجابة أسرع، وأولوية الوصول إلى الميزات الجديدة، والوصول خلال أوقات الذروة.

وبالمقارنة، فإن Bard مجاني لكل من لديه حق الوصول. 

يتطلب الحصول على هذا الوصول حسابًا شخصيًا على Google تديره بنفسك، أو حساب Google Workspace الذي قام مشرفك بتمكين الوصول إليه إلى Bard (وهو ما قد يكون مخيبًا للآمال بعض الشيء إذا لم يفعلوا ذلك). 

من المحتمل أن يتم تسويق Bard تجاريًا في مرحلة ما، ولكن نظرًا لأنه مجاني مقابل freemium في الوقت الحالي، فإن Bard يفوز بشكل افتراضي.

الفائز: بارد 🏆

الخلاصة: فوز ChatGPT، لكن كلتا الأداتين مفيدتان!

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

  • الإصدار الأساسي من ChatGPT هو LLM فقط، مما يعني أن المعلومات قد تكون قديمة. يستخدم Bard كلا من LLM وبيانات البحث. سوف يتغير هذا قريبًا إلى حد ما، مع تطبيق ChatGPT لميزة “البحث باستخدام Bing” في عروضه المجانية.
  • يعد ChatGPT أفضل بشكل عام لإنشاء الوثائق
  • يقوم Bard بإنشاء تفسيرات أكثر شمولاً للتعليمات البرمجية في معظم الأوقات
  • يحد Bard من طول المحادثة، بينما يحد ChatGPT فقط من الطلبات بمرور الوقت (GPT-4)

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

المصدر: pluralsight

قد يهمك:

إنشاء حساب khamsat

فتح محفظة بينانس

موقع البحث

التسجيل في موقع مستقل

إنشاء حساب Noon

إنشاء حساب edraak

إنشاء حساب Biteable

أنت تستخدم إضافة Adblock

يعتمد موقع انشاء على الاعلانات كمصدر لدعم الموقع، يجب عليك ايقاف تشغيل حاجب الاعلانات لمشاهدة المحتوي