Huggingface, WSL и КВН
После блокировки huggingface появилась проблема - скачивание моделей. И вроде все знают как ее решать, надо просто включить vietnamese pho noodles и все заработает, но если ты работаешь из под wsl, то начинаются проблемы.
Дисклеймер:
Многим для работы и доступа к корпоративным сетям необходим внутренний VPN, ниже инструкция как его подружить в wsl.Это не реклама, пост несет в себе исключительно техническую духоту.
Мой сетап:
- win 10
- wsl2 ubuntu
- amnezia
Что я попробовал:
- купить прокси
- прокинуть wsl через амнезию виндовую
- добавлял хосты huggingface (cdn в том числе) в запрет
- пытался мобильный с vpn раздавать
- подрубал зеркало (hf_mirror) (сработало для 1 модели из 4)
- пошел качать с modelscope (китайская алтернатива), но код сильно завязан на HF
Все это у меня не получилось нормально завести.
Помогло поставить ameziawg-go в wsl:
https://github.com/amnezia-vpn/amnezia-client/issues/850
Из коробки тоже не завелось, решением было добавить в wg0.conf:
[Interface]
Table = off
postUp и preDown
PostUp = ip route add YOUR_VPN_ENDPOINT_IP/32 via YOUR_ETH0_GATEWAY_IP dev eth0; ip route del default via YOUR_ETH0_GATEWAY_IP dev eth0; ip route add default dev wg0
PreDown = ip route del default dev wg0; ip route add default via YOUR_ETH0_GATEWAY_IP dev eth0; ip route del YOUR_VPN_ENDPOINT_IP/32 via YOUR_ETH0_GATEWAY_IP dev eth0 ```
YOUR_VPN_ENDPOINT_IP - IP адрес вашего VPN сервера (например, 203.0.113.1)
YOUR_ETH0_GATEWAY_IP - IP адрес шлюза вашей локальной сети (например, 192.168.1.1). Узнать можно командой: `ip route | grep default`
И на следующий день это все развалилось и перестало работать)
В итоге сработал способ прокинуть трафик из wsl через amezia на win. Но с небольшой особенностью:
https://github.com/deanmcniven/wsl2-vpn-support
При включении VPN и WSL надо стартовать powershell скрипт, который добавит роуты.
А так же добавить dns вашего vpn в /etc/resolv.conf:
nameserver 1.1.1.1
nameserver 1.0.0.1
После этого у вас останется 1 проблема, это не сработает для докера, но решить ее можно указав:
--network=host
С одной стороны неудобно, но пока такой костыльный вариант меня вполне устраивает, и так потерял тонну времени чтобы это завелось.
Подписывайтесь на Telegram – xVibeNot