Вот, например: https://www.youtube.com/watch?v=l8pRSuU81PU&t=162s&ab_channel=AndrejKarpathy
Упомянутый Анной Andrej Karpathy пишет и тренирует с нуля GPT-2 модель на 120M параметров. Если дома запускать не на чем, то аренда нужного железа будет стоит $10. Там в конце ролика можно увидеть, что эта штука вполне себе работает.
Еще меня впечатляют волшебники c Huggingface, который препарируют существущие модели и делают с ними просто непотижимую магию. Например, вот эта модель https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0 полгода назад была довольно популярна, потому что ненадолго обошла конкурентов аналогичного размера. Она была сделана из Llama2 путем отрезания слоев спереди и сзадали, а потом дублирование того, что осталось. Я так и не смог понять, как кто-то пришел к подобной идее и почему это сработало. Но тем, кто понимает подобные вещи, не нужны суперкомьютеры - они делают эсперименты дома.
Еще на подобную тему вот это исследование от Anthropic: https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html Их научный отдел смог подробно разобрать, что происходит под капотом их средней модели размером с GPT-3.5. Но перед тем, как им дали возможность работать с этой моделью, они вывели теорию и опробовали ее на очень маленькой модели с 1 слоем. Только когда они проверили алгоритмы и доказали, что их можно скейлить на больший маштаб, им дали ресурсы пробовать дальше. Им нужно было по-новому тренировать модель, чтобы их алгоритмы работали. Выходит, что даже у самых умных в самых крутых AI компаниях проблемы с доступом к большим моделям. Наверное, эсперименты с GPT-4 - это как работа с телескопом James Webb. Стоишь полгода в очереди, чтобы за бешеные даньги получить достун на час.
Автор берет LLaMA3 и дообучает своими датасетами, ослабляющими цензуру. It took 2.5 days on 8x L40S. L40S на RunPod стоит $1.09 в час. Наверное, можно найти и дешевле. Конечно, его датасеты намного меньше 40-50Gb. Но так ли нужно столько данных? Их ведь еще готовить нужно, в инструкции превращать. Наверное, ML инженер нашел бы какой-то компромис или способ оптимизаци. На мой взгляд, для компаний это вполне поэъемные расходы, было бы желание
ML - это не только LLM. Это больше про данные и выводы по ним. Например, дали много логов и просят сделать что-то, что поможет ошибки предугадывать. А ML инженер должен придумать как это сделать, какие алгоритмы и методы применить. Может даже задачи не быть - просто данные, а что с ними сделать можно - это тоже нужно найти. У нас ML команда ломает голову над тем, как разбить сеть на сегменты и рекомендовать правила доступа на основании трафика. В самом начале даже трафик не дали в нужных количествах - только спекуляции, каким он будет. Прежде, чем что-то делать, обычно садишься и ищешь уже существующие научные работы на похожую тему. Наверняка, кто-то уже анализировал трафик. Находишь работу, где предлагается вырабатывать типовые шаблоны трафика и вешать лейблы на каждый flow. Интересно, но для кластеризации не годится. Зато можно вредителей вычислять. У нас на ресурсы в сети тэги вешаются, может быть, этим алгоритмом можно тэги рекомендовать - надо запомнить. В другой работе выводят зависмости между разными flow и ищут паттерны там. Это уже лучше, то тоже не то. В итоге пишется какой-то свой алгоритм. Часто можно отделаться простой линейной алгеброй - векторами и всякими средними значениями. Бывает, что нужно идти в дебри статистики. Тренировать LLM для этой задачи нет смысла. Вернее, смысл можно было бы поискать, но денег никто не даст
Perplexity очень плох для решений. Он все гуглит и потом собирает ответ из поисковой выдачи. Copilot меня лично давно разочаровал, но многие его любят. Сhatgpt 4o может решить какие-то medium задачи с LeetCode. Какие-то не может. Очень сильно зависит от того, как спросить. Если просто скинуть условие - шанс на успех будет довольно низким. Если сначала спросить, на какую тему задача, какие способы решения он видит, оценить каждый способ, попросить написать его по частям - результат будет лучше. Особенно, если самому тоже думать. Сhatgpt 4 немного сообразительнее 4o. Но мой номер один для коддинга - Claude 3 Opus
Вот это душниловка в комментах. Надеюсь, вы найдете способ ее побороть, а то это не дело. Сколько лет уже вас тут читаю, а никакого комьюнити так и не заметил. Собрать бы как-то людей по интересам, дать им возможность самим фильтровать комментарии в своих разделах, как-то оградить обсуждения от товарищей вроде dududu. Ну, или что-то попроще в условиях ограниченных рабочих рук, но эффективное. В Беларуси вот тоже ресурсов мало, но все по струночке ходят. Даст бог, AGI скоро подъедет, сможете нанять себе ИИ программистов и модераторов.
Веса это условная вероятность. Условие — контекст (prompt).
Вероятность чего и что значит "условная"? Если условие - это контекст, то условная веростность - это... вероятность контекста? Я не понимаю, что вы хотите сказать. Веса сами по себе не имеют ничего, связанного с вероятностями. Там перемножаются вектора и результат пропускается через функцию активации. В обратную сторону - через производную этой функции. Школьная математика - ни одной формулы из теорвера в базовой нейронке нет. Вероятности там в другом контексте находятся
Теперь вопрос, а откуда для обучения берется целевая переменная?
Я выше довольно подробно расписал
Да, и это не обучения без учителя
Это не так. Pre-training - без учителя, fine-tunning - с учителем
Что-то вы знаете, но, похоже, страх показаться дураком мешает просто взять и нормально поговорить. Местные ИИ эксперты засмеют. Поэтому у нас тут ансамбль регрессий и прочие криптические послания. Вот только почему-то у вас ИИ даже простую задачу выполнить не может, а я с его помощью проекты делаю
У меня есть другой пример. Я бекенд разработчик, мне хочется сделать свой продукт, но я не очень хорош в мобильной разработке и фронтендах. Плюс меня демотивирует количество работы. Сейчас с помощью AI я могу более-менее решить эту проблему. Последние 2 месяца я делаю несколько сервисов со вполне сносным фронтедом и iOS прилагой, в которых я не написал ни строчки кода сам. Да даже бекенд я руками почти не трогаю. Скидываю файлы в GPT-4 или Claude3 Opus, говорю, что мне нужно - они отвечают, что и где добавить. Не всегда правильно, часто нужно просить переделать, дополнительно объяснять, давать примеры. Но все равно дело движется намного лучше, чем если бы я все делал сам
Copilot мне нравится только как автокомплит в IDE. Делать с его помощью задачи получается хуже, чем описанным выше способом
Люблю девбай за то, что тебе с порога говорят, что ты тупой. В англоязычном сегменте интернета такого уже и не встретишь
Ладно, раз уж у нас тут какая-никая дискуссия... Нейронка не вставляет пропущенные слова. Это процесс обучения такой. Убираем слово - загружаем оставшийся текст в нейронку, даем ей угадать. Веса изначально случайные - результат выходит произвольный. После каждой попытки все веса в нейронке правятся пропорционально степени ошибки. Там хитрая, но примерно школьного уровня математика вычисляет, насколько каждый нейрон в каждом слое ошибся (в GPT посложнее, но суть та же). Постепенно она все лучше угадывает пропущенные слова, потому что нейронные сети гарантированно находят связи в данных, если они там есть. А в тексте и тем более в коде они есть. Нейронке не нужны вопросы и правильные ответы - ей нужен просто осмысленный текст в больших количествах. Она умеет кодить не потому, что прочитала весь stackoverflow и запомнила топ комменты, а потому что хорошо вывела связи между "словами" в языках программирования, которые ей скормили в виде кода. Это все первый этап. Второй этап нужен в основном затем, чтобы скорректировать поведение. Чтобы модель лучше понимала, вам нужен код, его объяснение, анализ на ошибки, автокомплит в одну строку или что-то еще. И чтобы матом не ругалась и не хотела убить всех людей. Stackoverflow полезен, т.к. там код сочетается с текстом. Но это не единственный и не самый главный источник знаний. Синтетические данные сейчас очень широко используются в дообучении. Я не настаиваю, чтобы вы мне верили, но описанная вами проблема - из другой области. Она про недостаточное разнообразие данных на первом этапе
Ничего страшного не случится, когда "ресурсы по типу StackOverflow вымрут". Их роль не настолько велика в обучении, как многим кажется. В обучении есть 2 этапа. Сначала в нейронку загружают просто текст. Из него убирают какие-то слова - и нейронка должна их угадать. Годится любой текст, код, записки, чеки - что угодно, где слова хоть как-то связаны друг с другом. Это самая сложная и дорогая часть, она стоит миллионы и требует датацентров с gpu чипами. Второй этап - дообучение и настройка. Вот тут уже нужны качественные данные: конкретные вопросы и конкретные ответы, разные формулировки и ракурсы одного и того же. Где-то тут может быть полезен StackOverflow. Но не только он. Куда надежнее нагенерить синтетических данных - попросить LLM создать код на конкретную задачу, попросить другие LLM его выполнить, проверить, дать отзыв. Повторить это несколько раз - и будет не хуже, чем на StackOverflow.
В общем, это решаемая проблема. Им там куда больше не хватает "сырых" данных для первого этапа. Настолько не хватает, что сейчас куда больший прорыв происходит в мире маленьких моделей. Компании берут объемы данных, какими обучали свои флагманские гигантские модели, и обучают ими модели поменьше. Это дает интересные результаты. Сейчас крошечные модели, которые раз в 50 меньше самых продвинутых, выдают почти соизмеримую производительность. Их можно встраивать в телефоны, IDE, всякие руки-манипуляторы и так далее.
В 1984 есть глава о том, как уменьшают дневную норму шоколада, но этого никто не замечает. Всем, наоборот, кажется, что ее увеличивают, потому что так говорят в новостях. Очень похоже на мантру про нынешние времена. Еще пару лет назад ИТишники в РБ гнались за зарплатами, стеком, хорошими условиями. А сейчас мало того, что стандарты понизились до стабильной зарплаты, так всем еще и железобетонно кажется, что так так везде
Вон уже Китай выкатил модели не хуже - у них там проблем с исками от всяких копирайтеров и обиженных артистов нет. И регуляциями не душат. Так можно и AI гонку проиграть, перекладывая бумажки из одной стопки в другую
Я б послушал какие-нибудь кулстори про бизнесы на ранних этапах. Там и тут, раньше и сейчас. Ну и традиционное - в каком году уже AI начнет заменять кодеров?
Ну, ок, я согласен, что видеть node.js, javascript, .net, bash, python одном списке - это странно. Авторы статьи могли бы разделить языки и платформы. Я помню тот опросник - там просто просили перечислить технологии - можно было Эксель и вязание вписать.
Сейчас довольно много народу пишет бекенды на JS и называет себя node-разработчиками. Я часто слышу фразы вроде "я пишу под ноду", вижу наклейки node.js на ноутах - мне плюс-минус понятно, что они имеют в виду и чем занимаются. А назвались бы JS-разработчиками - пришлось бы гадать. С джавой проще, потому что все ее ветки кроме энтерпрайза умерли. Никто уже не пишет на ней десктопы, фронтенды, не пытается заниматься AI, даже из мобилок ее вытеснили. Так что говоришь "джавист" - и сразу понятно, что ты энтерпрайз пилишь и жить не можешь без ооп.
В статье и не говорят, что это язык. Там просто облако тегов/технологий какое-то, где .Net стоит рядом с Bash. Мне в целом понятно, о чем речь, но кого-то сбивает с толку. Повезло платформам, где все называется одним словом. Под джавой тоже не стоит понимать только язык, если что
Комментарии
Вот, например: https://www.youtube.com/watch?v=l8pRSuU81PU&t=162s&ab_channel=AndrejKarpathy
Упомянутый Анной Andrej Karpathy пишет и тренирует с нуля GPT-2 модель на 120M параметров. Если дома запускать не на чем, то аренда нужного железа будет стоит $10. Там в конце ролика можно увидеть, что эта штука вполне себе работает.
Еще меня впечатляют волшебники c Huggingface, который препарируют существущие модели и делают с ними просто непотижимую магию. Например, вот эта модель https://huggingface.co/upstage/SOLAR-10.7B-Instruct-v1.0 полгода назад была довольно популярна, потому что ненадолго обошла конкурентов аналогичного размера. Она была сделана из Llama2 путем отрезания слоев спереди и сзадали, а потом дублирование того, что осталось. Я так и не смог понять, как кто-то пришел к подобной идее и почему это сработало. Но тем, кто понимает подобные вещи, не нужны суперкомьютеры - они делают эсперименты дома.
Еще на подобную тему вот это исследование от Anthropic: https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html Их научный отдел смог подробно разобрать, что происходит под капотом их средней модели размером с GPT-3.5. Но перед тем, как им дали возможность работать с этой моделью, они вывели теорию и опробовали ее на очень маленькой модели с 1 слоем. Только когда они проверили алгоритмы и доказали, что их можно скейлить на больший маштаб, им дали ресурсы пробовать дальше. Им нужно было по-новому тренировать модель, чтобы их алгоритмы работали. Выходит, что даже у самых умных в самых крутых AI компаниях проблемы с доступом к большим моделям. Наверное, эсперименты с GPT-4 - это как работа с телескопом James Webb. Стоишь полгода в очереди, чтобы за бешеные даньги получить достун на час.
Вот, например, популярная на Huggingface модель Dolphin поверх LLaMA3: https://huggingface.co/cognitivecomputations/dolphin-2.9-llama3-8b
Автор берет LLaMA3 и дообучает своими датасетами, ослабляющими цензуру. It took 2.5 days on 8x L40S. L40S на RunPod стоит $1.09 в час. Наверное, можно найти и дешевле. Конечно, его датасеты намного меньше 40-50Gb. Но так ли нужно столько данных? Их ведь еще готовить нужно, в инструкции превращать. Наверное, ML инженер нашел бы какой-то компромис или способ оптимизаци. На мой взгляд, для компаний это вполне поэъемные расходы, было бы желание
ML - это не только LLM. Это больше про данные и выводы по ним. Например, дали много логов и просят сделать что-то, что поможет ошибки предугадывать. А ML инженер должен придумать как это сделать, какие алгоритмы и методы применить. Может даже задачи не быть - просто данные, а что с ними сделать можно - это тоже нужно найти. У нас ML команда ломает голову над тем, как разбить сеть на сегменты и рекомендовать правила доступа на основании трафика. В самом начале даже трафик не дали в нужных количествах - только спекуляции, каким он будет. Прежде, чем что-то делать, обычно садишься и ищешь уже существующие научные работы на похожую тему. Наверняка, кто-то уже анализировал трафик. Находишь работу, где предлагается вырабатывать типовые шаблоны трафика и вешать лейблы на каждый flow. Интересно, но для кластеризации не годится. Зато можно вредителей вычислять. У нас на ресурсы в сети тэги вешаются, может быть, этим алгоритмом можно тэги рекомендовать - надо запомнить. В другой работе выводят зависмости между разными flow и ищут паттерны там. Это уже лучше, то тоже не то. В итоге пишется какой-то свой алгоритм. Часто можно отделаться простой линейной алгеброй - векторами и всякими средними значениями. Бывает, что нужно идти в дебри статистики. Тренировать LLM для этой задачи нет смысла. Вернее, смысл можно было бы поискать, но денег никто не даст
Perplexity очень плох для решений. Он все гуглит и потом собирает ответ из поисковой выдачи. Copilot меня лично давно разочаровал, но многие его любят. Сhatgpt 4o может решить какие-то medium задачи с LeetCode. Какие-то не может. Очень сильно зависит от того, как спросить. Если просто скинуть условие - шанс на успех будет довольно низким. Если сначала спросить, на какую тему задача, какие способы решения он видит, оценить каждый способ, попросить написать его по частям - результат будет лучше. Особенно, если самому тоже думать. Сhatgpt 4 немного сообразительнее 4o. Но мой номер один для коддинга - Claude 3 Opus
Вот это душниловка в комментах. Надеюсь, вы найдете способ ее побороть, а то это не дело. Сколько лет уже вас тут читаю, а никакого комьюнити так и не заметил. Собрать бы как-то людей по интересам, дать им возможность самим фильтровать комментарии в своих разделах, как-то оградить обсуждения от товарищей вроде dududu. Ну, или что-то попроще в условиях ограниченных рабочих рук, но эффективное. В Беларуси вот тоже ресурсов мало, но все по струночке ходят. Даст бог, AGI скоро подъедет, сможете нанять себе ИИ программистов и модераторов.
Очень поэтично
Вероятность чего и что значит "условная"? Если условие - это контекст, то условная веростность - это... вероятность контекста? Я не понимаю, что вы хотите сказать. Веса сами по себе не имеют ничего, связанного с вероятностями. Там перемножаются вектора и результат пропускается через функцию активации. В обратную сторону - через производную этой функции. Школьная математика - ни одной формулы из теорвера в базовой нейронке нет. Вероятности там в другом контексте находятся
Я выше довольно подробно расписал
Это не так. Pre-training - без учителя, fine-tunning - с учителем
Что-то вы знаете, но, похоже, страх показаться дураком мешает просто взять и нормально поговорить. Местные ИИ эксперты засмеют. Поэтому у нас тут ансамбль регрессий и прочие криптические послания. Вот только почему-то у вас ИИ даже простую задачу выполнить не может, а я с его помощью проекты делаю
У меня есть другой пример. Я бекенд разработчик, мне хочется сделать свой продукт, но я не очень хорош в мобильной разработке и фронтендах. Плюс меня демотивирует количество работы. Сейчас с помощью AI я могу более-менее решить эту проблему. Последние 2 месяца я делаю несколько сервисов со вполне сносным фронтедом и iOS прилагой, в которых я не написал ни строчки кода сам. Да даже бекенд я руками почти не трогаю. Скидываю файлы в GPT-4 или Claude3 Opus, говорю, что мне нужно - они отвечают, что и где добавить. Не всегда правильно, часто нужно просить переделать, дополнительно объяснять, давать примеры. Но все равно дело движется намного лучше, чем если бы я все делал сам
Copilot мне нравится только как автокомплит в IDE. Делать с его помощью задачи получается хуже, чем описанным выше способом
Расскажите лучше, как там серфинг. Волны подходящие?
Это да. Хочешь мнусов - пиши про кавалерки. Хочешь много минусов - поделись своим опытом тренировки моделей
Люблю девбай за то, что тебе с порога говорят, что ты тупой. В англоязычном сегменте интернета такого уже и не встретишь
Ладно, раз уж у нас тут какая-никая дискуссия... Нейронка не вставляет пропущенные слова. Это процесс обучения такой. Убираем слово - загружаем оставшийся текст в нейронку, даем ей угадать. Веса изначально случайные - результат выходит произвольный. После каждой попытки все веса в нейронке правятся пропорционально степени ошибки. Там хитрая, но примерно школьного уровня математика вычисляет, насколько каждый нейрон в каждом слое ошибся (в GPT посложнее, но суть та же). Постепенно она все лучше угадывает пропущенные слова, потому что нейронные сети гарантированно находят связи в данных, если они там есть. А в тексте и тем более в коде они есть. Нейронке не нужны вопросы и правильные ответы - ей нужен просто осмысленный текст в больших количествах. Она умеет кодить не потому, что прочитала весь stackoverflow и запомнила топ комменты, а потому что хорошо вывела связи между "словами" в языках программирования, которые ей скормили в виде кода. Это все первый этап. Второй этап нужен в основном затем, чтобы скорректировать поведение. Чтобы модель лучше понимала, вам нужен код, его объяснение, анализ на ошибки, автокомплит в одну строку или что-то еще. И чтобы матом не ругалась и не хотела убить всех людей. Stackoverflow полезен, т.к. там код сочетается с текстом. Но это не единственный и не самый главный источник знаний. Синтетические данные сейчас очень широко используются в дообучении. Я не настаиваю, чтобы вы мне верили, но описанная вами проблема - из другой области. Она про недостаточное разнообразие данных на первом этапе
Ничего страшного не случится, когда "ресурсы по типу StackOverflow вымрут". Их роль не настолько велика в обучении, как многим кажется. В обучении есть 2 этапа. Сначала в нейронку загружают просто текст. Из него убирают какие-то слова - и нейронка должна их угадать. Годится любой текст, код, записки, чеки - что угодно, где слова хоть как-то связаны друг с другом. Это самая сложная и дорогая часть, она стоит миллионы и требует датацентров с gpu чипами. Второй этап - дообучение и настройка. Вот тут уже нужны качественные данные: конкретные вопросы и конкретные ответы, разные формулировки и ракурсы одного и того же. Где-то тут может быть полезен StackOverflow. Но не только он. Куда надежнее нагенерить синтетических данных - попросить LLM создать код на конкретную задачу, попросить другие LLM его выполнить, проверить, дать отзыв. Повторить это несколько раз - и будет не хуже, чем на StackOverflow.
В общем, это решаемая проблема. Им там куда больше не хватает "сырых" данных для первого этапа. Настолько не хватает, что сейчас куда больший прорыв происходит в мире маленьких моделей. Компании берут объемы данных, какими обучали свои флагманские гигантские модели, и обучают ими модели поменьше. Это дает интересные результаты. Сейчас крошечные модели, которые раз в 50 меньше самых продвинутых, выдают почти соизмеримую производительность. Их можно встраивать в телефоны, IDE, всякие руки-манипуляторы и так далее.
В 1984 есть глава о том, как уменьшают дневную норму шоколада, но этого никто не замечает. Всем, наоборот, кажется, что ее увеличивают, потому что так говорят в новостях. Очень похоже на мантру про нынешние времена. Еще пару лет назад ИТишники в РБ гнались за зарплатами, стеком, хорошими условиями. А сейчас мало того, что стандарты понизились до стабильной зарплаты, так всем еще и железобетонно кажется, что так так везде
Вот вы подумали своей головой и написали тут ниже, что работать в Innowise не так уж и плохо. Стоило оно того?
Как при помощи нехитрых приспособлений и буханки хлеба убедить читателей девбай, что зашквара не существует
Вон уже Китай выкатил модели не хуже - у них там проблем с исками от всяких копирайтеров и обиженных артистов нет. И регуляциями не душат. Так можно и AI гонку проиграть, перекладывая бумажки из одной стопки в другую
А мужики - все, прям, золото, а не люди. Если и попадаются с плохим характером, то только тут в комментах на девбай
Я б послушал какие-нибудь кулстори про бизнесы на ранних этапах. Там и тут, раньше и сейчас. Ну и традиционное - в каком году уже AI начнет заменять кодеров?
Ну, ок, я согласен, что видеть node.js, javascript, .net, bash, python одном списке - это странно. Авторы статьи могли бы разделить языки и платформы. Я помню тот опросник - там просто просили перечислить технологии - можно было Эксель и вязание вписать.
Сейчас довольно много народу пишет бекенды на JS и называет себя node-разработчиками. Я часто слышу фразы вроде "я пишу под ноду", вижу наклейки node.js на ноутах - мне плюс-минус понятно, что они имеют в виду и чем занимаются. А назвались бы JS-разработчиками - пришлось бы гадать. С джавой проще, потому что все ее ветки кроме энтерпрайза умерли. Никто уже не пишет на ней десктопы, фронтенды, не пытается заниматься AI, даже из мобилок ее вытеснили. Так что говоришь "джавист" - и сразу понятно, что ты энтерпрайз пилишь и жить не можешь без ооп.
Не на столько в центре Европы. Да и откуда у Беларусбанка 10 миллиардов? А релизы в пятницу прекрасны - можно фиксить всю ночь и потом еще два дня
В статье и не говорят, что это язык. Там просто облако тегов/технологий какое-то, где .Net стоит рядом с Bash. Мне в целом понятно, о чем речь, но кого-то сбивает с толку. Повезло платформам, где все называется одним словом. Под джавой тоже не стоит понимать только язык, если что