Обновить

Потратил полгода на обучение своей ии с нуля, вот что вышло

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели7.1K
Всего голосов 23: ↑23 и ↓0+28
Комментарии24

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

Например, может сказать сколько букв «r» в слове «strawberry».

что если агенту с нейросетью, которая не умеет это делать, в промпт добавить что-нибудь вроде "используй python"?

Тогда она, конечно, сможет это сделать. Я даже проверял это: давал локальной Gemma 4 доступ к исполнению кода и просил разбить слова по буквам. Версия 4B отлично справляется с использованием кода, а 2B - хуже. Она почему-то часто запускает код, получает правильную строку, но вместо того чтобы просто вывести её, начинает сама разбивать слово по буквам (и делает это неправильно). Но вообще это рабочий подход, особенно с большими моделями.

Но в рамках моего проекта мне было интересно научить именно саму нейросеть разбивать слова по буквам "в уме". Ну и чтобы вызывать инструменты моя ии пока слишком глупая :)

Вот как учат модель понимать слова - я понимаю. Берём много текстов и заставляем предсказывать удалённое слово.

а вот как потом после этого доучивают её считать - этого я пока не понял. у Вас в статье написано что это разные фазы. Можете в двух словах пояснить?

PS: спасибо за интересную статью

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

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

Есть пословица: "один в поле не воин, а путник". Вы же доказали обратное. Пусть размер LLM-ки маленький, но начало положено - моделька на хагинфейсе, поддерживает Ollama & LM Studio. Вам бы ещё датасет покачественнее раздобыть бы, да кластер из пользованных V100 сделать - того гляди и модель на миллиард параметров осилили бы.
Но даже в её нынешнем состоянии эта LLM-ка выглядит как добротный прототип, который показать не стыдно ;)

Спасибо за отзыв!
Кластер из V100 это конечно круто... Но пока что у меня есть лишь одна 4060. В будущем 5070 ti купить планирую, наверно выйдет обучить 500-700м.

А датасет качественнее 100% станет в будущем!

Если сделать gguf то сразу больше пользователей будет)

А вообще было бы интересно само описание процесса. Вы говорите берете llama3 открываете ее в какой-то программе, в этой программе указываете датасет, и нажимаете кнопку учись? Или как это происходит? Какая программа? Почему бы не взять за основу ту же gemma4 - более современная

Хотя кажется я вообще не так все понял и llama3 это просто архитектура и от нее ничего не было от готовой. Тогда все еще интереснее - что и как сделать в домашних условиях.

Архитектура llama3, а веса инициализированы рандомные. И нет, gemma 4 не лучше для таких микро моделей, во первых она мультимодальна, что мне не нужно пока, во вторых там другая функция активации, и для такого размера модели это может быть хуже. Хотя это только теория, а мультимодальность можно вырезать, основная причина в том что ллама3 итак одна из лучших архитектур, и нет смысла менять.

И нет никакой программы, есть python и терпение, а датасет я беру с хагингфейса, вики, culturaX, код, и еще по мелочи, для файнтюнинга датасет сам генерировал, нигде не брал готовый.

А .gguf уже есть, на том же хагингфейсе.

Поищи 2080 ti с 22gb vram, их можно найти за 35-40т.р.

а она точно быстрее будет? Она уже старая же очень. Я планирую 5070 ti купить, вот она точно будет быстрее намного.

Если скорость важнее объёма vram, то 5070 ti будет конечно быстрее. Просто на 16 гб быстро станет тесно.

просто если ии такого размера, который занимает 22 гб претрейнить на 2080 ти, то сколько он будет учится? пол года? сделать его поменьше но обучить за 2 недели конечно лучше

Получилось супер. Я обычно более мелкие модели тренирую, но могу добавить немного важной инфы:

  1. Используй датасеты с HF. Там уже куча синтетических диалогов и много датасетов для претрейна.

  2. Размерность 1024 - ну, как будто много... Можно было глянуть тесты на 512 и 768.

  3. Сравнивать такую маленькую модель на бенчах бесполезно. Попробуй измерить PPL и тд, они много инфы дадут.

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

Если хочешь - напиши мне в личку, вместе можем что-нибудь классное придумать. Вторую версию сделать, например. Или эту доработать.

Это уже не первая версия, и следущая версия будет в будущемю А с эмбедингом 512 модель значительно хуже факты запоминает (по моему опыту), она и так то особо ничо не знает, но если еще понижать то еще хуже. А размер хотел сделать 260-300м, если бы я эмбединг ставил 512 или 768 слоев было бы слишком много.

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

Насчет вопросов, архитектура вроде llama3 особо без изменений.

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

есть ру-диалоги, глянь у гусева или у вихрей. они там 4о дистилили, так что качество хорошее. если есть желание ризонинг прокачать - OpenThoughts, там 1М диалогов (но на англ).

llama3 это база. что с головами в gqa, как распределил K и V?

16 Q голов, 4 KV головы. А zyda посмотрю, спасибо.

Интересная статья! Успехов!

Последние полгода я обучал свою небольшую нейросеть с нуля на одной rtx 4060.

Во‑первых, она умеет считать по разрядам. Она может считать большие числа

Во‑вторых, она умеет разбивать слова по буквам, считать количество букв в словах.

ZX-Spectrum, Basic, 1991 год, потратил субботний вечер.

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

Я о том, что последние года четыре в ИТ-лексиконе понятие «алгоритм» постепенно вытесняется понятием ИИ/LLM.

Я не понял в чем проблема с алгоритмом и как это противоречит LLM

Алгоритм это хорошо, но 30 летний алгоритм может написать стих? Или понять по текстовой задаче что надо сделать, вычесть или сложить?

Нейросеть - это также алгоритм. Просто тенденция последних лет это чрезмерное обобщение существующих десятилетия различных алгоритмов под одной аббревиатурой ИИ/LLM, что вводит многих людей в заблуждение касательно реального предназначения нейросетей.

А какое реальное предназначение нейросетей? Я вроде не называл никакие десятилетние алгоритмы LLM.

Интересно, вы обучали на русском, английском и французском?

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

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

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

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

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

Публикации