Что делать если нужно поставить какую-то 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
💡 Исследователи из ByteDance и Stanford предложили новый метод для генерации длинных видео — Mixture of Contexts.
🔑 В чём проблема:
Когда видео становится длинным, внимание модели сильно «раздувается»: растёт стоимость вычислений, модель теряет детали на генерациях, забывает персонажей и «дрейфует».
⚡ Чем интересен Mixture of Contexts:
- Видео разбивается на куски (кадры, шоты, подписи).
- Каждый запрос выбирает только нужные чанки, вместо того чтобы учитывать всю историю.
- Для этого используется простая оценка релевантности: сравнение признаков чанков с текущим запросом.
- Обязательно учитываются два «якоря»: полный текстовый промпт и локальный шот для деталей видео.
- Causal mask блокирует внимание к будущим кадрам, чтобы не было зацикливаний.
- Дальше применяется Flash Attention только к выбранным чанкам — вычисления растут не с длиной всего видео, а только с полезным контекстом.
📊 Результаты:
- В 7 раз меньше FLOPs
- В 2.2 раза быстрее работа
- На длинных сценах (180k токенов) отсекается 85% ненужного внимания
🎥 Итог:
- Короткие клипы сохраняют качество
- Длинные сцены становятся более плавными, а персонажи — стабильными
- Время генерации заметно сокращается
Главное: модель учится сама понимать, на что смотреть, получая «память» на минуты видео без изменения базовой архитектуры.
🟠Подробнее
@ai_machinelearning_big_data
#AI#ML#ByteDance#Stanford#videogeneration
🎥 Новинка от ByteDance: модель Video-As-Prompt Wan2.1-14B
ByteDance выпустила модель Wan2.1-14B, специализирующуюся на задаче *video-as-prompt*, то есть использование видео или комбинации изображений и текста как входных данных для генерации нового видео.
- Работает в режимах «видео → видео» или «изображения/текст → видео».
- 14 млрд параметров — высокая детализация, плавная динамика, реалистичные движения.
- Использует исходное видео как шаблон стиля и композиции.
⚠️ Что стоит учитывать
- Модель требует мощных GPU и большого объёма памяти.
- Качество результата зависит от сложности запроса и длины видео.
🟠Github: https://github.com/bytedance/Video-As-Prompt
🟠HF: https://huggingface.co/ByteDance/Video-As-Prompt-Wan2.1-14B
@ai_machinelearning_big_data
#AI#VideoGeneration#ByteDance#Wan2#HuggingFace
✨HuMo : еще один релиз от ByteDance
Модель, ориентированная на создание видео, где главным элементом является человек, с контролем через разные модальности: текст, изображения, аудио.
> на входи модель может принимать: текст + изображение, текст + аудио, текст + аудио
> поддержка сохранения образа персонажа и синхронизации движений с аудио
> модель основана на **Wan 2.1** и Whisper Large v3
https://huggingface.co/bytedance-research/HuMo
@ai_machinelearning_big_data
#AI#ByteDance#HuMo#VideoGeneration#Multimoda
⚡️LongCat-Video 13.6И - мощная open-source модель для генерации видео.
Модель поддерживает:
- Текст в видео (Text-to-Video)
- Оживлять картинку (Image-to-Video)
- Продолжать существующее видео (Video Continuation)
Всё в одном фреймворке, без переключения между разными моделями.
🎬Главное преимущество модели - способность генерировать длинные видео (минуты) без потери качества и цветового дрейфа, что до сих пор остаётся слабым местом большинства аналогов.
Еще из интересного, модель позволяет создавать видео в разрешении 720p при 30 кадрах/с.
🏆 LongCat-Video конкурирует с лучшими open-source решениями и даже некоторыми коммерческими моделями, особенно в согласованности текста и изображения.
Самое приятное - полный open-source под лицензией MIT, можно использовать как в исследованиях, так и в коммерческих проектах.
▪GitHub: https://github.com/meituan-longcat/LongCat-Video
▪Hugging Face:https://huggingface.co/meituan-longcat/LongCat-Video
▪Сайт проекта: https://meituan-longcat.github.io/LongCat-Video/
@ai_machinelearning_big_data
#LongCatVideo#TextToVideo#ImageToVideo#VideoContinuation#OpenSource#AI#GenerativeAI#VideoGeneration