دسترسی آزمایشی Gemini Nano برای توسعه دهندگانی طراحی شده است که به دنبال آزمایش بهبود برنامه های خود با قابلیت های پیشرفته هوش مصنوعی روی دستگاه هستند. این راهنما جزئیاتی را برای نحوه آزمایش Gemini Nano با استفاده از Google AI Edge SDK در برنامه خود ارائه می دهد.
نمونه برنامه را دریافت کنید
اگر میخواهید یک نسخه نمایشی آماده را دنبال کنید، برنامه نمونه ما را در GitHub بررسی کنید.
پیش نیازها
برای آزمایش Gemini Nano، به دستگاه سری Pixel 9 نیاز دارید. قبل از ادامه، مطمئن شوید که یک حساب در دسترس دارید و فقط با حسابی وارد شدهاید که میخواهید برای آزمایش از آن استفاده کنید.
- به گروه آزمایشی aicore Google بپیوندید
- در برنامه تست AICore Android شرکت کنید
پس از انجام این مراحل، نام برنامه در فروشگاه Play (تحت مدیریت برنامهها و دستگاه) باید از «Android AICore» به «Android AICore (بتا)» تغییر کند.
APK ها را به روز کنید و باینری ها را دانلود کنید
- به روز رسانی AICore APK :
- در بالا سمت چپ، روی نماد نمایه ضربه بزنید
- روی مدیریت برنامهها و دستگاه > مدیریت ضربه بزنید
- روی Android AICore ضربه بزنید
- در صورت موجود بودن بهروزرسانی، روی Update ضربه بزنید
- APK سرویس محاسبات خصوصی را بهروزرسانی کنید:
- در بالا سمت چپ، روی نماد نمایه ضربه بزنید
- روی مدیریت برنامهها و دستگاه > مدیریت ضربه بزنید
- روی Private Compute Services ضربه بزنید
- در صورت موجود بودن بهروزرسانی، روی Update ضربه بزنید
- نسخه را در برگه درباره این برنامه بررسی کنید و تأیید کنید که نسخه برنامه 1.0.release.658389993 یا بالاتر است.
- دستگاه خود را مجددا راه اندازی کنید و چند دقیقه صبر کنید تا ثبت نام آزمایشی اعمال شود
- نسخه AICore APK را در فروشگاه Play (در برگه «درباره این برنامه») بررسی کنید تا تأیید کنید که با 0.thirdpartyeap شروع میشود.
gradle را پیکربندی کنید
موارد زیر را به بلوک وابستگی در پیکربندی build.gradle
خود اضافه کنید:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
در پیکربندی build.gradle
، حداقل هدف SDK را روی 31 تنظیم کنید:
defaultConfig {
...
minSdk = 31
...
}
AICore را دریافت کنید و استنتاج را اجرا کنید
یک شی GenerationConfig
ایجاد کنید که دارای پارامترهایی برای سفارشی کردن خواص برای نحوه اجرای مدل استنتاج است.
پارامترها عبارتند از:
- دما : تصادفی بودن را کنترل می کند. ارزش های بالاتر تنوع را افزایش می دهد
- Top K : چه تعداد توکن از بالاترین رتبه باید در نظر گرفته شود
- تعداد نامزدها : حداکثر پاسخ برای بازگشت
- حداکثر نشانه های خروجی : طول پاسخ
- Worker Executor :
ExecutorService
که وظایف پس زمینه باید روی آن اجرا شود - Callback Executor :
Executor
که در آن callbackها باید فراخوانی شوند
کاتلین
val generationConfig = generationConfig { context = ApplicationProvider.getApplicationContext() // required temperature = 0.2f topK = 16 maxOutputTokens = 256 }
جاوا
GenerationConfig.Builder configBuilder = GenerationConfig.Companion.builder(); configBuilder.setContext(context); configBuilder.setTemperature(0.2f); configBuilder.setTopK(16); configBuilder.setMaxOutputTokens(256);
یک downloadCallback
اختیاری Callback ایجاد کنید. این یک تابع callback است که برای دانلود مدل استفاده می شود. پیام های برگشتی برای اهداف اشکال زدایی هستند.
شی GenerativeModel
را با پیکربندی های تولید و دانلود اختیاری که قبلا ایجاد کردید ایجاد کنید.
کاتلین
val downloadConfig = DownloadConfig(downloadCallback) val model = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
جاوا
GenerativeModel model = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
استنتاج را با مدل اجرا کنید و در فرمان خود عبور دهید. از آنجایی که GenerativeModel.generateContent()
یک تابع تعلیق است، باید مطمئن شویم که برای راهاندازی در محدوده اصلی قرار دارد.
کاتلین
scope.launch { // Single string input prompt val input = "I want you to act as an English proofreader. I will provide you texts, and I would like you to review them for any spelling, grammar, or punctuation errors. Once you have finished reviewing the text, provide me with any necessary corrections or suggestions for improving the text: These arent the droids your looking for." val response = generativeModel.generateContent(input) print(response.text) // Or multiple strings as input val response = generativeModel.generateContent( content { text("I want you to act as an English proofreader. I will provide you texts and I would like you to review them for any spelling, grammar, or punctuation errors.") text("Once you have finished reviewing the text, provide me with any necessary corrections or suggestions for improving the text:") text("These arent the droids your looking for.") } ) print(response.text) }
جاوا
Futures.addCallback( String input = "I want you to act as an English proofreader. I will provide you texts, and I would like you to review them for any spelling, grammar, or punctuation errors. Once you have finished reviewing the text, provide me with any necessary corrections or suggestions for improving the text: These aren't the droids you're looking for." modelFutures.generateContent(input), new FutureCallback<GenerateContentResponse>() { @Override public void onSuccess(GenerateContentResponse result) { // generation successful } @Override public void onFailure(Throwable t) { // generation failed } }, ContextCompat.getMainExecutor(this));
اگر بازخوردی درباره Google AI Edge SDK یا هر بازخورد دیگری برای تیم ما دارید، یک بلیط ارسال کنید .
نکات فوری
طراحی سریع فرآیند ایجاد اعلانهایی است که پاسخ بهینه را از مدلهای زبانی ایجاد میکند. نوشتن اعلانهای ساختاریافته بخش ضروری برای اطمینان از پاسخهای دقیق و با کیفیت بالا از یک مدل زبان است. ما چند مثال آورده ایم تا شما را با موارد استفاده رایج برای Gemini Nano شروع کنید. برای اطلاعات بیشتر، استراتژی های تحریک Gemini را بررسی کنید.
برای بازنویسی:
I want you to act as an English proofreader. I will provide you texts, and I
would like you to review them for any spelling, grammar, or punctuation errors.
Once you have finished reviewing the text, provide me with any necessary
corrections or suggestions for improving the text: These arent the droids your
looking for
برای موارد استفاده پاسخ هوشمند:
Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.
input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤🔥
input: Well that looks great regardless
output: 💗,🪄
input: Unfortunately this won't work
output: 💔,😔
input: sounds good, I'll look into that
output: 🙏,👍
input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️
input: Woo! Launch time!
Output:
برای جمع بندی:
Summarize this text as bullet points of key information.
Text: A quantum computer exploits quantum mechanical phenomena to perform
calculations exponentially faster than any modern traditional computer. At
very tiny scales, physical matter acts as both particles and as waves, and
quantum computing uses specialized hardware to leverage this behavior. The
operating principles of quantum devices are beyond the scope of classical
physics. When deployed at scale, quantum computers could be used in a wide
variety of applications such as: in cybersecurity to break existing encryption
methods while helping researchers create new ones, in meteorology to develop
better weather forecasting etc. However, the current state-of-the-art quantum
computers are still largely experimental and impractical.