خيارات الإعداد للتجارب المختلطة في تطبيقات 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

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel(
        modelName = "MODEL_NAME",
        onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    )

Java

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "MODEL_NAME",
        new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);

يمكنك الاطّلاع على أسماء جميع نماذج Gemini المتوافقة.

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

انقر على مقدّم خدمة 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);