Обновить

Комментарии 29

Добрый день! А зачем дообучать, когда провайдеры - в данном случае openai completions позволяют возвращать ответ в заданной схеме?

Привет! В начале статьи описывал, что существует проблема - LLM популярных провайдеров находятся на внешних серверах. Для чувствительных данных такой формат работы может не подойти. Одно из решений - разворачивать что-то свое. И вот здесь, если мощного железа нет, а задача очень специфичная, дообучение может помочь решить задачу (а может и нет).

Я изначально подразумевал, что речь идет про self-hosted решения. Например в качестве провайдера vllm, и если обучать, то все равно разворачивать придется модель, чтобы была доступна по api. Вот и пытаюсь понять смысл

видимо не всегда можно сливать данные провайдеру

  Ответ такой: зарубежные провайдеры предоставляют 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) и размещение обработки данных в контролируемом контуре - вообще решают разные задачи (хотя и имеют общие методы их решения).

автор статьи все верно написал, понятным и простым языком. а вот вы наоборот, показали то, что совсем не разбираетесь в теме. давайте по пунктам:

  1. у ру-провайдеров все ок с 152-ФЗ. да, это так - сервера в россии, данные за рубеж не уходят. вот только из-за дефицита железа в россии такие сервера стоят довольно дорого. а значит и модельки, которые на них крутятся дешевыми быть не могут. алиса, например, стоит сопоставимо с соннет, но по качеству в разы хуже. в мтс облаке все еще 'лучше' - прошлогодняя qwen-qwq стоит в 1000 (!) раз дороже аналога на openrouter.

  2. LoRA, QLoRA и DoRA - отличные и полноценные методы дообучение. и зачастую они даже стабильнее обычного sft, т.к. почти не ломают базовые способности модели. для sft/rl нужно огромное кол-во данных и можностей, а я не думаю что у кого-то в доступе пара сотен лишнихН200 завалялось.

  3. методики оценки в статье на хабре? может еще слепое рецензирование требовать будем? или перед публикацией статьи надо будет защитить статью перед научным комитетом... тут автор ппросто показал - вот, мол, смотрите - есть такая штука. это просто введение в тему. если хотите углубиться - найди оригинальную статью про LoRA и ищите тех, кто ее активно цитирует. это авторитетные первоисточники, там все по науке - введение, методы, выводы и список литературы.

17-летний ML-инженер из Питера.


У меня нет больше вопросов, не буду издеваться над ребенком)))) Что там тебе чат гпт подсказал?)))

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

серьезно, будем меряться годами рождения? да, мне 17 лет, я это не скрываю. лучше расскажи о том, чем ТЫ в свои 17 занимался.

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

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

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

У тебя такой высокомерный тон, будто в свои 17 лет ты реализовал более 10 крупных проектов и заработал миллион долларов, а даже с LLM не видишь разницы между полной настройкой и Lora. Это даже не смешно

Ход дообучения Qwen2.5-0.5B

я не вижу уменьшения ошибки, какие то хаотические метания или ухудшения

p.s. для llm-ок более удобным и эффективным структурированным форматом входных данных, является toon, этакая модификация csv

для выходных данных есть structured outputs (или grammar для llama.cpp)

p.p.s. 0.5b модели в лучшем случае хватит для классификатора и простеньких embending

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

Они это человекочитаемым называют..

{4user5admin2id4i10016activeb14roles[4read5write]}

вы о чем?

example.toon
context:
  task: Our favorite hikes together
  location: Boulder
  season: spring_2025
friends[3]: ana,luis,sam
hikes[3]{id,name,distanceKm,elevationGain,companion,wasSunny}:
  1,Blue Lake Trail,7.5,320,ana,true
  2,Ridge Overlook,9.2,540,luis,false
  3,Wildflower Loop,5.1,180,sam,true

Максим, отличный туториал! Спасибо за труд.Вы очень точно описали ключевую проблему: большие LLM не запустить на маленьком железе, а маленькие LLM не решают узкую задачу из коробки. И выход, который вы предлагаете — Fine-tuning.

Но, как вы сами заметили, это путь компромиссов: модель забывает прошлые знания, обучение стоит дорого, а результат всё равно не гарантирован.А что, если я скажу, что есть другой путь? Не «дрессировать» одну большую модель, а дать ей врождённую архитектуру, которая решит проблему безопасности и забывания на корню.Если вам интересен принципиально иной подход к созданию ИИ, посмотрите мою работу «Становление субъекта: архитектура, этика и дорожная карта субъектного ИИ».GitHub: https://github.com/maksim-timoshenko/AI-consciousness-continuum. Там все расписано.

Тема с 152-ФЗ актуальна: именно из-за неё часть кодовых задач у нас не уходит во внешний API. Но перед дообучением пробовали ещё один шаг: хорошо структурированный контекст через CLAUDE.md + примеры из нашей базы. Для задач где у модели достаточно способностей, но не хватает контекста, это дешевле и быстрее дообучения. Вопрос: на каком пороге сложности выбирали дообучение, а не RAG или prompt engineering?

С 152 ФЗ легко справляется простое обезличивание

Обезличивание закрывает часть случаев. У нас 30-40% задач это архитектурные решения и бизнес-логика которую мы не хотим отдавать в любой внешний сервис, не только из-за ФЗ. Там обезличивание не поможет, нужно своё железо. Поэтому граница между RAG на локальных данных и дообучением для нас реальная

Правильнее говорить не об обучении и до обучении (в корректном понимании этих терминов для человека) языковой модели LLM, а об ее настройке и до настройке по предлагаемому тексту. Ибо такая модель оперирует только отдельными элементами составляющими текст (токенами), устанавливает и фиксирует между ними многочисленные связи, используя их в дальнейшей генерации ей своего текста. Она НЕ оперирует в целом понятиями и объектами, их свойствами и связанными отношениями как это делает человек. В этом принципиальное отличие машинного интеллекта на генеративной модели LLM от интеллекта человека.

Это как сказать что калькулятор оперирует битами но не перемножает числа.

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

не существует достаточного определения 'понимать', что бы можно в принципе говорить, есть оно у калькулятора или нет.

формально, в калькуляторе есть область в памяти для степени, и для знака +-.

Калькулятор жёстко запрограммирован на выполнение указанных команд. Не думаю что ваша голова (не дай бог) работает по запрограммированной кем-то программе. На счёт "понимать" добро пожаловать в толковый словарь русского языка.

по этому определению современные ИИ на базе llm - понимают

p.s. эти определения не достаточны для того что бы в принципе пытаться использовать их к чему либо кроме человека.

Понима́ние — универсальная операция мышления, связанная с усвоением нового содержания, включением его в систему устоявшихся идей и представлений.

wikipedia

Если так определять, то llm и в самом деле не усваивает новое в связи с архитектурой, но при этом может им оперировать, так сказать на лету. Но ведь и не все люди обладают целостной системой мира и многое используют просто без понимания.

Ожеговское определение через синонимы, поэтому его не рассматривал.

а dpo (датасет из пары хороший-плохой ответ) не пробовали файнтюнить? Сколько статей выкладывают про тюнинг, ни разу не видел чтобы dpo дообучали, все только на датасетах sft (инструкции) останавливаются.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации