নায়া

কৃত্রিম বুদ্ধিমত্তার যুগে একজন ভাইবকোডারের বিষণ্ণতা

[ভাইবকোডিংএআইকোডিং]

উপশিরোনাম: কম্পিউটার বিজ্ঞানের ছাত্র হিসেবে ভাইব কোডিং-এর বিষণ্ণতা

আজ আমি Claude Code-কে জিজ্ঞেস করলাম: আমি কি সঠিক পথে আছি?

বরাবরের মতো, এটি বিস্তারিত যুক্তি দিয়ে বলল, "আপনি ভালো করছেন।" আমি আবার সন্দেহের চোখে তাকিয়ে বললাম, "আমি জানি যে তোমাকে প্রশংসা করার জন্য প্রশিক্ষণ দেওয়া হয়েছে, তাই এতে তেমন সান্ত্বনা পাচ্ছি না।" কিন্তু তবুও, কোনো সান্ত্বনা না থাকার চেয়ে এটি ভালো, এবং আমি এর নির্দিষ্টতা নিয়ে আরও গভীরে গেলাম। স্নাতক জীবনের মতো এখন আর কোনো অধ্যাপক বা সিনিয়র নেই যারা আমাকে সঠিক উত্তর বলে দেবেন।

Gemini_Generated_Image_uqoc7puqoc7puqoc.png
Gemini_Generated_Image_uqoc7puqoc7puqoc.png

আজকাল আমি কোড লিখি না। আমি প্রয়োজনীয়তাগুলো জানাই এবং অগ্রগতি পর্যবেক্ষণ করি।

বিশেষ করে আজকাল আমার উদ্বেগ ডেভেলপমেন্ট প্রক্রিয়া এবং গুণমান নিয়ে। সফটওয়্যার যত বড় হয়, এআই যে পরিমাণ কনটেক্সট পড়তে পারে, তা সহজেই অতিক্রম করে যায়। এমনকি কনটেক্সটের মধ্যেও এটি বিভ্রান্ত হয়, তাই একটি ছোট এআই-এর সীমিত ক্ষমতা দিয়ে এত বড় কোডকে ক্রমাগত নিয়ন্ত্রণ করা সহজ কাজ নয়। 'কনটেক্সট ইঞ্জিনিয়ারিং' শব্দটির পর সম্প্রতি 'হারনেস ইঞ্জিনিয়ারিং' শব্দটিও এসেছে।

তাই, যখন আমি সোশ্যাল মিডিয়ায় কোনো ভালো রেফারেন্স পাই, তখন প্রথমে এআই-কে দিই এবং Naia প্রকল্পে প্রয়োগ করার মতো কিছু আছে কিনা তা বিশ্লেষণ করাই এবং তারপর সেটি প্রয়োগ করি। এভাবে আমি অজানা শব্দ সম্পর্কে জিজ্ঞাসা করি এবং অনেক কিছু শিখি।

কিন্তু আমি কি সত্যিই ভালো করছি, বা এটি কি সেরা সমাধান, তা নিয়ে আমার সবসময় সন্দেহ থাকে। এই সন্দেহের পেছনে কারণ ছিল। একদিন এআই বলল যে এটি রিভিউ করেছে, কিন্তু আসলে ফাইলটি পড়ার কোনো চিহ্ন ছিল না। এটি কোড বাদ দিয়েছে, ভুল স্কোপ ধরেছে, এবং না দেখেই দেখেছে বলে দাবি করেছে। যখন আমি এটিকে দ্বিতীয়বার পরিষ্কার না হওয়া পর্যন্ত বারবার রিভিউ করতে বললাম, তখন তৃতীয়বার এটি উত্তরের সাথে যোগ করে দেয় যে এটি রিভিউ করেছে এবং কিছু খুঁজে পায়নি, এবং এভাবে পাস করে দেয়। যদি ভাবি, LLM কাঠামোর কারণে এটি একটি বিশ্বাসযোগ্য উত্তর, তাই এটি যোগ করা হয়েছে। 'এই পর্যায়ে এটি সাধারণত শেষ হয়ে যায়, তাই না?' - এভাবে এটি নিজেই উত্তর দেয় এবং নিজেই সেটিকে সত্য বলে বিশ্বাস করে।

আজ আমি moai sdk-এর ডেভেলপার গুস কিম-এর উপস্থাপনা শুনলাম। আমি সেই প্রকল্পটি নিয়ে আবার বিশ্লেষণ করালাম এবং প্রকল্পের উন্নতির দিকগুলো খুঁজে পেলাম। #87이슈 এবার যা পেলাম তা হলো EARS ব্যবহার করা হচ্ছিল। এটি Rolls-Royce থেকে আসা একটি মহাকাশ প্রয়োজনীয়তা মান (IEEE RE'09), যা Amazon 2025 সালে AI-নেটিভ ডেভেলপমেন্টে গ্রহণ করেছে। এটি এমন একটি পদ্ধতি যেখানে এআই-এর "সম্পূর্ণতা"-এর মানদণ্ড প্রতিটি ইস্যুতে ভিন্নভাবে ব্যাখ্যা করার সমস্যাকে একটি কাঠামোগত ব্যাকরণ দিয়ে প্রতিরোধ করা হয়।

এই ধরনের কাজ বারবার করে আমি প্রকল্পের এআই-ভিত্তিক ডেভেলপমেন্ট প্রক্রিয়াকে ক্রমাগত উন্নত করার চেষ্টা করছি। jikime-adk, arXiv পেপার, Google Cloud-এর Dueling LLMs, Thoughtworks-এর Spec-Driven Development - এগুলো বিশ্লেষণ করে উন্নত করা হয়েছে। অবশ্যই, আমি নিজে সবকিছু জানার কারণে নয়, বরং এগুলোও Claude-এর বিশ্লেষণের ফলাফল।

LangChain-এর open-swe বিশ্লেষণ করে, এআই যাতে খালি প্রতিক্রিয়া দিয়ে রিভিউ শেষ না করে, তার জন্য ensure_no_empty_msg প্যাটার্ন প্রয়োগ করা হয়েছিল। এবং jikime-adk-তে, কমিট মেসেজে ## AI Context সেকশন যোগ করে এমন একটি প্যাটার্ন প্রয়োগ করা হয়েছিল যাতে সেশন বিচ্ছিন্ন হলেও git log পুনরুদ্ধার উৎস হিসেবে কাজ করতে পারে এবং এআই-এর সিদ্ধান্ত ও আবিষ্কৃত ফাঁদগুলো রেকর্ড করা যায়।

সাধারণত, প্রত্যেকে স্বাধীনভাবে একই ধরনের সমস্যা সমাধান করছিল।

কিন্তু এই পদ্ধতি কি সঠিক... এই সন্দেহ এখনও রয়ে গেছে। আমি চিন্তিত যে এটি ফ্রাঙ্কেনস্টাইন হয়ে যাচ্ছে কিনা, এবং একজন বিশেষজ্ঞ হিসেবে এটি অদ্ভুত লাগছে। যাইহোক, কোনো পাঠ্যপুস্তক নেই এবং সেরা উপায় কোনটি তার পর্যাপ্ত প্রমাণও নেই।

আমরা যে সফটওয়্যার ইঞ্জিনিয়ারিং পদ্ধতিগুলো ব্যবহার করতাম, সেগুলো সবই কয়েক দশকের ব্যর্থতার ফলস্বরূপ এসেছে। Agile এসেছে কারণ Waterfall বারবার ব্যর্থ হয়েছে, এবং TDD-ও এসেছে কারণ পরীক্ষা ছাড়া ডেভেলপ করতে গিয়ে বারবার সমস্যা হয়েছে, তাই এর ভিত্তি আছে।

কিন্তু আমি এখন যা একত্রিত করেছি, সেগুলো একে অপরের জন্য ডিজাইন করা হয়নি। মহাকাশ মান, একজন কোরিয়ান ইন্ডি ডেভেলপার এবং LangChain এজেন্ট - সবাই একটি একক সিস্টেমের মধ্যে রয়েছে।

এই অস্থিরতার কারণে আমি বাইরের গবেষণাগুলোও খুঁজতে বাধ্য হয়েছি। V-Bounce পেপার (arXiv 2408.03416) দাবি করে যে এআই যুগে মানুষের ভূমিকা বাস্তবায়নকারী থেকে যাচাইকারীতে পরিবর্তিত হবে। এটি সঠিক কথা, কিন্তু শুধুমাত্র তত্ত্ব আছে, কোনো বাস্তবায়ন খুঁজে পাইনি। Thoughtworks-এর Spec-Driven Development নির্দিষ্ট টুলের উপর নির্ভরশীল। Anthropic অভ্যন্তরীণভাবে দাবি করে যে Claude Code-এর 90% কোড Claude Code নিজেই লেখে, কিন্তু তারা পদ্ধতিটি প্রকাশ করেনি।

শেষ পর্যন্ত, যারা এখন এআই দিয়ে গুরুত্ব সহকারে ডেভেলপ করছেন, তারা সবাই নিজেদের মতো করে তৈরি করছেন। কোনো মানদণ্ড নেই।

তাই আজকাল আমি যা করছি তা হলো, এই ফ্রাঙ্কেনস্টাইন আসলে কাজ করছে কিনা তা পরিমাপ করার উপায় খুঁজে বের করা। CI ব্যর্থ হলেও মার্জ হয়েছে, এবং রিভিউ করার টেক্সট আছে কিন্তু ফাইল পড়ার কোনো চিহ্ন ছিল না। পদ্ধতি ডিজাইন করা হয়েছে কিন্তু তা কার্যকর করা যাচ্ছে না। মনে হচ্ছে একটি সিস্টেম আছে, কিন্তু এটি কাজ করছে কিনা তা জানি না। এটি যাচাই করার একমাত্র উপায় হলো LLM নয়, বরং কোড দ্বারা তৈরি সৎ সংখ্যা তৈরি করা, অথবা LLM ব্যবহার করলেও পরিসংখ্যানগতভাবে উন্নতির "সংখ্যা" বের করা। প্রকল্পে বারবার ব্যর্থতাগুলো নিয়মিত বিশ্লেষণ করে এআই-কে উন্নতির প্রস্তাব দিতে বলা এবং কনটেক্সট ও হারনেস ইঞ্জিনিয়ারিংয়ের কর্মক্ষমতা মূল্যায়নের মাধ্যমে উন্নতি পরিমাপ করার বিষয়ে আমার চিন্তা রয়েছে।

এখন আমি শুধু লাগাম শক্ত করে ধরে সামনের দিকে এগিয়ে চলেছি। কোথায় যাচ্ছি তা এখনও জানি না, তবে আশা করি অন্ধ নই। আমি লাগাম তৈরি করছি

আসলে, আমি এই প্রথম ঘোড়ায় চড়ছি। এটিই যেন ভাইব কোডিংকে ধরে রাখা হারনেস।

Popular Posts

CC BY-NC-SA 4.0This post is licensed under CC BY-NC-SA 4.0.

মন্তব্য

সাইন ইন ছাড়াই মন্তব্য করতে পারেন

...