شروع به کار با هوش مصنوعی داخلی

Alexandra Klepper
Alexandra Klepper

منتشرشده: ۱۲ دسامبر ۲۰۲۴، آخرین به‌روزرسانی: ۲۰ مه ۲۰۲۵

با میاناهای برنامه‌سازی کاربردی هوش مصنوعی داخلی، برنامه وب شما می‌تواند تکالیف مبتنی بر هوش مصنوعی را بدون نیاز به استقرار یا مدیریت مدل‌های هوش مصنوعی خود انجام دهد. در تلاشیم تا این میاناهای برنامه‌سازی کاربردی را در مرورگرها استانداردسازی کنیم.

مدل‌های موردنیاز

«میاناهای برنامه‌سازی کاربردی مترجم» و «آشکارساز زبان» از مدل‌های تخصصی استفاده می‌کنند. همه دیگر واسط‌های برنامه‌سازی کاربردی از مدل زبانی استفاده می‌کنند که برای اجرا به‌صورت محلی در رایانه‌های رومیزی و کیفی طراحی شده است.

«میانای برنامه‌سازی کاربردی خلاصه کردن»، «میانای برنامه‌سازی کاربردی نوشتن»، «میانای برنامه‌سازی کاربردی بازنویسی»، و «میانای برنامه‌سازی کاربردی نمونه‌خوان» فقط از حالت متن به متن پشتیبانی می‌کنند. ‫ Prompt API قابلیت‌های چندحالتی دارد.

مدل‌های Chrome

‫Chrome از مدل‌های زبان تخصصی و پایه استفاده می‌کند. این مدل‌ها در دستگاه‌های همراه دردسترس نیستند.

از Chrome 149، مدل‌ها از زبان‌های انگلیسی، اسپانیایی، ژاپنی، آلمانی، و فرانسوی برای نوشتار ورودی و خروجی پشتیبانی می‌کنند.

سخت‌افزار موردنیاز

الزامات زیر برای توسعه‌دهندگان و کاربرانی که از ویژگی‌های استفاده‌کننده از این میاناهای برنامه‌سازی کاربردی در Chrome استفاده می‌کنند وجود دارد. مرورگرهای دیگر ممکن است الزامات عملیاتی متفاوتی داشته باشند.

«واسط برنامه‌سازی کاربردی مترجم» و «آشکارساز زبان» در Chrome در رایانه کار می‌کنند. این «میاناهای برنامه‌سازی کاربردی» در دستگاه‌های همراه کار نمی‌کنند.

Prompt API،‏ Summarizer API،‏ Writer API،‏ Rewriter API، و Proofreader API در Chrome کار می‌کنند اگر شرایط زیر برآورده شود:

  • سیستم‌عامل: Windows 10 یا 11؛ macOS 13+‎ (Ventura و نسخه‌های جدیدتر)؛ Linux؛ یا ChromeOS (از پلاتفرم 16389.0.0 و نسخه‌های جدیدتر) در دستگاه‌های Chromebook Plus. ‫Chrome ویژه Android،‏ iOS، و ChromeOS در دستگاه‌های غیر Chromebook Plus هنوز از میاناهای برنامه‌سازی کاربردی که از مدل‌های پایه استفاده می‌کنند پشتیبانی نمی‌کنند.
  • فضای ذخیره‌سازی: حداقل ۲۲ گیگابایت فضای آزاد در حجمی که نمایه Chrome شما در آن قرار دارد.
  • واحد پردازش گرافیکی یا واحد پردازش مرکزی: مدل‌های داخلی می‌توانند با واحد پردازش گرافیکی یا واحد پردازش مرکزی اجرا شوند.
    • GPU: دقیقاً بیشتر از ۴ گیگابایت VRAM.
    • واحد پردازش مرکزی: ۱۶ گیگابایت حافظه دسترسی تصادفی یا بیشتر و ۴ هسته واحد پردازش مرکزی یا بیشتر.
    • توجه: Prompt API با ورودی صوتی به GPU نیاز دارد.
  • شبکه: داده نامحدود یا اتصال نامحدود.

اندازه دقیق Gemini Nano ممکن است با به‌روزرسانی مدل توسط مرورگر تغییر کند. برای تعیین اندازه فعلی، به chrome://on-device-internals بروید.

شروع ساختن

چندین میانای برنامه‌سازی کاربردی هوش مصنوعی داخلی در مراحل مختلف توسعه دردسترس است. برخی‌از آن‌ها در نسخه پایدار Chrome هستند، برخی‌از آن‌ها برای شرکت‌کنندگان در آزمایش‌های معرفی ویژگی جدید دردسترس هستند، و برخی دیگر فقط برای شرکت‌کنندگان در «برنامه پیش‌نمای اولیه» دردسترس هستند.

هر میانای برنامه‌سازی کاربردی مجموعه دستورالعمل‌های خاص خود را برای شروع به کار و بارگیری مدل دارد، هم برای نمونه‌سازی محلی و هم در محیط‌های تولید با آزمایش‌های معرفی ویژگی جدید.

از همه این میاناهای برنامه‌سازی کاربردی می‌توان هنگام ساختن «افزونه‌های Chrome» استفاده کرد.

بارگیری مدل

میاناهای برنامه‌سازی کاربردی و مدل‌ها در Chrome تعبیه شده‌اند. اولین باری که کاربر با این میاناهای برنامه‌سازی کاربردی تعامل برقرار می‌کند، مدل باید در مرورگر بارگیری شود.

برای تعیین اینکه آیا یک API قابل‌استفاده و آماده است، تابع ناهمزمان availability() را فراخوانی کنید، که یک وعده با یکی از مقادیر زیر برمی‌گرداند:

  • "unavailable": دستگاه کاربر یا گزینه‌های جلسه درخواست‌شده پشتیبانی نمی‌شود. ممکن است دستگاه برق یا فضای دیسک کافی نداشته باشد.
  • ‫"downloadable": برای ایجاد جلسه، بارگیری‌های اضافی لازم است که ممکن است شامل مدل تخصصی، مدل زبانی، یا تنظیم دقیق باشد. برای تماس با create()، ممکن است فعال‌سازی کاربر لازم باشد.
  • ‫"downloading": بارگیری‌ها درحال انجام است و باید قبل‌از اینکه بتوانید از جلسه استفاده کنید تکمیل شود.
  • ‫"available": می‌توانید فوراً جلسه‌ای ایجاد کنید.

برخی‌از میاناهای برنامه‌سازی کاربردی هنگام فراخوانی دردسترس بودن به گزینه‌های بیشتری نیاز دارند. برای مثال، میانای برنامه‌سازی کاربردی پیام‌واره نیاز دارد پشتیبانی از زبان را اعلام کنید:

// Makes sure the model is available for English and Japanese input text,
// supports image input, and can generate English output.
await LanguageModel.availability({
  expectedInputs: [{type: "text", languages: ["en", "ja"]}, {type: "image"}],
  expectedOutputs: [{type: "text", languages: ["en"]}],
});

فعال‌سازی کاربر

اگر دستگاه بتواند از میاناهای برنامه‌سازی کاربردی هوش مصنوعی داخلی پشتیبانی کند، اما مدل هنوز بارگیری نشده باشد (یعنی وقتی فراخوانی availability() مقدار "downloadable" یا "downloading" را برمی‌گرداند)، کاربر باید به‌طور معناداری با صفحه شما تعامل داشته باشد تا برنامه شما بتواند جلسه‌ای با create() شروع کند.

از ویژگی UserActivation.isActive استفاده کنید تا تأیید کنید که کاربر از زمان اتمام بارگیری صفحه مستقیماً با صفحه تعامل داشته است. این می‌تواند شامل تک‌ضرب، کلیک، فشار دادن کلید، mousedown، یا دیگر رویدادهای فعال‌سازی چسبنده باشد.

// Check for user activation.
if (navigator.userActivation.isActive) {
  // Create an instance of a built-in API
}

برای مثال، با Summarizer API، می‌توانید از کاربران بخواهید با دکمه‌ای که می‌گوید «خلاصه کردن» تعامل داشته باشند تا Summarizer.create() فعال شود، یا می‌توانید خلاصه‌ساز را پس‌از اینکه کاربر شروع به تایپ کرد، یک رویداد keydown، ایجاد کنید.

عیب‌یابی میزبان محلی

اگر مدل طبق انتظار کار نمی‌کند، این مراحل را دنبال کنید:

  1. ‫Chrome را بازراه‌اندازی کنید.
  2. به chrome://on-device-internals بروید.
  3. برگه وضعیت کارگزار را انتخاب کنید و مطمئن شوید خطایی وجود ندارد.
  4. DevTools را باز کنید و LanguageModel.availability(); را در کنسول تایپ کنید. این کار باید available را برگرداند.

درصورت لزوم، مدتی صبر کنید و این مراحل را تکرار کنید.

فرایند استانداردها

ما در تلاشیم تا این APIها را استانداردسازی کنیم، تا در همه مرورگرها کار کنند. این یعنی «میاناهای برنامه‌سازی کاربردی» را به انجمن پلاتفرم‌های وب پیشنهاد داده‌ایم و آن‌ها را برای بحث بیشتر به گروه انجمن W3C Web Incubator منتقل کرده‌ایم.

برای هر API، از W3C،‏ Mozilla، و WebKit درخواست بازخورد می‌کنیم.

تعامل و هم‌رسانی بازخورد

اگر هوش مصنوعی داخلی را امتحان کردید و بازخوردی دارید، خوشحال می‌شویم آن را بشنویم.