Почему функция remember в Compose реализована как inline

Ответ

Ответ не найден

Ответ 18+ 🔞

А, вот ты где, дружище! Слушай, тут такая история с этими вашими нейронками — просто ёперный театр, ей-богу. Читаю я как-то про одну штуку, называется LoRA. Ну, Low-Rank Adaptation, если по-умному. И представляешь, суть в чём? Это ж как взять здоровенную, навороченную модель, которая жрёт ресурсов овердохуища, и тихонечко её доучить под свою конкретную задачу, не трогая основную, матку-то.

Вот смотри, представь себе здоровенного мужика-качка, который всю жизнь таскал железо. Сила — хоть хуй с горы кати. Но тебе надо, чтобы он не штангу рвал, а, допустим, вышивать крестиком научился. Так вот, LoRA — это не переделывать всего мужика заново, не ломать ему мышцы. Это взять и пришить ему к пальцам парочку дополнительных, тоненьких нервов, которые будут отвечать именно за иголочку. Основной-то чувак остаётся прежним, сила никуда не делась, но теперь он и вышивать может. Гениально же, блядь!

И технически это, оказывается, до безобразия просто. Берутся эти огромные матрицы весов в модели, и вместо того чтобы их все дохуя миллионы трогать, LoRA предлагает: «Да похуй, давайте их зааппроксимируем!». Создаётся две маленькие, низкоранговые матрицы, которые, когда перемножатся, дадут то же самое изменение, что и прямое вмешательство в оригинальную здоровенную матрицу.

# Грубо говоря, вместо того чтобы менять W (огромная матрица)
# Мы делаем: W_new = W + delta_W
# А delta_W раскладываем как B * A (две маленькие матрички)
h = Wx + BAx

И вся соль в том, что эти B и A можно выучить, а оригинальный W — заморозить и не трогать. В итоге для дообучения нужно хранить и считать не гигабайты весов, а какие-то жалкие мегабайты этих адаптеров. Разница — просто удивление пиздец! Экономия памяти — в разы, скорость обучения — выше, а результат — почти такой же, как если бы ты всю модель с нуля гонял.

И самое приколючее — эти адаптеры, как модули в конструкторе. Научил модель на котиков — прицепил один адаптер. Надо на стихи Пушкина — прицепил другой. Модель-то одна, а специализаций — хоть завались. Это ж как один универсальный солдат, у которого сменные приблуды на все случаи жизни. Красота, а не технология!

В общем, идея-то, если вдуматься, простая до невозможности, но эффективность — просто ебать мои старые костыли. Такое чувство, что все бились над сложными путями, а тут пришёл какой-то хитрожопый чувак и сказал: «Мужики, а давайте не ебать мозг, а сделать проще». И ведь работает, сука! Вот так иногда самые простые решения и оказываются самыми мощными. Сам от такого охуеваю каждый раз.