آیا نیازی به نگهداری با هوش مصنوعی نیست؟

به این نگاه کن کد بد که واقعا در نظر گرفته شده است سخت برای نگهداری:
public class ClassA
{
public string FirstName { get; set; }
public int Age { get; set; } = 20;
}
public class MyProgram
{
private static int GlobalVariable;
public void BadMethod()
{
var t= typeof(ClassA);
var i = Activator.CreateInstance(t);
var firstName = type.GetProperty("FirstName");
firstName.SetValue(i, "John Doe");
var ageOfPerson = type.GetProperty("Age");
var age = property2.GetValue(i);
Console.WriteLine("Hello World");
GlobalVariable = 0
Loop:
Console.WriteLine($"{property1} was at age {GlobalVariable}.");
GlobalVariable++;
if (GlobalVariable < age)
{
goto Loop;
}
}
}
نگهداری از آن سخت است زیرا اصلاح آن برای انسان دشوار است. اما آیا برای هوش مصنوعی هم سخت است!؟
در این پست قصد دارم نحوه کار را نشان دهم هوش مصنوعی میتواند یک کد غیرقابل حفظ را خیلی بهتر از انسان بازسازی کند!
برای این من استفاده می کنم هوش مصنوعی بینگ در مثال های زیر
چرا قابل نگهداری نیست؟
بیایید ببینیم چه چیزی این کد را برای انسان غیرقابل نگهداری می کند.
انعکاس بد است
همانطور که می بینید، این کد از بازتاب برای کار با اشیا استفاده می کند. اولین و بزرگترین مشکل این است که اگر به عنوان مثال می خواهید نام آن را تغییر دهید FirstName
به Title
، احتمالاً فراموش خواهید کرد که رشته لفظی سخت کد شده را در این خط به عنوان یک انسان تغییر دهید:
type.GetProperty("FirstName")`
اما بیایید ببینیم که آیا هوش مصنوعی بینگ همین اشتباه را انجام می دهد یا نه؟
چقدر شگفت انگیز… هوش مصنوعی برای اینکه قابل نگهداری باشد نیازی به کد نداشت. فقط خوب کار کرد و آن خط را نیز تغییر داد:
type.GetProperty("Title")`
نامگذاری بد
همانطور که مشاهده می کنید ClassA
واقعا اسم بدی داره می توان دریافت که Person
نام بهتری برای آن خواهد بود برای یک انسان زمان می برد تا آن را بفهمد. اما نه برای هوش مصنوعی. ببینید هوش مصنوعی بینگ چگونه این را درک می کند:
باز هم شگفت انگیز… همانطور که می بینید هوش مصنوعی بینگ کاملاً این را حدس زد Person
نام خوبی برای ClassA
.
درک حلقه با goto سخت است
همانطور که می بینید از این کد استفاده شده است goto
برای پیاده سازی یک حلقه، به جای a for
، foreach
، یا حتی الف while
بیانیه. درک چنین حلقه ای برای انسان دشوار است و تغییر آن دشوار است.
حلقه چاپ تمام سنینی است که فرد تاکنون زندگی کرده است! اگر کسی مجبور باشد فقط نیمی از سن یک فرد را چاپ کند، اعمال تغییر مناسب توسط یک انسان واقعاً دشوار است.
اما بیایید ببینیم هوش مصنوعی Bing چگونه این کار را انجام می دهد؟
وای، همانطور که می بینید هوش مصنوعی این کار را عالی انجام داد، فقط تغییرات مناسب را در این حلقه بد اعمال کرد. تصمیم گرفت این خط را به طرز شگفت انگیزی اصلاح کند:
GlobalVariable += 2;
نتیجه
در نمونههای بالا، من موقعیتهایی را نشان دادهام که درک و رفتار درست برای انسانها دشوار است. به همین دلیل، انسان ها برای نگهداری نیاز به کد دارند. اما همانطور که می بینید هوش مصنوعی بینگ بدون نیاز به قابلیت نگهداری به خوبی کار می کرد.
من می دانم که مثال های من کافی و یا حتی رضایت بخش نیستند. یکی ممکن است نوع موقعیت هایی را که من مثال زدم استدلال کند. اما کل ایده این بود که نشان دهد چگونه هوش مصنوعی نسبت به انسانها کمتر به کد قابل نگهداری وابسته است.
پس نتیجه نهایی من اینجاست:
هوش مصنوعی برای نگهداری نیازی به کد ندارد به درستی کار کند. در حقیقت، هوش مصنوعی میتواند یک کد غیرقابل نگهداری را خیلی بهتر از انسان بازسازی کند.
بنابراین، آیا می توان گفت در آینده نیاز به کد قابل نگهداری در نهایت کاهش خواهد یافت!؟