تم تصميم إمكانية الوصول التجريبي إلى Gemini Nano للمطوّرين الذين يريدون اختبار تحسين تطبيقاتهم باستخدام إمكانات الذكاء الاصطناعي المتطوّرة على الجهاز فقط. يوفّر هذا الدليل تفاصيل حول كيفية تجربة Gemini Nano باستخدام حزمة تطوير البرامج (SDK) Google AI Edge في تطبيقك.
الحصول على التطبيق النموذجي
إذا أردت اتّباع نموذج تجريبي معدّ، يمكنك الاطّلاع على نموذج التطبيق على GitHub.
المتطلّبات الأساسية
لتجربة Gemini Nano، ستحتاج إلى جهاز من سلسلة Pixel 9. تأكَّد من أنّ لديك حسابًا قبل المتابعة، ومن أنّك سجّلت الدخول باستخدام الحساب الذي تريد استخدامه للاختبار فقط.
- الانضمام إلى مجموعة Google الخاصة بـ aicore-experimental
- الموافقة على الانضمام إلى برنامج اختبار Android AICore
بعد إكمال هذه الخطوات، من المفترض أن يتغيّر اسم التطبيق على "متجر Play" (ضمن إدارة التطبيقات والأجهزة) من "Android AICore" إلى "Android AICore (إصدار تجريبي)".
تحديث حِزم APK وتنزيل الملفات الثنائية
- عدِّل حزمة APK الخاصة بتطبيق AICore:
- في أعلى يسار الشاشة، انقر على رمز الملف الشخصي.
- النقر على إدارة التطبيقات والأجهزة > إدارة
- انقر على Android AICore.
- انقر على تحديث إذا كان هناك تحديث متوفّر.
- عدِّل حزمة APK الخاصة بخدمة الحوسبة الخاصة:
- في أعلى يسار الشاشة، انقر على رمز الملف الشخصي.
- النقر على إدارة التطبيقات والأجهزة > إدارة
- انقر على خدمات الحوسبة الخاصة.
- انقر على تحديث إذا كان هناك تحديث متوفّر.
- تحقَّق من الإصدار ضمن علامة التبويب لمحة عن هذا التطبيق وتأكَّد من أنّ إصدار التطبيق هو 1.0.release.658389993 أو إصدار أحدث.
- أعِد تشغيل جهازك وانتظِر بضع دقائق حتى يصبح تسجيل الاختبار فعالًا.
- اطّلِع على إصدار حزمة APK الخاصة بـ AICore في "متجر 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
يحتوي على مَعلمات لتخصيص السمات
لتحديد كيفية تنفيذ النموذج للاستنتاج.
تشمل المَعلمات ما يلي:
- مستوى الإبداع: يتحكّم في العشوائية، وكلما كانت القيم أعلى، زاد التنوّع.
- أهم K: عدد الرموز المميزة من الرموز ذات الترتيب الأعلى التي يجب أخذها في الاعتبار
- عدد المرشحين: الحد الأقصى لعدد الردود التي سيتم عرضها
- الحد الأقصى لرموز الإخراج: طول الردّ
- مشغِّل Worker:
ExecutorService
الذي يجب تنفيذ المهام في الخلفية عليه - مُنفِّذ طلبات إعادة الاتصال:
Executor
الذي يجب استدعاء طلبات إعادة الاتصال عليه
Kotlin
val generationConfig = generationConfig { context = ApplicationProvider.getApplicationContext() // required temperature = 0.2f topK = 16 maxOutputTokens = 256 }
Java
GenerationConfig.Builder configBuilder = GenerationConfig.Companion.builder(); configBuilder.setContext(context); configBuilder.setTemperature(0.2f); configBuilder.setTopK(16); configBuilder.setMaxOutputTokens(256);
أنشئ downloadCallback
اختياريًا. هذه دالة ردّ اتصال تُستخدَم
لتحميل النموذج. يتم عرض الرسائل المعروضة لأغراض تصحيح الأخطاء.
أنشئ عنصر GenerativeModel
باستخدام إعدادات الإنشاء والتحميل
الاختيارية التي أنشأتها في وقت سابق.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val model = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel model = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
شغِّل الاستنتاج باستخدام النموذج وأدخِل طلبك. بما أنّ
GenerativeModel.generateContent()
هي دالة تعليق، علينا التأكّد من
أنّها ضمن نطاق دالة التشغيل المتعدّد المتزامن الصحيح لبدء التنفيذ.
Kotlin
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) }
Java
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));
إذا كانت لديك أي ملاحظات حول حزمة تطوير البرامج (SDK) لتكنولوجيات الذكاء الاصطناعي من Google في الأجهزة الطرفية أو أي ملاحظات أخرى ل فريقنا، يُرجى إرسال طلب.
نصائح حول الطلبات
تصميم الطلبات هو عملية إنشاء طلبات تؤدي إلى تلقّي ردٍّ مثالي من نماذج اللغة. إنّ كتابة طلبات طلبات جيدة التنظيم هو أحد العناصر الأساسية لضمان الحصول على ردود دقيقة وعالية الجودة من نموذج لغوي. لقد أدرجنا بعض الأمثلة لمساعدتك في البدء بحالات الاستخدام الشائعة لجهاز 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.