gpt-oss-20b справляется не сильно хуже моделей на 1Тб, так что с ростом памяти прирост в качестве небольшой и кажется что чуть-чуть улучшить обучение маленькой модели и будет прям совсем хорошо.
Свой проект имеет смысл для B2B, как кирпичик (SDK, фреймворк, тулза) в большом продукте. Я в нескольких таких копаниях работал и это намного эффективнее чем аналогичные команды в больших компаниях.
Свой проект в виде B2C имеет большой минус - ты навсегда привязываешься к этому проекту. Хочешь делать что-то другое и снова сидишь без денег, потому что конкуренты быстро сделают аналог и накинут новых фичей. А поддержка проекта и развитие проекта отнимает все время, еще нужно нанимать чтобы самому не тестировать и не фиксить примитивные баги. Когда ИИ сможет избавить от такой рутины, тогда станет намного проще запускать проекты.
Чисто теоретически можно обучить нейронку правильно складывать даже длинные числа, только на само обучение будет тратиться куча денег каждый раз. Правильней все же чтобы нейронки писали код и выполняли его.
А вот есть задачки посложнее - проекции 3д фигур на плоскость. Недавно нашел баг в чужом коде и скормил этот код разным нейронкам, в итоге только Грок нашел ошибку с неправильной проекцией, остальные выдавали одинаковый ответ указывая на другой кусок кода.
По спекам видеокарты давно могут рисовать однопиксельные треугольники в 5К 60фпс. Чтение текстур и расчеты тоже дешевые. Но почему-то все тормозит и требует 16гб памяти.
Только llama не работает с NPU, остается только посчитать TOPS на CPU и GPU.
Но для локального запуска все равно лучше NV на 16гб, стоит не дорого, токенов/с в десятки раз больше, а с помощью разбиения задачи на мелкие куски и небольшой контекст не проблема.
Со старыми играми тоже не очень, где-то с 2010 слишком нагруженные постэффекты которые плохо подходят для тайловой архитектуры. Дешевые АМД на RDNA2-3 в этом случае намного лучше и стабильнее.
В общем железка интересная, но нормального ПО под него нет и не скоро будет.
Пока что единствено возможной реализацией алгоритмической медели. Проблема в том, что создатели железа адаптируют его под существующие программы, а программы выбрали путь многопоточности.
Есть еще вариант SIMD/SIMT - когда одна инструкция выполняется для набора данных, такие вот виртуальные потоки с возможностью дешевого чтения регистров соседних потоков, что позволяет наплохо так оптимизировать математику.
Система тасков и корутины уже большой шаг к такой многопоточности. В зависимости от количества потоков выполняющих задачи и будет однопточные или многопоточные программы. Проблема только в устаревших ОС и устаревшей кодовой базе, включая популярные либы.
Я больше по графике, но у меня вылезают проблемы, когда CPU выжирает всю пропускную способность общей памяти. Поэтому смотрю как можно оптимизировать эту часть.
По оптимизации по L2 идея в том, чтобы загрузить часть данных в L2 и прогнать все системы для них, затем загрузить следующую часть. Аналогично работают тайловые ГПУ на мобилках.
Оптимизации примитивные, проблема продумать архитектуру, чтобы эти оптимизации можно было использовать.
Про такие оптимизации расказывали еще на GDC 10 лет назад. Утеряные технологии древних) Сейчас оптимизация по L2 есть в MASS для UE.
А зачем нужно оптимизировать по L2 можно убедиться если нагрузить RAM всего одним потоком и посмотреть как работает встройка. На дешевых интелах у меня получались лаги в 100-200мс на каждый кадр.
Не совсем правильно сравнивать производительность с другими либами. По научному нужно считать флопсы и Гб/с. Мой ECS прототип использует L2 кэш и AVX512 за счет этого в 1000 раз быстрее entt.
А может идея в том чтобы не писать код по старинке, а обучать небольшие матрицы для перехода между состояниями программы. Тогда проблема закрывается тупыми тестами и тупым машинным перебором.
Я вот вижу как ядер в ЦП становится все больше, скорость работы огромная, а большинство программ все также тормозят и используют один поток, потому что не тянут многопоточку и оптимизации. Теперь появились нейронки, которые можно распараллелить на все нейроядра, больше не нужено писать сложный код, сложную многопоточку, какой-нибудь фреймворк сам распланирует выполнение мелких нейросеток, нужно их только обучить и задать конечные состояния.
В новых ЦП более быстрая DDR5 и более широкий PCIE4/5, за счет этого данные быстрее попадают на ГПУ и лоды быстрее подгружаются. Но заметно это только при быстром перемещении.
В работе нет творчества. Я как-то устроился в маленькую заграничную компанию, думал что там то точно смогу определять куда движется компания. Но нет, там как и везде все зависит от денег, которые дают инвесторы, они же и решают что мы будет делать.
Я делал автоматизацию скриншот тестов рендера на андроид. Сделал отдельное приложение которое скачивает .so, запускает тесты и отдает логи и скриншоты. Может работать даже в фоне, не нужно подключаться по usb.
Сейчас даже фильтрацию текстур не нужно поддерживать - придумали стохастическую, читается один пиксель за кадр. Поддержка сжатых форматов не нужна - придумали расжимать на тензорных. Тригонометрия и прочие SFU не нужны - научились считать PBR на тензорах.
В маленьких ИТ компаниях вывозят за счет хорошей инженерной работы, а не человеко-часов. Только им никто не дает нормальных денег для развития, а если дают, то начинают все контролировать и заводят в высококонкурентную область, где компания закрывается или продается.
gpt-oss-20b справляется не сильно хуже моделей на 1Тб, так что с ростом памяти прирост в качестве небольшой и кажется что чуть-чуть улучшить обучение маленькой модели и будет прям совсем хорошо.
Теми кто дожил до этого) Но большинство слили все с убытком чтобы расплатиться за кредиты.
Свой проект имеет смысл для B2B, как кирпичик (SDK, фреймворк, тулза) в большом продукте. Я в нескольких таких копаниях работал и это намного эффективнее чем аналогичные команды в больших компаниях.
Свой проект в виде B2C имеет большой минус - ты навсегда привязываешься к этому проекту. Хочешь делать что-то другое и снова сидишь без денег, потому что конкуренты быстро сделают аналог и накинут новых фичей. А поддержка проекта и развитие проекта отнимает все время, еще нужно нанимать чтобы самому не тестировать и не фиксить примитивные баги. Когда ИИ сможет избавить от такой рутины, тогда станет намного проще запускать проекты.
Такие же заявления были в 2017 когда раздували пузырь крипты. Тогда все брали кредиты и продавали квартиры лишь бы вложиться в битки и получить 10х.
Чисто теоретически можно обучить нейронку правильно складывать даже длинные числа, только на само обучение будет тратиться куча денег каждый раз. Правильней все же чтобы нейронки писали код и выполняли его.
А вот есть задачки посложнее - проекции 3д фигур на плоскость. Недавно нашел баг в чужом коде и скормил этот код разным нейронкам, в итоге только Грок нашел ошибку с неправильной проекцией, остальные выдавали одинаковый ответ указывая на другой кусок кода.
По спекам видеокарты давно могут рисовать однопиксельные треугольники в 5К 60фпс. Чтение текстур и расчеты тоже дешевые. Но почему-то все тормозит и требует 16гб памяти.
Только llama не работает с NPU, остается только посчитать TOPS на CPU и GPU.
Но для локального запуска все равно лучше NV на 16гб, стоит не дорого, токенов/с в десятки раз больше, а с помощью разбиения задачи на мелкие куски и небольшой контекст не проблема.
Со старыми играми тоже не очень, где-то с 2010 слишком нагруженные постэффекты которые плохо подходят для тайловой архитектуры. Дешевые АМД на RDNA2-3 в этом случае намного лучше и стабильнее.
В общем железка интересная, но нормального ПО под него нет и не скоро будет.
Пока что единствено возможной реализацией алгоритмической медели. Проблема в том, что создатели железа адаптируют его под существующие программы, а программы выбрали путь многопоточности.
Есть еще вариант SIMD/SIMT - когда одна инструкция выполняется для набора данных, такие вот виртуальные потоки с возможностью дешевого чтения регистров соседних потоков, что позволяет наплохо так оптимизировать математику.
Система тасков и корутины уже большой шаг к такой многопоточности. В зависимости от количества потоков выполняющих задачи и будет однопточные или многопоточные программы. Проблема только в устаревших ОС и устаревшей кодовой базе, включая популярные либы.
Я больше по графике, но у меня вылезают проблемы, когда CPU выжирает всю пропускную способность общей памяти. Поэтому смотрю как можно оптимизировать эту часть.
По использованию SIMD https://gdcvault.com/play/1022248/SIMD-at-Insomniac-Games-How
По оптимизации по L2 идея в том, чтобы загрузить часть данных в L2 и прогнать все системы для них, затем загрузить следующую часть. Аналогично работают тайловые ГПУ на мобилках.
Оптимизации примитивные, проблема продумать архитектуру, чтобы эти оптимизации можно было использовать.
Про такие оптимизации расказывали еще на GDC 10 лет назад. Утеряные технологии древних) Сейчас оптимизация по L2 есть в MASS для UE.
А зачем нужно оптимизировать по L2 можно убедиться если нагрузить RAM всего одним потоком и посмотреть как работает встройка. На дешевых интелах у меня получались лаги в 100-200мс на каждый кадр.
Не совсем правильно сравнивать производительность с другими либами. По научному нужно считать флопсы и Гб/с. Мой ECS прототип использует L2 кэш и AVX512 за счет этого в 1000 раз быстрее entt.
А может идея в том чтобы не писать код по старинке, а обучать небольшие матрицы для перехода между состояниями программы. Тогда проблема закрывается тупыми тестами и тупым машинным перебором.
Я вот вижу как ядер в ЦП становится все больше, скорость работы огромная, а большинство программ все также тормозят и используют один поток, потому что не тянут многопоточку и оптимизации. Теперь появились нейронки, которые можно распараллелить на все нейроядра, больше не нужено писать сложный код, сложную многопоточку, какой-нибудь фреймворк сам распланирует выполнение мелких нейросеток, нужно их только обучить и задать конечные состояния.
В новых ЦП более быстрая DDR5 и более широкий PCIE4/5, за счет этого данные быстрее попадают на ГПУ и лоды быстрее подгружаются. Но заметно это только при быстром перемещении.
В работе нет творчества. Я как-то устроился в маленькую заграничную компанию, думал что там то точно смогу определять куда движется компания. Но нет, там как и везде все зависит от денег, которые дают инвесторы, они же и решают что мы будет делать.
Я делал автоматизацию скриншот тестов рендера на андроид. Сделал отдельное приложение которое скачивает .so, запускает тесты и отдает логи и скриншоты. Может работать даже в фоне, не нужно подключаться по usb.
Сейчас даже фильтрацию текстур не нужно поддерживать - придумали стохастическую, читается один пиксель за кадр. Поддержка сжатых форматов не нужна - придумали расжимать на тензорных. Тригонометрия и прочие SFU не нужны - научились считать PBR на тензорах.
Учитывая как NV внедряет тензоры в графику так скоро и GPU не понадобится, все на тензорах будет считаться)
В маленьких ИТ компаниях вывозят за счет хорошей инженерной работы, а не человеко-часов. Только им никто не дает нормальных денег для развития, а если дают, то начинают все контролировать и заводят в высококонкурентную область, где компания закрывается или продается.