Экспериментальный доступ к Gemini Nano предназначен для разработчиков, желающих протестировать усовершенствование своих приложений с помощью передовых возможностей искусственного интеллекта на устройстве. Это руководство содержит подробную информацию о том, как экспериментировать с Gemini Nano, используя Google AI Edge SDK в вашем собственном приложении.
Получить образец приложения
Если вы хотите использовать готовую демо-версию, ознакомьтесь с нашим примером приложения на GitHub .
Предпосылки
Для экспериментов с Gemini Nano вам понадобится устройство серии Pixel 9. Перед началом работы убедитесь, что оно у вас есть, и что вы вошли только в ту учётную запись, которую собираетесь использовать для тестирования.
- Присоединяйтесь к группе Google aicore-experimental
- Примите участие в программе тестирования Android AICore
После выполнения этих действий название приложения в магазине Play (в разделе «Управление приложениями и устройствами») должно измениться с «Android AICore» на «Android AICore (Beta)».
Обновите APK и загрузите исполняемые файлы
- Обновите AICore APK :
- В правом верхнем углу нажмите на значок профиля.
- Нажмите «Управление приложениями и устройствами» > «Управление».
- Нажмите Android AICore
- Нажмите «Обновить» , если доступно обновление.
- Обновите APK-файл службы частных вычислений :
- В правом верхнем углу нажмите на значок профиля.
- Нажмите «Управление приложениями и устройствами» > «Управление».
- Услуги частных вычислений
- Нажмите «Обновить» , если доступно обновление.
- Проверьте версию на вкладке «Об этом приложении» и убедитесь, что версия приложения — 1.0.release.658389993 или выше.
- Перезагрузите устройство и подождите несколько минут, чтобы тестовая регистрация вступила в силу.
- Проверьте версию AICore APK в магазине Play (на вкладке «Об этом приложении»), чтобы убедиться, что она начинается с 0.thirdpartyeap.
Настроить Gradle
Добавьте следующее в блок зависимостей в конфигурации build.gradle
:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
В конфигурации build.gradle
установите минимальный целевой SDK равным 31:
defaultConfig {
...
minSdk = 31
...
}
Получите AICore и запустите вывод
Создайте объект GenerationConfig
, имеющий параметры для настройки свойств, определяющих, как модель должна выполнять вывод.
Параметры включают в себя:
- Температура : контролирует случайность; более высокие значения увеличивают разнообразие.
- Top K : Сколько токенов из числа самых высокорейтинговых следует учитывать
- Количество кандидатов : максимальное количество ответов для возврата
- Максимальное количество выходных токенов : длина ответа
- Worker Executor : служба
ExecutorService
, на которой должны выполняться фоновые задачи. - Исполнитель обратного вызова :
Executor
, на котором должны быть вызваны обратные вызовы.
Котлин
val generationConfig = generationConfig { context = ApplicationProvider.getApplicationContext() // required temperature = 0.2f topK = 16 maxOutputTokens = 256 }
Ява
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 )
Ява
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) }
Ява
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.