خيارات الإعداد للتجارب المختلطة في تطبيقات Android


توضّح هذه الصفحة خيارات الإعداد التالية للتجارب المختلطة:

تأكَّد من إكمال دليل البدء لإنشاء تجارب مختلطة.

ضبط وضع الاستنتاج

تستخدِم الأمثلة الواردة في دليل البدء PREFER_ON_DEVICE، ولكن هذا الوضع هو واحد فقط من أوضاع الاستدلال الأربعة المتاحة.

في ما يلي أوضاع الاستدلال المتاحة:

  • PREFER_ON_DEVICE: محاولة استخدام النموذج على الجهاز فقط إذا كان متاحًا ويتوافق مع نوع الطلب بخلاف ذلك، سجِّل خطأ على الجهاز ثم استخدِم النموذج المستضاف على السحابة الإلكترونية تلقائيًا.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE: محاولة استخدام النموذج على الجهاز فقط إذا كان متاحًا ويتوافق مع نوع الطلب بخلاف ذلك، اطرح استثناءً.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD: محاولة استخدام النموذج المستضاف على السحابة الإلكترونية إذا كان الجهاز متصلاً بالإنترنت وكان النموذج متاحًا إذا كان الجهاز غير متصل بالإنترنت، استخدِم النموذج المتوفّر على الجهاز فقط. في جميع حالات الخطأ الأخرى، يجب طرح استثناء.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD: محاولة استخدام النموذج المستضاف على السحابة الإلكترونية إذا كان الجهاز متصلاً بالإنترنت وكان النموذج متاحًا بخلاف ذلك، اطرح استثناءً.

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    

تحديد ما إذا تم استخدام الاستدلال على الجهاز فقط أو في السحابة

إذا كان وضع الاستدلال PREFER_ON_DEVICE أو PREFER_IN_CLOUD، قد يكون من المفيد معرفة الوضع الذي تم استخدامه لطلبات معيّنة. يتم توفير هذه المعلومات من خلال السمة inferenceSource لكل ردّ.

عند الوصول إلى هذه السمة، ستكون القيمة المعروضة إما ON_DEVICE أو IN_CLOUD.

Kotlin

// ...

print("You used: ${result.response.inferenceSource}")

print(result.response.text)

Java

// ...

System.out.println("You used: " + result.getResponse().getInferenceSource());

System.out.println(result.getResponse().getText());

تحديد نموذج لاستخدامه

انقر على مزوّد خدمة Gemini API لعرض المحتوى والرمز الخاصين بالمزوّد في هذه الصفحة.

يمكنك تحديد نموذج لاستخدامه عند إنشاء مثيل generativeModel (Kotlin | Java).

  • تحديد نموذج مستضاف على السحابة الإلكترونية:

    • إذا كان وضع الاستنتاج هو PREFER_ON_DEVICE أو PREFER_IN_CLOUD أو ONLY_IN_CLOUD، يجب تحديد نموذج مستضاف على السحابة الإلكترونية بشكل صريح لاستخدامه. لا تتضمّن حزمة تطوير البرامج (SDK) نموذجًا تلقائيًا مستضافًا على السحابة الإلكترونية.

    • يمكنك الاطّلاع على أسماء الطُرز لجميع طُرز Geminiالمستندات المستضافة على السحابة الإلكترونية.

  • تحديد نموذج "على الجهاز فقط":

    • إذا كان وضع الاستنتاج PREFER_ON_DEVICE أو PREFER_IN_CLOUD أو ONLY_ON_DEVICE، يمكنك اختياريًا تحديد "فئة" من النماذج التي تعمل على الجهاز فقط لاستخدامها في onDeviceConfig. الفئات هي مزيج من مرحلة الإصدار وخصائص الأداء.

    • في ما يلي قيم الفئات المسموح بها.
      يختار AICore تلقائيًا النموذج المتوافق مع الجهاز والذي يستوفي شروط الفئة المحدّدة. على سبيل المثال، إذا حدّدت PREVIEW وكان الجهاز هو Pixel 9، سيتم على الأرجح اختيار Gemini Nano 4 Full [معاينة] (nano-v4-full) تلقائيًا.

      • STABLE: أحدث إصدار ثابت من النموذج الذي يعمل على الجهاز فقط

        • تم اختبارها بالكامل وعلى أجهزة المستهلكين.

        • على سبيل المثال، Gemini Nano 3 (nano-v3) أو Gemini Nano 2 (nano-v2).

        • الإعداد التلقائي للنموذج على الجهاز فقط في حال عدم تحديد OnDeviceModelOption.

      • PREVIEW: أحدث معاينة لنموذج على الجهاز فقط مع إمكانات أداء كاملة

        • تم تصميمه لتعزيز قدرات الاستدلال وإنجاز المهام المعقّدة.

        • على سبيل المثال، Gemini Nano 4 Full [معاينة] (nano-v4-full، الذي يستند إلى Gemma 4 E4B).

      • PREVIEW_FAST: أحدث معاينة لنموذج سريع يعمل على الجهاز فقط

        • تم تحسينها لتحقيق أقصى سرعة وأقل وقت استجابة.

        • على سبيل المثال، Gemini Nano 4 Fast [معاينة] (nano-v4-fast، الذي يستند إلى Gemma 4 E2B).

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel(
        // Specify a cloud-hosted model.
        // Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
        modelName = "CLOUD_HOSTED_MODEL_NAME",
        onDeviceConfig = OnDeviceConfig(
            mode = InferenceMode.INFERENCE_MODE,
            // (Optional) Specify an on-device model category.
            // AICore will auto-select an on-device model based on this category.
            // If not specified, AICore will auto-select the default stable on-device model.
            modelOption = OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
    )

Java

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        // Specify a cloud-hosted model.
        // Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
        "CLOUD_HOSTED_MODEL_NAME",
        /* config = */ null,
        /* safetySettings = */ null,
        /* tools = */ null,
        /* toolConfig = */ null,
        /* systemInstruction = */ null,
        /* requestOptions = */ new RequestOptions(),
        new OnDeviceConfig(
                /* mode = */ InferenceMode.INFERENCE_MODE,
                /* maxOutputTokens = */ null,
                /* temperature = */ null,
                /* topK = */ null,
                /* seed = */ null,
                /* candidateCount = */ 1,
                // (Optional) Specify an on-device model category.
                // AICore will auto-select an on-device model based on this category.
                // If not specified, AICore will auto-select the default stable on-device model.
                /* modelOption = */ OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);

استخدام إعدادات النموذج للتحكّم في الردود

انقر على مزوّد خدمة Gemini API لعرض المحتوى والرمز الخاصين بالمزوّد في هذه الصفحة.

في كل طلب يتم إرساله إلى نموذج، يمكنك إرسال إعدادات ضبط النموذج للتحكّم في طريقة إنشاء النموذج للرد. توفّر النماذج المستضافة على السحابة الإلكترونية والنماذج التي تعمل على الجهاز فقط خيارات إعداد مختلفة (المَعلمات السحابية مقابل المَعلمات التي تعمل على الجهاز فقط).

بالنسبة إلى النماذج المستضافة على السحابة الإلكترونية، اضبط إعداداتها مباشرةً في إعدادات النموذج. ومع ذلك، بالنسبة إلى النماذج التي تعمل على الجهاز فقط، يجب ضبط إعداداتها ضمن onDeviceConfig.

يتم الاحتفاظ بالإعدادات طوال مدة تشغيل الجهاز الافتراضي. إذا أردت استخدام إعداد مختلف، أنشئ مثيلاً جديدًا من GenerativeModel باستخدام هذا الإعداد.

في ما يلي مثال يضبط إعدادات النماذج المستضافة على السحابة الإلكترونية والنماذج المتوفّرة على الجهاز فقط التي يمكن استخدامها في حال تم ضبط وضع الاستدلال على PREFER_ON_DEVICE:

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel("MODEL_NAME",
        // Config for cloud-hosted model
        generationConfig = generationConfig {
          temperature = 0.8f,
          topK = 10
        },
        // Config for on-device model
        onDeviceConfig = onDeviceConfig {
          mode = InferenceMode.PREFER_ON_DEVICE,
          temperature = 0.8f,
          topK = 5
        })

Java

// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
    .setTemperature(0.8f)
    .setTopK(10)
    .build();

// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig.Builder()
    .setMode(InferenceMode.PREFER_ON_DEVICE)
    .setTemperature(0.8f)
    .setTopK(5)
    .build();

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "MODEL_NAME",
        generationConfig,
        onDeviceConfig
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);