ArbNet

ArbNet
Рейтинг
154
Регистрация
27.10.2019
Программист самоучка
softerra #:
На это есть спрос? Кому это будет нужно? Похоже на отдельную сеть. Зачем вообще пользователей пересчитывать и в базу заносить? Лет 25 назад такое могло заинтересовать, но сегодня непонятно для чего такое вообще может быть нужным?

Вы сервисами и разными сайтами в интернете пользуетесь, значит спрос есть. Лично я считаю такая система будет более справедливая и саморегулируемая не подконтрольная государствами, что в первую очередь будет защищать ваши личные интересы. Сейчас вы просто рабы матрицы социальной пирамиды, олигархи, чиновники, могут сделать с вами всё что захотят..

не хаос #:
ArbNet  ты объясни толком, какую программу ты стремишься создать. Может быть задача изначально неразрешима, а может быть нужна свежая идея со стороны и всё получится.

Я уже миллион раз говорил, что хочу создать.

Много разных сайтов с единой базой пользователей. Фреймворк для сайтов я разработал(ну почти). Осталось разные скрипты для разных сайтов на фреймворке сделать. А для децентрализации ещё разрабатываю микросервисную систему с своими языком программирования, базой данных, веб-сервер, нейросетью.

ЗЫ. Я от нехватки идей как видите не страдаю, наоборот их у меня в избытке. И реализовать всё могу сам. Конечно по началу хотелось найти единомышленников, но большинству, да чего уж, всем понять даже сложно чем я занимаюсь не то, что сотрудничать со мной, заниматься совместной разработкой.

Sly32 #:
ты мне не обьясняй то чего не знаешь, хотя что нормальный токенайзер включает не 50 а до 126000 токенов. 

Какая разница 50000 или 100000 я тебе просто сам смысл донести хотел, что нужно для всех токенов просчитывать логиты. Да в самых больших LLM 126000 токенов, а может и больше даже, это не имет в принципе значения. Ещё раз говорю для пассажиров бронепоезда, каждый раз надо все векторы весов этих токенов просчитывать чтобы к ответу добавить один из них и так пока не будет сгенерирован весь ответ!!

Sly32 #:
Я спрашивал тебя - как ты будешь свою разбивку по словам применять для ЛЛМ. 
У меня токенизация не по словам, а по буквам. Слово кодируется в число, если длинное слово в два и более чисел. Это уже отличие одного слова от другого, ну и на обучении на текстах нейросеть уже будет обучатся. Как применять? Очень просто, мне не нужно делать словарь для всех слов как и при токенизации по паре-тройке букв как BPE, при генерации токены также собирать в число и делать обратное декодирование. Ты никогда не писал программы шифровальщики-дешифровальщики что-ли?(риторический)

Sly32 #:
Пока что ты написал хеш для каждого символа, не более. Что не применяется в ЛЛМ по причине отсутствия связей между двумя хэшами.

Вообще всё мимо.. комментировать даже не буду эту чушь

Sly32 #:
Ну так в таком случе не выпендривайся тут. Это болтовня а не подход. 
Если честно. Я подумывал тут даже тему создать, предложить совместную разработку, попытаться рассказать, что и как думаю сделать и тд. но с прежним моим опытом подобного понимаю, что вряд ли тут найдутся соображающие ребята. Возьмем тебя, ты сразу полезешь гуглить или у ИИ спрашивать, что и как можно сделать, он тебе наотвечает как у кого-то уже сделано и ты начнёшь распылятся, что всё пропало гипс снимают, клиент уезжает.. вместо того чтобы своей головой подумать и найти решение, не получилось, ещё раз подумать и так пока не начнёт получатся. Вот в этом-то твоя проблема, дожил до седин, а думать-то и не научился.
Sly32 #:
в твоей системе что дает разбивка слов таким образом и что является минимальной единицей информации

Я не смогу это тебе объяснить, это как с фреймворком на XML(для меня это очевидно, а для тебя чтобы я не говорил, что это лучше, ты не можешь никак понять).

Если ты имеешь ввиду разбивку слов на части\токены как в LLM, то мог бы спросить у ИИ что это даёт, если в кратце, то такой способ минимизирует словарь и даёт возможность токенизировать слова которые не были в обучении, а так же создавать новые похожие слова которых тоже не было в обучении. Да это не плохой способ, но у него есть минус того, что всё же нужен словарь из ~50000 токенов и пересчёт каждого при добавлении нового токена в ответ.

Sly32 #:
обсуждать теорию твою и варианты решения. Мне это интересно.

К сожалению, я не вижу в тебе единомышленника. У тебя примитивные подходы, ты привык делать всё по готовым примерам, уж извини, но у меня сложилось о тебе именно такое мнение.

ЗЫ. У меня другой подход, пока я не хочу о нём рассказывать.

Sly32 #:
"алго" + "ритм"? что такое  BPE?

Молодец, у ИИ спросил как токены получаются. Да, приблизительно так.

Sly32 #:
Я тебе скажу - это линейная операция O(1) - самое дешевое в мире вычислений.

Тоже молодец, ИИ тебе лапшу навешает, ты и рад. Нет, не дешёвая это операция, да быстрая, на графическом процессоре это доли секунды, но когда это нужно совершать миллионы раз, то это очень дорогая операция.

ЗЫ. Не зря же вам токены продают.

Sly32 #:
Ты хочешь вообще уйти от трансформера с его слоями? Это будет что-то типа графа? 

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

У нейросети могут быть несколько слоёв, а слой может быть типа RNN, LSTM, Mamba, Transformer и др. все современные нейросети это гибридные нейросети, в них есть разные слои и тд. короче очень сложные системы. Для примера нейросети какого-то типа можно ИИ попросить написать код, но это примитивнейшие примеры работающие в основном с одним-двумя слоями на одном типе. Да можно усложнить задачу и попросить написать гибридную нейросеть, но тут начнутся проблемы, такой код не будет работать, не сможет генерировать осмысленные ответы..

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

Sly32 #:

Как ты будешь строить паттерн? В твоем кодировании нет никаких связей между кодами слов

Тебе ли задавать такие вопросы. Хотя понимания как работают нейросети у тебя всё таки маловато.

Вот тут как раз и вся магия нейросетей, даже иногда в СМИ всплывают интервью с разработчиками нейросетей которые говорят, что сами не понимают как они выявляют разные паттерны, закономерности и на их основе потом создают прогнозирование. Все слова охватить с сотнями и тысячами их вариаций использования просто нереально. Поэтому разработчики нейросетей пошли по самому простому пути дробить слова на кусочки и прогнозировать ответы на основе предыдущего контента пересчитывая вероятности на каждой итерации все 50000 токенов для добавления нового кусочка\токена к ответу. По мне это очень тупой способ требовательный больших вычислительных мощностей и много лишней работы(хотя на графических процессорах просчёт всех токенов происходит практически мгновенно за один такт, всё равно это очень много лишней работы).

ЗЫ. Короче говоря тут в помощь вступают всякие лингвистические аспекты: фонетика, морфология, синтаксис, семантика, прагматика и др. (в которых как оказалось ты тоже ни бум-бум). Так вот кое что можно вынести за рамки для усмотрения нейросетью и составить свой алгоритм далее пропустить уже через нейросеть и получить вероятности более сжатые чем 50000, через всякие темы, направления и тд.

Sly32 #:
Хочешь, я тебе обьясню буквально в 3-х абзацах, почему это не сработает? Пошли в челлендж тему - тут это лишнее. Помнишь, я тее про мамбу писал.  И если бы ты изучил реально то знал бы, что сейчас воспроизводишь метод кодирования, который  давно уже разрабатывался и прищнан неэффективным  для трансформера. 

Не смеши, с этой мамбой 😁

Дело вообще не в методе кодирования, а в скорости генерации, обучаемости на не больших данных и осознанности. Что трансформер, что мамба и далее по списку всем нужно очень много данных для обучения чтобы генерация ответов была осознанной такой же как если бы отвечал человек, а не набор слов или букв. Я пишу мини-lm чтобы можно было запустить на любом компе, обучить нужным данным и получать хорошие результаты с быстрыми ответами. С теми алгоритмами на каких работают существующие нейросети то, что я хочу просто не реализовать(хотя кому я объясняю, всё равно не поймёшь).

ЗЫ. Что трансформер, что мамба, на каждой итерации просчитываются вероятности всех токенов, у мамба есть скрытое состояние от которого делаются расчёты(балбесы вроде тебя думают, что это ускорение, но на самом деле это не ускорение по большому счёту). Я делаю кодирование слов в числа чтобы не просчитывать тысячи токенов каждый раз, а чтобы по кодам слов находились паттерны и генерировались нужные слова. Не понимаешь же наверное всё равно ничего..

Sly32 #:
я не понимаю зачем что-то писать уровня задач для обучающихся

Я изучил как работают алгоритмы нейросетей. В них слова разбиваются на токены от 2 до нескольких символов в зависимости от частоты наличия в словах. Таких токенов около 50000. Для обучения такой сети нужно очень и очень много данных и времени на обучение и тд. Подход для llm не плохой, но слишком затратный и очень много лишней работы при генерации ответа, то есть надо просчитывать все 50000 на каждой итерации..

Я тестил другой подход. Эти функции это прототипы, 64 это токенов русских букв строчных и заглавных без и́ё. Я кодирую слово в числа, а не разбиваю на части токенов по несколько букв. Подход удачный получился. Потом я стал думать как сделать больше токенов для символов и переделал функции кодировки. Понял, что эти прототипы корявые с неправильной формулой. И это на самом деле не единственный случай. У меня так с ИИ постоянно, всё переписываю по своему.

ЗЫ. Да, ИИшный код можно использовать, но по хорошему если подумать, то лучше не надо, лучше свой написать.

Александр Воробьев #:
ты привел пример это что - уже не простая задача? :)

Я взял лишь две функции из целого проекта сгенерированного ИИ. Да и этот проект, в принципе простая задача. Но опять же те кто не умеют программировать и для кого сгенерированный корявый код, это само совершенство, для таких конечно сойдёт. Лично я даже небольшую задачу сгенерированную на ИИ перепроверяю и переписываю по своему.

Sly32 #:
начни с математики!

Ты вообще знаешь как 1 и 0 в компе превращаются в числа? А тебе пора бы уже знать как числа хранятся в памяти компьютера.

На каждом разряде увеличивается в двое и не может превышать разряд *2, а разряд*2-1 это максимальное значение всех младших разрядов

Специально для тебя, твой любимый ИИ сделал:

fn main() {
    let mut result: u64 = 0;
    let code_u64: u64 = 63;
    let mut iteration = 0;
    
    println!("Начальное значение: result = {}", result);
    println!("Начинаем вычисления...\n");
    
    loop {
        let current = result;
        let operation = format!("{} * 64 + {}", current, code_u64);
        
        // Пробуем выполнить операцию
        if let Some(new_result) = current.checked_mul(64).and_then(|r| r.checked_add(code_u64)) {
            result = new_result;
            iteration += 1;
            println!("Итерация {:2}: {} = {}", iteration, operation, result);
        } else {
            println!("\n⚠️  ПЕРЕПОЛНЕНИЕ на итерации {}!", iteration);
            println!("   Не удалось выполнить: {}", operation);
            println!("   Текущее значение: {} (максимум для u64: {})", current, u64::MAX);
            break;
        }
    }
    
    println!("\nИтоговый результат: {}", result);
    println!("Всего выполнено итераций: {}", iteration);
}

Итерация  1: 0 * 64 + 63 = 63
Итерация  2: 63 * 64 + 63 = 4095
Итерация  3: 4095 * 64 + 63 = 262143
Итерация  4: 262143 * 64 + 63 = 16777215
Итерация  5: 16777215 * 64 + 63 = 1073741823
Итерация  6: 1073741823 * 64 + 63 = 68719476735
Итерация  7: 68719476735 * 64 + 63 = 4398046511103
Итерация  8: 4398046511103 * 64 + 63 = 281474976710655
Итерация  9: 281474976710655 * 64 + 63 = 18014398509481983
Итерация 10: 18014398509481983 * 64 + 63 = 1152921504606846975

⚠️  ПЕРЕПОЛНЕНИЕ на итерации 10!
   Не удалось выполнить: 1152921504606846975 * 64 + 63
   Текущее значение: 1152921504606846975 (максимум для u64: 18446744073709551615)

На самом деле на 11й переполнение. Да в коде есть ограничение на 10 символов и он рабочий, я тестил нейросеть с этими функциями.

Но они корявые. Здесь просто основание маленькое, сделать побольше и всё.

ЗЫ. Формула должна быть такая result += code_u64 * (64^разряда);

Сергей про е-ком #:
ИИ сама прекрасно находит ошибки

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

ЗЫ. Ещё раз говорю кого устраивает корявость, берите на вооружение. Лично я как писал код сам так и продолжаю писать, мне нужно обязательно понимать как он работает, что делает и тд. и практически любой код который мне генерит ИИ я переделываю по своему, потому что меня раздражает эта корявость..

Всего: 2503