Comments 24
Добрый день! А зачем дообучать, когда провайдеры - в данном случае openai completions позволяют возвращать ответ в заданной схеме?
Привет! В начале статьи описывал, что существует проблема - LLM популярных провайдеров находятся на внешних серверах. Для чувствительных данных такой формат работы может не подойти. Одно из решений - разворачивать что-то свое. И вот здесь, если мощного железа нет, а задача очень специфичная, дообучение может помочь решить задачу (а может и нет).
видимо не всегда можно сливать данные провайдеру
Ответ такой: зарубежные провайдеры предоставляют LLM по API (модель находится на внешних серверах), что может не соответствовать, например, 152-ФЗ или правилам защиты корпоративных данных
1)Автор вы знаете что русские провайдеры уже предоставляют по апи большинство зарубежный моделей и по 152-ФЗ все у них точно чики бомбони по этому поводу?
Зачем это упоминать в контексте fine tune моделей?
2) LoRA — это не равно полноценному fine-tuning.
3) Один запуск, одна эпоха, небольшой датасет и слабая методология оценки — какие серьёзные выводы из этого вообще можно сделать?
Здесь скорее студенческий Colab-эксперимент: нет нормальной инженерной рамки — отсутствует мониторинг, трекинг обучения и деплоя, непонятно, на каком серьёзном железе это запускать и как масштабировать. Вы точно Team Lead?
Спасибо за комментарий. По поводу существования таких провайдеров знаю. Привел пример c PII как одну из ситуаций, когда все же хочется развернуть что-то у себя и не обращаться к внешним сервисам.
В статье я не упоминал, что делаю полный fine-tuning. Как раз написал, что обучение будет происходить методом LoRA.
Цель статьи была больше показать начинающим из каких этапов состоит обучение LLM, и в частности как можно произвести fine tuning. Пример с обучением структурированному выводу взят как демонстрация.
"по 152-ФЗ все у них точно чики бомбони" - тут пропущен флейм про отличие бумажной и фактической безопасностей, а также нефлеймовый момент том, что комплаенс по персданным (про что собственно и есть ФЗ №152-ФЗ от 27.07.2006) и размещение обработки данных в контролируемом контуре - вообще решают разные задачи (хотя и имеют общие методы их решения).
автор статьи все верно написал, понятным и простым языком. а вот вы наоборот, показали то, что совсем не разбираетесь в теме. давайте по пунктам:
у ру-провайдеров все ок с 152-ФЗ. да, это так - сервера в россии, данные за рубеж не уходят. вот только из-за дефицита железа в россии такие сервера стоят довольно дорого. а значит и модельки, которые на них крутятся дешевыми быть не могут. алиса, например, стоит сопоставимо с соннет, но по качеству в разы хуже. в мтс облаке все еще 'лучше' - прошлогодняя qwen-qwq стоит в 1000 (!) раз дороже аналога на openrouter.
LoRA, QLoRA и DoRA - отличные и полноценные методы дообучение. и зачастую они даже стабильнее обычного sft, т.к. почти не ломают базовые способности модели. для sft/rl нужно огромное кол-во данных и можностей, а я не думаю что у кого-то в доступе пара сотен лишнихН200 завалялось.
методики оценки в статье на хабре? может еще слепое рецензирование требовать будем? или перед публикацией статьи надо будет защитить статью перед научным комитетом... тут автор ппросто показал - вот, мол, смотрите - есть такая штука. это просто введение в тему. если хотите углубиться - найди оригинальную статью про LoRA и ищите тех, кто ее активно цитирует. это авторитетные первоисточники, там все по науке - введение, методы, выводы и список литературы.
Ход дообучения Qwen2.5-0.5B
я не вижу уменьшения ошибки, какие то хаотические метания или ухудшения
p.s. для llm-ок более удобным и эффективным структурированным форматом входных данных, является toon, этакая модификация csv
для выходных данных есть structured outputs (или grammar для llama.cpp)
p.p.s. 0.5b модели в лучшем случае хватит для классификатора и простеньких embending
И главное, тупое дообучение ломает модель, возможно в узкой области модель станет лучше, но во всех остальных будет значительная деградация
Максим, отличный туториал! Спасибо за труд.Вы очень точно описали ключевую проблему: большие LLM не запустить на маленьком железе, а маленькие LLM не решают узкую задачу из коробки. И выход, который вы предлагаете — Fine-tuning.
Но, как вы сами заметили, это путь компромиссов: модель забывает прошлые знания, обучение стоит дорого, а результат всё равно не гарантирован.А что, если я скажу, что есть другой путь? Не «дрессировать» одну большую модель, а дать ей врождённую архитектуру, которая решит проблему безопасности и забывания на корню.Если вам интересен принципиально иной подход к созданию ИИ, посмотрите мою работу «Становление субъекта: архитектура, этика и дорожная карта субъектного ИИ».GitHub: https://github.com/maksim-timoshenko/AI-consciousness-continuum. Там все расписано.
Тема с 152-ФЗ актуальна: именно из-за неё часть кодовых задач у нас не уходит во внешний API. Но перед дообучением пробовали ещё один шаг: хорошо структурированный контекст через CLAUDE.md + примеры из нашей базы. Для задач где у модели достаточно способностей, но не хватает контекста, это дешевле и быстрее дообучения. Вопрос: на каком пороге сложности выбирали дообучение, а не RAG или prompt engineering?
С 152 ФЗ легко справляется простое обезличивание
Я тот самый новичок, будет ли продолжение про дообучение с учителем?
Правильнее говорить не об обучении и до обучении (в корректном понимании этих терминов для человека) языковой модели LLM, а об ее настройке и до настройке по предлагаемому тексту. Ибо такая модель оперирует только отдельными элементами составляющими текст (токенами), устанавливает и фиксирует между ними многочисленные связи, используя их в дальнейшей генерации ей своего текста. Она НЕ оперирует в целом понятиями и объектами, их свойствами и связанными отношениями как это делает человек. В этом принципиальное отличие машинного интеллекта на генеративной модели LLM от интеллекта человека.
Это как сказать что калькулятор оперирует битами но не перемножает числа.
Можно масштабировать и на уровень ЭВМ, которая тоже оперирует битами и успешно делает вычисления. Но калькулятор не понимает структуру чисел: сколько в них десятков, сотен, тысяч и тд., что значит дробная часть, смысл отрицательного или простого числа и тд. Поэтому об интеллекте калькулятора и говорить как-то не приходится.
не существует достаточного определения 'понимать', что бы можно в принципе говорить, есть оно у калькулятора или нет.
формально, в калькуляторе есть область в памяти для степени, и для знака +-.
а dpo (датасет из пары хороший-плохой ответ) не пробовали файнтюнить? Сколько статей выкладывают про тюнинг, ни разу не видел чтобы dpo дообучали, все только на датасетах sft (инструкции) останавливаются.
Как дообучить LLM. Рассказываю шаг за шагом