লেখক:
(1) মিংজি লিউ, NVIDIA {সমান অবদান};
(2) টিওডোর-ডুমিত্রু এনি, এনভিআইডিএ {সমান অবদান};
(3) রবার্ট কিরবি, NVIDIA {সমান অবদান};
(4) ক্রিস চেং, NVIDIA {সমান অবদান};
(5) নাথানিয়েল পিঙ্কনি, NVIDIA {সমান অবদান};
(6) Rongjian Liang, NVIDIA {সমান অবদান};
(7) জোনাহ আলবেন, এনভিআইডিএ;
(8) হিমাংশু আনন্দ, NVIDIA;
(9) সন্মিত্র ব্যানার্জী, NVIDIA;
(10) Ismet Bayraktaroglu, NVIDIA;
(11) বনিতা ভাস্করন, NVIDIA;
(12) Bryan Catanzaro, NVIDIA;
(13) অর্জুন চৌধুরী, NVIDIA;
(14) শ্যারন ক্লে, NVIDIA;
(15) বিল ডালি, NVIDIA;
(16) লরা ড্যাং, NVIDIA;
(17) পরীক্ষিত দেশপান্ডে, NVIDIA;
(18) সিদ্ধান্ত ধোধি, NVIDIA;
(19) সমীর হালেপেট, NVIDIA;
(20) এরিক হিল, NVIDIA;
(21) জিয়াং হু, এনভিআইডিএ;
(22) সুমিত জৈন, NVIDIA;
(23) ব্রুসেক খাইলানি, NVIDIA;
(24) জর্জ কোকাই, NVIDIA;
(25) কিশোর কুনাল, NVIDIA;
(26) Xiaowei Li, NVIDIA;
(27) চার্লি লিন্ড, NVIDIA;
(28) হাও লিউ, NVIDIA;
(29) স্টুয়ার্ট ওবারম্যান, NVIDIA;
(30) সুজিত ওমর, NVIDIA;
(31) শ্রীধর প্রাট্টি, NVIDIA;
(23) জোনাথন রাইমান, এনভিআইডিএ;
(33) অম্বর সরকার, NVIDIA;
(34) Zhengjiang Shao, NVIDIA;
(35) হানফেই সান, এনভিআইডিএ;
(36) প্রতীক পি সুথার, NVIDIA;
(37) বরুণ তেজ, NVIDIA;
(38) ওয়াকার টার্নার, NVIDIA;
(39) কাইজে জু, NVIDIA;
(40) Haoxing Ren, NVIDIA.
আমরা আমাদের ডিজাইন টিমের মধ্যে সম্ভাব্য এলএলএম অ্যাপ্লিকেশনগুলির একটি সমীক্ষা পরিচালনা করেছি এবং সেগুলিকে চারটি বালতিতে শ্রেণীবদ্ধ করেছি: কোড জেনারেশন, প্রশ্ন ও উত্তর, বিশ্লেষণ এবং রিপোর্টিং এবং ট্রাইজ ৷ কোড জেনারেশন বলতে এলএলএম জেনারেটিং ডিজাইন কোড, টেস্টবেঞ্চ, দাবী, অভ্যন্তরীণ টুল স্ক্রিপ্ট ইত্যাদি বোঝায়; প্রশ্নোত্তর বলতে ডিজাইন, টুলস, অবকাঠামো ইত্যাদি সম্পর্কে প্রশ্নের উত্তর দেওয়ার জন্য একটি এলএলএম বোঝায়; বিশ্লেষণ এবং রিপোর্টিং একটি LLM ডেটা বিশ্লেষণ এবং রিপোর্ট প্রদান বোঝায়; triage একটি LLM নির্দেশ করে যা ডিবাগ ডিজাইন বা টুলের সমস্যা প্রদত্ত লগ এবং রিপোর্টে সহায়তা করে। আমরা এই কাজে অধ্যয়ন করার জন্য প্রতিটি বিভাগ থেকে একটি মূল অ্যাপ্লিকেশন নির্বাচন করেছি, ট্রাইজ বিভাগ ব্যতীত যা আমরা আরও গবেষণার জন্য রেখেছি। প্রতিটি আবেদনের অনুপ্রেরণা এবং প্রযুক্তিগত বিবরণ নীচে দেওয়া হয়েছে।
উ: প্রকৌশল সহকারী চ্যাটবট
এই অ্যাপ্লিকেশনটির লক্ষ্য ডিজাইন ইঞ্জিনিয়ারদের তাদের আর্কিটেকচার, ডিজাইন, যাচাইকরণ এবং বিল্ড প্রশ্নগুলির উত্তর দিয়ে সাহায্য করা, যা অন্যদের উত্পাদনশীলতাকে প্রভাবিত না করে তাদের সামগ্রিক উত্পাদনশীলতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে। এটা লক্ষ্য করা যায় যে ডিজাইন ইঞ্জিনিয়াররা প্রায়ই বুদ্ধিমত্তা, ডিজাইনিং হার্ডওয়্যার এবং কোড লেখা উপভোগ করেন, কিন্তু তাদের ডিজাইন জ্ঞানের অভাবের উত্তরের জন্য অপেক্ষা করা ধীর হয়ে যেতে পারে। প্রকৌশলীদের ভুল অনুমান বা ডিবাগিং কোড যা তারা অপরিচিত তার উপর ভিত্তি করে কোড লিখতে এড়িয়ে ডিজাইনের উত্পাদনশীলতাও বাড়ানো যেতে পারে। অভ্যন্তরীণ গবেষণায় দেখা গেছে যে একজন সাধারণ চিপ ডিজাইনারের সময়ের 60% পর্যন্ত ডিজাইনের বৈশিষ্ট্য, টেস্টবেঞ্চ নির্মাণ, আর্কিটেকচারের সংজ্ঞা, এবং সরঞ্জাম বা অবকাঠামো সহ বিভিন্ন বিষয় জুড়ে ডিবাগ বা চেকলিস্ট সংক্রান্ত কাজে ব্যয় হয়। এই বিষয়গুলির বিশেষজ্ঞরা প্রায়শই একটি বহুজাতিক কোম্পানিতে বিশ্বজুড়ে ছড়িয়ে পড়ে, যেমন তাৎক্ষণিক সাহায্য পাওয়া সবসময় সুবিধাজনক নয়। অতএব, অভ্যন্তরীণ নকশা নথি, কোড, ডিজাইন সম্পর্কে যেকোন রেকর্ড করা তথ্য এবং ইমেল এবং কর্পোরেট তাত্ক্ষণিক যোগাযোগের মতো প্রযুক্তিগত যোগাযোগ ইত্যাদি থেকে প্রাপ্ত জ্ঞানের উপর ভিত্তি করে একটি ইঞ্জিনিয়ারিং সহকারী চ্যাটবট ডিজাইনের উত্পাদনশীলতাকে উল্লেখযোগ্যভাবে উন্নত করতে সহায়তা করতে পারে। আমরা বিভাগ III-D-এ উল্লিখিত ডোমেন-অভিযোজিত RAG পদ্ধতির সাথে এই অ্যাপ্লিকেশনটি বাস্তবায়ন করেছি।
B. EDA স্ক্রিপ্ট জেনারেশন
একটি শিল্প চিপ ডিজাইন প্রবাহের আরেকটি সাধারণ কাজ হল বিভিন্ন ধরনের কাজ সম্পাদন করার জন্য EDA স্ক্রিপ্ট লেখা
নকশা বাস্তবায়ন, আত্মদর্শন এবং রূপান্তর হিসাবে। এই স্ক্রিপ্টগুলি প্রায়শই টুল-নির্দিষ্ট এবং কাস্টম অভ্যন্তরীণ স্ক্রিপ্ট লাইব্রেরি উভয়ই ব্যবহার করে। এই লাইব্রেরিগুলি শেখা, নেভিগেট টুল ডকুমেন্টেশন, এবং এই স্ক্রিপ্টগুলি লিখতে এবং ডিবাগ করার জন্য, একটি উল্লেখযোগ্য পরিমাণ ইঞ্জিনিয়ারিং সময় নিতে পারে।
এলএলএমগুলি বিস্তৃত কাজের জন্য ছোট স্কেল কোড তৈরিতে পারদর্শী প্রমাণিত হয়েছে [৩২] এবং তাই এই ডোমেন নির্দিষ্ট টাস্কে ইঞ্জিনিয়ার উত্পাদনশীলতা ত্বরান্বিত করার জন্য এই মডেলগুলিকে কাস্টমাইজ করা একটি স্বাভাবিক উপযুক্ত। এই কাজে আমরা প্রাকৃতিক ভাষার টাস্ক বর্ণনা থেকে দুটি ভিন্ন ধরনের স্ক্রিপ্ট তৈরি করার উপর ফোকাস করি। প্রথমটি হল স্ক্রিপ্ট যা টুল1, ডিজাইন এডিটিং এবং বিশ্লেষণের জন্য একটি অভ্যন্তরীণ পাইথন লাইব্রেরি ব্যবহার করে। দ্বিতীয়টি হল Tcl স্ক্রিপ্ট যা টুল2 দ্বারা প্রদত্ত কমান্ড ইন্টারফেস ব্যবহার করে, যা একটি শীর্ষস্থানীয় শিল্প স্ট্যাটিক টাইমিং বিশ্লেষণ টুল।
এই কাজের জন্য আমাদের ডোমেন-নির্দিষ্ট ফাইন-টিউনিং ডেটাসেট তৈরি করার জন্য, ডিজাইন বিশেষজ্ঞদের কাছ থেকে উভয় সরঞ্জামের জন্য উত্পাদন স্ক্রিপ্ট সংগ্রহ করা হয়েছিল। আমরা লক্ষ্য করেছি যে আমাদের DAPT মডেলগুলি কোডের জন্য যুক্তিসঙ্গত ইনলাইন মন্তব্য তৈরি করতে পারে। এটি অতিরিক্ত ইনলাইন মন্তব্য তৈরি করে সংগৃহীত স্ক্রিপ্টগুলির গুণমান উন্নত করতে এই মডেলগুলি ব্যবহার করতে আমাদের সক্ষম করেছে৷ মানব বিশেষজ্ঞরা পরে এই মন্তব্যগুলি যাচাই ও সংশোধন করেছেন এবং একটি সংশ্লিষ্ট প্রম্পট তৈরি করেছেন। এই প্রম্পট এবং কোড জোড়াগুলি বিভাগ III-C-এ আলোচিত ফর্ম্যাটে DSFT-এর জন্য ব্যবহৃত ডেটা তৈরি করে।
সবচেয়ে অর্থপূর্ণ উপায়ে প্রতিক্রিয়া প্রদান এবং সংগ্রহ করার জন্য, আমরা চিত্র 4-এ দেখানো প্রবাহ তৈরি করার জন্য উল্লেখযোগ্য প্রচেষ্টা ব্যয় করেছি যেখানে ইঞ্জিনিয়ার উভয়ই মডেলটি জিজ্ঞাসা করতে পারে এবং একই ইন্টারফেসের মাধ্যমে জেনারেট করা কোড চালাতে পারে। এটি আমাদেরকে জেনারেট করা কোডের সঠিকতার বিষয়ে আত্মবিশ্বাসী হওয়ার পাশাপাশি প্রকৌশলীদের একটি কার্যকরী স্ক্রিপ্ট পাওয়ার জন্য কতগুলি সংশোধনের প্রয়োজন হতে পারে তা দেখার অনুমতি দিয়ে সঠিক প্রতিক্রিয়া প্রদান করতে দেয়। আমরা টুল সার্ভারে ইন্টারেক্টিভ সংযোগ স্থাপন করে টুল 1 এবং টুল 2 ইন্টিগ্রেশন সমর্থন করি।
উপরন্তু, আমরা একটি ব্যবহারকারীর প্রতিক্রিয়া ফর্ম প্রদান করি, যা আমাদের বিভিন্ন মডেলের তুলনা করতে এবং ব্যবহারকারীর প্রতিক্রিয়া থেকে মূল্যবান অন্তর্দৃষ্টি সংগ্রহ করতে দেয়। এই মূল্যবান তথ্য আমাদের মডেলকে আরও পরিমার্জিত করতে সাহায্য করতে পারে।
C. বাগ সংক্ষিপ্তকরণ এবং বিশ্লেষণ
রিপোর্টিং, ট্রাইজ, ডিবাগ এবং বিভিন্ন বৈশিষ্ট্য এবং বাগগুলির রেজোলিউশন ট্র্যাক করা উত্পাদন প্রবাহের ধাপগুলি জুড়ে একটি সময়সাপেক্ষ প্রক্রিয়া। ইঞ্জিনিয়ারিং ম্যানেজাররা অভ্যন্তরীণ সমস্যা ট্র্যাকিং ডেটাবেসগুলি পর্যালোচনা করার জন্য অনেক সময় ব্যয় করে প্রকল্পের অবস্থা বোঝার জন্য এবং তাদের বাস্তবায়নের গতিতে সহায়তা করতে। অতএব, একটি টুল যা সমস্ত সমর্থনকারী তথ্য দেখতে সক্ষম এবং দ্রুত প্রযুক্তিগত এবং ব্যবস্থাপনাগত উভয় ডেটার সংক্ষিপ্তসার এবং সেইসাথে পরবর্তী পদক্ষেপগুলি টিমের উত্পাদনশীলতাকে বাড়িয়ে তুলবে। আমরা তিনটি ভিন্ন আউটপুট তৈরি করতে এলএলএম ব্যবহার করার উপর ফোকাস করি - একটি প্রযুক্তিগত বিবরণের উপর, একটি ব্যবস্থাপনাগত বিবরণের উপর এবং একটি প্রস্তাবিত টাস্ক অ্যাসাইনমেন্টের উপর।
এই কাজগুলি অধ্যয়ন করতে আমরা NVIDIA-এর অভ্যন্তরীণ বাগ ডেটাবেস, NVBugs ব্যবহার করেছি। এই ডাটাবেসটি বাগ রিপোর্টিং, ট্র্যাকিং এবং রেজোলিউশনের পাশাপাশি কোম্পানি জুড়ে সাধারণ কাজ এবং বৈশিষ্ট্য ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়। আমরা আশা করি ChipNeMo মডেলগুলি এই টাস্কে ভাল কাজ করবে কারণ DAPT ডেটাসেটে প্রচুর পরিমাণে বাগ ডেটা অন্তর্ভুক্ত করা হয়েছিল৷ উপরন্তু, আমরা এই টাস্কের জন্য একটি ডোমেন-নির্দিষ্ট SFT ডেটাসেট তৈরি করেছি যাতে বাগ সংক্ষিপ্তকরণ এবং টাস্ক অ্যাসাইনমেন্ট টাস্কের উদাহরণ রয়েছে।
প্রায়শই, বাগ বিবরণে দীর্ঘ মন্তব্য ইতিহাস সহ লগ ফাইলের বড় স্নিপেট বা কোড ডাম্প থাকে। এই ধরনের ক্ষেত্রে, আমাদের LLM প্রসঙ্গ উইন্ডোগুলির জন্য বাগ পাঠ্যটি খুব বড়। এটিকে ঘিরে কাজ করার জন্য, আমরা দুটি সমাধান প্রয়োগ করেছি। প্রথমত, আমরা সম্পূর্ণ স্ট্রিং প্রক্রিয়া করার প্রয়োজন ছাড়াই বাগের একাধিক জায়গায় ঘটতে পারে এমন পাথগুলিকে সংযুক্ত করার জন্য মডেলটিকে অনুমতি দেওয়ার জন্য ছোট উপনামের সাথে দীর্ঘ পথের নাম খুঁজে পেয়েছি এবং প্রতিস্থাপন করেছি। দ্বিতীয়ত, আমরা সংক্ষিপ্তকরণের কাজটিকে একটি ক্রমবর্ধমান টাস্কে বিভক্ত করি যেখানে মডেলটিকে একাধিক সারাংশ এবং বাগ ডেটা খণ্ড জুড়ে ডেটা জমা করার দায়িত্ব দেওয়া হয়। আমরা একটি অনুক্রমিক পদ্ধতি ব্যবহার করি যেখানে বাগটিকে প্রথমে অংশে বিভক্ত করা হয় যা প্রসঙ্গ উইন্ডোতে ফিট করে। সেই খণ্ডগুলিকে তারপর সংক্ষিপ্ত করা হয় এবং সারাংশগুলি সংগ্রহ করা হয় তারপর খণ্ডে বিভক্ত করা হয়। এই প্রক্রিয়াটি পুনরাবৃত্তি করা হয় যতক্ষণ না সারাংশের সম্পূর্ণ সেটটি একটি একক প্রসঙ্গ উইন্ডোতে ফিট না হয় এবং একটি একক সারাংশ তৈরি হয়। আমরা সারাংশের জন্য ব্যবহৃত এলএলএম থেকে স্বাধীনভাবে এই একই পদ্ধতি ব্যবহার করি।
এই কাগজটি CC 4.0 লাইসেন্সের অধীনে arxiv-এ উপলব্ধ ।