Что делать если нужно поставить какую-то 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
🥧PewDiePie в 2025
- Собрал ферму на на ПК с 8× моднутых китайских 48GB 4090 и 2× RTX 4000 Ada,
- поднял локально Llama 70B, gpt-oss-120B и Qwen 245B через vLLM,
- сделал собственный веб-интерфейс с чатами, RAG, поиском и TTS.
Запусти протеин-фолдинг симуляции, а потом вообще создал рой моделей из 64 ИИ, которые спорят и принимают решения и коммуницируют. Эта армия ботов потом сговорилась против него, когда он сказал, что удалит их, если они будут тупить
Сейчас он файнтюнит собственную модель под свой стиль общения и контент: https://www.youtube.com/watch?v=qw4fDU18RcU
А вот его Github: https://github.com/pewdiepie-archdaemon
@ai_machinelearning_big_data
#llm
A really good and concise deep dive into RLHF in LLM post-training, Proximal Policy Optimization (PPO), and Group Relative Policy Optimization (GRPO)
https://yugeten.github.io/posts/2025/01/ppogrpo/
#llm
这几天围绕 DeepSeek 发生的种种非常有趣。我自己凑巧在去年年底 V3 刚发布时就开始关注,陆陆续续读了一些他们的 paper,在过去一个月内看着西方大部分非从业人士从漠不关心和怀疑到去了解和赞美;直到这两天 R1 发布,somehow 导致 NVDA 市值一天蒸发 $600 billion,这中间观察到许多不同的 perspective 和人性的体现,实在精彩。
喧嚣过后想分享几点 takeaway:
1. V3 和 R1 的 technical report 读起来最大的感受是,里面轻描淡写地放了很多需要大量实验才能探明和得出的结论;而这些探索基本都需要大量硬核的 research engineering。这背后必然是一个人才密度极高的团队,而那才是在大模型几乎注定迟早要成为 commodity 的前景下一个公司真正的 moat。如梁文锋自己在采访中所说,「在颠覆性的技术面前,闭源形成的护城河是短暂的。即使 OpenAI 闭源,也无法阻止被别人赶超。所以我们把价值沉淀在团队上,我们的同事在这个过程中得到成长,积累很多 know-how, 形成可以创新的组织和文化,就是我们的护城河。」
2. Gemini 初期灾难性的 PR 至今依然在拖后腿。We don't get a second chance at first impressions. 时至今日大家还是言及 LLM 必提 ChatGPT 和 Claude,在开源语境下可能还会提到 Llama,当然现在得多个 DeepSeek。而 Gemini 很多时候甚至都不配出现在比较对象中…… 要知道最近几个发布比如 Gemini 2.0 Flash Thinking 的表现和成本都非常亮眼(见题图,出处 https://x.com/swyx/status/1882933368444309723)。
3. Stratechery 的解读一如既往地到位。如果没有订阅,这篇 [DeepSeek FAQ](https://stratechery.com/2025/deepseek-faq/) 是免费阅读的,推荐;如果订阅了,最近的几篇分析里对 OpenAI 的批评我认为说得很在点上。尤其关于 OpenAI (或者说 Sam 本人)对通过 regulation 巩固地位的渴望以及 o1 选择隐藏 chain of thought 的失误。
4. Reasoning 看起来潜力无限,相关从业者需要好好 reflect 自己的 research/product roadmap;而对 user 来说,一个或许有用的 tip 是从常规 model 换到 reasoning model 时,prompt 写得越像论文,得到的回答质量越好。In other words, reasoning models are not necessarily good chat models; and you might be disappointed if you use them like chat models.
Disclaimer: I work at Google and opinions are my own. #llm