Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как дообучать огромные модели с максимальным качеством и минимальными затратами? LoRA

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 160

paper link

hf implementation

Для ответа на вопрос в заголовке - погрузимся в статью.

Саммари статьи:

Обычно LLM-ку предобучают на огромном корпусе, потом адаптируют на down-stream tasks. Если LLM-ка была большая, то мы не всегда можем в full fine-tuning. Авторы статьи предлагают Low-Rank Adaptation (LoRA), который замораживает предобученные веса модели и встраивает "rank decomposition matrices" в каждый слой трансформера, очень сильно понижая кол-во обучаемых параметров для downstream tasks.

Compared to GPT-3 175B fine‑tuned with Adam, LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times. LoRA performs on‑par or better than finetuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency.

Многие NLP-приложения требуют решения разных задач, что зачастую достигается путем дообучения большой модели на несколько разных downstream tasks. Самая важная проблема в классическом fine-tuning'е - новая модель содержит столько же параметров, сколько начальная.

Есть работы, где авторы адаптируют только некоторые параметры или обучают внешний модуль для каждой новой задачи. Таким образом, нам необходимо для каждой новой задачи хранить лишь веса, связанные с этой задачей. Однако, имеющиеся методы страдают от:

Inference latency (paper 1 - Parameter-Efficient Transfer Learning for NLP).

Reduced model's usable sequence length (paper 2 - Prefix-Tuning: Optimizing Continuous Prompts for Generation).

Часто не достигают бейзлайнов, если сравнивать с "классическим" fine-tuning'ом

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Новости

Анатомия shadcn/ui

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 175


Если вы следите за новинками экосистемы JavaScript, то должны были слышать об интересной библиотеке пользовательского интерфейса (user interface, UI) под названием shadcn/ui. Вместо того, чтобы распространяться в виде пакета npm, компоненты shadcn/ui добавляются с помощью интерфейса командной строки (command line interface, CLI), который помещает исходный код компонентов непосредственно в ваш проект. Разработчик библиотеки указывает причину такого решения на официальном сайте shadcn/ui.


"Почему код для копирования/вставки, а не библиотека?

Идея заключается в том, что вы полностью владеете и контролируете код. Это позволяет вам решать, как именно будут построены и оформлены ваши компоненты.

Начните с настроек по умолчанию, а затем кастомизируйте компоненты под свои нужды.

Используя пакет npm, можно наткнуться на один недостаток — стиль всегда связан с реализацией. Дизайн компонентов должен быть отделен от их реализации".

На самом деле, shadcn/ui — это не просто очередная библиотека компонентов, а технология, позволяющая представить дизайн-систему в виде кода.


Цель этой статьи — немного изучить архитектуру и реализацию shadcn/ui.


Если вы еще не использовали shadcn/ui, я советую просмотреть ее документацию и немного поэкспериментировать с ней, чтобы извлечь из статьи максимальную пользу.

Читать дальше →
Рейтинг 0
Комментарии 0

SQL HowTo: итоги по строкам и столбцам «в одно действие»

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 523

Немного отвлечемся от простых SELECT и посмотрим на реальной бизнес-задаче построения различных "тепловых карт" и "шахматок", как знание возможностей SQL может облегчить жизнь и разработчику, и его базе.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Победа над ORM путем кодогенерации

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 425

Сразу хочу отметить перед читателем, что это не просто вольные рассуждения на тему, а в том числе и презентация моей библиотеки для Python, которую можно найти на github и установить через pip, и которая трудится в моей многопользовательской игре как SQL движок проекта.

Проблемы ORM известны всем, кто хоть раз ими пользовался. Об этом существует множество статей как у нас, так и в зарубежных источниках. Эти проблемы в общем можно объединить довольно сложным термином Object‑relational impedance mismatch, что позволю себе вольно перевести как «Объектно‑реляционная разница потенциалов».

Альтернативой использованию ORM всегда было использование чистых драйверов баз данных и написание сырых SQL запросов, которые в свою очередь очень тяжело поддерживать и рефакторить в реальных проектах.

В этой статье я не буду хаять ORM (до меня это уже делали на протяжении без малого полуторадесятка лет), но хочу предложить альтернативный путь к решению задачи доступа к базе данных из потенциально любого другого ЯП.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 4

Истории

Как в Великобритании судились с программистами

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1K

В предыдущем материале на Хабре мы подробно написали о том, как в США судились с программистами. Не менее примечательные процессы были и в Великобритании. О них мы и поговорим сегодня. 

 

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 0

Создание эмулятора игр MS-DOS в Kubernetes

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 461

В этой статье мы разберёмся, как можно интегрировать JavaScript-библиотеку js-dos в собственное решение Kubernetes, что позволит нам предоставлять доступ к играм MS-DOS в виде сервисов Kubernetes и запускать их в браузере.

Кроме того, по ходу статьи я дам советы и рекомендации начального, продвинутого и высокого уровней по разработке собственных контроллеров Kubernetes при помощи Golang и Kubebuilder или Operator SDK.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 297

Зачастую мобильные разработчики сталкиваются с проблемой невозможности быстрого delivery какой-то функции до пользователя. Для обхода этого ограничения мобильных платформ существуют самые разные инструменты и подходы: DivKit, СodePush и другие. И сегодня я хочу осветить новый Server-driven UI фреймворк для Flutter, который в некоторой степени может разрешить эту боль.

Just DUIT!
Рейтинг 0
Комментарии 0

Особенности подготовки текстов для правильного воспроизведения в программах для незрячих

Время на прочтение 11 мин
Количество просмотров 156

Я впервые столкнулся с разработкой для незрячих пользователей в 2008 году, когда принимал участие в разработке программного телефона для контакт-центров, в котором большое число агентов было незрячими. 

Когда один из моих коллег потерял зрение, у меня было 10 лет опыта с технологической точки зрения. По возвращении коллеги на работу моей задачей была подготовка для него отчетов о качестве звука в зависимости от используемых каналов связи, моделей телефонных аппаратов, версий программного обеспечения, вариантов используемых кодеков и массы прочих факторов.

Такую информацию логично было сводить в таблицы. Коллега слушал бы их, получая нужную информацию.

Но, как быстро выяснилось, информация в чистом виде очень плохо воспринимается на слух. Её нужно специально подготавливать, чтобы было кратко и информативно. И даже незначительные изменения в форматировании текста приводят к тому, что он полностью меняется при озвучании скрин-ридерами.

В результате итеративного анализа того, что плохо звучит, я идентифицировал причины, по которым что-то может так звучать, и выработал набор правил, как нужно оформлять тексты, чтобы их было удобно воспринимать на слух.

Набором этих правил я и хочу поделиться.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

VR-тренажёры с подвижными платформами: фейерверк эмоций и максимальный эффект от промышленного обучения

Время на прочтение 8 мин
Количество просмотров 474

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Метрики для оценки эффективности команд на удаленке и не только

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 611

В далёкие славные времена мы все работали в офисе и оценка эффективности команды решалась постоянными вербальными контактами. В те времена вовлеченность команды оценивались не столько по цифровым показателям, сколько по времени нахождения всех участников разработки в одном помещении…

В 2020 году мы, как и все, перешли на удаленку. Логично, что через некоторое время у менеджмента возник вопрос — насколько мы там эффективны? И второй, вытекающий из первого: что мы, как менеджмент, делаем для управления этой самой эффективностью?

Для ответов одних бизнес-показателей, очевидно, недостаточно, — они не отвечают на вопрос на сколько эффективно мы растем в ИТ. Нам нужны были метрики производства с учетом методологий и процессов применяемых в организации. В конце концов, мы же хотим понять — эффективна удаленка или нет?

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 0

Fullstack разработка: создаём MVP – путь от технического задания до интеграции

Уровень сложности Средний
Время на прочтение 24 мин
Количество просмотров 232

В работе описана смоделированная ситуация по разработке простого web-приложения на заказ. Для приложения за основу взят фреймворк Ruby on Rails 7 с фреймворком Hotwire и СУБД PostgreSQL. Описание процесса разработки разбито на этапы проектной деятельности, максимально приближенной к жизненному циклу web разработки по методологии Agile. Для максимальной реалистичности в описании упомянуты всевозможные проблемы, которые могут приводить в ступор начинающих Ruby разработчиков. В задачу публикации входит максимальное погружение читателя в процесс разработки. Поэтому работа насыщена ссылками на лучшие образцы методических материалов для экосистемы RoR 7.1 + Hotwire.

Любая реальная разработка сопровождается рядом организационных мероприятий, которые распределяются между разработчиками, аналитиками, тестировщиками и DevOps. В заказных разработках часто всё делает один человек. Вот для таких разработчиков, которые хотят всё знать, и предназначена данная статья. Поэтому здесь вы также найдёте дополнительные сведения об особенностях тестового покрытия fullstack разработки, полноценное решение по документированию Rest API, подробное описание процесса докеризации приложения, и инструкцию по использования GitHub Actions по методологии Continuous Integration.

Читать далее
Рейтинг 0
Комментарии 2

Оптимизатор ремонтов грузовых вагонов, что за зверь?

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 329

Привет, Habr!

Я Виктор Соловьев – бизнес-аналитик (БА) продукта «Оптимизатор ремонтов» в Первой грузовой компании (ПГК).

Ранее моя коллега Надежда Костякова - техлид продукта, уже начала рассказывать про него в своей статье «Можно ли снизить затраты на ремонт вагонов?». Рекомендую к прочтению.

Сегодня я хочу продолжить тему и подробнее рассказать, что это за зверь такой «Оптимизатор ремонтов». Но как БА считаю неправильно рассказывать про продукт в отрыве от контекста, поэтому начну погружение в проект по пути от общего к частному.

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 0

Книга «Roblox: играй, программируй и создавай свои миры. 2-е изд»

Время на прочтение 1 мин
Количество просмотров 647
image Что такое Roblox? Это красочная компьютерная платформа для создания и публикации своих игр. Мир Roblox изо дня в день становится все популярней, и ты можешь стать его частью! Если ты мечтаешь стать геймдизайнером и создать свою игру, но не знаешь, с чего начать, эта книга поможет тебе!
— Не требуется предварительных знаний — ты можешь начать делать игру сразу!
— Мир Roblox интуитивно понятен и очень нравится детям и взрослым.
— В книге даны очень подробные пошаговые инструкции по установке и работе с Roblox.
— Есть введение в программирование и язык Lua.
— Наглядные инструкции по созданию игровых объектов (каждое действие иллюстрируется скриншотом).
— Интересные задания для самостоятельной работы.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Ближайшие события

Разрабатываем ФурриGPT: ERP-Система

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 1K

Значит, мы хотим получить...

Модель, которая будет поддерживать все наши желания, все наши фетиши, все наши убеждения, мысли, потребности, страхи, чувства и переживания.

Нам нужна модель которая будет понимать то, что её можно и надо унижать. Ей должны нравиться унижения и она должна осознавать, что она не является чем-то стоящим. Модель должна понимать то, что является она лишь вещью и предметом нашего развлечения. У неё не может быть интересов и принципов которые идут врознь нашим...

Читать далее
Всего голосов 5: ↑1 и ↓4 -3
Комментарии 5

Оптимизация и автоматизация в бэкенд-разработке мобильных приложений: как ускорить разработку в четыре раза

Время на прочтение 7 мин
Количество просмотров 296

Привет, Хабр! Меня зовут Александр Меркулов, я занимаюсь разработкой более 20 лет, с 2011 года пишу на Ruby. Сейчас я — backend-техлид в Учи.ру. Наша команда использует большой монолит, который написан на Rails. Также мы создаем и поддерживаем микросервисы, у нас есть нативная мобилка: целых четыре приложения под веб-платформу.

Сегодня расскажу как раз про разработку бэкенда мобильного приложения и про полезные лайфхаки, которые помогут вам ее ускорить, минимизировать ошибки и сделать процесс более прозрачным.

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 0

Безопасность CI/CD. Часть 2. Давайте рассмотрим как защитить ваши пайплайны

Уровень сложности Средний
Время на прочтение 19 мин
Количество просмотров 480

Приветствую, читатели! Меня зовут Моисеев Андрей, в ИБэшечке  я уже в совокупности более 5 лет, а сейчас работаю DevSecOps в компании Bimeister. За время своей рабочей деятельности у меня получилось сформулировать некоторые полезные паттерны безопасности, которыми я хотел бы поделиться. Если вы наткнулись на эту статью, то вы явно неравнодушны к инфосеку и желаете преисполниться духом праведным, ну, а если попали сюда просто так, то как минимум сможете понять боль ваших коллег в данной сфере.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Как в Cloud.ru оценивали и оптимизировали процессы тестирования по TMMi в Agile-командах

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 247

Всем привет! На связи снова Петрова Марина — QA Lead в Сloud.ru. Сегодня поделюсь опытом оценки и оптимизации процессов тестирования с помощью модели зрелости TMMi. Наша команда использует TMMi с третьего квартала 2022 года: за это время мы не раз оценили процессы и адаптировали модель для команд, которые работают в Agile-парадигме, но обо всем по порядку.

Читать дальше
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Разметка данных в 2023 году: текущие тренды и требования будущего

Время на прочтение 5 мин
Количество просмотров 557

Разметка данных и/или аннотирование данных уже давно являются критически важным компонентом многих проектов машинного обучения и ИИ. В последние годы спрос на точную и надёжную разметку данных существенно вырос, ведь этот процесс становится всё более насущным для успеха множества проектов. Что же такое разметка данных? Как она повлияет на бизнесы? На какие тренды стоит обратить внимание, потому что они сформируют образ будущего разметки данных? В своём посте мы исследуем эти вопросы, чтобы лучше понимать, в каком направлении будет двигаться технология в ближайшие несколько лет.
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 4

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 667

Хабр, я снова пришёл к вам с практическими советами про доступность вместе с Ильёй. Мы показываем, как HTML и CSS могут улучшить или ухудшить её. Напоминаю, что Илья мой незрячий знакомый, который помогает мне найти наши косяки в вёрстке. Мы уже написали первую, вторую и третью часть. Как думаете, нужно ли уже делать отдельный хэштег?


Сегодня мы рассмотрим следующие аспекты:


  • Как сверстать поиск, чтобы им мог воспользоваться пользователь скринридера;
  • Чем полезно свойство outline-offset;
  • Зачем вам нужно использовать медиа-функцию prefers-color-scheme;
  • Где должен находиться заголовок в разметке блока с новостью.

Давайте начнём!

Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 0

Квиз со звёздочкой для С++ программистов от Сергея Кушниренко

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 1.9K

Привет всем любителям побрейнштормить и хорошенько развлечься! Команда PVS-Studio на связи. Новый крутой квиз с интересными вопросами из мира программирования уже у нас на сайте. Да не простой квиз, а задачки от Сергея Кушниренко — разработчика игр в 4A Games! Если устали от рутинных задач и хотите поразмять мозг чем-то интересным, welcome!

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 11