Что делать если нужно поставить какую-то Python-библиотеку а root-прав нет? То есть в систему библиотеку никак и ничего не поставить.
Есть как минимум два способа это решить правильно!
🔸 Сделать виртуальное окружение и ставить там что угодно.
Это позволит создать полностью независимое исполняемое окружение для ваших приложений.
Все библиотеки будут храниться в домашней директории юзера а значит доступ на запись имеется.
Создать очень просто:
python3 -m venv ~/venvs/myenvname
Теперь активируем окружение
# Linux
source ~/venvs/myenvname/bin/activate
# Windows
%userprofile%\venvs\myenvname\Scripts\activate.bat
Можно ставить любые библиотеки и запускать приложение.
Это стандартный метод работы с любым проектом. Если еще не используете его, то пора начинать. Даже при наличии root доступа!
🔸 Бывает, что нет возможности запустить приложение из своего виртуального окружения. Например, его запускает какой-то сервис от вашего юзера и вставить активацию окружения вы не можете.
В этом случае можно установить библиотеки для Python не глобально в систему, а только для юзера.
Выполните этот код в консоли:
python3 -m site
Вы получите что-то такое:
sys.path = [
'/home/user',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'/home/user/.local/lib/python3.7/site-packages',
...
]
USER_BASE: '/home/user/.local'
USER_SITE: '/home/user/.local/lib/python3.7/site-packages'
ENABLE_USER_SITE: True
Нас интересует параметр USER_SITE. Это путь к пользовательским библиотекам, которые доступны по умолчанию, если они есть.
Именно сюда будут устанавливаться модули если добавить флаг --user при установке чего-либо через pip
pip install --user requests
Для этой команды не нужны root-права.
После неё можно запускать системный интерпретатор без виртуальных окружений и установленная библиотека будет доступна для текущего юзера.
Параметр USER_BASE показывает корневую директорию для хранения user-библиотек. Её можно изменить с помощью переменной окружения PYTHONUSERBASE
export PYTHONUSERBASE=~/pylibs
python3 -m site
...
USER_BASE: '/home/user/pylibs'
USER_SITE: '/home/user/pylibs/lib/python3.7/site-packages'
Получается некоторое подобие виртуального окружения для бедных 😁 которое можно менять через эту переменную (не делайте так!Лучше venv!)
🔸 Дописывание пути в PYTHONPATH
Этот способ не входит в список "двух правильных", но тоже рабочий. Здесь придётся сделать всё несколько сложней.
Сначала ставим библиотеку в любое место указывая путь установки
pip3 install -t ~/mylibs modulename
Библиотека установится без привязки к какому-либо интерпретатору. То есть по умолчанию не будет видна. Теперь в нужный момент добавляем этот путь в sys.path или в PYTHONPATH.
Не буду советовать так делать. Единственный раз когда этот способ мне пригодился и решил поставленную задачу, это при создании общей библиотеки для кластера компьютеров.
Модули лежат в сети и подгружаются для всех из одного и того же места. То есть обновлять файлы требуется только один раз а не на всех хосты отдельно.
Минусы такого подхода:
▫️Нужно всем хостам пробить нужный путь в .bashrc или ещё куда-то чтобы он сетапился на старте.
▫️Чем больше хостов тем больше нагрузка на сеть. Иногда такой способ не подходит именно по этой причине. Тогда Ansible вам в помощь.
▫️Не очень подходит если хосты с разными операционками. Некоторые библиотеки различаются для Linux и Windows (там, где есть бинарники) и приходится мудрить более сложные схемы.
#tricks#basic
🌟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