Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
🤖⭐️Google выпустила GenAI API на основе Gemini Nano как часть ML Kit
В первой порции доступны 4 API (бета статус): суммаризация, исправление, перефразирование, описание изображения. Все модели работают на основе AI Core и полностью на устройстве пользователя. Это значит что все обрабатывается безопасно и работает без наличия интернета.
Пока поддерживается только небольшой список устройств (например, Pixel только линейка последнего поколения). Обещают расширять список в будущем. Скорее всего это связано с необходимой мощностью и оперативной памятью для запуска.
Подробнее в документации
#android#mlkit#gemini#googleio
📹Finding The Perfect Gemini fit on Android (13 мин)
Рассказ про GenAI модели из Google ML Kit и как можно их использовать на устройствах без подключения к сети (список моделей - флагманы 2024-2025 года)
#android#mlkit#ai#gemini#googleio
🤖Google анонсировали Automated Prompt Optimization (далее APO) для Vertex AI. Это будет полезно всем тем кто работает с on-device AI на Android
Если вы ещё не слышали про ML Kit Prompt API — это способ запускать Gemini Nano прямо на Android устройстве без обращения к серверу. Модель живёт в Android AICore как системный сервис, приложение просто отправляет промпт и получает ответ.
APO появился с целью настройки общей модели под конкретную задачу. Это облачный инструмент, который автоматически ищет оптимальный системный промпт для вашей задачи. Вы даёте примеры входных данных и ожидаемых ответов, Gemini Pro/Flash анализирует ошибки, генерирует десятки вариантов промптов параллельно и выбирает лучший. На выходе — просто текст промпта, который вы зашиваете в своё приложение.
Google утверждают, что это даёт📈 +5–8% к точности на реальных задачах: классификация, перевод, определения намерения.
Пока ML Kit Prompt API доступен только на ограниченном числе устройств, но направление очевидно — Google всерьёз строят экосистему on-device AI для Android-разработчиков
🔗 Источник - официальный блог Android Developers
#Android#AndroidDev#MLKit#GeminiNano#OnDeviceAI