1. مقدمه
این مقاله به چالش دسترسیپذیرتر کردن رابطهای برنامهنویسی نرمافزار (API) با بهرهگیری از مدلهای زبانی بزرگ (LLM) میپردازد. تعامل سنتی با API مستلزم دانش فنی از ساختار، پارامترها و فراخوانیهای خاص است که برای کاربران غیرفنی مانع ایجاد میکند. سیستم پیشنهادی از مدلهای زبانی بزرگ برای دو عملکرد اصلی استفاده میکند: ۱) طبقهبندی ورودیهای زبان طبیعی کاربران به فراخوانیهای API متناظر، و ۲) خودکارسازی تولید مجموعهدادههای مصنوعی و ویژهکار برای ارزیابی عملکرد مدلهای زبانی بزرگ در وظایف طبقهبندی API. این رویکرد دوگانه هدف دارد تا مانع استفاده از نرمافزار را کاهش دهد و در عین حال ابزاری عملی برای توسعهدهندگان فراهم کند تا مناسب بودن مدلهای زبانی بزرگ را برای مدیریت API سفارشیشده ارزیابی کنند.
2. کارهای مرتبط
این پژوهش بر پایه کارهای موجود در حوزه پردازش زبان طبیعی و مهندسی نرمافزار بنا شده و بر پل زدن بین زبان انسان و دستورات قابل اجرا توسط ماشین متمرکز است.
2.1 مدلهای زبانی بزرگ برای نگاشت زبان طبیعی به API
مطالعات پیشین استفاده از مدلهای دنباله به دنباله و انواع تنظیمشده BERT را برای نگاشت زبان طبیعی به کد یا دنبالههای API بررسی کردهاند. ظهور مدلهای زبانی بزرگ قدرتمند و همهمنظوره مانند GPT-4 پارادایم را تغییر داده و امکان نگاشت انعطافپذیرتر و آگاه از زمینه را بدون نیاز به آموزش گسترده ویژهکار فراهم کرده است.
2.2 تولید دادههای مصنوعی در پردازش زبان طبیعی
تولید دادههای مصنوعی، که برای آموزش و ارزیابی در جایی که داده واقعی کمیاب است حیاتی میباشد، از قالبهای مبتنی بر قاعده به تولید مبتنی بر مدلهای زبانی بزرگ تکامل یافته است. مدلهایی مانند GPT-4 میتوانند مثالهای متنی متنوع و مرتبط با زمینه تولید کنند که در این کار برای ایجاد مجموعهداده برای توابع API خاص از آن بهره گرفته شده است.
3. چارچوب پیشنهادی
نوآوری اصلی، یک چارچوب یکپارچه است که هم وظیفه طبقهبندی و هم ایجاد معیار سنجش ارزیابی خود را مدیریت میکند.
3.1 معماری سیستم
سیستم از دو ماژول به هم پیوسته تشکیل شده است: ماژول طبقهبندی و ماژول تولید داده مصنوعی. یک هماهنگکننده مرکزی جریان کار را مدیریت میکند، مشخصات API را به عنوان ورودی میگیرد و خروجی آن یا یک فراخوانی API طبقهبندیشده یا یک مجموعهداده ارزیابی تولیدشده است.
3.2 طبقهبندی زبان طبیعی به API
با توجه به یک پرسش زبان طبیعی $q$ و مجموعهای از فراخوانیهای API ممکن $A = \{a_1, a_2, ..., a_n\}$، مدل زبانی بزرگ به عنوان یک طبقهبند $C$ عمل میکند. هدف یافتن API $a_i$ است که احتمال شرطی را بیشینه کند: $a^* = \arg\max_{a_i \in A} P(a_i | q, \theta)$، که در آن $\theta$ پارامترهای مدل زبانی بزرگ را نشان میدهد. سیستم از prompting با نمونههای محدود برای راهنمایی مدل استفاده میکند.
3.3 خط تولید مجموعهداده مصنوعی
برای یک تابع API هدف، ماژول تولید از یک مدل زبانی بزرگ (مانند GPT-4-turbo) استفاده میکند تا مجموعهای متنوع از پرسشهای زبان طبیعی $Q = \{q_1, q_2, ..., q_m\}$ را ایجاد کند که با آن API مطابقت دارند. این فرآیند توسط promptهایی هدایت میشود که هدف API، پارامترهای آن و تغییرات مطلوب در عبارتبندی، پیچیدگی و قصد کاربر را مشخص میکنند.
4. تنظیمات آزمایشی و نتایج
4.1 فرآیند تولید مجموعهداده
نمونه مجموعهدادهها برای چندین تابع API (مانند بازیابی آبوهوا، پرسوجوی پایگاه داده، پردازش پرداخت) با استفاده از GPT-4-turbo تولید شدند. هر مجموعهداده حاوی صدها پرسش زبان طبیعی جفتشده با برچسب فراخوانی API صحیح بود که طیفی از بازنویسیها و بیانهای کاربری را پوشش میداد.
4.2 مقایسه عملکرد مدلها
چندین مدل زبانی بزرگ روی مجموعهدادههای تولیدشده با استفاده از دقت طبقهبندی استاندارد ارزیابی شدند.
GPT-4
0.996
دقت
GPT-4o-mini
0.982
دقت
Gemini-1.5
0.961
دقت
LLaMA-3-8B
0.759
دقت
4.3 تحلیل نتایج
نتایج شکاف عملکرد قابل توجهی بین مدل انحصاری پیشرو (GPT-4) و یک رقیب قوی متنباز (LLaMA-3-8B) را نشان میدهد. این موضوع اهمیت حیاتی قابلیت مدل را برای استقرار قابل اعتماد در دنیای واقعی برجسته میکند. دقت بالای مدلهای برتر، امکانپذیری استفاده از مدلهای زبانی بزرگ برای طبقهبندی دقیق فراخوانی API را تأیید میکند.
5. تحلیل فنی و بینشهای کلیدی
بینش کلیدی: این مقاله صرفاً درباره استفاده از یک مدل زبانی بزرگ به عنوان طبقهبند API نیست؛ بلکه یک فراآچارچوب برای ارزیابی این است که کدام مدل زبانی بزرگ را برای آن کار خاص استفاده کنیم. محصول واقعی موتور تولید داده مصنوعی است که مسئله مبهم "مناسب بودن مدل زبانی بزرگ" را به یک متریک قابل اندازهگیری و قابل سنجش تبدیل میکند. این یک حرکت هوشمندانه است که تشخیص میدهد در عصر مدلهای زبانی بزرگ، توانایی ایجاد داده ارزیابی باکیفیت خودتان به اندازه خود مدل ارزشمند است.
جریان منطقی: استدلال به شکلی زیبا چرخشی و خودتقویتکننده است: ۱) ما به مدلهای زبانی بزرگ نیاز داریم تا زبان طبیعی را برای APIها بفهمیم. ۲) برای انتخاب مدل زبانی بزرگ مناسب، به داده ویژهکار نیاز داریم. ۳) داده واقعی به دست آوردنش سخت است. ۴) بنابراین، از یک مدل زبانی بزرگ قدرتمند (GPT-4-turbo) برای تولید آن داده استفاده میکنیم. ۵) سپس از آن داده برای آزمایش سایر مدلهای زبانی بزرگ استفاده میکنیم. این یک فرآیند bootstrapping است که از قویترین مدل موجود برای ارزیابی میدان استفاده میکند.
نقاط قوت و ضعف: نقطه قوت اصلی عملی بودن است. این چارچوب یک راهحل فوری قابل استفاده برای شرکتهایی ارائه میدهد که به مجموعهای از APIها و یک داشبورد از مدلهای زبانی بزرگ موجود (OpenAI، Anthropic، Google، متنباز) نگاه میکنند. نقطه ضعف، که نویسندگان به آن اذعان دارند، خطر "تو در توی مدلهای زبانی بزرگ" است: استفاده از یک مدل زبانی بزرگ برای تولید داده برای آزمایش مدلهای زبانی بزرگ میتواند سوگیریها را به ارث ببرد و تقویت کند. اگر GPT-4 در درک نوع خاصی از پرسش نقطه کوری داشته باشد، داده آزمایشی معیوب تولید خواهد کرد و همه مدلها در برابر یک استاندارد معیوب قضاوت خواهند شد. این چالشهای مشاهدهشده در سایر حوزههای مولد، مانند چرخههای آموزش GANها که در آن مولد و ممیز میتوانند آسیبشناسیهای مشترک توسعه دهند، را منعکس میکند.
بینشهای عملی: برای مدیران فناوری و مدیران محصول، نتیجه گیری روشن است: فقط GPT-4 را برای رابط زبان طبیعی API خود آزمایش نکنید. این چارچوب را آزمایش کنید. از آن برای اجرای یک مسابقه بین GPT-4o، Claude 3 و Gemini روی مشخصات واقعی API خود استفاده کنید. شکاف ۲۴ امتیازی دقت بین GPT-4 و LLaMA-3-8B یک هشدار شدید است که انتخاب مدل پیشپاافتاده نیست و هزینه (رایگان در مقابل پولی) یک جایگزین خطرناک برای عملکرد است. این چارچوب شواهد کمی لازم برای اتخاذ آن تصمیم چند میلیون دلاری پلتفرم را فراهم میکند.
6. مثال کاربردی چارچوب
سناریو: یک شرکت فینتک میخواهد یک رابط زبان طبیعی به API داخلی "تحلیل تراکنش" خود اضافه کند که دارای توابعی مانند get_transactions_by_date(date_range, user_id)، flag_anomalous_transaction(transaction_id, reason) و generate_spending_report(user_id, category) است.
کاربرد چارچوب:
- تولید مجموعهداده: شرکت از ماژول تولید داده مصنوعی (با قدرت GPT-4-turbo) همراه با promptهایی که هر تابع API را توصیف میکنند استفاده میکند. برای
get_transactions_by_date، ممکن است پرسشهایی مانند این تولید کند: "خریدهای هفته گذشته من را نشان بده"، "بین ۱ تا ۱۰ مارس چه خرج کردم؟"، "میتوانم سابقه تراکنشهای ماه گذشته را ببینم؟" - ارزیابی مدل: آنها از مجموعهداده تولیدشده (مثلاً ۵۰۰ پرسش در ۳ تابع API) برای آزمایش مدلهای زبانی بزرگ کاندید استفاده میکنند: GPT-4o، Claude 3 Sonnet و یک Llama 3 تنظیمشده داخلی. آنها دقت و تأخیر را اندازهگیری میکنند.
- انتخاب و استقرار: نتایج نشان میدهد Claude 3 Sonnet با دقت ۹۸.۵٪ و نصف هزینه هر فراخوانی GPT-4o به دست میآورد و آن را به انتخاب بهینه تبدیل میکند. Llama 3 تنظیمشده امتیاز ۸۹٪ را کسب میکند اما حریم خصوصی داده را ارائه میدهد. خروجی کمی، تصمیمگیری واضح و مبتنی بر شواهد را هدایت میکند.
7. کاربردهای آتی و جهتگیریها
پیامدهای این کار فراتر از طبقهبندی ساده API است:
- تقویت پلتفرمهای کمکد/بدونکد: ادغام این چارچوب در پلتفرمهایی مانند Zapier یا Microsoft Power Platform میتواند به کاربران اجازه دهد تا با استفاده از زبان طبیعی محض، اتوماسیونهای پیچیده بسازند، که سیستم آن را به دنبالهای از فراخوانیهای API در خدمات مختلف ترجمه میکند.
- دموکراتیزه کردن نرمافزارهای سازمانی: مجموعه نرمافزارهای سازمانی پیچیده (مانند SAP، Salesforce) با صدها API میتوانند از طریق رابطهای گفتگویی برای تحلیلگران کسبوکار قابل دسترس شوند و به طور چشمگیری بار آموزش را کاهش داده و کارایی را گسترش دهند.
- اکوسیستمهای API پویا: در معماریهای اینترنت اشیا یا ریزسرویسها که در آن APIها به طور مکرر تغییر میکنند یا موارد جدید اضافه میشوند، ماژول تولید داده مصنوعی میتواند به صورت دورهای اجرا شود تا مجموعهداده ارزیابی بهروزرسانی شده و بهترین مدل زبانی بزرگ عملکردی مجدداً ارزیابی شود و یک لایه رابط خودسازگار ایجاد کند.
- جهتگیری پژوهشی - کاهش توهم: یک گام حیاتی بعدی، ادغام تأیید صوری یا بررسی محدودیت، با الهام از تکنیکهای سنتز برنامه، برای اطمینان از این است که فراخوانی API طبقهبندیشده نه تنها محتمل، بلکه از نظر معنایی معتبر و برای اجرا ایمن است.
- جهتگیری پژوهشی - ورودیهای چندوجهی: چارچوبهای آینده میتوانند پرسشهای چندوجهی را بپذیرند (مثلاً کاربری که به یک عنصر داشبورد اشاره میکند و همزمان سوالی میپرسد) و آنها را به یک فراخوانی API ترکیبی نگاشت کنند و بینایی رایانه را با پردازش زبان طبیعی ترکیب کنند.
8. مراجع
- Brown, T. B., et al. (2020). Language Models are Few-Shot Learners. Advances in Neural Information Processing Systems, 33.
- OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
- Zhu, J. Y., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Proceedings of the IEEE International Conference on Computer Vision.
- Raffel, C., et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research, 21.
- Schick, T., & Schütze, H. (2021). Generating Datasets with Pretrained Language Models. Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing.
- Microsoft Research. (2023). The Era of Copilots: AI-Powered Software Development. Retrieved from Microsoft Research Blog.
- Google AI. (2024). Gemini: A Family of Highly Capable Multimodal Models. Technical Report.