خداحافظی با ChatGPT: تأملات یک توسعه‌دهنده

رشد هوش مصنوعی (AI) بدون شک دنیای ما را متحول کرده و به ابزاری ضروری در زمینه‌های مختلف از جمله توسعه نرم‌افزار تبدیل شده است. در حالی که هوش مصنوعی مزایای متعددی را ارائه می‌دهد و به بخشی جدایی‌ناپذیر از شیوه‌های توسعه مدرن تبدیل شده است، توجه به پیامدهای بالقوه استفاده بیش از حد از آن، به ویژه برای توسعه‌دهندگان، بسیار مهم است.

این قطعه به کاوش در بازتاب‌های فلسفی من در مورد توسعه و هوش مصنوعی می‌پردازد و تأثیر عمیقی را که حضور روزافزون هوش مصنوعی می‌تواند بر چشم‌انداز توسعه‌دهنده داشته باشد، بررسی می‌کند.

جذابیت هوش مصنوعی

آیا باید هوش مصنوعی را به عنوان نیرویی شرور ببینیم که معیشت ما را تهدید می‌کند؟ من اینطور فکر نمی‌کنم.

از زمان ظهور ChatGPT 3.0، من بیش از سه سال است که مقالات مربوط به هوش مصنوعی را از نزدیک دنبال می‌کنم. این علاقه پایدار ناشی از تحولات سریع این حوزه است که هر روز تحولات و اخبار جدیدی در آن منتشر می‌شود.

قابل تصور است که هوش مصنوعی در آینده جوایز نوبل را تحت سلطه خود درآورد و جهان در حال حاضر مجذوب قابلیت‌های ChatGPT شده است.

هوش مصنوعی به طور تصاعدی در حال پیشرفت است و ظاهراً در آستانه دستیابی به هوش مصنوعی عمومی (AGI) قرار دارد. در حالی که مدل‌های زبانی بزرگ (LLM) در حال حاضر پیشتاز پیشرفت‌های هوش مصنوعی هستند، ظهور هوش مصنوعی مولد از الگویی پیروی می‌کند که در پیشرفت‌های قبلی در یادگیری ماشین (ML) و یادگیری عمیق (DL) مشاهده شد، که پتانسیل عظیمی را در پردازش تصویر و ویدئو نشان داد.

قبل از این، پذیرش گسترده اینترنت، عصر اطلاعات را به ارمغان آورد.

پیش از آن، گسترش ماشین‌آلات جرقه‌ای برای انقلاب صنعتی بود.

و خیلی قبل از آن، معرفی ابزارها منجر به انقلاب کشاورزی شد.

ضروری است که به طور انتقادی بررسی کنیم که آیا این انتقالات یکپارچه و از نظر جهانی سودمند بودند یا خیر.

(توجه: مراجع بعدی به هوش مصنوعی به طور خاص به هوش مصنوعی مولد مبتنی بر LLM اشاره دارد.)

پژواک‌های انقلاب صنعتی

انقلاب صنعتی چه میراثی برای ما به جای گذاشت؟

تولید تسریع شده کالاهای تولیدی نوآورانه، بهبود شرایط کار و ثروت فراوان.

اینها از جمله مزایای بسیاری هستند که ما امروزه به لطف انقلاب صنعتی از آنها برخورداریم. اما آیا افرادی که در آن دوران زندگی می‌کردند در این مزایا سهیم بودند؟

روی تاریک پیشرفت

آیا شرایط کار بلافاصله با معرفی ماشین‌ها بهبود یافت؟

در بسیاری از موارد، وظایفی که زمانی به قدرت بدنی قابل توجهی نیاز داشتند، به عملیات اساسی ماشین ساده شدند و منجر به جایگزینی کارگران بزرگسال با کودکان شد. کارخانه‌ها برای به حداکثر رساندن بهره‌وری به صورت شبانه‌روزی شروع به کار کردند و ثروت حاصل به طور نامتناسبی در دست صاحبان کارخانه‌ها (بورژوازی) متمرکز شد. آیا کارگران منفعلانه این وضعیت را پذیرفتند؟ نه. این امر باعث ظهور جنبش لودیت شد.

با وجود این چالش‌ها، آیا معتقدیم که معرفی ماشین‌ها در نهایت زندگی مردم را برای بهتر شدن متحول کرده است؟

من استدلال می‌کنم که پاسخ «بله» است. تغییرات به طور کلی مثبت بوده‌اند.

صبر کنید، شما تصویر منفی از انقلاب صنعتی ترسیم کرده‌اید، پس چرا ناگهان می‌گویید مثبت بوده است؟

در حالی که زندگی ما بدون شک بهبود یافته است، بسیاری از مشکلاتی که با انقلاب صنعتی مرتبط هستند ناشی از ناتوانی در پیش‌بینی و کاهش اختلالات اجتماعی ناشی از معرفی سریع ماشین‌ها بود. اگر یک شبکه ایمنی اجتماعی وجود داشت، افراد کمتری رنج می‌بردند و پیامدهای منفی به حداقل می‌رسید.

باشه، اما این چه ربطی به هوش مصنوعی دارد؟

هوش مصنوعی: انقلاب صنعتی دوم

رئیس جمهور سابق ایالات متحده دونالد ترامپ برنامه‌هایی را برای سرمایه‌گذاری 700 تریلیون وون در شرکت‌های هوش مصنوعی مانند SoftBank و OpenAI اعلام کرد.

LLM ها به مقادیر قابل توجهی انرژی نیاز دارند. شرکت‌هایی که این نیرو را تولید می‌کنند به طور پیوسته در حال رشد هستند و Nvidia، که تراشه‌های هوش مصنوعی را برای محاسبات توسعه می‌دهد، به بالاترین ارزش بازار در جهان دست یافته است.

این شرکت‌ها کجا سرمایه‌گذاری خواهند کرد؟ طبیعتاً، آنها در جایی سرمایه‌گذاری خواهند کرد که بتوانند پول درآورند.

و جهان در حال حاضر کجا سرمایه‌گذاری می‌کند؟ در هوش مصنوعی.

سودآوری هوش مصنوعی

اما سودآوری هوش مصنوعی از کجا خواهد آمد؟

هوش مصنوعی محصول تولید نمی‌کند. هوش مصنوعی کارخانه‌ها را اداره نمی‌کند.

با این حال، هوش مصنوعی می‌تواند به طور بالقوه هزینه‌های نیروی کار را برای شرکت‌ها با خودکارسازی وظایفی که در حال حاضر توسط انسان انجام می‌شود، کاهش دهد.

از منظر اقتصادی، هزینه یک کارمند واحد چقدر است؟ با فرض یک طول عمر متوسط شغلی 30 ساله (از 30 تا 60 سالگی) و میانگین حقوق سالانه 45 میلیون وون، یک شرکت به یک کارمند واحد 1.35 میلیارد وون در طول دوران حرفه‌ای خود پرداخت می‌کند.

به عبارت دیگر، یک شرکت یک کارمند واحد را با قیمت 1.35 میلیارد وون «خریداری» می‌کند. شرکتی که بیش از 300 کارمند دارد، بیش از 30 سال 400 میلیارد وون برای نیروی کار هزینه می‌کند.

آیا هنوز معتقدید که هوش مصنوعی سودآور نیست؟ آیا هنوز نمی‌توانید ببینید که چرا جهان در هوش مصنوعی سرمایه‌گذاری می‌کند؟

کاهش نیروی کار مبتنی بر هوش مصنوعی سود قابل توجهی را برای شرکت‌ها ایجاد می‌کند. این آلفا و امگا سرمایه‌گذاری هوش مصنوعی است.

محدودیت‌های هوش مصنوعی

هوش مصنوعی موفقیت 100٪ یا شکست 100٪ را تضمین نمی‌کند.

من یک بار یک مدل یادگیری عمیق برای تشخیص رانندگی خواب‌آلود را نشان دادم. در حالی که این مدل در نهایت شرایط خاصی را به عنوان “رانندگی خواب‌آلود” طبقه‌بندی کرد، ما به عنوان توسعه‌دهنده، آن را “احتمال بالای رانندگی خواب‌آلود” تعریف کردیم.

اجازه دهید تکرار کنم: هوش مصنوعی تضمین‌های موفقیت یا شکست مطلق را ارائه نمی‌دهد.

توهمات مفهومی مشابه هستند. از آنجایی که مدل‌ها استنتاج می‌کنند، می‌توانند پاسخ‌های نادرستی تولید کنند. این هم یک راه بالقوه برای توسعه هوش مصنوعی و هم یک نقطه ضعف است.

اگر مدل به اشتباه من را در حالی که خواب‌آلود نیستم شناسایی کند، مسئولیت با کیست؟

مسئولیت با ما است، تیمی که معیارهای مدل را تعریف کرده است.

هوش مصنوعی مسئولیت را نمی‌پذیرد. ما کسانی هستیم که بر اساس پاسخ‌های ارائه شده توسط هوش مصنوعی تصمیم می‌گیریم.

خب که چی؟ حالا قرار است چه کار کنیم؟ آیا این به این معنی است که هوش مصنوعی شغل‌های ما را خواهد گرفت؟

نزدیک شدن به هوش مصنوعی

بله، درست است. هوش مصنوعی قرار است شغل‌های ما را بگیرد.

جهان به شدت در حال رقابت برای استفاده از هوش مصنوعی برای گرفتن شغل‌های ما است.

من معتقدم این اجتناب‌ناپذیر است و یک “انقلاب صنعتی دوم” در راه است.

برای اطمینان از یک انتقال آرام چه کاری باید انجام دهیم؟

ما باید به هوش مصنوعی علاقه مند باشیم، از آن استفاده کنیم و هم دیدگاه مثبت و هم انتقادی را حفظ کنیم.

بسیاری از مردم ممکن است پس از جدی گرفتن این اطلاعات، از زندگی سرخورده شوند. می‌دانم که اینطور بودم.

چرا باید خودم را توسعه دهم و توسعه را مطالعه کنم اگر قرار است توسط هوش مصنوعی جایگزین شوم؟

هوش مصنوعی می‌تواند برای من کد تولید کند، پس چرا باید این کار را انجام دهم؟

در این مرحله، باید به اومانیسم توجه کنیم.

فراتر رفتن از اومانیسم

برای انتقال از یک جامعه تئوکراتیک که در آن مذهب بر ملت حکومت می‌کرد به دورانی که “پادشاهان” می‌توانستند از مذهب سوء استفاده کنند، چیزی باید از “خدا” فراتر می‌رفت. پادشاهان از مذهب استفاده می‌کردند، اما بورژوازی، که دارای ابزار تولید بودند، ابزار قابل مقایسه‌ای نداشتند. آنها شروع به ترویج این ایده کردند که خود بشریت مهم است و این منجر به ظهور “اومانیسم” شد. اومانیسم، به نوبه خود، منجر به ظهور سرمایه‌داری، کمونیسم، فاشیسم و سایر ایدئولوژی‌ها شد.

به عبارت دیگر، اومانیسم تلاشی برای رهایی از خدای یک جامعه تئوکراتیک است.

برخی که سعی کردند از این جامعه مذهبی فرار کنند، به عنوان بدعت‌گذار و جادوگر معرفی شدند و جنایتکاران وحشتناکی تلقی می‌شدند. از دیدگاه فعلی خود چگونه به آنها نگاه می‌کنیم؟ آیا نمی‌بینیم که آنها درست می‌گفتند؟

این ایده که «هوش مصنوعی بهتر از انسان است، (یا به طور محدودتر،) بهتر از من است» عملی برای فراتر رفتن از اومانیسم است.

شاید این یک روش طبیعی برای تفکر باشد. من معتقدم که ما در حال حاضر در یک دوره انتقالی هستیم که در آن توسعه هوش مصنوعی باعث می‌شود که به تدریج از اومانیسم رها شویم. این طبیعی است، اما امیدوارم بتوانیم وحشت ناشی از آن را به حداقل برسانیم.

چه کاری باید انجام دهیم؟

همانطور که در بالا ذکر شد، ما باید به سادگی به طور طبیعی از هوش مصنوعی استفاده کنیم، از آن لذت ببریم، دیدگاه انتقادی را حفظ کنیم و بالاتر از همه، کاری را انجام دهیم که می‌خواهیم انجام دهیم.

ممکن است جنبه‌های منفی در این فرآیند وجود داشته باشد. بخش‌های زیر در نهایت توضیح می‌دهند که “چرا می‌خواهم استفاده از هوش مصنوعی در توسعه را متوقف کنم.”

هوش مصنوعی در توسعه

هوش مصنوعی بدون شک بهره‌وری را افزایش می‌دهد.

زبان‌هایی که استفاده می‌کنیم زبان‌های برنامه‌نویسی هستند. همانطور که از زبان فارسی برای نوشتن این وبلاگ استفاده می‌کنیم، از زبان‌های برنامه‌نویسی برای توسعه برنامه‌ها استفاده می‌کنیم.

هوش مصنوعی مولد مبتنی بر LLM در نوشتن تخصص دارد. بنابراین، به طور طبیعی در نوشتن زبان‌های برنامه‌نویسی موثر خواهد بود. بنابراین، آیا باید از هوش مصنوعی در برنامه‌نویسی استفاده کنیم؟ مطلقا!

با این حال، اگر شما یک توسعه‌دهنده هستید که در حال «مطالعه» هستید، باید در مورد نحوه استفاده از آن فکر کنید.

به دلایل زیر، من تصمیم گرفته‌ام که از هوش مصنوعی استفاده نکنم، حداقل در طول فرآیند یادگیری.

هوش مصنوعی یادداشت‌های خطای من را می‌دزدد

معمولاً چه زمانی از هوش مصنوعی استفاده می‌کنیم؟ من اغلب هنگام رفع اشکال از آن استفاده می‌کردم.

چرا این کار نمی‌کند؟ → کد خطا، کد را کپی کنید → در ChatGPT جای‌گذاری کنید

مشکل چیست؟ آیا توسعه‌دهندگانی که از خطاها و رفع اشکال خسته شده‌اند، همیشه کد ارائه شده توسط ChatGPT را به دقت بررسی، درک و استفاده می‌کنند؟ در بسیاری از موارد، آنها به سادگی کد را بدون فکر کپی و جای‌گذاری می‌کنند، و اگر کار نکند، دوباره از هوش مصنوعی استفاده می‌کنند.

درخواست کاربر: این کار نمی‌کند، من این خطا را دریافت می‌کنم.

ChatGPT: اوه، اشتباه من، اجازه بدهید کد را اصلاح کنم.

آیا دیگر هرگز این اشتباه را نخواهم کرد؟ بسیار محتمل است که دوباره همان اشتباه را مرتکب شوم و دوباره از هوش مصنوعی کمک بگیرم. احتمال درونی کردن دانش و یادگیری از اشتباه به شدت کاهش می‌یابد.

اگر 99٪ از فرآیند محاسبه را بدانم اما نتوانم به 1٪ نهایی برسم، آیا به خوبی کدنویسی کرده‌ام؟ من صرفاً مغزم را به هوش مصنوعی واگذار می‌کنم زیرا خسته‌ام. من مهم‌ترین بخش، بخشی را که نمی‌دانم و نمی‌توانم انجام دهم، به هوش مصنوعی می‌سپارم.

سلب کردن محیط ناخودآگاه و کد-دوستانه

توسعه‌دهندگان زیادی در جهان وجود دارند. بسیار محتمل است که یک توسعه‌دهنده در آن طرف دنیا همان خطای من را تجربه کرده باشد. اما آیا آن توسعه‌دهنده خطا را در همان شرایط دقیق تجربه کرده است؟ آیا کدی که آنها نوشته‌اند با کدی که من نوشته‌ام یکسان است؟ متفاوت خواهد بود. همان خطا می‌تواند در شرایط کاملاً متفاوتی رخ دهد.

هوش مصنوعی دسترسی به اطلاعات مربوط به زمینه اطراف را مسدود می‌کند. این فقط کد ارسالی من را رفع اشکال می‌کند و اطلاعات مربوط به آن کد را ارائه می‌دهد، اما فرآیند مورد نیاز برای نوشتن کد را نشان نمی‌دهد.

“البته، می‌توانید از مهندسی درخواست برای درخواست توضیح دقیق استفاده کنید، درست است؟”

دستتان را روی قلبتان بگذارید و به این فکر کنید که چند بار آنقدر خسته بوده‌اید که فقط کد را کپی و جای‌گذاری کرده‌اید.

برای جستجو و بررسی یک خطا، به دانش قبلی نیاز دارید. آیا من همه چیز را در مورد این دانش قبلی به وضوح می‌دانم؟ این وبلاگ شرایط مختلف را توضیح می‌دهد، و آن وبلاگ شرایط مختلف را توضیح می‌دهد. آیا من همه این شرایط را درک می‌کنم؟ هنگام جستجو در گوگل، باید بتوانید بخوانید و درک کنید “آه~ با شرایط من متفاوت است” تا بتوانید اطلاعات دیگری پیدا کنید.

حتی این عمل ساده جستجو می‌تواند توسعه‌دهندگان را بیشتر با کد دوست کند.

آیا ChatGPT هم همینطور نیست؟ اگر به استفاده از آن در حین کدنویسی ادامه دهید، آیا همان چیز نیست؟

اهمیت محیط ناخودآگاه

بهترین مثال از یک محیط ناخودآگاه، محیط خانه است.

در اینجا دو کودک وجود دارند. آنها در خانواده‌های مختلف بزرگ می‌شوند. کودک پرنده‌ای را در حال پرواز می‌بیند و از والدینش می‌پرسد:

“مامان (بابا)، آن پرنده چیست؟”

پاسخ‌های والدین متفاوت است:

  1. زاغی.
  2. من کنجکاو بودم که چه نوع پرنده‌ای است، بنابراین آن را جستجو کردم. می‌تواند زاغی یا کلاغ باشد، اما به نظر می‌رسد که زاغی باشد.

خانواده اول پاسخ مستقیمی ارائه می‌دهند و یک راه حل عملی ارائه می‌دهند.

خانواده دوم پاسخ غیرمستقیمی ارائه می‌دهند و یک رویکرد خلاقانه برای کشف پاسخ پیشنهاد می‌کنند.

این کودکان اگر در این محیط‌های مختلف بزرگ شوند، چگونه رشد می‌کنند؟

کودک خانواده اول در یافتن پاسخ صحیح کارآمد خواهد بود، اما ممکن است در برخورد با مشکلاتی که پاسخ به راحتی در دسترس نیست، کارآمد نباشد. ← ChatGPT

کودک خانواده دوم ممکن است برای یافتن یک پاسخ ساده بیشتر طول بکشد، اما در فکر کردن به مشکلاتی که پاسخ به راحتی در دسترس نیست، راحت‌تر خواهد بود. ← جستجو و یادگیری (گوگل کردن)

محیط ناخودآگاه به این ترتیب شکل می‌گیرد و در تمام جنبه‌های زندگی روزمره استفاده می‌شود.

به نظر شما توسعه چیست؟ من فکر می‌کنم دومی است، اما انتخاب را به هر فرد واگذار می‌کنم.

تصویر بالا تصویری از مدل کوه یخ فروید است. ما ناخودآگاه تحت تأثیر افراد اطراف خود و هر چیزی که با آن در تماس هستیم قرار می‌گیریم. حتی اگر به کسی که در حال گذر است توجه نکنیم که می‌گوید: “این روزها یک غذا خوشمزه است”، این آگاهی کم عمقی را ایجاد می‌کند که “یک غذا خوشمزه است”. وقتی بعداً غذای A را می‌بینیم، ممکن است آن را خوشمزه‌تر از آنچه واقعاً هست بخوریم، یا اگر انتظارات ما را برآورده نکند، ممکن است بیشتر ناامید شویم. این در مقایسه با نشنیدن سخنان عابر تفاوت قابل توجهی ایجاد می‌کند.

حتی تکه کوچکی از اطلاعات که در حین جستجوی دقیق اطلاعات در مورد توسعه با آن مواجه شدم - اطلاعاتی که من آگاهانه ندیدم - در نهایت به یک دارایی تبدیل می‌شود. ناخودآگاه تأثیر بسیار بیشتری از آنچه ما فکر می‌کنیم دارد.

در نتیجه: فلسفه توسعه من

نتیجه‌گیری من این است که “LLM ها باید تا حد امکان هنگام مطالعه اجتناب شوند، اما می‌توانند برای فعالیت‌های سازنده استفاده شوند.”

ما باید با دوران پس از هوش مصنوعی سازگار شویم، یاد بگیریم که چگونه از هوش مصنوعی استفاده کنیم، تأثیر آن را از نزدیک تجربه کنیم و دیدگاه مثبت و در عین حال انتقادی نسبت به هوش مصنوعی را حفظ کنیم. ما باید تشخیص دهیم که هوش مصنوعی در نهایت شغل‌های ما را خواهد گرفت و همیشه به این فکر کنیم که علاوه بر گرفتن شغل‌های ما، چه تأثیرات دیگری ممکن است داشته باشد. بیایید در این مورد فکر کنیم که آیا نحوه استفاده ما از هوش مصنوعی برای زندگی و تفکر ما مفید است یا خیر، و از واگذاری مغزهایمان به هوش مصنوعی اجتناب کنیم.

پس از سردرگمی بسیار، بالاخره فلسفه توسعه خود را بنا نهاده‌ام:

هر خط کد را با افکارم آمیخته کنم. بیایید فقط حروف یا جملات ساده ایجاد نکنیم، بلکه آنها را با فلسفه و تفکر خود آغشته کنیم.

این تفاوت بین هوش مصنوعی و من است.

موفق باشید به همه!

اضافی: درمان اراده ضعیف، مسدود کردن سایت‌های LLM

اراده ضعیف یک بیماری است. غیرمنطقی است که از اراده برای درمان اراده ضعیف استفاده شود، که ناشی از کمبود اراده است. معرفی اقدامات دیگر برای ترک سیگار، نوشیدن یا سایر عادات مشابه درست است.

به طور مشابه، فکر کردم برای سلامت روانم خوب است که سایت‌های LLM را مسدود کنم. در زیر روش من برای مسدود کردن در مک آورده شده است:

  1. کد زیر را در ترمینال وارد کنید:

  2. i را فشار دهید تا به حالت درج بروید. مانند تصویر زیر، موارد زیر را به میزبان 127.0.0.1 اضافه کنید. پس از وارد کردن آدرس، Tab را فشار دهید.

  3. ESC را فشار دهید تا از حالت درج خارج شوید و :wq را وارد کنید تا ذخیره شود. این از DNS (سیستم نام دامنه) استفاده می‌کند و ‘127.0.0.1 chatGPT.com’ به این معنی است که وارد کردن chatGPT.com در نوار آدرس به 127.0.0.1 (میزبان سرور رایانه من) دسترسی پیدا می‌کند.

بیایید اراده ضعیف خود را با هم درمان کنیم!