من “تحقیق خودم را انجام دادم” و “هوش مصنوعی” به این زودی کار من را نمی گیرد.

TL;DR – اما من قبلاً می دانستم که …
من سعی کردم ChatGPT 3.5 و 4 و همچنین Bard را بگیرم تا بهره وری خود را افزایش دهم. من 6 ساعت از عمرم را هدر دادم تا آنچه را که قبلاً از خواندن اسناد مربوط به جایی که آنها آموزش “نوشتن کد” را دریافت کردند، می دانستم، تلف کردم. سرریز پشته.
بله، هر سه در هر آزمونی که ادعا می کنند می توانند انجام دهند شکست خوردند:
مگر اینکه 100% Stack Overflow را در کار روزانه خود سرقت علمی کنید یا به طور انحصاری برنامه های “ToDo” یا سایر برنامه های آموزشی Strawman را بنویسید، هیچ نگرانی در مورد آن ندارید.
من اخیراً یک پیادهسازی Go از CUID2 نوشتم زیرا نتوانستم موجودی را پیدا کنم. این نیست hello-world
، اما این دستگاه داف نیز نیست، که اتفاقاً نمی تواند توضیح دهد که فقط از کد خام به صورت مجزا چه کرد.
CUDI2 بی اهمیت نیست، اما چیزی نیست که کسی که ابتدایی ترین درک از نحوه خواندن جاوا اسکریپت را دارد، فقط با خواندن کد پیاده سازی اصلی بتواند آن را پورت کند.
یک نسخه جاوا نیز وجود دارد. و به عنوان یک جاوا اصلی، برای تأیید اینکه من کد جاوا اسکریپت را به درستی تفسیر میکردم مفید بود.
بنابراین پس از دیدن هزارمین مقاله در هر سایت وبلاگ نویسی فنی و غیر فنی در مورد اینکه چگونه هر برنامه نویسی اکنون فقط روز شماری می کند تا بیکار شوند، تصمیم گرفتم آنچه را که قبلاً می دانستم ثابت کنم. همه آنها توسط افرادی نوشته شده اند که درک کاملی از آنچه در مورد آنها می نویسند نداشتند و احتمالاً از Chat GPT برای ایجاد درایو استفاده می کردند و از آن می خواستند مقالات خود را برای آنها بنویسد، در غیر این صورت چرا همه آنها مانند کپی های ترجمه شده از یکدیگر به نظر می رسند. ?
ابتدا باید بفهمید که چرا هیچ چیز مبتنی بر فناوری که این چیزها بر آن استوار است، جایگزین کسی نمیشود که چیز اصلی را خلق میکند، زیرا نمیتواند چیز اصلی ایجاد کند. خود سازندگان این را می گویند.
اینگونه کار می کنند. در بهترین حالت آنها آنچه را که مصرف کردهاند را با زمینههای مشابه، اما بر اساس نحوهای که از آنها میخواهید آن را بیان کنند، به گونهای متفاوت بیان میکنند، پس میگیرند، در بدترین حالت آنها فقط مزخرفات را خارج از متن استفراغ میکنند که به نظر منطقی میآید، زیرا انسان در خواندن آن هیچ انتقادی ندارد. تفکر، مهارت درک مطلب یا به آن دستور داده تا پاسخ را به عنوان یک مغالطه سوگیری تأیید بیان کند.
و حتی در بهترین موارد، چیزی که آنها «پارافریزی میکنند» در بهترین حالت کمتر از 50 درصد احتمال دارد که 100 درصد از نظر واقعی درست باشد، مگر اینکه درخواست به جایی مهندسی شده باشد که صرفاً مطالب منبع سرقت ادبی را کاملاً مشخص کند که اتفاقاً واقعاً واقعی است. درست.
به این دلیل که مدل زبان بزرگ (LLM) در کل اینترنت آموزش داده شده است. و حداقل 99 درصد اینترنت صرفاً نظر و اطلاعات غلط است و 1 درصد آخر، خب اکثراً نظر و اطلاعات غلط است زیرا 100 درصد اینترنت توسط انسان نوشته شده است. همچنین بر اساس طراحی، قادر به تولید خروجی قطعی نیست.
اگر هر بار که دقیقاً همان سؤال را میپرسید، پاسخهای متفاوتی دریافت میکنید، چگونه میتوانید برای درست بودن اطلاعات به اطلاعات تکیه کنید. گاهی اوقات بسیار متفاوت و/یا متناقض است.
حال در نظر بگیرید که ChatGPT و Bard هر دو در درجه اول در StackOverflow آموزش دیده بودند، می توانید بفهمید که چرا آزمایش های من 100٪ وقت تلف کردن بود.
StackOverflow آخرین جایی است که برای یافتن کد دقیق برای انجام هر کاری می روید، مگر اینکه خودتان بدانید چگونه آن را انجام دهید. اگر اطلاعات غلط تقریباً در 20 سال گذشته باشد، یک سنگر است. تنها اطلاعاتی که از راه دور قابل اعتماد است، پاسخ های پذیرفته شده با رأی مثبت از 2 یا 3 سال اول وجود آن است. پس از آن، نسبت سیگنال به نویز کارشناسان واقعی به «متخصصان» دانینگ/کروگر معکوس شد تا جایی که پاسخهای نادرست عینی با دستورات بزرگی مخالفت میکردند، زیرا رایدهندگان نمیفهمیدند چرا آنچه رای مثبت میدادند نادرست است. چرا پاسخ صحیح صحیح بود این بزرگترین مخزن شواهدی است که نشان می دهد سندرم دانینگ/کروگر واقعی است که می توانید در هر کجای اینترنت پیدا کنید.
نه ChatGPT و نه Bard چیزی در مورد بررسی اطلاعاتی که بر روی آنها آموزش دیدهاند به جز برخی از نردههای محافظ در مورد عدم تولید محتوای «سوءاستفادهآمیز»، که گاردریلهای کمتری هستند و بیشتر شبیه به رشتههای غولپیکر هستند، اشاره نمیکنند که فقط برای حمایت قانونی قابل انکار وجود دارند.
ادعا می کند که می تواند وظایف زیر را انجام دهد:
- تکمیل کد
- لنتینگ کد
- بازسازی کد
- تولید کد
- ترجمه کد
بنابراین من هر یک از آن وظایف را امتحان کردم، هر دو سیستم در هر یک از آنها به طرز بدی شکست خوردند.
تکمیل کد
بی فایده است بدون اینکه تمام کدهای قبلی دقیقاً چیست، و حتی در آن زمان همچنان اصرار داشت که نام متغیرها، توابع، متدها، کلاسها و غیره را ارائه کند که در کدی که میخواستم تکمیل شود وجود نداشت. این به این دلیل است که فقط با سایر کدهایی که خوانده است مطابقت دارد، اگر مجبور باشم همه کدهای قبلی خود را به آن وارد کنم و به آن بگویم که فقط آن کد را در نظر بگیرد، قبلاً زمان بیشتری را صرف تایپ کردن آن کرده ام. مسلماً، این احتمالاً در زمینه یک IDE بهتر انجام میشود، اما حدس بزنید چه چیزی، Jetbrains IDE سالها قبل از اینکه «AI» خشمگین شود، انجام میداد و من هرگز نیازی به شک در آن نداشتم.
لنتینگ کد
این در همان طبقه بندی تکمیل قرار می گیرد، این برای چندین دهه بدون “AI” و به طور قطعی انجام شده است. من متوجه شدم که شکست خورده است، همانطور که در موارد مثبت کاذب در موارد لبه، احتمالاً می تواند در هر لبه ای در زمان صرفه جویی کند تا اینکه یک لنتر غیر “AI” ممکن است با آن مشکل داشته باشد.
Refactoring
به طرز چشمگیری شکست خورد. در هر موردی که از آن میخواستم چیزها را اصلاح کند، در بهترین حالت کدی را بیرون میآورد که کامپایل نمیشود یا بدتر از آن، کامپایل میشود و اجرا میشود، اما اشکالات بسیار ظریفی ارائه میشود، زیرا از منبعی از کدهای نادرست استفاده میکرد و به کلمه آموزش داده شد. . این مشکل عدم بررسی است. من توانستم از جستجوی غیر”AI” گوگل استفاده کنم و برخی از کدهای نادرست ارائه شده توسط آن را پیدا کنم، فقط با جستجو در آن در “”. در تمام مواردی که من یک تطابق دقیق پیدا کردم. این یک سؤال یا پاسخ StackOverflow یا هر دو بود که حاوی قطعه کد بود. این به این دلیل است که هر دو سیستم نظرات را هنگامی که کد را بیرون میریزند نگه میدارند، به این ترتیب میتوانید بگویید که چیزی کلمه به کلمه بوده است.
نسل
این تنها چیزی است که درست تر از نادرست است. اگر از آن بخواهید کدی را تولید کند که یک مولد کد غیر”AI” تولید کند. اما در هر موردی که بتوانم آن را به کار اندازم، یک ابزار غیر هوش مصنوعی از قبل وجود دارد که دقیقاً کار را انجام می دهد. و
برای مثال، با توجه به برخی از JSON ها، ساختاری در Go تولید می کنند که نشان دهنده JSON است، و توابع Marshal و Unmarshal را تولید می کند. این تقریباً فقط یک “جستجوی ساختاری و جایگزینی” است که خود آموزش دیده است، مانند IDE های Jetbrains برای مدتی.
من هنوز برای تولید کدی که به طور قابل اعتماد کامپایل میشود، تلاش میکردم تا جایی که زمانی که درخواستی داشتم که میتوانست کد قابل کامپایل تولید کند، میتوانستم آن را خودم بنویسم، بسیار کمتر از JSON آنلاین برای ساخت ژنراتور.
هر دو سیستم با درخواست برای تولید کدی که برای تولید آن آموزش ندیده بودند شکست خوردند. آنها فقط تسلیم می شدند و یا هذیان ایجاد می کردند. من Go، Rust یا Erlang را میپرسیدم و در برخی موارد پایتون یا جاوا اسکریپت را دریافت میکردم، زیرا چیزی برای سرقت ادبی/پارافاز کردن آن در زبان درخواستی وجود نداشت.
و این ما را به ترجمه می رساند.
ترجمه
وای، این شکست های حماسی بود. من از کد جاوا اسکریپت CUID2 استفاده کردم و به طور کامل از ترجمه کل فایل کد منبع در یک حرکت به هر چیزی غیر از TypeScript خودداری کرد. واقعا؟ فقط میتوانست «درست» را به زبانی ترجمه کند که مجموعهای فوقالعاده از زبان اصلی باشد.
سپس زمان زیادی را صرف مهندسی کردن یک اعلان بسیار پیچیده کردم تا آن را مجبور کنم تا آن را به Go ترجمه کند و نتایج، خوب، ناموفق بود.
این شامل بستههایی میشود که هیچ ارتباطی با کدی که ترجمه کرده است نداشتند، بستهای را که استفاده میکرد کنار میگذاشت، فقط کل بلوکهای منطقی را بدون ذکر این که چیزی را دور ریخته بود حذف میکرد.
من سعی کردم آن را هر بار یک بلوک از کد منبع را به ترتیبی که نیاز داشت تغذیه کنم، مانند کلاس قدیمی “ساختار C”. اعلامیه، سپس توابع بر اساس ترتیب معکوس استفاده. توابعی که به توابع دیگر متکی هستند در ابتدا باقی می مانند و توابعی که هیچ وابستگی ندارند. همچنان در سکوت همان تکههای منطق را از عملکردهای فردی حذف کرد.
من بیش از هر چیز دیگری برای تلاش برای به کار انداختن این کار وقت صرف کردم زیرا این نوید ارائه بزرگترین دستاوردهای بهره وری را داشت.
تنها چیزهایی که می توانستم آن را از زبان مبدأ دلخواه به زبان مقصد دلخواه ترجمه کنم، چیزهای بسیار ابتدایی بودند. حلقهها، تکرارکنندهها، برگشتهای فهرست، تعاریف ساختار، و غیره که احتمالاً در برخی از سایتهای نوع سنگ روزتا یا مخازن موجود در مجموعه آموزشی آن یافت میشود.
گاهی اوقات نظراتی را در خروجی ایجاد می کند بدون اینکه از آنها خواسته شود، و اشتباهات تایپی و سایر خطاهای ظاهری انسانی داشتند. که به من می گوید که فقط سرقت ادبی بوده است. گاهی اوقات وقتی از آن میخواهید نظراتی را ایجاد کند، نظراتی را که درست هستند ترکیب میکند، اما بدیهی است که از زبان دیگری به دلیل اصطلاح اصطلاحی که استفاده میکند، بومی زبان دیگری است. من نظراتی را در کد Rust ترجمه شده دیدم که آشکارا از پایتون و جاوا بود، حتی اگر منبعی که از آن درخواست کردم ترجمه شود، هیچکدام نبود.
این بزرگترین اتلاف وقت در کل تمرین بود.
هر کسی که بخواهد بگوید که این فناوری برنامه نویسان را منسوخ کرده است، یا جایگزین آنها می شود یا زندگی و بهره وری برنامه نویسان را متحول می کند، احتمال بیشتری دارد که با آن جایگزین شود. زیرا آنها همان محرک اطلاعات نادرست خارج از زمینه را ایجاد می کنند که ایجاد می کند.