Что такое ансибл? Это: - нечёткая структура переменных - хочу здесь, хочу там - роли, но не роли (много подводных камней), может группа тасков? - группа тасков, но произвольный вызывать без кастылей нельзя - плейбуки, но толку мало, так что там? таски или роли внутри? смешивать нельзя - переменные как бы внутри сущности, но нет, глобальные - хочешь написать простую логику: вот тебе ямл, внутри jinja, а там фильтр - вот так переменную использовать нельзя, а вот так - попробуй - when: хм, там дальше строка или jinja? а, просто.. - замечательный перфоманс: 10 тривиальных задач на 2ms каждая, стартанём python процесс, импортнём вообще всё, до чего руки дотянутся, потратим кучу времени, выполним 2+2 и сдохнем. и так по кругу 1000 раз. Зато удобно, пока плейбук работает, можно на обед сходить. - непредсказуемый инвентори: какая там у него структура, куда что складывать? а если мне файлы надо передать, но они специфичны для энва - это инвентори или просто папка files? Держать внутри инвентори или рядом с плейбуками? а почему файлы не ищутся в инвентори, но в плейбуках и ролях.
и много много других приколов. Вот и получается, что якобы умная замена bash. но. ansible удобно где надо hello world, но там и bash справится и проще взять его,
а где не hello world и bash уже не вывозит... хм... ансибл тоже что-то не вывозит.
Нет, не ясно. В задаче нет слов "матрица", "оси", "параллелен". единственное что спасает и за что можно затецпиться "...сторону квадрата, заполненного морковками полностью".
конечно, на живом интервью это всё проговаривается и уточняется - это норм. на каких олимпиадах - такие вещи выверяются и условия задаются более точно.
вот кстати, ровно наоборот. как раз хотел сказать в комментах. Если в задаче явно не сказанно какое-то ограничение, то его нет. кролику не запрещено идти по диагонали. т.е. по умолчанию это надо учитывать. 45 градусов... интересно, могут ли быть другие углы.
если мы поварачиваем даже на 45 - то у нас есть как бы дырка - половина пустой клетки-грядки. считается ли, что квадрат полностью заполнен грядками с морковкой.. может да, может нет. может, нужен такой квадрат, что в нём нет ни одной целой грядки без морковки. а части могут быть. тогда возможны и другие углы.
Когда уже есть опыт и понимание - то да, помогает. Я бы сказал, что ИИ это такой быстрый интерфейс мозг-компьютер. Да, он требует сначала письменного рассужденияя, потом быстро генерирует код, которы понимается сразу на скорости чтения. И его достаточно безопасно с или без изменений можно влить. Понимаешь, что делаеть - да, отличный и быстрый результат.
Но вот беда, если не понимаешь, или понимаешь не до конца. Всякое может быть. Например, "реши уравнение 4х = 8". Овет: "-2 * i^2". хм.. странно что ответ какой-то сложнее, чем я ожидал, но математика была так давно... не помню, но вроде бы похоже... что-то такое проходили.. ну ка, wolfram alpha, надо проверить. О и правда 8. "git push origin solution".
Ну, видимо, я глубоко копаю. Первый вопрос, да, я знаю что весь тулинг с описанием собирается и подставляется в промпт. Кстати, системный он или не системный вообще без разницы. Современный messages array формат через тот же jinja template (transformers как минимум) генерит просто текст. Т.е. input - длиннющий текст. array of chars. который потом токенезируется в array of tokens. Если тулов много, интересно как собрать релевантный набор, чтоб оно влезло в контекст, т.к. как правило он огромный и забит бесполезной ерундой "ты опытный программист, а твоя мама больна раком и если ты не сделаешь эту таску не заработаешь денег и вообще капец" (почему это бесполезно - заслуживает отдельной статьи для объяснения. ведь кажется, что работает).
Ну и по второму " работаю с моделью в таком режиме, что она точно знает, что ожидаемый формат вывода - это json": так вот наш "array of tokens", он же prompt, попадает в условный метод model.encode(prompt_tokens). Результатом являются просто новые токены, которые, как кажется модели, наиболее подходящие здесь.
Далее токены -> текст и мы его видим. Модель не знает, не понимает что там пользователь хотел. никаких json-ов, yaml-ов или чего там нет. всё что можно гарантировать, что там будет string.
Что-то не до конца раскрыт момент про пример "Какой был рост ВВП Японии в 2024 году?"
А именно, как на основании этого промпта LLM-ка вообще понимает, что надо дёрнуть web_search, а не internet_search, или там open-file "c:\gdp.ja.txt".
Далее работа с ответами. LLM в ответе (model.encode) должна написать что-то, что можно распарсить в вызов тула с параметрами. А на сколько я разбирался (нужно обновить данные), невозможно вообще никак, совсем никак, архитектурно фундаментально невозможно гарантировать, чтоб модель, напримре сгенерировала json с foo равным 1. Да, можно сейчас побежать в chatgpt и попросить и она даже сгенерит. Но это всё - особые усилия и тренировки датасета, чтобы вероятность этого ответа стремилась к 1. Но она никогда не равна. Т.е. в ответе может быть и невалидный json, скобка лишния или лишний текст, или не так названо поле, или текст после ответа и т.п. Любые попытки это причесать - это враппер вокруг LLM на низком уровне. Изменилось ли тут что-нибудь?
как-то неаккуратненько: yq: Error running jq: ScannerError: while scanning for the next token found character that cannot start any token in "<stdin>", line 15, column 1.
Да, самый топ на сегодняшний день - это или оригинальные силиконовые свитчи, или FSR, у которых очень хорошо настраивается чувствительность и можно играть 18+ ног сложности.
Я когда-то тоже так делал: 2 пластины из стеклотекстолита (залудил). нижняя длинная и 2 отверстия под крпеление. верхняя короче.. между ними на концах деэлектрик. вот такой бутерброд. Далее датчик в термоусадку и получается вполне годно. неубиваемо, работает 10+ лет. Хотя не идеально. наверное ног до 13-14 можно играть.
Почему-то вспомнился анекдот. В нашем сельхозе мы изобрели новый комбайн ГрибочекГПТ4000. Теперь комбайнёру осталось найти гриб и .. чик - остальное дело техники.
Обнови страницу... не знаю где. treesitter завезли, emacs на него переходит. да и вообще много чего произошло. макрос use-package теперь влит в emacs, некоторые альтерантивные подходы по управлению пакетами интегрированны через use-package и работают на уровне package/package-vc. LSP тоже озаботились.
Там ещё конечно есть куда расти с инициализацией emacs и best practices/guide lines для emacs. но в целом жить очень даже можно.
Есть люди, которые сидели на vim, перешли на emacs + evil mode, но в последствии поняли, что это излишне и отказались от evil. но, тут каждому своё.
История заходит на второй круг. Был же mesos - который прям оркестратор, вот тебе ресурсы, абстракция и менеджмент, пиши всё что надо... Да, у него свои проблемы были, одна сборка чего стоила. Появился кубик и все туда побежали..
На фоне этого, тот Hashicorp Nomad появился, который архитектурно, намного более грамотно построен и всё там было перспективно... но опоздал на рынок, а потом уже просто перестал успевать.
Потом ещё что-нибудь сделают - аля кубик, но без лишнего, и это будет 3ий круг.
Конечно, "вынести из драйверов и system space часть кода в user spacе и отдать на откуп другим" поможет ситуации. Но это и есть - давайте напишем nomad/mesos
единственное, когда нужно было "подтолкнуть", это когда не live cd, а я ставил минимальную базовую систему. там вообще ничего не было. dhclient - и всё работает. Если live cd с GUI, то там как минимум network manager. может быть проблема с livecd? наверное может. может ли это быть проблема в сети или чём-то другом - не исключено.
Смешались кони и люди. OpenSource - открытые исходники. Вообще-то всё. А всё остальное - это лицензии (хитрые и не очень), процессы, список мейнтенеров и тп. Форкаешь проект, вставляешь мейнтейнерами кого хочешь и смотришь как за тобой тянутся люди... или не тянутся.
Реальный случай: И вот такой синьор на тренинге, фактически в роли архитектора, рассказывает как круто можно на s3+lambda построить сайты, кликает кнопочки, rds-ки показывает как поднимать. У него спрашивают: "А почему Route53 так называется?". Ответ: "ну не знаю, да, странное название". Вывод: обезьянка научилась давить на кнопки в определённом порядке. Не то, чтобы это очень плохо, но жизненно-важные программы я бы ему не доверил..
Что-то меня смутил пример, где мы нарошно придумываем плохое название функции, а потом говорим, что язык плохой.
В C++ / python / whatever я тоже могу определить функцию delete_triangle(side_height, side_width), которая будет рисовать прямоугольник с шириной side_height и высотой side_width.
Что такое ансибл? Это:
- нечёткая структура переменных - хочу здесь, хочу там
- роли, но не роли (много подводных камней), может группа тасков?
- группа тасков, но произвольный вызывать без кастылей нельзя
- плейбуки, но толку мало, так что там? таски или роли внутри? смешивать нельзя
- переменные как бы внутри сущности, но нет, глобальные
- хочешь написать простую логику: вот тебе ямл, внутри jinja, а там фильтр
- вот так переменную использовать нельзя, а вот так - попробуй
- when: хм, там дальше строка или jinja? а, просто..
- замечательный перфоманс: 10 тривиальных задач на 2ms каждая, стартанём python процесс, импортнём вообще всё, до чего руки дотянутся, потратим кучу времени, выполним 2+2 и сдохнем. и так по кругу 1000 раз. Зато удобно, пока плейбук работает, можно на обед сходить.
- непредсказуемый инвентори: какая там у него структура, куда что складывать? а если мне файлы надо передать, но они специфичны для энва - это инвентори или просто папка files? Держать внутри инвентори или рядом с плейбуками? а почему файлы не ищутся в инвентори, но в плейбуках и ролях.
и много много других приколов. Вот и получается, что якобы умная замена bash. но.
ansible удобно где надо hello world, но там и bash справится и проще взять его,
а где не hello world и bash уже не вывозит... хм... ансибл тоже что-то не вывозит.
Нет, не ясно. В задаче нет слов "матрица", "оси", "параллелен".
единственное что спасает и за что можно затецпиться "...сторону квадрата, заполненного морковками полностью".
конечно, на живом интервью это всё проговаривается и уточняется - это норм.
на каких олимпиадах - такие вещи выверяются и условия задаются более точно.
вот кстати, ровно наоборот. как раз хотел сказать в комментах. Если в задаче явно не сказанно какое-то ограничение, то его нет. кролику не запрещено идти по диагонали. т.е. по умолчанию это надо учитывать. 45 градусов... интересно, могут ли быть другие углы.
если мы поварачиваем даже на 45 - то у нас есть как бы дырка - половина пустой клетки-грядки. считается ли, что квадрат полностью заполнен грядками с морковкой.. может да, может нет. может, нужен такой квадрат, что в нём нет ни одной целой грядки без морковки. а части могут быть. тогда возможны и другие углы.
Когда уже есть опыт и понимание - то да, помогает. Я бы сказал, что ИИ это такой быстрый интерфейс мозг-компьютер. Да, он требует сначала письменного рассужденияя, потом быстро генерирует код, которы понимается сразу на скорости чтения. И его достаточно безопасно с или без изменений можно влить. Понимаешь, что делаеть - да, отличный и быстрый результат.
Но вот беда, если не понимаешь, или понимаешь не до конца. Всякое может быть.
Например, "реши уравнение 4х = 8". Овет: "-2 * i^2".
хм.. странно что ответ какой-то сложнее, чем я ожидал, но математика была так давно... не помню, но вроде бы похоже... что-то такое проходили.. ну ка, wolfram alpha, надо проверить. О и правда 8. "git push origin solution".
Ну, видимо, я глубоко копаю. Первый вопрос, да, я знаю что весь тулинг с описанием собирается и подставляется в промпт. Кстати, системный он или не системный вообще без разницы. Современный messages array формат через тот же jinja template (transformers как минимум) генерит просто текст. Т.е. input - длиннющий текст. array of chars. который потом токенезируется в array of tokens.
Если тулов много, интересно как собрать релевантный набор, чтоб оно влезло в контекст, т.к. как правило он огромный и забит бесполезной ерундой "ты опытный программист, а твоя мама больна раком и если ты не сделаешь эту таску не заработаешь денег и вообще капец" (почему это бесполезно - заслуживает отдельной статьи для объяснения. ведь кажется, что работает).
Ну и по второму " работаю с моделью в таком режиме, что она точно знает, что ожидаемый формат вывода - это json": так вот наш "array of tokens", он же prompt, попадает в условный метод model.encode(prompt_tokens). Результатом являются просто новые токены, которые, как кажется модели, наиболее подходящие здесь.
Далее токены -> текст и мы его видим. Модель не знает, не понимает что там пользователь хотел. никаких json-ов, yaml-ов или чего там нет. всё что можно гарантировать, что там будет string.
Что-то не до конца раскрыт момент про пример "Какой был рост ВВП Японии в 2024 году?"
А именно, как на основании этого промпта LLM-ка вообще понимает, что надо дёрнуть web_search, а не internet_search, или там open-file "c:\gdp.ja.txt".
Далее работа с ответами. LLM в ответе (model.encode) должна написать что-то, что можно распарсить в вызов тула с параметрами. А на сколько я разбирался (нужно обновить данные), невозможно вообще никак, совсем никак, архитектурно фундаментально невозможно гарантировать, чтоб модель, напримре сгенерировала json с foo равным 1.
Да, можно сейчас побежать в chatgpt и попросить и она даже сгенерит. Но это всё - особые усилия и тренировки датасета, чтобы вероятность этого ответа стремилась к 1. Но она никогда не равна. Т.е. в ответе может быть и невалидный json, скобка лишния или лишний текст, или не так названо поле, или текст после ответа и т.п. Любые попытки это причесать - это враппер вокруг LLM на низком уровне. Изменилось ли тут что-нибудь?
как-то неаккуратненько:
yq: Error running jq: ScannerError: while scanning for the next token found character that cannot start any token in "<stdin>", line 15, column 1.
Да, самый топ на сегодняшний день - это или оригинальные силиконовые свитчи, или FSR, у которых очень хорошо настраивается чувствительность и можно играть 18+ ног сложности.
Я когда-то тоже так делал: 2 пластины из стеклотекстолита (залудил). нижняя длинная и 2 отверстия под крпеление. верхняя короче.. между ними на концах деэлектрик. вот такой бутерброд. Далее датчик в термоусадку и получается вполне годно. неубиваемо, работает 10+ лет. Хотя не идеально. наверное ног до 13-14 можно играть.
ЮнитТест: чистить_картошку возвращает ... почищенную картошку.
- Человек, почисти картошку!
// берёт ножек и чистит
- ЛЛМ, почисти картошку!
// берёт ваши трусы и чистит
Тест зелёный, впрод.
Почему-то вспомнился анекдот. В нашем сельхозе мы изобрели новый комбайн ГрибочекГПТ4000. Теперь комбайнёру осталось найти гриб и .. чик - остальное дело техники.
Обнови страницу... не знаю где. treesitter завезли, emacs на него переходит. да и вообще много чего произошло. макрос use-package теперь влит в emacs, некоторые альтерантивные подходы по управлению пакетами интегрированны через use-package и работают на уровне package/package-vc. LSP тоже озаботились.
Там ещё конечно есть куда расти с инициализацией emacs и best practices/guide lines для emacs. но в целом жить очень даже можно.
Есть люди, которые сидели на vim, перешли на emacs + evil mode, но в последствии поняли, что это излишне и отказались от evil. но, тут каждому своё.
Или с aptly (https://www.aptly.info/). Но это самостоятельный тул, я не знаю, используют ли его в core в самом Debian-е или нет..
История заходит на второй круг. Был же mesos - который прям оркестратор, вот тебе ресурсы, абстракция и менеджмент, пиши всё что надо... Да, у него свои проблемы были, одна сборка чего стоила. Появился кубик и все туда побежали..
На фоне этого, тот Hashicorp Nomad появился, который архитектурно, намного более грамотно построен и всё там было перспективно... но опоздал на рынок, а потом уже просто перестал успевать.
Потом ещё что-нибудь сделают - аля кубик, но без лишнего, и это будет 3ий круг.
Конечно, "вынести из драйверов и system space часть кода в user spacе и отдать на откуп другим" поможет ситуации. Но это и есть - давайте напишем nomad/mesos
единственное, когда нужно было "подтолкнуть", это когда не live cd, а я ставил минимальную базовую систему. там вообще ничего не было. dhclient - и всё работает. Если live cd с GUI, то там как минимум network manager. может быть проблема с livecd? наверное может. может ли это быть проблема в сети или чём-то другом - не исключено.
Кони и люди были. Смешалось тёплое и мягкое. Причём тут размер? Форкать всем миром, это чтобы было 7млдр+ копий?
Смешались кони и люди. OpenSource - открытые исходники. Вообще-то всё. А всё остальное - это лицензии (хитрые и не очень), процессы, список мейнтенеров и тп. Форкаешь проект, вставляешь мейнтейнерами кого хочешь и смотришь как за тобой тянутся люди... или не тянутся.
Так DebianLiveCD не может? Или OpenMediaVault не может?
Кстати, недопонимание чем это лисп такой уж крутой возникает часто. Спросил чат гпт, чтоб он на пальцах показал примеры: https://chatgpt.com/c/6717ca20-8ed0-8013-8360-230627ce2073
на сколько ответ хорош или плох - не знаю, но познавательно
Реальный случай: И вот такой синьор на тренинге, фактически в роли архитектора, рассказывает как круто можно на s3+lambda построить сайты, кликает кнопочки, rds-ки показывает как поднимать. У него спрашивают: "А почему Route53 так называется?". Ответ: "ну не знаю, да, странное название".
Вывод: обезьянка научилась давить на кнопки в определённом порядке. Не то, чтобы это очень плохо, но жизненно-важные программы я бы ему не доверил..
Что-то меня смутил пример, где мы нарошно придумываем плохое название функции, а потом говорим, что язык плохой.
В C++ / python / whatever я тоже могу определить функцию delete_triangle(side_height, side_width), которая будет рисовать прямоугольник с шириной side_height и высотой side_width.