Qodo: جستجوی کد کارآمد با NVIDIA DGX
نقطه کانونی NVIDIA Inception مقالهای است که بر اعضای جالب توجه برنامه متمرکز است.
Qodo، عضوی از برنامه NVIDIA Inception، یک پلتفرم یکپارچگی کد چندعاملی است که گردشهای کاری کیفیت نرمافزار را با عوامل مبتنی بر هوش مصنوعی برای نوشتن، آزمایش و بررسی کد بهبود میبخشد و خودکار میکند. این شرکت با ساختن عوامل هوش مصنوعی خود بر اساس تولید افزوده بازیابی (RAG) پیشرفته، نمایهسازی و تجزیه و تحلیل، که همگی توسط یک مدل جاسازی کد پیشرفته (SOTA) پشتیبانی میشوند، به این مهم دست مییابد.
Qodo که توسط مؤسسین با تجربه در یادگیری ماشینی و تولید کد رهبری میشود، میداند که جستجوی مؤثر کد حیاتی است. با این حال، جستجوی کد سنتی اغلب نتایج ناکارآمد و نامربوطی را ارائه میدهد.
این شرکت در پی دستیابی به موارد زیر است:
- نتایج جستجوی کد مرتبطتر و کارآمدتر را ارائه دهد.
- بهبود همکاری بین توسعهدهندگان در طول فرآیند نوشتن کد.
- بهبود کیفیت کلی نرمافزار با استفاده از ابزارهای مبتنی بر هوش مصنوعی.
Qodo با استفاده از قابلیتهای NVIDIA DGX به این هدف دست یافت. آنها به توسعهدهندگان کمک میکنند تا کد را با درک معنایی عمیقتر کشف کنند، نه فقط مطابقت کلمه کلیدی. Qodo توانسته است از قدرت سختافزاری NVIDIA DGX برای ارائه بینشهای کد بدون درز که فرآیند توسعه را بهبود میبخشد، استفاده کند.
چرا جستجوی معنایی کد مهم است
جستجوی کد سنتی معمولاً برای تولید نتایج جستجوی کد دقیق و مرتبط با مشکلاتی مواجه است. جستجوی مبتنی بر کلمات کلیدی اغلب نمیتواند تفاوتهای ظریف موجود در کد یا قصد پشت یک جستجوی پرسوجو را درک کند، در نتیجه نتایجی ارائه میشود که برای آنچه توسعهدهنده واقعاً به دنبال آن است ناکارآمد یا نامربوط است.
جستجوی معنایی کد فراتر از مطابقت کلمه کلیدی صرف میرود. این تکنیک شامل درک مفهوم و زمینه کد است. الگوریتمهای جستجوی معنایی کد برای درک ساختار و روابط قطعات مختلف کد طراحی شدهاند که منجر به نتایجی میشود که با آنچه توسعهدهنده نیاز دارد مرتبطتر و دقیقتر است.
جستجوی کد کارآمد نیاز به درک و تجزیه و تحلیل مفهوم و زمینه کد دارد. رویکرد Qodo از جستجوی معنایی کد استفاده میکند که به توسعهدهندگان اجازه میدهد کد را با درک معنایی عمیقتر کشف کنند، نه فقط مطابقت کلمه کلیدی.
نحوه کار میکند: پایپ لاین Qodo
Qodo یک پایپ لاین ورودی خاص کد را اجرا میکند (شکل ۱)، با بازیابی فایلها از یک پایگاه کد شروع میشود، فایلهای پشتیبانی شده را فیلتر میکند، تقسیمکننده کد، تقسیمکننده متن و تقسیمکنندههای اختصاصی اعمال میکند، قطعهقطعه میکند و سپس جاسازیها را در یک پایگاه داده پایان میدهد.
شکل ۲ مدل کلی فرآیند جاسازی مورد استفاده برای تطبیق شباهت را نشان میدهد. شکل ۳ گردش کار پایپ لاین Qodo از یک مخزن به یک مجموعه داده تولید شده را نشان میدهد.
مقایسه جاسازی Qodo
Qodo یک مدل جاسازی جدید را با استفاده از موارد زیر ارزیابی کرد:
- 1200000+ جفت پرسوجو/کد
- سه مجموعه داده منبع باز مختلف
شکل ۴ مدلهای جاسازی Qodo را در مقایسه با سایر مدلهای جاسازی خاص کد که در رتبهبندی HuggingFace MTEB::CoIR اندازهگیری شدهاند، نشان میدهد. این مدلها با امتیازهای 71.33 و 68.53 در میانگین NDCG در بالای نمودار قرار دارند.
استفاده از Qodo برای یکپارچگی کد و آزمایش
برای درک نحوه عملکرد Qodo با یکپارچگی کد و آزمایش، یک مطالعه موردی اجرا شد. هدف از این مطالعه موردی، ارزیابی کیفیت کد با یافتن کد تکراری و شناسایی مکانهایی بود که در آن آزمایشها باید اضافه شوند. این مطالعه موردی با استفاده از پایپ لاین تولید افزوده بازیابی (RAG) خاص کد نشان داده شده در شکل ۵، اجرا شد.
این تیم مهندسی Unity یک سوال را در مدل NVIDIA Genie وارد کرد: رنگهای از پیش تعریف شده در ImGui و مقادیر RGBA مربوطه آنها چیست؟
پایپ لاین اصلی نتوانست با نقاط داده خاص پاسخ دهد و به جای آن پیشنهاد کرد مستندات ImGui را بررسی کنید. در مقابل، مدل Qodo به اطلاعات خاص پرسیده شده پاسخ داد و به طور دقیق رنگها و مقادیر RGBA مربوطه آنها را فهرست کرد.
شکلهای ۶ و ۷ نتایج حاصل از پایپ لاین اصلی و پایپ لاین Qodo را به ترتیب نشان میدهند.
نحوه عملکرد Qodo با NVIDIA DGX
سختافزار NVIDIA DGX به Qodo کمک کرده است تا الگوریتمهای یادگیری ماشینی را در مجموعه دادههای بزرگ با سرعت و مقیاس بی نظیری آموزش دهد. این امر به آنها امکان داده است تا با سرعت بیشتری نمونههای اولیه و تکرار کنند، که برای اعتبارسنجی و اصلاح مدلهای خود حیاتی است.
DGX همچنین به Qodo کمک کرده است تا مجموعه دادههای بزرگ کد را برای ایجاد یک پایگاه دانش کد متمرکز و جامع تجزیه و تحلیل کند.
Qodo از DGX برای موارد زیر استفاده کرد:
- بهبود مدلها. با افزایش کارایی و نتایج جستجوی کد مرتبطتر، همکاری بین توسعهدهندگان را بهبود بخشد و به آنها امکان میدهد تا ایدهها و کد را به طور مؤثرتری به اشتراک بگذارند.
- بهبود کیفیت نرمافزار. توسعهدهندگان میتوانند ابزارهای بهتری برای اطمینان از کیفیت و قابلیت اطمینان کد خود داشته باشند، که منجر به محصولات نرمافزاری قویتر و بدون خطا میشود.
- صرفه جویی در وقت و هزینه. با تسریع فرآیند توسعه و کاهش تلاش مورد نیاز برای حل مشکلات مربوط به کد.
Qodo یک NVIDIA Inception برنده است
NVIDIA Inception یک برنامه رایگان است که طراحی شده است تا شرکتهای نوپای استثنایی را که در حال پیشبرد هوش مصنوعی و علم داده هستند، پرورش دهد. NVIDIA Inception به شرکتکنندگان دسترسی به تخصص فناوری NVIDIA، فرصتهای سرمایهگذاری و فرصتهای بازاریابی را برای افزایش رشد ارائه میدهد.
مراحل بعدی
Qodo قصد دارد قابلیتهای مدل هوش مصنوعی خود را با ادغام مکانیسمهای بازخورد توسعهدهنده، تخصص در دامنههای خاص، و ساخت مدلهایی که میتوانند کد را تولید و پیشنهاد کنند، گسترش دهد.
آنها همچنین به سرمایهگذاری در تحقیق و توسعه ادامه میدهند تا راههای جدیدی برای بهبود جستجو، تجزیه و تحلیل و تولید کد با استفاده از فناوریهای نوظهور مانند مدلهای ترانسفورماتور و شبکههای متخاصم مولد (GAN) کشف کنند.
با استفاده از پلتفرمهای پیشرفتهای مانند NVIDIA DGX، Qodo در حال افزایش تواناییهای گردشهای کاری کیفیت نرمافزار خودکار است و اطمینان حاصل میکند که توسعهدهندگان ابزارهای بهتری برای کدگذاری، آزمایش و تولید نرمافزار نوآورانه دارند.