หน้านี้จะอธิบายตัวเลือกการกำหนดค่าต่อไปนี้สำหรับประสบการณ์การใช้งานแบบไฮบริด
ตรวจสอบว่าคุณได้ทำตามคู่มือการเริ่มต้นใช้งานสำหรับการสร้างประสบการณ์แบบไฮบริดแล้ว
ตั้งค่าโหมดการอนุมาน
ตัวอย่างในคู่มือการเริ่มต้นใช้งานใช้PREFER_ON_DEVICEโหมด แต่
นี่เป็นเพียง 1 ใน 4 ของโหมดการอนุมานที่มีให้ใช้งาน
โหมดการอนุมานที่มีให้ใช้งานมีดังนี้
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: พยายามใช้โมเดลในอุปกรณ์หากมีและรองรับคำขอประเภทดังกล่าว ไม่เช่นนั้น throw an exceptionKotlin
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: พยายามใช้โมเดลที่โฮสต์ในระบบคลาวด์หากอุปกรณ์ ออนไลน์และหากมีโมเดล ไม่เช่นนั้น throw an exceptionKotlin
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 แบบเต็ม [ตัวอย่าง] (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_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_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 เพื่อดูเนื้อหาและโค้ดของผู้ให้บริการรายนั้นๆ ในหน้านี้ |
ในแต่ละคำขอที่ส่งไปยังโมเดล คุณสามารถส่งการกำหนดค่าโมเดลเพื่อควบคุม วิธีที่โมเดลสร้างคำตอบ โมเดลที่โฮสต์ในระบบคลาวด์และโมเดลในอุปกรณ์มีการกำหนดค่าแตกต่างกันและมีตัวเลือกการกำหนดค่าที่แตกต่างกัน ดังนี้
โมเดลที่โฮสต์ในระบบคลาวด์: ตั้งค่าโดยใช้
generationConfig(Kotlin | Java) ดูข้อมูลเกี่ยวกับพารามิเตอร์ที่ใช้ได้โมเดลในอุปกรณ์: ตั้งค่าโดยใช้
onDeviceConfig(Kotlin | Java) ดูข้อมูลเกี่ยวกับพารามิเตอร์ที่ใช้ได้ (Kotlin | Java)
ระบบจะคงการกำหนดค่าไว้ตลอดอายุการใช้งานของอินสแตนซ์ หากต้องการใช้การกำหนดค่าอื่น ให้สร้างอินสแตนซ์ GenerativeModel ใหม่ด้วยการกำหนดค่านั้น
ต่อไปนี้เป็นตัวอย่างที่ตั้งค่าสำหรับโมเดลที่โฮสต์ในระบบคลาวด์และโมเดลในอุปกรณ์ ซึ่งอาจใช้ได้หากตั้งค่าPREFER_ON_DEVICEโหมดการอนุมาน
Kotlin
// Config for cloud-hosted model
val generationConfig = generationConfig {
maxOutputTokens = 200
stopSequences = listOf("red")
}
// Config for on-device model
val onDeviceConfig = OnDeviceConfig(
mode = InferenceMode.PREFER_ON_DEVICE,
maxOutputTokens = 200
)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel(
modelName = "CLOUD_MODEL_NAME",
generationConfig = generationConfig,
onDeviceConfig = onDeviceConfig
)
Java
// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
.setMaxOutputTokens(200)
.setStopSequences(List.of("red"))
.build();
// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig(
/* mode = */ InferenceMode.PREFER_ON_DEVICE,
/* maxOutputTokens = */ 200,
/* temperature = */ null,
/* topK = */ null,
/* seed = */ null,
/* candidateCount = */ 1,
/* modelOption = */ null
);
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
"CLOUD_MODEL_NAME",
generationConfig,
/* safetySettings = */ null,
/* tools = */ null,
/* toolConfig = */ null,
/* systemInstruction = */ null,
/* requestOptions = */ new RequestOptions(),
onDeviceConfig
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
แสดงความคิดเห็น เกี่ยวกับประสบการณ์การใช้งาน Firebase AI Logic