ITипичные аспекты Артёма – Telegram
ITипичные аспекты Артёма
524 subscribers
16 photos
3 videos
1 file
12 links
Robotics->python backend->computer vision->RnD team->GenAI->Lead универсал

И вот мы здесь
Download Telegram
И ещё я сильно страдаю, что не могу уследить за развитием всех интересных мне технологий. Вот вы знали, что pymongo получил свою асинхронную версию? И по непроверенным данным даже делает класический motor. Я узнал мельком пару недель назад. Во было бы круто, если бы кто-нибудь отслеживал подобные классные штуки из чейнджлогов и релизов, складывал в удобном мне виде.
Быстрый гуглёж показал, что есть пара людей, которые делают подобное на основе гитхаба, но оно немного сыро и не универсально
И ещёёё чтоб выжимку из актуальных обсуждений/issues проекта скидывал с какой-то периодичностью

В идеале, чтоб я аки mr President за чашечкой утреннего кофе узнавал ситуацию о новостях технического мира из заботливо подготовленных отчётиков. Эдакая индивидуально формируемая новостная лента
Как же приятно забыть о пандасе, какой-либо очистке данных и просто в два запроса получать красивые html отчётики с уже родными вырвиглазными палитрами.
Вот она, истинная эффективность. Я бы морально самоубился в процессе обработки аж 72 записей средствами, требующими самостоятельного написания кода
👏3
Немного практических вечерних изысканий!

Сразу по мотивам предыдущих постов я отправился почекать, как в случае коллектора чейнджлогов оно может выглядеть на деле.

Тем более что идея с индивидуальными инфопотоками/новостными лентами является моей вынашиваемой идеей на миллион ещё года с 23го. Это буквально вопиющее безобразие, когда в бытность дикого переизбытка контента самое умное, что фильтрует мне информацию - это лента гугла перед сном и лента ютуба по не самым сложным критериям

Итак, у меня есть классическая задача с поиском данных известного домена но неизвестной формы. <Знаем что искать, но не уверены, в каком виде>. Несложными махинациями уровня "большинство опенсорса берётся с гитхаба у которого понятная структура" и некоторыми трейтами универсальности её можно свести к задаче парсинга, но давайте попытаемся прикрутить сюда LLM. Без LLM не так продвинуто будет.

В идеальном случае я хочу вкидывать название технологий (или покемонов, чтобы ИИ не расслаблялся), а мне в ответ откидывалась выкладка с инфой о текущей версии технологии, ссылками, откуда можно достать информацию об апдейтах. Ну и заводилась таска на регулярный чек новых версий
👍3🤯1
Если исходить из идеи сделать дёшево и сердито, то можно накопать такие вещи:

- У OpenAI web api появилось подозрительно недавно и доступно по не менее подозрительно конским ценам
- Perplexity был почти хорош, но ошибся с актуальной версией на нескольких тестовых запросах что породило некоторые вопросы, как и в каком виде он хавает контекст из web поиска. У меня взыграла мания контроля и желание сделать всё на своём.
- https://serper.dev/ в процессе отметил, что вот эта штука для парсинга может являться интересным решением, но не удовлетворился, что оно упрощает только один запрос из цепочки.
- https://www.firecrawl.dev/playground вот эта штука выглядит перспективнее нежели просто кормить LLM текстовым содержанием страницы или, не дай бог, DOM. И в принципе выводит на любопытный вопрос: Как передавать модельке веб контент, если немалая часть его информативности ориентирована на человека и зашита в визуальной разметке.
Скрины и тулзы для скролла? Скрины + разметка для всего контента? Размеченный DOM как здесь?

Как итог: Накидал MCPшку, дарующую модельке возможность гуглить и возможность чекать контент сайта. Определённо стоит поиграться с форматом возвращаемой информации.

П.с. Не уверен, что кого-то в наши дни впечатлит web search tool calling сниппет, но могу причесать-выкинуть куда-нибудь в паблик
👍6🔥5🤔1🤯1
Кто как, а я в отпуске ( • ⩊ • )

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

Рандомная мысля:
Как получилось, что я не фулстек - почему бэк со всеми его архитектурками, конкурентностью, блокировками и ресурсиками - это моё, а вот учить модельки или визуал пилить - не моё?

С силой, подаренной мне курсором, волей-неволей начал сталкиваться с фронтендовскими штуками. Это до абсурдности забавно, насколько по разному ощущается процесс работы. В серверном коде специфика многих проблем и примерные пути их решения уровня "туда копать" +-ясны с беглого взгляда. Причём не всегда понимаешь,откуда, вроде даже опыта подобного не было. Назовём это ощущение Особой Бэкендерской Интуицией.

Когда дело доходит до проблем кода "напротив", буквально управления какой-нибудь шторкой или отправки пакетов с данными - в голове возникает неприятная пустота, внутренняя лампочка интуиции гаснет, а в ИИшку начинает лететь серия вопросов уровня "Проанализируй и объясни. / Как оно так работает? / Предложи способ реализовать...". А без ИИ бы оно вообще превращалось в мозголомные эксперименты длиною в часы.

Ответом на изначальный вопрос будет, собственно, присутствие ОБИ в практике. Без неё кодинг из хобби, продуктивно совмещённого с работой, превращается в пинание чего-то мучительно неповоротливого. Возможно память играет со мной дурную шутку, но сейчас мне кажется, ОБИ было со мной околовсегда, как некоторое природное свойство. Хотя воспоминания о бессонных ночах за ДАКАКОНОДОЛЖНОРАБОТАТЬТО могут говорить об обратном. Вполне допускаю, что в процессе упорного пинания фронтенда можно обрести и ОФИ до кучи, но мотивации относительно школьно-студенческих времён уже поубавилось
🔥9
Чем занимаются приличные люди в отпуске? 

Я занимался примерно этими самыми нормальными делами, пока не наступил сентябрь. В сентябре случилось осознание, что неплохо бы размяться-вспомнить, как буквы в питончике складываются.
Тут как раз случилось случайное общение с Валерой , шо там ещё люди придумали из новомодного и современного (а именно, SGR). Я уже был на низком старте чтобы по традиции засрать всё и злорадно аргументировать, что +- такой концепт работы с ризонингом LLMок гуляет ещё со времён начала популярности Structured Output. Ну может без шага натягивания совы выбора тулзов на глобус SO схемы. В этом и новизна, собственно.

Наш культурный спор дошёл до кода и примеров сниппетов, и вот тут возник нешуточно интересный вопрос - как себя будут вести экстрамелкие LLMки в SGR-специфически построенном флоу? Результаты опытных запусков прототипчика оказались любопытными, а значит к коллайдеру!

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

Было бы хорошо - меня бы не позвали ⓒ

Не могу без удовлетворения смотреть на результаты своей работы. Получилось на мой вкус симпатично. Дальше слегка подразвить и прикрутить бенчмарки. Можно ощущать себя полноценным практикующим ресёрчером, ещё и в опенсорсе. Сплошная позитивная карма

https://github.com/vakovalskii/sgr-deep-research - сам репо
https://github.com/vakovalskii/sgr-deep-research/pull/10 - практический кейс перепиливания архитектуры, 1500+ 4500- в одном PR и меня за такое даже не послали!
🔥83👍2🥰1🤩1
По мотивам обсуждения в чятиках

В копилку идей для петпроектов, которые я, разумеется, не реализую:

Собрать бенчмарк исключительно из мемасиков уровня 80тикилограммовой курицы или перепутанных кроссовок и отслеживать, как модели с ними разбираются. И шахматы. В бенче обязательно должны быть шахматы. Можно замерять количество ходов до того как что-то пойдёт не так
upd: как я мог забыть про кружку с запаянным верхом!

И можно ещё метрику по генерации кринжовых шуток добавить, но я не уверен, как её проверять
😁6🤡4💩3
Weeell, сегодня я буду сравнивать кодинг с эксгибиционизмом😊

Вчерашний вечер (и позавчерашний тоже. И часть сегодня тож) я опять развлекался тем, что вкидывал в опенсорс очень своеобразные вещи. Посмотреть на них можно тут
https://github.com/vakovalskii/sgr-deep-research/pull/18

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

Потом мы дежурно схлестнулись с @vakovalskii на тему агентских флоу, в процессе я докопался ещё до пары людей из команды. И тут желания кому-то что-то доказать в интернете подприбавилось.

Так за два дня родилась эта бомба +1300-700
Оно мне неиллюзорно нравится: в процессе рефакторинга испытываешь специфически одухотворëнные чувства, когда из изначального хаоса формируешь более стройные концепции.
У меня ещё с курсором как-то не задалось на этом проекте - все происходило лампово вручную


Теперь к опенсорсному эксгибиционизму. Чек-лист:
- Приличные люди таким не занимаются
- Делаешь это публично
- Ожидаешь, что все посмотрят
- При этом боишься общественного осуждения
- Тебе есть что показать миру
- Показываешь всю свою потенцию весь потенциал
- Если увлекаешься, приходит полиция кода и объясняет, что ты извращенец
- Находятся люди, ревьювящие и обсуждающие показанное
- Формируется комьюнити таких как ты
👍6🌚3
Что ни день то понедельник, что ни горе - то беда


Штош, вроде благополучно сходил в отпуск (ещё в сентябре на самом деле), надо какую-то активность в канале возобновить.

За это невеликое время у нас ушёл СТО, прошёл аудит безопасности, собралась генеральная демо, была произведена уже 6ая по счёту попытка команды совладать с астериском.
И прочие приятно тонизирующие рабочие активности, ну вы знаете, чтоб совсем уж не расслабляться.

Что-то в мире происходило, что всенепременно надо осветить... Я б для себя выписал
- Не очень интересная презентация OpenAI
- Очень любопытный релиз πthon.

Самый насущный вопрос - кто-то уже тестил/читал статейки, как он по метрикам?
По моим последним гуглоданным ~15-20% медленнее в обычных задачах и ожидаемо удобнее в требующих параллелизма (но руками ещё не тестил). Уже предчувствую, как мы стоим на входе в дивный новый мир кокблоков и race conditions

Ну и главное событие, вызвавшее во мне жгучее желание написать что-то прям здесь и сейчас:
сегодня на редкость тёплый денёк https://downdetector.com/
Тёплый - потому что я прям чувствую глобальное потепление от повсеместно полыхающих девопсов, ибо таких глобальных проблем не помню, емнип, с момента как некто подорвал интернет-кабельную магистраль в районе Красного моря.
🔥4💯31🥰1🦄1
https://news.1rj.ru/str/neuraldeep/1675
> стабильный

кхе кхе


Обычно я стараюсь сильно не повторяться, но вот этим я не похвастаться просто не могу!
Фиг бы с ним с релизом, он обеспечил мне внушительное количество бодрых вечеров за кодом и холиварами на тему, почему надо развиваться/бенчмаркаться/описываться именно так, а не иначе. Это не главное.

Вы только посмотрите на эту прекрасную схему.
О, Мадонна! Как оно красиво, как оно хорошо, упорядоченно, как же мне нравится моё дизайнерское видение. Явно лучшее из всего сотворённого на этом проекте
💯7🔥4👍3
Экспериментальные посты!
Долго не мог придумать, как лучше показывать некоторые интересные практические части своей работы. Когда дело доходит до донесения идеи в коде, тебя начинают преследовать три страшных вещи - объём, сложность и NDA.

Вместе с тем, аж разрывает как хочу поделиться с миром результатами предыдущей недели своих изысканий

Попробуем так
https://github.com/virrius/tts_intonation_research

Чтоб вспомнить как работать с ноутбуками и преобразовать всё в удобоваримую статейку ушло 6 часов помимо самой, собственно, работы. Жууть
❤‍🔥5👍3🔥3
Решение из разряда "А почему я сразу так не сделал?!"

Последние две недели в свободное от срочной работы время поддерживаю и потихоньку рефакторю часть платформы интерактивного общения, а потому на этот раз делюсь способом сократить задержку до ответа на нелишних 0.2-0.4с.

Здесь случай, когда подумал на шажок дальше тривиального in-memory кэша, и за счёт persistent части можно при обнаружении проблемных частей генерации на лету их подменять более качественными прегенами просто дозагрузив их с ключом соответствующей фразы. Для сценариев с детерминированными ответами можно бесшовно полностью заиспользовать преген диктора к примеру

Любопытный технический элемент здесь, увлёкший меня на пару часов дак точно, как хранить озвучку?

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

П.с. И ещё чуть было не использовал питоновские футуры по назначению, но тоже передумал и остановился на коллбэке. Возможно это только мои загоны, но раньше практически не доводилось их использовать для выдачи результата работы асинхронного кода в явном виде.
🔥5👍1🤔1
На практике это выглядит примерно так.
Среди всего этого цветастого безобразия можно заметить исчезновение ярко зелёных TTS колбасок. Это задержки до выдачи первой фразы пользователю

Тут не совсем чистое сравнение ибо первый скрин с локального окружения и там накладные расходы сетевого долёта до серваков. Но в целом концепция, я думаю, понятна
2
После решения конфликтов в команде конфликты в гите кажутся такими понятными, милыми и приятными.

А вообще, если правильно помню, первая IT паника на рабочем месте была связана именно с ребейзом. Я тогда ещё более смутно представлял, как оно работает и просто пытался заменить ctrl+c ctrl+v всю цепочку коммитов на финальный вариант.
А оно постоянно пропадало и пыталось перезаписаться каким-то старым состоянием!
😁9