reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
🌟MUVERA: уравниваем в скорости многовекторный и одновекторный поиск.
MUVERA - алгоритм, разработанный Google Research, который сводит сложную задачу многовекторного поиска обратно к простому и быстрому MIPS, как в подходах с одним вектором.
Суть проста: вместо того чтобы работать с громоздким набором векторов, MUVERA сжимает его в единый вектор фиксированной длины, так называемый Fixed Dimensional Encoding (FDE). Главный трюк в том, что скалярное произведение этих новых FDE-векторов очень точно аппроксимирует исходную, «честную» метрику Чамфера.
На практике процесс выглядит как двухэтапный конвейер. Сначала MUVERA генерирует FDE для всех документов в базе и индексирует их с помощью обычного MIPS-солвера. Когда приходит запрос, для него тоже создается FDE, и система молниеносно находит небольшой список кандидатов. А уже затем этот короткий список переранжируется с использованием оригинальной, медленной, но точной метрики Чамфера. На выходе получаем и скорость, и качество.
В практическом сравнении с предыдущим SOTA методом PLAID, MUVERA показывает в среднем на 10% более высокую полноту выдачи при сокращении задержки на 90%. Чтобы достичь того же качества, алгоритму требуется отобрать в 5-20 раз меньше кандидатов для финального переранжирования.
Более того, эти FDE-векторы отлично сжимаются — до 32 раз с минимальной потерей качества.
Для тех. кто хочет попробовать, в репозитории проекта на Github есть реализации MUVERA на Python и C++ .
📌Лицензирование: Apache 2.0
🟡Статья
🟡Arxiv
🖥GitHub
@ai_machinelearning_big_data
#AI#ML#LLM#MUVERA#GoogleResearch
⚡️Команда Google Research представила технологию живого перевода речи в речь, которая позволяет говорить на одном языке и почти мгновенно слышать перевод на другом.
Раньше процесс проходил через три этапа: распознавание речи, перевод текста и синтез новой речи, из-за чего задержка могла достигать десятков секунд.
Исследователи оптимизировали весь конвейер, сделали обработку более устойчивой и сократили время реакции. Перевод звучит естественнее, меньше «подправляется» в реальном времени, а паузы стали значительно короче.
Технология приближает момент, когда люди смогут свободно общаться, даже если не знают языка собеседника.
https://research.google/blog/real-time-speech-to-speech-translation
@ai_machinelearning_big_data
#Google#AI#Translation#SpeechToSpeech#GoogleResearch
🚀Прорыв от Google: активное обучение с экономией данных на 10 000× при дообучении LLM
Google разработала масштабируемый процесс *active learning*, который позволяет в десятки тысяч раз сократить объём размеченных данных, необходимых для тонкой настройки больших языковых моделей на сложных задачах — например, при модерации рекламного контента.
🟢 Как работает метод:
1. Стартовая модель (LLM-0) получает промпт и автоматически размечает огромный массив данных.
2. Кластеризация выявляет примеры, где модель путается (наиболее спорные и ценные для обучения).
3. Отбор данных: из этих кластеров выбирают информативные и разнообразные примеры.
4. Экспертная разметка — только для выбранных примеров.
5. Итерации: дообучение модели → новый отбор спорных примеров → разметка → снова обучение.
🟢Результаты:
- Сокращение с 100 000 размеченных примеров до менее 500 при сохранении или улучшении качества.
- Улучшение метрики *Cohen’s Kappa* на 55–65 %.
- В больших продакшн-моделях — до 3–4 порядков меньше данных при сопоставимом или лучшем качестве.
🟢Что такое Cohen’s Kappa?
Это метрика, которая показывает, насколько два "судьи" (например, эксперт и модель) согласны между собой с поправкой на случайные совпадения.
- 0.0 — нет согласия (или хуже случайного)
- 0.41–0.60 — умеренное согласие
- 0.61–0.80 — значительное
- 0.81–1.00 — почти полное согласие
В задачах с дисбалансом классов Kappa даёт более честную оценку, чем обычная точность (accuracy).
Чем лучше предыдущих методов:
- Точечная разметка: размечаются только самые информативные примеры.
- Масштабируемость: метод применим к наборам данных с сотнями миллиардов примеров.
- Экономия ресурсов: меньше времени и затрат на разметку.
- Быстрая адаптация: подходит для доменов с быстро меняющимися правилами (реклама, модерация, безопасность).
🟢Вывод:
При умном отборе данных LLM можно адаптировать в тысячи раз быстрее и дешевле, чем при традиционном обучении на больших размеченных наборах.
#GoogleResearch#ActiveLearning#AI#LLM#MachineLearning#DataEfficiency
🟠Почитать подробно
@ai_machinelearning_big_data
#GoogleResearch#ActiveLearning#AI#LLM#MachineLearning#DataEfficiency
⚡Speculative Cascades — как ускорить работу LLM
Google Research придумали новый способ сделать большие языковые модели быстрее и дешевле.
Что это такое:
🔹Каскады
Сначала отвечает маленькая модель. Если задача слишком сложная - подключается большая. Так экономятся ресурсы, но качество может прыгать.
🔹Спекулятивная декодировка
Маленькая модель угадывает сразу несколько слов вперёд. Большая быстро проверяет данные и подтверждает. Скорость выше, но большая модель всё равно тратит много ресурсов.
🟢Speculative Cascades
Это комбинация: маленькая модель иногда отвечает полностью сама, а иногда используется как ускоритель для большой. В итоге получаем меньше затрат, больше скорости и то же качество.
🔥Что показали тесты (тестили на Gemma, T5):
- быстрее, чем обычная спекулятивная декодировка
- дешевле и качественнее, чем каскады
- удобнее настраивать баланс «скорость ↔ качество»
При том же уровне качества, что и у спекулятивной декодировки, новый метод работает быстрее (генерирует больше токенов за один вызов большой модели).
А в задачах математических рассуждений получен явный апгрейд по скорости при сохранении или даже улучшении качества.
LLM всё чаще используются в поиске, чатах, ассистентах. Чтобы они реально были полезными, их нужно ускорять и удешевлять. *Speculative cascades* помогают это сделать без потери качества.
🔗Подробнее: https://research.google/blog/speculative-cascades-a-hybrid-approach-for-smarter-faster-llm-inference/
@ai_machinelearning_big_data
#AI#LLM#Inference#SpeculativeDecoding#Cascades#GoogleResearch
⚡️ Google представила Coral NPU - открытую платформу для создания умных ИИ-устройств на Эйдж девайсах
Это полный стек для разработки локального искусственного интеллекта, который работает без облака и практически без задержек.
Coral NPU - это новый тип нейропроцессора (Neural Processing Unit), созданный для умных гаджетов, IoT и носимых устройств.
Можно обучать и запускать модели прямо на устройствах с низким энергопотреблением - от датчиков и дронов до мини-роботов и камер. Coral NPU позволяет делать это быстро и безопасно.
🧩 Врунти:
- SDK и инструменты для TensorFlow Lite и ONNX
- Компилятор, квантование и оптимизация моделей
- Поддержка Python, C++ и микроконтроллеров
Как это работает
1. Модель обучается (в TensorFlow / PyTorch).
2. Компилятор Coral NPU превращает её в оптимизированный код через MLIR → IREE → NPU binary.
3. Код работает прямо на устройстве, используя:
- RISC-V (управляет задачами)
- Векторные блоки( выполняют параллельные операции)
- Матричные ускорители MAC (считают нейронные сети за милливатты энер)гии.
Результат - ИИ-инференс с производительностью до 512 миллиардов операций в секунду, при этом устройство потребляет очень мало ресурсов и не передаёт данные в облако.
Edge AI получает свою открытую архитектуру от Google.
Подробнее: https://research.google/blog/coral-npu-a-full-stack-platform-for-edge-ai/
@ai_machinelearning_big_data
#EdgeAI#GoogleResearch#CoralNPU#RISC_V#AIHardware