Экспериментальный доступ к Gemini Nano предназначен для разработчиков, желающих протестировать улучшения своих приложений с помощью передовых возможностей искусственного интеллекта на устройстве. В этом руководстве подробно описано, как экспериментировать с Gemini Nano, используя SDK Google AI Edge в своем собственном приложении.
Предварительные требования
Для экспериментов с Gemini Nano вам понадобится устройство серии Pixel 9. Убедитесь, что у вас есть такое устройство, прежде чем продолжить, и что вы вошли в систему только с той учетной записью, которую собираетесь использовать для тестирования.
- Присоединяйтесь к экспериментальной группе Google aicore.
- Примите участие в программе тестирования Android AICore.
После выполнения этих шагов название приложения в Play Store (в разделе «Управление приложениями и устройствами») должно измениться с « Android AICore » на « Android AICore (Beta) ».
Обновите файлы пакетов Android (APK) и загрузите бинарные файлы.
- Обновите пакет Android AICore (APK) :
- В правом верхнем углу нажмите на значок профиля .
- Нажмите «Управление приложениями и устройством» > «Управление».
- Нажмите Android AICore
- Нажмите «Обновить», если доступно обновление.
- Обновите APK-файл Private Compute Service :
- В правом верхнем углу нажмите на значок профиля .
- Нажмите «Управление приложениями и устройством» > «Управление».
- Воспользуйтесь частными вычислительными сервисами
- Нажмите «Обновить», если доступно обновление.
- Проверьте версию во вкладке «Об этом приложении» и убедитесь, что версия приложения — 1.0.release.658389993 или выше.
- Перезагрузите устройство и подождите несколько минут, пока загрузка для тестирования вступит в силу.
- Проверьте версию APK-файла AICore в 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 , который будет содержать параметры для настройки свойств, определяющих способ выполнения вывода моделью.
В число параметров входят:
- Температура : контролирует случайность; более высокие значения увеличивают разнообразие.
- Топ К : Сколько токенов из числа самых высокоранговых следует учитывать?
- Количество кандидатов : максимальное количество ответов для возврата.
- Максимальное количество выходных токенов : Длина ответа
- Исполнитель задач (Worker Executor) : служба
ExecutorService, на которой должны выполняться фоновые задачи. - Исполнитель обратных вызовов :
Executorна котором должны вызываться обратные вызовы.
Котлин
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 , указав созданные ранее параметры генерации и, при необходимости, загрузки.
Котлин
val downloadConfig = DownloadConfig(downloadCallback) val generativeModel = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel generativeModel = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Запустите вывод с помощью модели и передайте ей свой запрос. Поскольку GenerativeModel.generateContent() — это функция с приостановкой, необходимо убедиться, что она находится в правильной области видимости сопрограммы для запуска.
Котлин
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." generativeModelFutures.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 или любые другие предложения для нашей команды, отправьте заявку в службу поддержки .
Подсказки
Разработка подсказок — это процесс создания подсказок, которые вызывают оптимальный ответ от языковых моделей. Написание хорошо структурированных подсказок является важной частью обеспечения точных и высококачественных ответов от языковой модели. Мы включили несколько примеров, чтобы помочь вам начать работу с распространенными сценариями использования 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.