بدء استخدام الإصدار التجريبي من Gemini Nano

تم تصميم إمكانية الوصول التجريبي إلى Gemini Nano للمطوّرين الذين يريدون اختبار تحسين تطبيقاتهم باستخدام إمكانات الذكاء الاصطناعي المتطوّرة على الجهاز فقط. يوفّر هذا الدليل تفاصيل حول كيفية تجربة Gemini Nano باستخدام حزمة تطوير البرامج (SDK)‏ Google AI Edge في تطبيقك.

الحصول على التطبيق النموذجي

إذا أردت اتّباع نموذج تجريبي معدّ، يمكنك الاطّلاع على نموذج التطبيق على GitHub.

المتطلّبات الأساسية

لتجربة Gemini Nano، ستحتاج إلى جهاز من سلسلة Pixel 9. تأكَّد من أنّ لديك حسابًا قبل المتابعة، ومن أنّك سجّلت الدخول باستخدام الحساب الذي تريد استخدامه للاختبار فقط.

  1. الانضمام إلى مجموعة Google الخاصة بـ aicore-experimental
  2. الموافقة على الانضمام إلى برنامج اختبار Android AICore

بعد إكمال هذه الخطوات، من المفترض أن يتغيّر اسم التطبيق على "متجر Play" (ضمن إدارة التطبيقات والأجهزة) من "Android AICore" إلى "Android AICore (إصدار تجريبي)".

تحديث حِزم APK وتنزيل الملفات الثنائية

  1. عدِّل حزمة APK الخاصة بتطبيق AICore:
    1. في أعلى يسار الشاشة، انقر على رمز الملف الشخصي.
    2. النقر على إدارة التطبيقات والأجهزة > إدارة
    3. انقر على Android AICore.
    4. انقر على تحديث إذا كان هناك تحديث متوفّر.
  2. عدِّل حزمة APK الخاصة بخدمة الحوسبة الخاصة:
    1. في أعلى يسار الشاشة، انقر على رمز الملف الشخصي.
    2. النقر على إدارة التطبيقات والأجهزة > إدارة
    3. انقر على خدمات الحوسبة الخاصة.
    4. انقر على تحديث إذا كان هناك تحديث متوفّر.
    5. تحقَّق من الإصدار ضمن علامة التبويب لمحة عن هذا التطبيق وتأكَّد من أنّ إصدار التطبيق هو 1.0.release.658389993 أو إصدار أحدث.
  3. أعِد تشغيل جهازك وانتظِر بضع دقائق حتى يصبح تسجيل الاختبار فعالًا.
  4. اطّلِع على إصدار حزمة 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.