التصنيفات
البومات الصور
فيديوهات
الهاشتاجات
لايوجد بيانات لعرضها
روابط ذات صله
Posted in أخبار لغات البرمجة وأطر العمل, مقالات برمجية وتقنية on يونيو 02, 2024
البرمجة باستخدام الذكاء الاصطناعي: نصائح وأفضل الممارسات من المطورين
استحوذ الذكاء الاصطناعي التوليدي على الخيال الشعبي وبدأ اندفاعًا جديدًا نحو الذهب التكنولوجي. في حين تم تركيز الكثير من الاهتمام على أدوات الذكاء الاصطناعي التي تنتج النثر باللغة الطبيعية والفنون البصرية، فإن الذكاء الاصطناعي يكتسب اهتمامًا متزايدًا في دوائر التكنولوجيا بقدراته على البرمجة. يمكنك وصف البرنامج الذي تريده لبرنامج الدردشة الآلي الذي يعمل بالذكاء الاصطناعي، وسيقوم بإرجاع رمز قابل للتنفيذ إليك في غضون ثوانٍ، وهو أمر يثير فضول المبرمج العادي ويثير أعصابه.
لقد أدى احتمال البرمجة المعتمدة على الذكاء الاصطناعي إلى بعض التنبؤات الفخمة إلى حد ما حول مستقبل صناعة البرمجيات، لا سيما من المديرين التنفيذيين والمستشارين والنقاد الذين يتابعونهم. ولكن ماذا عن المبرمجين والمديرين الذين يعملون باستخدام أدوات الذكاء الاصطناعي بشكل يومي؟ لقد سألنا مجموعة من الأشخاص الذين يبرمجون باستخدام الذكاء الاصطناعي التوليدي عن كيفية نجاحهم حتى الآن. ما تعلمناه هو أن الذكاء الاصطناعي يغير بالفعل الطريقة التي يعمل بها الناس، لكن الآلات ليست على وشك أن تحل محل المبرمجين البشريين في أي وقت قريب.
كيف يساعد الذكاء الاصطناعي المبرمجين
إن أداتي الذكاء الاصطناعي الأكثر استخدامًا من قبل المطورين الذين تحدثنا إليهم هما ChatGPT — برنامج الدردشة الآلي المعروف على نطاق واسع من OpenAI — و GitHub Copilot ، الذي يتكامل مع Visual Studio وبيئات التطوير المتكاملة (IDEs) الأخرى. في حين أن كلا الأداتين يمكنهما إنشاء تعليمات برمجية بناءً على استعلامات اللغة الطبيعية، فإن برنامج Copilot وخليفته التجريبي، Copilot X ، يمكن أن يخطو خطوة واحدة إلى ما هو أبعد من نموذج المحادثة، حيث يعملان كنوع من أداة الإكمال التلقائي IDE المعززة التي تتوقع ما يعمل عليه المطور على.
تقول فانيسا فرويدنبرغ، المؤسس المشارك ورئيس المهندسين المعماريين في Croquet.io، إنها تستخدم GitHub Copilot في ترميزها اليومي باستخدام Visual Studio Code . وهي تشرح كيف يعمل.
إذا كتبت السطر:
;let x = this.leftMargin + this.width / 2
سيقترح تلقائيًا السطر التالي:
;let y = this.topMargin + this.height / 2
وهي تعلم أنها بحاجة إلى استبدال "العرض" و"اليسار" بـ "الارتفاع" و"الأعلى". وهذا يوفر لي الكثير من الكتابة.
يقول بانيكوس نيوفيتو، المؤسس المشارك والرئيس التنفيذي للتكنولوجيا في NetBeez، إنه يستخدم Copilot X وChatGPT في أي وقت يقوم فيه بالبرمجة. وهو يصف طريقتين مختلفتين لتجاوز الإكمال التلقائي باستخدام هذه الأدوات. الأول منهجي. يقول: "وصف وظيفة محددة جيدًا بمدخلات محددة، وأمثلة للمخرجات المتوقعة، بالإضافة إلى نماذج البيانات المعنية، والتي تتضمن جداول قاعدة بيانات ذات ارتباطات ضمنية". "يمكن للذكاء الاصطناعي عمومًا استنتاج الارتباطات. واطلب منه تنفيذها بلغة محددة وطرق محددة. وينبغي تعريف "المهام" المحددة في أدوات إدارة المشروع على أنها هذا النوع من المطالبات."
ويعتقد نيوفيتو أيضًا أن الأسلوب غير الرسمي والمحادثة يمكن أن يؤدي إلى نتائج جيدة. في هذا الوضع، يقول: "أثناء قيامك بمهمة ما، فإنك تطرح أسئلة تخطر في ذهنك حول كيفية القيام بأشياء معينة. وهذا يشبه وجود مهندس متمرس بجانبك يجيب على أسئلتك ويرشدك نحو إنهاء المهمة".
بغض النظر عن التقنية التي تستخدمها، فإن تعلم كيفية تحفيز الذكاء الاصطناعي بشكل صحيح يعد بمثابة فن. تقول شانيا ليفين، المؤسس والرئيس التنفيذي لموفر البرمجيات CodeSee: "أستخدم التحفيز المتسلسل للأفكار لضمان حصولي على الفعل الصحيح لبدء وتحسين الحث". "إن اختيار الأفعال الصحيحة والوصف أمر مهم حقًا لإنشاء موجه جيد." ( أصبحت الهندسة السريعة مجالًا ساخنًا لهذا السبب بالذات.)
نقاط قوة ترميز الذكاء الاصطناعي
قدم المطورون الذين تحدثنا إليهم مجموعة متنوعة من حالات الاستخدام حيث ساعدتهم أدوات الذكاء الاصطناعي في إنجاز عملهم.
توليد الوثائق من التعليمات البرمجية
يعد توثيق البرامج تنسيقًا منظمًا إلى حد ما، وهو مجال يزدهر فيه الذكاء الاصطناعي. يقول كريس لوف، مؤسس شركة استشارات الويب Love2Dev: "الشيء الذي أحب استخدام ChatGPT من أجله هو كتابة الوثائق [أو] التعليقات في الكود الخاص بي". "يستغرق تنفيذ ذلك يدويًا الكثير من الوقت. ولكن بمجرد اكتمال إحدى الوظائف، يمكنني أن أعطيها الوظيفة وأحصل على صفحة رائعة من الوثائق مكتوبة في ثانية أو ثانيتين. أنا أحب ذلك!"
توليد التعليمات البرمجية من الوثائق
يمكن للذكاء الاصطناعي أيضًا إنشاء تعليمات برمجية بناءً على التعليقات أو الوثائق. قدم فرويدنبرغ من Croquet.io مثالاً بسيطًا على قيام Copilot بإنشاء تعليمات برمجية من سطر تعليق واحد فقط، حيث التعليق التالي:
get file name from our url //
أنتجت هذا الإخراج:
let filename = window.location.pathname.split("/").pop();
وتقول: "ربما كنت سأكتب هذا بشكل مختلف، فأنا فتاة من عشاق التعبيرات العادية، ولكنه حل بسيط تمامًا ويمكن القول إنه أكثر قابلية للقراءة، لذا سأقبله". "إنها لا توفر الكثير من الوقت فحسب، بل إنها تعلمني أحيانًا مصطلحات ربما لم أكتشفها بنفسي."
حلول للمشاكل التي تم حلها
يعرف المطورون أن جزءًا من البرمجة هو إعادة اختراع العجلة باستمرار. قد يكون من المحبط العمل على مشكلة تعرف أن شخصًا ما، في مكان ما، قد حلها بالفعل. ويرى جيف ويلز، قائد الممارسة الهندسية في شركة تطوير البرمجيات Rise8، أن هذا مجال جاهز لمساعدة الذكاء الاصطناعي. ويشرح قائلاً: "لنفترض أنني قمت بإنشاء طريقة لحساب المسافة بين نقطتين على الكرة". "سوف يخرج مساعد الطيار تلقائيًا ويجد خوارزمية Haversine ويولد كل هذا الرمز."
يجد Wills أن حالة الاستخدام هذه مفيدة بشكل خاص في الحالات التي يكون فيها البديل للتعليمات البرمجية التي ينشئها الذكاء الاصطناعي هو إضافة مكتبة كبيرة إلى تطبيقه. يشرح قائلاً: "لنفترض أنني لا أرغب في جلب مكتبة هندسية كاملة إلى الكود الخاص بي وتضخيم قاعدة التعليمات البرمجية". "أنا حقًا بحاجة إلى تلك الخوارزمية الواحدة فقط. ربما سأكتبها بنفسي وأدرجها - أو أستخدم ChatGPT أو Copilot لمساعدتي في إنتاج ذلك. هذا هو الخبز والزبدة للذكاء الاصطناعي في الوقت الحالي."
تحديث أو تنظيف التعليمات البرمجية
يجد Chris Love من Love2Dev أن ChatGPT مفيد بشكل خاص لتحديث التعليمات البرمجية التي كتبها بالفعل. يقول : "لقد قمت بمعالجة تحديث وحدات Node.js القديمة التي لم أقم بتحديثها لمجرد أن الوقت الذي تستغرقه كتابة الكود أطول مما يستحق". "الموقف الأكثر شيوعًا الذي أبحث عنه هو تحويل الوظائف القديمة المستندة إلى الوعد لاستخدام async/await. وهذا الأخير عبارة عن بناء جملة أكثر نظافة، ولكنه لم يكن شائعًا عندما كتبت الوحدة. كما أنني أتمكن من استخدام تركيبات أكثر حداثة مثل التدمير وتحويل إعلانات المتغيرات من var إلى const وlet."
ترميز أسرع (ربما)
قال العديد من المطورين الذين تحدثنا إليهم إن العمل مع Copilot أو ChatGPT جعلهم يشعرون أنه يمكنهم القيام بعملهم بسرعة أكبر، على الرغم من اعترافهم بأنهم لا يستطيعون بالضرورة تحديد ذلك. يقول لوف: "أعتقد أن ما يفعله في النهاية هو مساعدتي في كتابة تعليمات برمجية أفضل بشكل أسرع قليلاً". "من الصعب أن أقول ما هو أسرع في المئة، لكنه ملموس بالنسبة لي."
يقول Wills من Rise8: "أشعر أنني أستطيع تكرار الحلول الممكنة بشكل أسرع". "من المفترض أن يسرّعني ذلك من الناحية النظرية - ولكن ربما أبحث عن المزيد من الحلول الممكنة! لذلك ربما لا أحصل على المكافأة في الوقت المناسب، ولكن في الجودة، لأنني كنت قادرًا على التكرار أكثر قليلاً."
ماذا عليي ان حترص
من ناحية أخرى، أكد كل من تحدثنا إليهم تقريبًا أن أدوات الذكاء الاصطناعي ليست سحرية وأن هناك الكثير من المخاطر التي يجب البحث عنها والتحقق من الواقع الذي قد تواجهه عند استخدامها.
كن محددًا جدًا
يمكن أن تبدو مرافق اللغة الطبيعية الخاصة بروبوتات الدردشة المدعمة بالذكاء الاصطناعي سحرية تقريبًا، لكنها ربما لا تفهم القدر الذي قد تعتقده (أو تأمل). يجب أن تكون واضحًا ومحددًا قدر الإمكان للحصول على أفضل النتائج. يقول ليام إدواردز، الرئيس التنفيذي لمواقع Liam الاحترافية: "في الوقت الحالي، لا يستطيع ChatGPT رؤية ما تقوم بتشفيره في تطبيقات الطرف الثالث التي تستخدمها". "لهذا السبب، تحتاج إلى إعطائه أكبر قدر من المعلومات حول مشكلة الترميز أو الاستعلام الذي لديك. على سبيل المثال، إذا قلت، "اكتب لي CSS مخصصًا يجعل خلفية الزر بيضاء"، فسأحصل على تعليمات برمجية قد تعمل أو ربما لا، إذا قلت، "اكتب لي كود CSS مخصصًا يجعل خلفية الزر بيضاء (فئة الزر هي .button)"، فسأحصل على استجابة أكثر دقة لموقفي."
""ستأتي المزيد من القيمة عندما يكون من الممكن طرح أسئلة حول قاعدة التعليمات البرمجية الخاصة بالشركة ثم مطالبة الذكاء الاصطناعي بأداء المهمة الفعلية نيابةً عنك. وهذا من شأنه أن يجعل الذكاء الاصطناعي يغير قواعد اللعبة حقًا.""
بالنسبة لإدواردز، يمثل هذا نقطة مهمة أخرى حول استخدام هذه الأدوات: يجب أن تكون لديك خبرة ومعرفة في البرمجة لتحقيق أقصى استفادة منها. ويقول إن مثاله "يوضح كيف أن الشخص الذي لا يجيد البرمجة سيستغرق وقتًا أطول ويحصل على إجابات أقل دقة".
أجعلها سهلة وبسيطة
يقول بيتر سوروفسكي، الرئيس التنفيذي للتكنولوجيا في وكالة تصميم وتطوير الويب Brain Jar، إنه يستخدم الذكاء الاصطناعي عندما يكتب التعليمات البرمجية، "لكنه مفيد فقط للمهام الصغيرة، تلك التي تستخدم Google عادةً للقيام بها. على سبيل المثال، إذا كنت بحاجة إلى بعض القواعد النموذجية إذا كنت لا تستطيع تذكر كيفية كتابة بيان تبديل أو دالة ثلاثية بأي لغة، فيمكنك أن تطلب من ChatGPT أي شيء أكثر تعقيدًا أعتقد أن الأشخاص الذين كانوا يقولون إن الأمر سيأخذ وظائفهم كانوا سخيفين".
CodeSee:
"في الوقت الحالي، يعد ChatGPT جيدًا في استجابات التعليمات البرمجية العامة ولكنه ليس بالضرورة رائعًا في إنشاء التعليمات البرمجية الخاصة بالمجال والسقالات والإكمال التلقائي. إنه رائع في البحث ولكنه في نفس الوقت محدود في الغالب بسبب السياق الصغير مقاس."
ومع ذلك، تقول: "أتوقع أن يتحسن هذا الأمر بمرور الوقت. وستأتي المزيد من القيمة عندما يكون من الممكن طرح أسئلة حول قاعدة التعليمات البرمجية الخاصة بشركة ما ثم مطالبة الذكاء الاصطناعي بأداء المهمة الفعلية نيابةً عنك. وهذا سيجعل الذكاء الاصطناعي يغير قواعد اللعبة حقًا ".
الاختبار أمر لا بد منه
انتقلت معظم متاجر البرمجيات إلى نظام تطوير حيث يحتاج الكود إلى اجتياز مجموعة اختبارات آلية واسعة النطاق قبل أن يدخل مرحلة الإنتاج. الكود الذي تم إنشاؤه بواسطة الذكاء الاصطناعي ليس استثناءً. وفي حين أن هذا قد لا يكون عيبًا، في حد ذاته، إلا أنه قد يكون بمثابة خيبة أمل لأولئك الذين لديهم رؤية غير واقعية لما يمكن أن تحققه التكنولوجيا. يقول Love2Dev: "يجب أن أراجع كل شيء وأختبره بالطبع". "هناك عدد كبير جدًا من المطورين الذين أخذوا تاريخيًا ما هو موجود في Stack Overflow وقبلوه باعتباره الإجابة الصحيحة؛ وأنا متأكد من أن الشيء نفسه يحدث مع ChatGPT."
القليل من الترتيب ضروري
لم يخبرنا أحد تقريبًا أنهم كانوا يقومون بقص ولصق التعليمات البرمجية التي تم إنشاؤها بواسطة الذكاء الاصطناعي دون تعديل. يقول نيوفيتو من NetBeez: "بشكل عام، يتعين عليك التأكد من صحة التعليمات البرمجية المنتجة واختبارها". "في معظم الأوقات، تحتاج إلى تحسين قليلًا - وليس إعادة كتابتها بشكل كبير. ولكن في بعض الحالات النادرة، تكون التعليمات البرمجية التي تنتجها هي بالضبط ما تحتاجه، وتكون تلك الأوقات مذهلة ومجزية للغاية (وعلى مستوى نفس الوقت مخيف)."
يقول Wills من Rise8: "عادةً ما سيتعين عليهم العمل على بعض عناصر دليل الأسلوب لجعله مطابقًا لقاعدة التعليمات البرمجية". يتضمن هذا العمل "إعادة تسمية الأساليب، وتغيير التنسيق قليلاً، والحفاظ على كل شيء نظيفًا ومتسقًا - مثل قاعدة التعليمات البرمجية التي كتبها شخص واحد."
ضع الأمان في الاعتبار
إن أي تقنية جديدة يتم استخدامها لكتابة التعليمات البرمجية ستؤدي حتمًا إلى فتح سطح هجوم أمام الجهات الفاعلة الخبيثة بطرق يصعب توقعها، والذكاء الاصطناعي التوليدي ليس استثناءً. وفي مثال حديث، وجد الباحثون الأمنيون أن هلوسة ChatGPT يمكن أن تتضمن npmحزمًا غير موجودة، وأنه من المحتمل أن يتمكن المهاجم من التنبؤ بأسماء هذه الحزم ، وإنشائها، وملئها برموز برمجية ضارة.
يقول سوريا سانشيز، مؤسس DeepIdea Lab، الذي يستخدم الذكاء الاصطناعي على نطاق واسع كجزء من سير عمله، إن طريقة مكافحة مثل هذه الهجمات هي "تشغيل التعليمات البرمجية محليًا، وتحديد الأخطاء، وفهم أن التعليمات البرمجية التي ينشئها الذكاء الاصطناعي تشير إلى كائنات غير موجودة". في تلك المواقف، نقوم بإعادة كتابة التعليمات البرمجية يدويًا، وتوفير تعليمات أكثر وضوحًا للتركيز على أقسام معينة بدلاً من التعليمات البرمجية بأكملها." ينصح سانشيز أيضًا "بتجنب مشاركة الأسرار أو مفاتيح واجهة برمجة التطبيقات، حيث يمكن مراجعة الذكاء الاصطناعي من قبل أطراف ثالثة. نريد التأكد من أن المعلومات الحساسة المتعلقة بالإنتاج تظل آمنة."
في بعض النواحي، تعمل القيود الحالية للذكاء الاصطناعي كميزة أمنية مدمجة، على الأقل في الوقت الحالي. يقول لوف: "إن قيود حجم الرمز المميز أو حجم المطالبة/الاستجابة تمنحك نوعًا ما حماية ضد التعليمات البرمجية الضارة في رأيي". "إنه يجبرك على مراجعة كل شيء في أجزاء صغيرة."
أدوات الذكاء الاصطناعي في المدارس وفي العمل
بصفته مدرسًا يعمل مع طلاب برمجة الكمبيوتر في جامعة أمستردام، يتمتع ماكس فان دير بروك بمنظور فريد إلى حد ما حول كيفية تفكير المبرمجين الصاعدين في الذكاء الاصطناعي. وقد أجرى مؤخرًا استطلاعًا وجد أن أكثر من نصف الطلاب في برنامجه كانوا يستخدمون ChatGPT للبرمجة. (هذه نسبة أعلى من أولئك الذين يستخدمونها في كتابة المهام). إحدى النتائج المثيرة للاهتمام من الاستطلاع هي أن الطلاب يريدون إرشادات لاستخدام ChatGPT ويجدون أن السياسة الحالية غير واضحة وصارمة للغاية: إنهم يريدون السماح ببعض الاستخدامات، لكن ليس كل. يقول فان دير بروك: "أستطيع أن أتخيل مستقبلًا يكون فيه استخدام الذكاء الاصطناعي التوليدي أمرًا غير قانوني في عامك الأول عندما تتعلم الأساسيات، ويُسمح به كمساعد طيار في سنوات لاحقة عندما تنشئ مشاريع أكبر وأكثر تعقيدًا". ومن المؤكد أن أفضل الممارسات التي لدينا الآن ستصبح قديمة في العام المقبل."
سيرغب المطورون في مكان العمل أيضًا في معرفة كيف ومتى يمكنهم استخدام الذكاء الاصطناعي في العمل، لذلك من الضروري أن يبدأ المديرون في اكتشاف القواعد - لأنه في جميع الاحتمالات، بعضهم يفعل ذلك بالفعل. في Rise8، يقول ويلز إن استخدام الذكاء الاصطناعي كان ظاهرة من أعلى إلى أسفل ومن أسفل إلى أعلى. يقول ويلز: "كان مؤسسنا بريان كروجر مهتمًا للغاية". "إنه يحب أن يظل مطلعًا على أحدث التقنيات، لذلك كان يطرح أسئلة في قنواتنا الهندسية ليجعلنا نفكر في الأمر. ولكن في الوقت نفسه كان لدينا أشخاص، عندما انفجر ChatGPT بالفعل، كانوا موجودين على الفور مثل المتبنون الأوائل وبدأوا في استخدام هذا المورد لمعرفة ما كان ينتجه وكيف يمكنهم دمجه في سير عملهم اليومي."
يقول Wills أيضًا أن Rise8 قد خصصت أموالًا في الميزانية يمكن للمطورين استخدامها لدفع ثمن الأدوات التي يجدونها مفيدة. وقد اختار الكثيرون الدفع مقابل الوصول إلى ChatGPT-4، الذي يقول إنه يحقق نتائج أفضل من ChatGPT-3.5 المجاني.
ماذا يحمل المستقبل؟
أحد أكبر المخاوف التي أثارها الذكاء الاصطناعي التوليدي هو أنه سيقضي على عشرات الوظائف البشرية التي بدت آمنة من الأتمتة، ومن بينها البرمجة. في حين أنه من المستحيل أن نقول ما يخبئه المستقبل، إلا أن المطورين والمديرين الذين تحدثنا إليهم كانوا متشككين في الغالب. يقول سوروفسكي من Brain Jar: "يمكنه كتابة أجزاء من التعليمات البرمجية، وهذا مثير للإعجاب للغاية". "لكنه لا يستطيع تنفيذه، أو تحويله إلى مكون إضافي، أو اختباره، أو إصلاح المشكلات. هذا ما يفعله المطور. نحن لسنا مجرد كتاب أكواد برمجية. في الواقع، هذا جزء صغير إلى حد ما من عملنا. وهو الجزء الوحيد الذي يمكن أن يساعد فيه الذكاء الاصطناعي."
بشكل عام، يوافق ليفين من CodeSee على ذلك. وتقول: "أعتقد أنه ستكون هناك شركات تختار تقليل حجم فرقها الهندسية، لكن الشركات ذات التفكير المستقبلي والأفضل في فئتها لن تفعل ذلك. ستحتفظ بمكانتها لتتفوق على منافسيها". وستظل الشركات التي تفعل ذلك بحاجة إلى مطورين جيدين لأن الحقيقة هي أن الذكاء الاصطناعي لا يمكنه التفكير أو تقييم المقايضات أو التعامل مع أي شيء غير خطي أو معقد حتى الآن - لذا فإن مساعدته محدودة في الوقت الحالي إلا إذا كنت أنت. "نحن نبني شيئًا بسيطًا، لقد رأينا أفضل النتائج من عدد من الشركات التي تستخدم البشر والذكاء الاصطناعي معًا."