เริ่มต้นใช้งานการทดลองใช้ Gemini Nano

การทดลองใช้ Gemini Nano ออกแบบมาสำหรับนักพัฒนาแอปที่ต้องการทดสอบการปรับปรุงแอปด้วยความสามารถ AI บนอุปกรณ์ที่ล้ำสมัย คู่มือนี้จะให้รายละเอียดเกี่ยวกับวิธีทดสอบ Gemini Nano โดยใช้ Google AI Edge SDK ในแอปของคุณเอง

รับแอปตัวอย่าง

หากต้องการทําตามตัวอย่างที่เตรียมไว้ โปรดดูแอปตัวอย่างบน GitHub

สิ่งที่ต้องมีก่อน

หากต้องการทดสอบ Gemini Nano คุณจะต้องมีอุปกรณ์ Pixel ซีรีส์ 9 โปรดตรวจสอบว่าคุณมีอุปกรณ์ดังกล่าวก่อนดำเนินการต่อ และคุณลงชื่อเข้าใช้ด้วยบัญชีที่ต้องการใช้ทดสอบเท่านั้น

  1. เข้าร่วมกลุ่ม Google aicore-experimental
  2. เลือกใช้โปรแกรมการทดสอบ Android AICore

หลังจากทำตามขั้นตอนเหล่านี้เสร็จแล้ว ชื่อแอปใน Play Store (ในส่วนจัดการแอปและอุปกรณ์) ควรเปลี่ยนจาก "Android AICore" เป็น "Android AICore (เบต้า)"

อัปเดต APK และดาวน์โหลดไบนารี

  1. อัปเดต AICore APK โดยทำดังนี้
    1. แตะไอคอนโปรไฟล์ที่ด้านขวาบน
    2. แตะจัดการแอปและอุปกรณ์ > จัดการ
    3. แตะ Android AICore
    4. แตะอัปเดตหากมีอัปเดตพร้อมใช้งาน
  2. อัปเดต Private Compute Service APK โดยทำดังนี้
    1. แตะไอคอนโปรไฟล์ที่ด้านขวาบน
    2. แตะจัดการแอปและอุปกรณ์ > จัดการ
    3. แตะ Private Compute Services
    4. แตะอัปเดตหากมีอัปเดตพร้อมใช้งาน
    5. ตรวจสอบเวอร์ชันในส่วนเกี่ยวกับแอปนี้ และยืนยันว่าแอปเป็นเวอร์ชัน 1.0.release.658389993 ขึ้นไป
  3. รีสตาร์ทอุปกรณ์และรอสักครู่เพื่อให้การลงทะเบียนทดสอบมีผล
  4. ตรวจสอบเวอร์ชัน AICore APK ใน Play Store (ในแท็บ "เกี่ยวกับแอปนี้") เพื่อยืนยันว่าเวอร์ชันขึ้นต้นด้วย 0.thirdpartyeap

กำหนดค่า Gradle

เพิ่มข้อมูลต่อไปนี้ลงในบล็อก dependencies ในการกําหนดค่า build.gradle


implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")

ในการกำหนดค่า build.gradle ให้ตั้งค่าเป้าหมาย SDK ขั้นต่ำเป็น 31

defaultConfig {
    ...
    minSdk = 31
    ...
}

รับ AICore และเรียกใช้การอนุมาน

สร้างออบเจ็กต์ GenerationConfig ซึ่งมีพารามิเตอร์สำหรับปรับแต่งพร็อพเพอร์ตี้สำหรับวิธีที่โมเดลควรทำการอนุมาน

พารามิเตอร์ ได้แก่

  • อุณหภูมิ: ควบคุมความสุ่ม ค่าที่สูงขึ้นจะเพิ่มความหลากหลาย
  • Top K: จํานวนโทเค็นจากโทเค็นที่มีลําดับสูงสุดที่จะพิจารณา
  • จํานวนผู้สมัคร: จํานวนคำตอบสูงสุดที่จะแสดง
  • โทเค็นเอาต์พุตสูงสุด: ความยาวของคำตอบ
  • ผู้ดำเนินการแบบเวิร์กเกอร์: ExecutorService ที่ควรเรียกใช้งานเบื้องหลัง
  • Executor ของ Callback: Executor ที่ควรเรียกใช้ Callback

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 (ไม่บังคับ) นี่คือฟังก์ชัน Callback ที่ใช้ในการดาวน์โหลดโมเดล ข้อความที่แสดงขึ้นมีไว้เพื่อแก้ไขข้อบกพร่อง

สร้างออบเจ็กต์ 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() เป็นฟังก์ชันที่ระงับ เราจึงต้องตรวจสอบว่าอยู่ในขอบเขต coroutine ที่ถูกต้องเพื่อเปิดใช้งาน

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));

หากมีความคิดเห็นเกี่ยวกับ Google AI Edge SDK หรือความคิดเห็นอื่นๆ สำหรับทีมของเรา โปรดส่งคำขอแจ้งปัญหา

เคล็ดลับเกี่ยวกับพรอมต์

การออกแบบพรอมต์คือกระบวนการสร้างพรอมต์ที่ดึงคำตอบที่ดีที่สุดจากโมเดลภาษา การเขียนพรอมต์ที่มีโครงสร้างดีเป็นส่วนสําคัญในการช่วยให้มั่นใจว่าจะได้รับคำตอบที่ถูกต้องและมีคุณภาพสูงจากโมเดลภาษา เราได้ใส่ตัวอย่างบางส่วนไว้เพื่อช่วยในการเริ่มต้นใช้งาน Use Case ที่พบบ่อยสำหรับ 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.