Ага. Напоминает проблему топологической сортировки в параметрических CAD. Грубо говоря, если добавить/удалить грань где-то в середине истории, CAD потом не всегда может понять к каким элементам применялись последующие операции, потому что множество вершин изменилось.
Тут будет что-то похожее. Цикл, в который добавили новое условие - это новый блок кода? Должен ли у него быть новый идентификатор? А если потом убрать из него кусок кода? Рано или поздно возникнет своеобразный корабль Тесея: в блоке ничего не осталось от оригинала, но идентификатор все тот же. А если назначить новые идентификатор - то как делать дифф между двумя деревьями где все идентификаторы разные?
Нейросеть создали для того, чтобы она выдавала эффективный результат
Эту которую? LLM умеют только одно: предсказывать следующий токен. На прикладном уровне это выглядит как генерация правдоподобных текстов. Иногда - настолько правдоподобных, что они даже имеют отношение к реальности. Но это - не более чем совпадение.
Вот, кстати, спорное утверждение. Пытаюсь писать на Rust, иногда возникают вопросы, но поиск никогда не приводит на SO. Чаще на официальную документацию, официальный учебник, пару раз - даже на их собственный issue tracker на гитхабе. Но ни разу не получал ссылки на stack overflow.
Не совсем ясно, насколько такой подход лучше уже существующего, когда мы передаем коннектору строку с плейсхолдерами типа % и значения, а он их сам экранирует и заменяет.
Не надо вводить людей в заблуждение. Все нормальные движки БД давно поддерживают параметры. Поэтому значения в параметризированный запрос не подставляются никогда. Опять же, парсеру запросов проще один раз распарсить, оптимизировать и закешировать `select * from users where name = $1` чем парсить тысячи разных запросов, которые отличаются только параметром. Я уж не говорю о том что это исключает SQL injection полностью и навсегда.
Ну предвычисление они скорее действительно делают. Другое дело, что это токены все равно занимают контекст. Грубо говоря, если сеть тренировали с размером контекста 48000 токенов, то это промт займет половину, как не крути. Предвидя следующий вопрос - нет технического ограничение на размер контекста во время inference, но обычно модели начинают дико галюнинировать когда контекст разрастается за пределы того размера, который использовали при обучении.
На Hugginface этих LLM дофига. Качаешь, запускаешь, делаешь что дуже угодно. Хочешь - обсуждай как бомбы делать, хочешь - виртуальным сексом занимайся, хочешь - пиши расистские стихи в стиле Вергилия, хочешь - просто локально код генерируй. Можно даже без видеокарты (правда будет медленно и печально).
Попробуйте помейнтейнить любой более-менее популярный проект и начнете выражаться не хуже. Народ любит тащить в мейнлайн кучу хери, которая решает какую-то их конкретную задачу и не смотрит на то какие проблемы это создает другим.
Ага, по такой логике - WinRAR тоже опенсурс, потому что его можно запустить локально. Бинари же дают, что вам еще надо? Можно даже дообучить пропатчить бинарь. Вон хакеры и прочие энтузиасты таким все время занимаются.
Да и отсутствие исходного кода WinRAR не является препятствием - алгоритмы то все уже давно известны.
У больших ARMов почти так же. Хотя, все же есть отдельные точки входа для прерывания и для исключения. А дальше - либо лезем в контроллер прерываний смотреть что там пришло, либо в регистр ESR, разбираться что за исключение.
Написать - это хорошо. А отдебажить? Я вот тут сейчас дебажу интересный race condition между кодом на Rust и кодом на C. В проекте на полторы миллиона строк кода (QEMU). Когда o3 pro сможет сделать это за меня?
Ооо, ну да, редактировать - это отдельное удовольствие. Особенно, если еще и смещения надо пересчитывать - ну нафиг. Лучше уж действительно втыкать хуки в рантайме.
Ага. Напоминает проблему топологической сортировки в параметрических CAD. Грубо говоря, если добавить/удалить грань где-то в середине истории, CAD потом не всегда может понять к каким элементам применялись последующие операции, потому что множество вершин изменилось.
Тут будет что-то похожее. Цикл, в который добавили новое условие - это новый блок кода? Должен ли у него быть новый идентификатор? А если потом убрать из него кусок кода? Рано или поздно возникнет своеобразный корабль Тесея: в блоке ничего не осталось от оригинала, но идентификатор все тот же. А если назначить новые идентификатор - то как делать дифф между двумя деревьями где все идентификаторы разные?
Эту которую? LLM умеют только одно: предсказывать следующий токен. На прикладном уровне это выглядит как генерация правдоподобных текстов. Иногда - настолько правдоподобных, что они даже имеют отношение к реальности. Но это - не более чем совпадение.
Вот, кстати, спорное утверждение. Пытаюсь писать на Rust, иногда возникают вопросы, но поиск никогда не приводит на SO. Чаще на официальную документацию, официальный учебник, пару раз - даже на их собственный issue tracker на гитхабе. Но ни разу не получал ссылки на stack overflow.
Ну если вы параметризируете эти части кусками из user input, то у меня для вас плохие новости...
Я понимаю что статья не о том, но
Не надо вводить людей в заблуждение. Все нормальные движки БД давно поддерживают параметры. Поэтому значения в параметризированный запрос не подставляются никогда. Опять же, парсеру запросов проще один раз распарсить, оптимизировать и закешировать `select * from users where name = $1` чем парсить тысячи разных запросов, которые отличаются только параметром. Я уж не говорю о том что это исключает SQL injection полностью и навсегда.
r-строки уже давно есть, кстати. Наверное чуть ли не с первой версии.
Ну предвычисление они скорее действительно делают. Другое дело, что это токены все равно занимают контекст. Грубо говоря, если сеть тренировали с размером контекста 48000 токенов, то это промт займет половину, как не крути. Предвидя следующий вопрос - нет технического ограничение на размер контекста во время inference, но обычно модели начинают дико галюнинировать когда контекст разрастается за пределы того размера, который использовали при обучении.
На Hugginface этих LLM дофига. Качаешь, запускаешь, делаешь что дуже угодно. Хочешь - обсуждай как бомбы делать, хочешь - виртуальным сексом занимайся, хочешь - пиши расистские стихи в стиле Вергилия, хочешь - просто локально код генерируй. Можно даже без видеокарты (правда будет медленно и печально).
Попробуйте помейнтейнить любой более-менее популярный проект и начнете выражаться не хуже. Народ любит тащить в мейнлайн кучу хери, которая решает какую-то их конкретную задачу и не смотрит на то какие проблемы это создает другим.
Ну от инженера я ожидаю что он уточнит почему задача поставлена именно таким образом. И возможно - он предложит лучшее решение.
Кодер - да, должен делать как ему скажут. Правда, толку от кодеров в 21 веке...
Ну это зависит от того, кого вы набираете - кодеров или инженеров.
Ага, по такой логике - WinRAR тоже опенсурс, потому что его можно запустить локально. Бинари же дают, что вам еще надо? Можно даже
дообучитьпропатчить бинарь. Вон хакеры и прочие энтузиасты таким все время занимаются.Да и отсутствие исходного кода WinRAR не является препятствием - алгоритмы то все уже давно известны.
Потому что пространство искривляет не гравитация. Пространство искривляет масса (и энергия).
У больших ARMов почти так же. Хотя, все же есть отдельные точки входа для прерывания и для исключения. А дальше - либо лезем в контроллер прерываний смотреть что там пришло, либо в регистр ESR, разбираться что за исключение.
Написать - это хорошо. А отдебажить? Я вот тут сейчас дебажу интересный race condition между кодом на Rust и кодом на C. В проекте на полторы миллиона строк кода (QEMU). Когда o3 pro сможет сделать это за меня?
Да, но только для
_Bool
. Для других целых типов все проще: 0 == false, все что не 0 == true.Какая связь между оригинальным Doom и TES? Их делали разные люди, в разное время, используя разные технологии.
В какой момент на Хабре стали нормой эти ужасные SEOшные заголовки постов? Такое ощущение что я попал на сайт какого-то таблоида.
"Для того чтобы запустить Дипсик, вам понадобится обычные китайский..."
"Я ввел ЭТО в консоль и у меня заработал Youtube"
"Только посмотрите что вытворяет этот джун в свободное от работы время"
"Программисты были шокированы этим способ обойти замедление Youtube"
Так а где разборка то? Что там внутри?
Ооо, ну да, редактировать - это отдельное удовольствие. Особенно, если еще и смещения надо пересчитывать - ну нафиг. Лучше уж действительно втыкать хуки в рантайме.