Не смеши, с этой мамбой 😁
Дело вообще не в методе кодирования, а в скорости генерации, обучаемости на не больших данных и осознанности. Что трансформер, что мамба и далее по списку всем нужно очень много данных для обучения чтобы генерация ответов была осознанной такой же как если бы отвечал человек, а не набор слов или букв. Я пишу мини-lm чтобы можно было запустить на любом компе, обучить нужным данным и получать хорошие результаты с быстрыми ответами. С теми алгоритмами на каких работают существующие нейросети то, что я хочу просто не реализовать(хотя кому я объясняю, всё равно не поймёшь).
ЗЫ. Что трансформер, что мамба, на каждой итерации просчитываются вероятности всех токенов, у мамба есть скрытое состояние от которого делаются расчёты(балбесы вроде тебя думают, что это ускорение, но на самом деле это не ускорение по большому счёту). Я делаю кодирование слов в числа чтобы не просчитывать тысячи токенов каждый раз, а чтобы по кодам слов находились паттерны и генерировались нужные слова. Не понимаешь же наверное всё равно ничего..
Как ты будешь строить паттерн? В твоем кодировании нет никаких связей между кодами слов
Я изучил как работают алгоритмы нейросетей. В них слова разбиваются на токены от 2 до нескольких символов в зависимости от частоты наличия в словах. Таких токенов около 50000. Для обучения такой сети нужно очень и очень много данных и времени на обучение и тд. Подход для llm не плохой но слишком затратный и очень много лишней работы при генерации ответа, то есть надо просчитывать все 50000 на каждой итерации..
Я тестил другой подход. Эти функции это прототипы, 64 это токенов русских букв строчных и заглавных без и́ё. Я кодирую слово в числа, а не разбиваю на части токенов по несколько букв. Подход удачный получился. Потом я стал думать как сделать больше токенов для символов и переделал функции кодировки. Понял, что эти прототипы корявые с неправильной формулой. И это на самом деле не единственный случай. У меня так с ИИ постоянно, всё переписываю по своему.
ЗЫ. Да, ИИшный код можно использовать, но по хорошему если подумать, то лучше не надо, лучше свой написать.
Тебе сделали то, что ты попросил - это раз. То есть это не ошибка нейросети а твоя как постановщика задачи. И два - повторюсь - не используй дешевые поделки китайские а также алису на их базе - они отстают на 2-3 года от нормальных моделей. Лично у меня Sonnet 5 сразу нашел ошибки в твоем коде и они посерьезнее переполнения.
Нейросеть за тебя не думает - она следует твоим указаниям. Если ты не понимаешь что делаешь - то и результат такой же. И я не понимаю зачем что-то писать уровня задач для обучающихся на LeetCode - это не идея никакая
Максимально возможное значение result после 10 итераций — это 64^10 - 1 :
64^10 = 2^60 ≈ 1.15 × 10^18 u64::MAX = 2^64 - 1 ≈ 1.8 × 10^19
2^60 почти в 16 раз меньше u64::MAX . То есть даже если на каждом шаге брать максимальный код (63) и пройти все 10 символов, итоговое число уместится в u64 с большим запасом.
А что заставило заправляться в 2 раза дороже?
Извини, у меня в голове это с чанками, векторами и эмбедингами связано. 😀 Rag - это когда ответ не детеминирован. Не обращай внимания.
Это просто один из методов. кроме тех что я описал их еще с десяток есть.