چه کسی بعد از مهمانیِ «وایبکدینگ»، همه جا را تمیز میکند؟
هوش مصنوعی قاتل «متن باز»
به گزارش گروه آنلاین روزنامه دنیای اقتصاد-حسین موسوی: اگر نسخه دیجیتالی این داستان را میخوانید، شما همین الان از یک نرمافزار کوچک از پروژهای به نام cURL استفاده کردهاید. اگر آن را به صورت چاپی میخوانید، اما امروز از تلفن هوشمند، لپتاپ یا تبلت استفاده کردهاید، از cURL استفاده کردهاید. اگر به هر دلیلی، مرورگر یا برنامهای را لمس نکردهاید، اما از ماشین مدرن، چاپگر، تلویزیون یا دستگاه بازی استفاده کردهاید، از cURL استفاده کردهاید. شما و اکثر انسانهای روی زمین روزانه چندین بار از آن استفاده میکنید، اگرچه تنها بخش کوچکی از کاربران آن از وجود آن آگاه هستند. سم لرنر در مجله فایننشال تایمز نوشت، وقتی آنلاین هستید، دائماً بستههای اطلاعاتی را از دستگاههای دیگر درخواست میکنید. اما این درخواستها باید از پروتکلهای خاصی در مورد مقصد، مسیریابی، قالببندی و مجوزها پیروی کنند؛ cURL این جزئیات را مدیریت میکند. این نرمافزار که اولین بار در سال ۱۹۹۶ منتشر شد، اکنون بخشی از شبکه نامرئی اینترنت است؛ کوچک اما رایج و بخشی از هزاران خط کدی که دائماً در پسزمینه زندگی دیجیتال ما اجرا میشوند. توسعهدهندگان آن تخمین میزنند که مؤلفه آن، libcurl، بیش از ۲۰ میلیارد بار نصب شده است. حتی تحسینکنندگان آن نیز به ندرت هنگام استفاده از آن از وجودش آگاه هستند، همانطور که در نظر گرفتن پمپهایی که هنگام باز کردن شیر آب، آب را به جریان میاندازند، غیرممکن است. این پروژه همچنین یک پروژه نرمافزاری متنباز است. کد منبع cURL به صورت رایگان در پلتفرم نرمافزاری GitHub برای مشاهده همه در دسترس است. مجوز مجاز آن تضمین میکند که همه «اجازه استفاده، کپی، اصلاح و توزیع این نرمافزار را برای هر منظوری با یا بدون هزینه» دارند. این پروژه همچنین مشارکتهای جامعه وسیعتری از توسعهدهندگان را میپذیرد و به آنها وابسته است. وبسایت cURL بیش از ۳۰۰۰ مشارکتکننده را فهرست میکند. پرکارترین و ثابتقدمترین مشارکتکننده آن، خالق آن، دانیل استنبرگ، یک توسعهدهنده نرمافزار سوئدی است که تمام وقت پروژه را اجرا میکند. استنبرگ گفت: «ما در واقع متعلق به هیچ چیز نیستیم، ما متعلق به هیچ شرکتی نیستیم. ما تقریباً فقط یک نام در اینترنت هستیم و تعدادی از افرادی که سعی میکنند این محصول را تا حد امکان خوب کنند.»
استنبرگ یک نگهدارنده، یک ناظر نرمافزار است که نیاز به مراقبت و توجه مداوم دارد. برای اینکه کد چیزی بیش از یک توده متن غیرقابل درک باشد، باید در یک محیط - دستگاه، مرورگر، برنامه - اجرا شود. با تغییر این محیطها، کد نیز باید تغییر کند. کسی، چه خالق آن باشد و چه دیگرانی که برای کمک استخدام شدهاند، یا برای نگهداری آن تلاش میکند یا شاهد مرگ تدریجی آن است و کاربرانش را با عواقب آن تنها میگذارد.
استنبرگ، ۵۵ ساله، در میان این صنفِ نگهدارندگان خوششانس است؛ پروژهی او شهرت، بودجه و تعداد زیادی از مشارکتکنندگان مشتاق را به خود جلب کرده است. بسیاری دیگر بدون هیچگونه اطلاعرسانی و حقوقی به کار خود ادامه میدهند. آنطور که اریک اس. ریموند، پیشگام متنباز، آنها را نامیده است، آنها «افراد باربر اینترنت» هستند، کسانی که نرمافزارهای حیاتی برای عملکرد اینترنت را بدون حمایت سازمانی یا بودجه نگهداری میکنند. در شبکه پیچیدهی بستههای نرمافزاری که زندگی دیجیتال ما به آنها وابسته است، این LBIPها در پشت صحنه فعالیت میکنند تا همه چیز را سرپا نگه دارند. وبکمیک xkcd زمانی این پویایی ناپایدار را به سخره گرفت و تودهای بلند از بلوکها را با برچسب «تمام زیرساختهای دیجیتال مدرن» به تصویر کشید که توسط یک بلوک باریک پشتیبانی میشود که «یک فرد تصادفی در نبراسکا از سال ۲۰۰۳ با بی¬مزد و منت در حال نگهداری آن بوده است».
این موضوع فشار زیادی را بر روی نگهدارندگان پروژه وارد میکند؛ کسانی که اغلب به¬عنوان نقاط شکست پروژههایشان عمل میکنند. استنبرگ گفت: «من مدت زیادی است که تنها فرد تماموقت در cURL بودهام. بقیه داوطلب بودهاند و معمولاً به مرور زمان میآیند و میروند. من دقیقاً نمیدانم فردا چه کسی قرار است بیاید و نمیتوانم روی این موضوع حساب کنم.» اخیراً، استنبرگ و افراد پرمشغله اینترنتی با مشکل جدیدی روبرو شدهاند. در دسترس بودن ابزارهای کدنویسی هوش مصنوعی که در پاسخ به درخواستهای ساده، کد تولید میکنند، منجر به هجوم عظیمی از پیشنهادهای مشارکتی در کد شده است. اکثر آنها خیلی خوب نیستند.
برخی مفید به نظر میرسند، اما زمینه مهمی را از دست میدهند یا کاملاً درست کار نمیکنند. برخی خوب کار میکنند، اما چندان مفید نیستند و همچنان بررسی آنها زمان میبرد. این مطالب ارسالی از افرادی است که نیت خیر دارند و از افرادی است که به دنبال نفوذ مشارکت در یک نرمافزار بنیادی هستند. آنها از توسعهدهندگان حرفهای و همچنین از کسانی که به آنها کدنویسان vibe میگویند، میآیند که منحصرا با ابزارهای هوش مصنوعی مینویسند، گاهی اوقات بدون توانایی درک خروجی.
این هجوم، لولهکشی را مسدود کرده است. سالها، cURL یک برنامه «باگ بانتی» را اجرا میکرد، سیستمی که به توسعهدهندگان خارجی که نقصهای امنیتی مشروع را شناسایی میکردند، پول میداد. (این موضوع کاملاً فنی است؛ بزرگترین جایزهای که تاکنون پرداخت شده ۴۶۶۰ دلار برای نقصی بود که «سرریز کرل را به یک بافر مبتنی بر پشته در پروکسی SOCKS۵ تبدیل میکرد».) اما در ژانویه، استنبرگ اعلام کرد که به دلیل «انفجار گزارشهای خطای هوش مصنوعی»، cURL در حال پایان دادن به این برنامه است. او توضیح داد که «مدیریت ارسالهای بیپایان خطای هوش مصنوعی، فشار روانی زیادی را به همراه دارد و گاهی اوقات نیز مدت زیادی طول میکشد تا نادرستی آنها آشکار شود. زمان و انرژیای که کاملا هدر میرود و در عین حال مانع از اراده ما برای زندگی میشود.»
تجربه استنبرگ قابل توجه است، اما منحصر به فرد نیست. در سراسر اکوسیستم متنباز، ابزارهای کد هوش مصنوعی در حال برهم زدن مجموعهای از هنجارها هستند که به توسعهدهندگان برای ساخت یا مشارکت در نرمافزاری که به نفع همه است، پاداش میداد. در گذشته، مشارکت در پروژههای متنباز، نکات برجستهای در رزومه یک توسعهدهنده بودند. اما اگر مشارکت شما توسط کلود یا کدکس نوشته شده باشد، آیا شما یک مشارکتکننده هستید؟ و اگر «جامعه کاربران» پروژه شما به¬طور فزایندهای از رباتها تشکیل شده باشد، آیا همچنان انگیزهای برای ساخت یا نگهداری آن خواهید داشت؟ و اگر نه، پس وقتی شیر آب سینک را باز میکنیم چه اتفاقی میافتد؟
ذاتاً، توسعهدهندگان همیشه در حال ساختن بر اساس کار دیگران هستند. وقتی ساندویچ درست میکنید، معمولاً با پختن نان خودتان شروع نمیکنید. در توسعه نرمافزار نیز همینطور است، جایی که هرگز واقعاً از ابتدا شروع نمیکنید. زبانهای برنامهنویسی و کتابخانهها، بستهها و چارچوبهایی که بر اساس آنها ساخته شدهاند، در نهایت همه یک چیز هستند: کد شخص دیگری. گذشته از همه اینها، چرا مشکلی را حل کنیم که شخص دیگری قبلاً حل کرده است؟
استنبرگ گفت: «نرمافزار متنباز پیششرط وجود اکثر نرمافزارها است. برای اینکه بتوانید به روشی که امروز کار میکنیم عمل کنید، به قطعات مشترک زیادی نیاز دارید که بتوانید آنها را به هم بچسبانید تا نرمافزار خود را بسازید... مسئله خوب یا بد بودن آن نیست. این چیزی است که اکنون داریم.»
عموماً این روش خوب کار میکند. آنقدر خوب که هر نرمافزاری که با آن سروکار دارید، چه متنباز و چه اختصاصی، روی شبکهای از بستههای متنباز قرار میگیرد. برای مثال، برنامه فایننشال¬تایمز روی بیش از ۲۰۰۰ بسته دیگر قرار دارد. یکی از این ابزارها ابزاری به نام axios (واکشی دادهها) است که به ابزاری به نام babel (ترجمه کد) وابسته است، که آن هم به Node (شکلی از زبان جاوا اسکریپت) وابسته است، که آن هم به زبان متنباز پایتون وابسته است. اما یک ریسک هم وجود دارد. وقتی شما بر اساس کد شخص دیگری میسازید، به یک وابستگی تبدیل میشود و وابستگیها میتوانند قدیمی شوند.
در طول دوران کاریام که کد مینوشتم، بیشتر نقش یک ساندویچساز را در اکوسیستم نرمافزار به عنوان ساندویچ بازی میکردم. من اپلیکیشنها یا وبسایتهای کاربرپسند را با مواد اولیهای که توسط زنجیره تأمین متنباز ارائه میشوند، میسازم. گاهی اوقات وقتی ساندویچها دیگر نمیرسند یا گاهی اوقات از نحوه استفاده کسی از دستور پخت من عصبانی میشوند، کلافه میشوم. اما سهم و دردسرهای من در مقایسه با نانواهایی که نان من را درست میکنند، ناچیز است، چه برسد به کسانی که نان را اختراع کردهاند. وقتی مشکلی در محصولشان پیش میآید، باید به ساندویچسازها پاسخگو باشند. بسیاری از ساندویچسازها ترجیح میدهند به نحوه تهیه نان فکر نکنند؛ آنها فقط میخواهند نانشان ظاهر شود، مبادا با انبوهی از مشتریان گرسنه روبرو شوند که حتی کمتر به پخت اهمیت میدهند.
برای مثال فرض کنید که یک قانون محلی جدید، نان پخته شده با انواع خاصی از گندم را ممنوع کند. این میتواند باعث ایجاد درگیری در زنجیره تأمین شود. ممکن است ساندویچساز به یک نانوا جدید نیاز داشته باشد، یا نانوا به یک آسیاب جدید، یا آسیاب به یک کشاورز جدید نیاز داشته باشد. این «مشکلات وابستگی» دائماً رخ میدهند، به دلیل قوانین جدید، یا دستور العملهای جدید، یا به این دلیل که یک خمیرگیر خسته به سادگی بازنشسته میشود. شاید دستگاههای آنها مدتی کار کنند و به مشتریان خود فرصت دهند تا خود را وفق دهند، اما دیر یا زود چیزی خراب میشود و کسی نیست که آن را تعمیر کند. وقتی این اتفاق میافتد، ساندویچسازها که بسیاری از آنها فقط به¬طور مبهم از منبع نان خود آگاه بودند، مشکلی برای حل کردن خواهند داشت، زیرا با مشتریان ناامید و کلافه¬ای سروکار دارند که فقط میخواهند غذا بخورند.
اگر همه اینها کمی کابوسوار به نظر میرسد، میتوانید درک کنید که چرا نگهداری از پروژهای مانند cURL - شاید در این مثال یک آسیاب آرد - برای استنبرگ یک شغل تماموقت است. به همین دلیل است که او برای اطمینان از عملکرد روان پروژه، به شبکهای از داوطلبان ماهر، کمکهای مالی و جوایز کشف باگ تکیه کرده است.
حالا ابزارهای هوش مصنوعی را به آشپزخانه بیاورید. به سازندگان ساندویچساز قول میدهیم که هر کسی میتواند ساندویچ درست کند و حقیقتی هم در این مورد وجود دارد: بسیاری از مردم اکنون میتوانند ساندویچهای خوشمزه و «وایبدار» را بدون پرداخت هزینه به اغذیهفروشی درست کنند. برخی از صاحبان اغذیهفروشیها اعتراض دارند که ساندویچهای ماشینی کیفیت یکسانی ندارند، اگرچه بسیاری از آنها ساندویچسازهای مخصوص خود را برای تهیه ساندویچهای ساده میخرند. تقریباً همه موافقند که ساندویچسازها در دستورهای غذایی رایج عالی هستند و این باعث میشود صاحبان اغذیهفروشیها وقت آزادتری داشته باشند تا روی دستورهای غذایی حرفهایتر خود تمرکز کنند. اما این شرکت ساندویچی کارهای عجیبی با زنجیره تأمین حساس انجام میدهد. این شرکت نان را از نانواییهایی سفارش میدهد که سالهاست تعطیل شدهاند یا اصلاً وجود نداشتهاند. این نشان میدهد که یک کشاورز کوچک در فرانسه علاقه شدیدی به گوجهفرنگی دارد. این کشاورز همیشه به تلفن مشتریانی که درخواستهای منطقی داشتند یا پیشنهاداتی در مورد تجهیزات برداشت یا جعبههای حمل و نقل ارائه میدادند، پاسخ میداد. اما ناگهان هر روز دهها درخواست و شکایت جدید دریافت میکند که انواع آفتکشها و کودهایی را پیشنهاد میدهند که در فرانسه قانونی نیستند. این رشد ناگهانی مشتریان، کشاورز گوجهفرنگی را تحت فشار قرار میدهد، بهخصوص از آنجایی که جبران خسارت او به شکل کمکهای مالی یا حسن نیت جامعهاش است، چیزی که این مشتریان رباتیک ارائه نمیدهند. بیشتر کدهای متنباز در پلتفرم توسعهدهندگان گیتهاب قرار دارند. پروژههای آنجا در مخازن کد یا «repos» قرار میگیرند که اغلب عمومی هستند و چندین توسعهدهنده میتوانند همزمان در آنها مشارکت کنند. کد آنها با استفاده از یک فناوری زیربنایی به نام «گیت» (Git) که در ابتدا توسط لینوس توروالدز، پیشگام متنباز و خالق سیستم عامل لینوکس، توسعه داده شده بود، تطبیق داده میشود. معمولاً هر کسی در گیتهاب میتواند از طریق قابلیتی به نام «مسائل» مشکلات را علامتگذاری کرده و درخواست بهبود کند. همکاران بالقوه، پیشنویس تغییرات را در قالب «درخواستهای pull» ارسال میکنند که قبل از «ادغام» در کدبیس، توسط یک نگهدارنده مورد اعتماد پروژه بررسی و تأیید میشود.
همه افراد در جامعه متنباز گیتهاب را دوست ندارند. نسلهای اولیه جنبش «نرمافزار آزاد» از ایده درهمتنیدگی توسعه متنباز با پلتفرمی که برای سودآوری بود و خودش متنباز نبود، به شدت انتقاد میکردند، مبارزهای که برخی از طرفداران آن امروزه نیز ادامه میدهند. یکی از این سازمانها، Software Freedom Conservancy است که به مالکیت شرکتی گیتهاب - که در سال ۲۰۱۸ توسط مایکروسافت خریداری شد - و استفاده آن از کد میزبانی شده در سایت برای آموزش محصولات هوش مصنوعی که گاهی اوقات شرایط مجوزهای پیوست شده به پروژهها را نادیده میگیرد، اعتراض دارد.
کارن سندلر، مدیر اجرایی این سازمان حفاظت از محیط زیست، به من گفت: «اینترنت و هر چیز دیگری اساساً بر اساس نرمافزاری ساخته شدهاند که با پایهای ایدئولوژیک ساخته شده است و سپس تمام آن کارها به صورت آنلاین منتشر شده و برای شرکتها بسیار مفید واقع شدهاند. کدها به عنوان دادههای آموزشی در LLMها [مدلهای زبانی بزرگ] بلعیده میشوند و سپس شما مجموعهای کامل از کارهای ایدئولوژیک دارید که به عنوان بدون حق چاپ برچسبگذاری میشوند و احتمالاً میتوانند در نرمافزارهای اختصاصی استفاده شوند.» با وجود این ملاحظات، گیتهاب امروزه تقریباً به همان اندازه که محصولات ادوبی برای کار طراحی ضروری هستند، برای توسعه نرمافزار ضروری است. جایگزینهایی وجود دارد، اما میزبانی یک پروژه در جای دیگر عموماً نوعی موضع ایدئولوژیک را القا میکند. به¬طور کلی، برای نسل فعلی توسعهدهندگان، گیتهاب صرفاً مکانی است که توسعه نرمافزار در آن اتفاق میافتد. اوایل امسال، گروهی از محققان به رهبری میکلوش کورن، اقتصاددان دانشگاه اروپای مرکزی در وین، مقالهای با عنوان «کدنویسی پویا، متنباز را از بین میبرد» منتشر کردند. آنها استدلال میکنند که در جهانی که مصرفکنندگان بستههای نرمافزاری به طور فزایندهای عوامل کدنویسی هوش مصنوعی هستند، انگیزههایی که مدل مشارکتی توسعه متنباز را هدایت میکنند، از بین میروند. کورن به من گفت: «ما با مدلهایی شروع کردیم که در تجارت بینالمللی کاملاً استاندارد هستند، جایی که شرکتها محصولات با کیفیت متفاوتی تولید میکنند و در بازار رقابت میکنند و متوجه شدیم که این قیاس بدی برای متنباز نیست. ممکن است پول زیادی در کار نباشد، اما هر توسعهدهندهای میخواهد بستهاش محبوب باشد.»
من این را خوب میفهمم. قبل از کار در اتاقهای خبر، مجموعهای از پروژههای شخصی متنباز را توسعه و منتشر کردم. یکی از آنها که به¬طور خاص مسیرهای پاییندست رودخانهها را به تصویر میکشید، موفقیتی گیجکننده بود. این پروژه هنوز هم از تمام داستانهایی که در فایننشال¬تایمز روی آنها کار کردهام، بیشتر دیده میشود و اگر بر اساس تعداد بازدیدها قضاوت کنیم، ممکن است موفقترین چیزی باشد که تا به حال خلق کردهام. من آن را تنها چند ماه قبل از مصاحبه شغلیام منتشر کردم و با اینکه این ابزار را به صورت رایگان توسعه دادم، میتوانم بین موفقیت آن و شغل فعلیام خط مستقیمی بکشم. اما کورن دریافت که این دلایل اجتماعی-اقتصادی برای مشارکت توسعهدهندگان در پروژههای متنباز، زمانی که کاربران انسانی با رباتها جایگزین میشوند که نرمافزار را بدون ارائه تعاملات مثبت نصب میکنند، از بین میرود. در مدل محققان، این موضوع بر این واقعیت که ابزارهای هوش مصنوعی ممکن است به توسعهدهندگان انفرادی کمک کنند تا سریعتر کد بنویسند، غلبه میکند. با گذشت زمان، رباتها اکوسیستم متنباز را از بین میبرند. کورن گفت: «سوالی که برای توسعهدهنده پیش میآید این است که اگر میخواهم در بین انسانها محبوب شوم، چرا باید چیزی بنویسم که فقط توسط ماشینها استفاده شود؟» در آزمایشهایی که با شش مدل کدنویسی انجام شد، محققان دریافتند که بستههای نرمافزاری متنباز که اغلب توسط مدلها توصیه میشدند، افزایش زیادی در تعداد دانلودها داشتند اما این فعالیت به تعاملی که معمولاً باعث حفظ توسعهدهندگان میشود، تبدیل نشد. این مقاله نتیجه میگیرد که «تحت مدل کسبوکار سنتی، که در آن درآمد توسعهدهندگان کاملاً به تعامل مستقیم کاربر بستگی دارد، اکوسیستم متنباز نمیتواند از پذیرش گسترده هوش مصنوعی جان سالم به در ببرد»./