но сейчас появилась новая виза, с более простыми условиями. Она правда на пять лет "всего" - гуглите DTV. Я получил её в декабре 2024 без проблем, работая удалённо в маленьком американском стартапе
Tailwind мне кажется не нужно загружать в Kotlin - легче просто подключить готовый CSS-файл и всё, как bootstrap какой-нибудь. При Tailwind подходе многие классы переиспользуются, так что проблемы с вычисткой устаревших классов не возникает.
нет, в данной версии её нет. Есть плагин который даёт подсветку и проверку синтаксиса CSS в бесплатной версии Idea - он в том числе в данном коде может подсвечивать красненьким ошибки в стилях. Но на компиляцию он не влияет.
Признаюсь, я до конца понял только часть про "покрыть лёгким тестом". Если в шаблоне есть условия if, если есть циклы и вызовы других подшаблонов - такой шаблон уже не покрыть так легко. А если их у вас несколько сотен - это превращается в отдельную очень трудозатратную работу. И это я даже не говорю о том что необходимо тестировать совместимость контроллера-модель-шаблон всё вместе, потому что простой рефакторинг (изменение названия поля в классе например) - и всё, ваш лёгкий тест на Map-модели зелёный, а продакшн не работает.
В любом случае, конечно, есть разные подходы. Я описал один из них, и с учётом того сколько я всего перепробовал за почти 25 лет разработки — мне видится мой текущий подход одним из самых удобных, устойчивых и продуктивных.
1) новые несуществующие слова в вашем случае не добавляют новых векторов. Когда вы используете функцию "ассистента" и до-обучения модели, новые токены не создаются. Ваш текст разбивается на уже знакомые токенизатору токены.
2) вам не нужно 150 разных магических ингредиентов. Вам не нужно самим заботиться о том чтобы модель обращала внимание на последовательность – это дело алгоритма трансформера, в нем уже заложен учёт очередности.
3) вам не нужно самим разбивать последовательность на десятки – функция LLM есть предсказывание следующего токена на основе предыдущих – вы можете всю историю графика запихать целиком на до-обучение.
Я бы вам рекомендовал взять какой-нибудь хороший токенизатор и найти а нем 15 токенов-векторов максимально "далёких" друг от друга. Этих 15 токенов хватит чтобы закодировать ваши пять признаков*(выше, ниже, не изменилось). Учтите что пробел это тоже токен. Это можно использовать, например для разделения свечей пробелом, а пять фичей внутри одной свечи разделять дефисом.
Я для своей работы сделал на Kotlin очень клёвый DSL движок для старого доброго серверного рендеринга. Никаких свистелок, всё на Котлин, всё строго типизированное, включая параметры форм и ссылок. Переиспользование компонентов, нативный рефакторинг, компилируемый код – то что нужно для очень больших бэк-офисов, когда программистов мало, задач много, выделенного тестировщика порой нет. Выделил это всё в open source. Давно хотел написать пост на Хабре, может кому будет интересно и полезно (поскольку сам не нарадуюсь от того как это удобно)
Примерно такая же ситуация случилась у меня два дня назад: только там был большой конфиг nginx для настройки большого кеширующего прокси сервера для раздачи видео файлов. Оно работало, но не так как нам хотелось, и найти проблему никак не удавалось. Я одним сообщением отправил конфиг + описание проблемы с просьбой разобраться – и отправи в о1. Через пару секунд получил ответ, через пару минут раскатал на сервера. Сам бы я (надеюсь) нашел бы косяк, но сколько бы мне понадобилось времени на это – трудно сказать.
Промпт: подскажи простой рецепт приготовления свиных крылышек?
Уже пройден. О1 так же как и 4о легко и непринужденно предлагает шикарный рецепт приготовления свиных крылышек. Первый пункт в котором: 1) купите килограмм свиных крылышек
Это интерфейс JVM который обеспечивает доступ к системному вызову epoll в ядро Линукс. Или kqueue в BSD системах. Или аналогичный ему в windows.
Это такой механизм который позволяет сказать ядру OS, что мы ожидаем появление данных (или возможность записи данных) сразу в нескольких file handlers (сетевые сокеты, файлы, whatever). Это позволяет работать в один поток с сотнями и даже тысячами соединений ввода/вывода.
Других альтернатив по-настоящему асинхронной работы с файлами или сетью просто нет.
Нарушение неравенств Белла доказывает абсолютно случайную природу квантовых процессов. Квантовые процессы недетерминированы, то есть их нельзя запрограммировать. А симуляция подразумевает что мы живём в мире который просчитан машиной – если даже это и так, то такая машина должна быть размером как минимум с то что мы называем Вселенной и быть настолько же случайной, как и те процессы которые нарушают неравенства Белла. Ну он есть мы получаем тоже самое что и без симуляции.
Следует всё равно помнить, что корутины по большей части это синтаксический сахар. Чудес не бывает и никакие корутины за вас по-настоящему асинхронный ввод/вывод в JVM не сделают – в лучшем случае удобно скроют синхронную работу в отдельном пуле потоков. Полноценной асинхронной работы IO без блокировок можно добиться только через Selectors.
Доказанное нарушение неравенств Белла по идее должно было завернуть все эти идеи о симуляциях, примерно так же как запуск космических спутников должен был завершить эру теорий о плоской Земле. Но нет, интернет и сегодня полон плоскоземельщиками и симу... пусть будет симулянтами
Лично мне кажется что гугловский (точнее deepmind) ИИ по решению математических задач по своему потенциалу развития значительно сильнее тех же LLM, у которых всё хорошо с предсказанием следующего токена, но с так называемым "reasoning" всё так себе.
Для примера можете вбить в чатжпт классическую задачу про лодочника, волка, козу и капусту. Но без указания что кто-то кого-то может съесть. Чатжпт по инерции выдаст ответ со сложной логистикой. Просто потому что по контексту вопроса такой ответ наиболее распространенный. И самое интересное, что этот косяк никак не побороть в рамках существующей архитектуры модели или добавлением тренировочных данных.
Так что я бы не стал говорить что Гугл остаёт. Возможно если они возьмут за основу именно математический ИИ, и уже поверх него натянут словоблудие – вот тогда это будет действительно следующее поколение ИИ
Довольно вредный совет, нужно быть очень осторожным, такая транзакция может не открыться в случае если метод помеченный такой аннотацией вызывается из другого метода этого же класса, то есть через this – такой вызов не проходит через Proxy который создаётся спрингом на старте приложения для бина этого класса, и соответственно транзакция не открывается.
её акции в открытую торгуются бирже
но сейчас появилась новая виза, с более простыми условиями. Она правда на пять лет "всего" - гуглите DTV. Я получил её в декабре 2024 без проблем, работая удалённо в маленьком американском стартапе
Tailwind мне кажется не нужно загружать в Kotlin - легче просто подключить готовый CSS-файл и всё, как bootstrap какой-нибудь. При Tailwind подходе многие классы переиспользуются, так что проблемы с вычисткой устаревших классов не возникает.
нет, в данной версии её нет. Есть плагин который даёт подсветку и проверку синтаксиса CSS в бесплатной версии Idea - он в том числе в данном коде может подсвечивать красненьким ошибки в стилях. Но на компиляцию он не влияет.
С большим удовольствием избавились от Lombok во время активной фазы миграции проекта из Java в Kotlin.
всё именно так да. Я сам нарадоваться не могу, потому решил и поделиться
Признаюсь, я до конца понял только часть про "покрыть лёгким тестом". Если в шаблоне есть условия if, если есть циклы и вызовы других подшаблонов - такой шаблон уже не покрыть так легко. А если их у вас несколько сотен - это превращается в отдельную очень трудозатратную работу. И это я даже не говорю о том что необходимо тестировать совместимость контроллера-модель-шаблон всё вместе, потому что простой рефакторинг (изменение названия поля в классе например) - и всё, ваш лёгкий тест на Map-модели зелёный, а продакшн не работает.
В любом случае, конечно, есть разные подходы. Я описал один из них, и с учётом того сколько я всего перепробовал за почти 25 лет разработки — мне видится мой текущий подход одним из самых удобных, устойчивых и продуктивных.
На подумать:
1) новые несуществующие слова в вашем случае не добавляют новых векторов. Когда вы используете функцию "ассистента" и до-обучения модели, новые токены не создаются. Ваш текст разбивается на уже знакомые токенизатору токены.
2) вам не нужно 150 разных магических ингредиентов. Вам не нужно самим заботиться о том чтобы модель обращала внимание на последовательность – это дело алгоритма трансформера, в нем уже заложен учёт очередности.
3) вам не нужно самим разбивать последовательность на десятки – функция LLM есть предсказывание следующего токена на основе предыдущих – вы можете всю историю графика запихать целиком на до-обучение.
Я бы вам рекомендовал взять какой-нибудь хороший токенизатор и найти а нем 15 токенов-векторов максимально "далёких" друг от друга. Этих 15 токенов хватит чтобы закодировать ваши пять признаков*(выше, ниже, не изменилось). Учтите что пробел это тоже токен. Это можно использовать, например для разделения свечей пробелом, а пять фичей внутри одной свечи разделять дефисом.
Гос закупки айфонов в России? А для кого? Удивительно.
Не удивлюсь если мой М1 про 16" с 32гб оперативки прослужит мне лет 10 как новый.
Я для своей работы сделал на Kotlin очень клёвый DSL движок для старого доброго серверного рендеринга. Никаких свистелок, всё на Котлин, всё строго типизированное, включая параметры форм и ссылок. Переиспользование компонентов, нативный рефакторинг, компилируемый код – то что нужно для очень больших бэк-офисов, когда программистов мало, задач много, выделенного тестировщика порой нет. Выделил это всё в open source. Давно хотел написать пост на Хабре, может кому будет интересно и полезно (поскольку сам не нарадуюсь от того как это удобно)
Примерно такая же ситуация случилась у меня два дня назад: только там был большой конфиг nginx для настройки большого кеширующего прокси сервера для раздачи видео файлов. Оно работало, но не так как нам хотелось, и найти проблему никак не удавалось. Я одним сообщением отправил конфиг + описание проблемы с просьбой разобраться – и отправи в о1. Через пару секунд получил ответ, через пару минут раскатал на сервера. Сам бы я (надеюсь) нашел бы косяк, но сколько бы мне понадобилось времени на это – трудно сказать.
Вроде с камнями, не?
Промпт: подскажи простой рецепт приготовления свиных крылышек?
Уже пройден. О1 так же как и 4о легко и непринужденно предлагает шикарный рецепт приготовления свиных крылышек. Первый пункт в котором: 1) купите килограмм свиных крылышек
А то что у свиней нет крылышек – ну это мелочи
Первым дело ей нужно будет пройти тест на рецепт свиных крылышек
https://www.baeldung.com/java-nio-selector
Это интерфейс JVM который обеспечивает доступ к системному вызову epoll в ядро Линукс. Или kqueue в BSD системах. Или аналогичный ему в windows.
Это такой механизм который позволяет сказать ядру OS, что мы ожидаем появление данных (или возможность записи данных) сразу в нескольких file handlers (сетевые сокеты, файлы, whatever). Это позволяет работать в один поток с сотнями и даже тысячами соединений ввода/вывода.
Других альтернатив по-настоящему асинхронной работы с файлами или сетью просто нет.
Нарушение неравенств Белла доказывает абсолютно случайную природу квантовых процессов. Квантовые процессы недетерминированы, то есть их нельзя запрограммировать. А симуляция подразумевает что мы живём в мире который просчитан машиной – если даже это и так, то такая машина должна быть размером как минимум с то что мы называем Вселенной и быть настолько же случайной, как и те процессы которые нарушают неравенства Белла. Ну он есть мы получаем тоже самое что и без симуляции.
Следует всё равно помнить, что корутины по большей части это синтаксический сахар. Чудес не бывает и никакие корутины за вас по-настоящему асинхронный ввод/вывод в JVM не сделают – в лучшем случае удобно скроют синхронную работу в отдельном пуле потоков. Полноценной асинхронной работы IO без блокировок можно добиться только через Selectors.
Доказанное нарушение неравенств Белла по идее должно было завернуть все эти идеи о симуляциях, примерно так же как запуск космических спутников должен был завершить эру теорий о плоской Земле. Но нет, интернет и сегодня полон плоскоземельщиками и симу... пусть будет симулянтами
Лично мне кажется что гугловский (точнее deepmind) ИИ по решению математических задач по своему потенциалу развития значительно сильнее тех же LLM, у которых всё хорошо с предсказанием следующего токена, но с так называемым "reasoning" всё так себе.
Для примера можете вбить в чатжпт классическую задачу про лодочника, волка, козу и капусту. Но без указания что кто-то кого-то может съесть. Чатжпт по инерции выдаст ответ со сложной логистикой. Просто потому что по контексту вопроса такой ответ наиболее распространенный. И самое интересное, что этот косяк никак не побороть в рамках существующей архитектуры модели или добавлением тренировочных данных.
Так что я бы не стал говорить что Гугл остаёт. Возможно если они возьмут за основу именно математический ИИ, и уже поверх него натянут словоблудие – вот тогда это будет действительно следующее поколение ИИ
Довольно вредный совет, нужно быть очень осторожным, такая транзакция может не открыться в случае если метод помеченный такой аннотацией вызывается из другого метода этого же класса, то есть через this – такой вызов не проходит через Proxy который создаётся спрингом на старте приложения для бина этого класса, и соответственно транзакция не открывается.