Senior Software Vlogger
23.2K subscribers
513 photos
29 videos
2 files
1.02K links
Программирование и IT

Все ссылки и реклама https://xn--r1a.website/seniorsoftwarevlogger/3

Для РКН: 5035224480
Download Telegram
Forwarded from Team Lead Talks Подкаст (Дима Рожков)
Корпо стресс культуры

Один знакомый менеджер недоумевает: зачем некоторые фанги устраивают своим инженерам ненужные стресс? Зачем нанимать топ 1% и потом устраивать потогонку? Ведь есть другие фанги где этого не делают.

Я думаю, что у этого есть как естественные причины, ну просто так исторически сложилась культура. Такой был изначальный костяк.

Но так же как это может являться и отстройкой от рынка.

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

Так же и здесь. Да, нормального человека опыт такой работы выжгет до тла, но человеку с другой психикой будет по кайфу. Они будут плавать в этой культуре как рыба в воде. Причем они точно так же могут страдать на показ как все плохо, но работать в компании без стресса они не смогут. Там им будет очень скучно. Мало динамики. Много планов. Все планы реалистичные. Менеджер даже сука не орёт.

В итоге получается, что такие люди будут задерживаться в потогонках. Им больше некуда пойти. Уходить будут "неподходящие". Либо "бумеранги" которые уходят в другую потогонку, а потом возвращаются за фиксой.

Поэтому я всегда говорю: вы должны на 100% отдавать себе отчёт куда вы идете. Притвориться не получится. Чревато выгоранием до костей.
152🤣15💯8🫡6🔥2👍1
Прекрасно понимаю этих людей. Компенсация +5%, ответственность х2, поддержка 0.

Особенно когда тебе _предлагают_, а не ты сам рвешься и _просишь_

В кипяток прыгать люди должны по собственному желанию. Предлагать прыгать глупо.

Особенно с пороговой должности. Например если ты сеньор разраб, то уход в менеджмент или в staff роль - не только лотерея, но и лок на компанию годка на два.

Иначе сохранить роль при смене работы скорее всего не получится, а предыдущую квалификацию подрастеряешь.
👍115💯7310🤝3
Похоже наши работы программистами засекурены.

КлозетИИ планирует запустить соц сеточку для ИИ сгенерированных видео, а вовсе не AGI 🤡

https://www.wired.com/story/openai-launches-sora-2-tiktok-like-app/
Please open Telegram to view this post
VIEW IN TELEGRAM
😁33🤯75🔥1💯1
Локальные LLM: Введение. Что происходит, когда вы запускаете LLM?

Нашел офигел от плотности информации перевел и адаптировал для вас. Ссылка на источник в конце.

Работа модели по другому называется inference (вывод) или использование весов модели. Вывод — по сути предсказание следующего токена на основе вашего ввода и всех токенов сгенерированных на предыдущих шагах. Все это образует последовательность.

Токены — это не слова. Токены это кусочки обозначающие текст, который видит модель. В модели они представлены целыми числами или ID токенов. Токенизация — разбиение текста на токены. Распространенные алгоритмы: BPE (byte pair encoding), SentencePiece. Конкретные токены отличаются в разных моделях. Вот иллюстративный пример: “hello” \- может быть 1-3 токена, “internationalization” 5-8 токенов.

Контекстное окно \- максимальное количество токенов, которые может увидеть модель за раз. Чем больше context тем больше VRAM для KV кеша потребуется и тем медленнее будет декодировка.

В процессе вывода модель предсказывает следующий токен перемножая свои веса. Веса модели \- это миллиарды выученных параметров. Параметры модели \- миллиарды чисел или весов, которые модель усваивает в процессе обучения. Эти веса кодируют все что модель знает: шаблоны, язык, факты, “мышление”. Когда вы используете модель, она использует эти параметры, чтобы предугадать следующий наиболее вероятный токен. Один токен за раз. Шаг за шагом.

Т.е. модель не дает ответ, а выдает наиболее вероятные кусочки текста составляя их в цепочки пока не решит, что выдача завершена сгенерировав спец стоп токен <|endoftext|>

Получается цикл: модель получает ввод, выбирает следующий токен, добавляет его к выдаче и передает всю новую выдачу обратно себе на вход.

Но модель это чуть больше чем просто файл с весами:
* Архитектура нейросети: трансформер (слои, головы внимания heads, RoPE, MQA/GQA об этом ниже)
* Веса: миллиарды изученных чисел. Параметров, не токенов, но вычисленных из токенов
* Токенизатор: для кодирования текста в токены. BPE/SentencePiece
* Конфиг: метаданные, спец токены, лицензия и тд
* Иногда шаблоны чатов необходимые для chat/instruct моделей. Иначе эти модели выдают мусор

Модели отличаются по количеству параметров

* 7B означает 7 миллиардов чисел
* Чем модель больше тем она мощнее, но тем больше VRAM и вычислений требуется для ее работы
* Модели вычисляют вероятность следующего токена (гоняя softmax по своему словарю vocab) тут у модели будет несколько токенов на выбор
* Далее она выбирает один или с наиболее высокой вероятностью (greedy) или начинает креативить в зависимости от temperature, top-p и других настроек.
* Потом она добавляет этот один токен к тому что у нее уже есть и повторяет заново как я и описал выше.
* Все токены из текущей сессии находятся в KV кеше

Как модель выбирает токен (sampling):

* greedy \- выбирает самый вероятный как робот
* temperature: немного расслабляет вероятности и позволяет модели креативить
* top-k: выбирает из top k
* top-p: выбирает из самой маленькой группы с вероятностями ≥p
* Чтобы получить детерминированную выдачу \- устанавливаем seed и отключаем sampling

Больше там никакой магии нет.

Большинство современных моделей основаны на архитектуре Transformer. Они специально задизайнены для последовательных данных таких как наш язык. Трансформеры могут смотреть назад на предыдущие токены чтобы решить какие из них наиболее важны для следующего предсказания. Трансформер прогоняют вывод через множество слоев уточняя вывод, используют специальные механизмы “внимания” чтобы сфокусировать предсказание на важных частях ввода и контекста. Каждый новый токен проходит через весь этот пирог.
55917🔥8👍7🤯2🤓2🆒2
Каждый слой состоит из:
* Self-attention или внимание: определяет какие из токенов важны для текущего предсказания
* MLPs (multi layer perceptrons): чтобы добавить нелинейность и перчинку
* Стабилизация residual \+ norms чтобы это не развалилось и работало с глубокими сетями
* Позиционное кодирование (RoPE) чтобы модель знала где токен находится в последовательности и не путала кота и котастрофу 🙂

Накладывая десятки и сотни таких слоев трансформер пытается “понять” ваш запрос, контекст и историю разговора. Чем больше слоев в голов внимания у модели тем умнее модель.

Чтобы работать с моделью ее надо вгрузить в VRAM. Количество должно позволить вгрузить 1\. Веса 2\. KV кеш. Примерные формулы: FP16 \- 2 байта на параметр (7B \- 14Gb), 4 бита \- уже 3.5Gb. Учитывайте еще 10-30% на оверхед. KV кеш стоит около 0.5 мег на токен и зависит от модели. Т.е. 4к токенов \- это еще 2 гига памяти. Некоторые рантаймы позволяют квантизировать и кеш в том числе позволяя экономить большое количество памяти.

Получается, что недостаточно просто впихнуть модель в память, надо чтобы она еще где\-то работала.

И чтобы она работала быстро пригодится Memory bandwidth \+ GPU FLOPs. Именно поэтому некоторые старые видюхи у которых шина пошире будут работать быстрее чем новые модели с более узкой шиной. Так NVIDIA RTX 2080 Ti (2018, 352-битная шина) имеет \~616 ГБ/с bandwidth и часто обходит RTX 4060/4070 (2023, 128/192-битные шины, \~288–504 ГБ/с) в LLM-задачах, несмотря на меньшее количество CUDA-ядер.

Вычисления можно переложить на CPU, но это существенно ощутимо болезненно медленнее.

Квантизация модели дает колоссальную экономию памяти зачастую при незначительной потере качества. 4-бит (NF4/GPTQ/AWQ) квантизация может быть оптимальной для потребительских GPU. Но нужно учитывать, что сложные мат задачи деградируют первыми: математика, логика и кодинг.

Рантаймы, где гонять
* pytorch \+ safetensors: гибко, стандартизовано, GPU/TPU/CPU
* GGUF (llama.cpp): CPU/GPU/portable лучший выбор для квантизации и для устройств “на крае”
* ONNX, TensorRT-LLM, MLC: для спец оборудования
* Избегайте bin по причинам безопасности

Компромиссы повсюду. Балансируйте компромиссы под свою задачу и бюджет.

Как раздавать
* vLLM для параллельных запросов
* llama.cpp server с OpenAI совместимым API
* EXLlama v2/v2 Tabby API с OpenAI совместимым API
* Просто как локальный скрипт через CLI

Локальная модель не значит Offline, а значит что работает на твоем железе. Твое железо может быть под столом, а может быть и в облаке.

Коротко о Fine Tuning
* Большинство задач можно решить через правильный промт \+ RAG
* Для файнтюнина необходимо раздобыть данные
* Делаем adapter layers на LoRA/ QLoRA на своем домашнем железе если сильно хочется

Наиболее частые проблемы
* OOM кончилась память. Квантизуем модель или сокращаем контекст
* Плохая выдача. Проверь chat template, temperature
* Медленно работает? Неправильные драйверы, нет FlashAttention, проверь свое железо CUDA/ROCm/Metal, влазит ли оно в память
* Небезопасно? Не используй bin модели от рандомов из интернета

Зачем все это?
Запуская модель на своем железе вы получаете все управление в свои руки: механизм выбора токена sampling, chat templates, декодирование, системные промпты, квантизацию, контекст. Больше не платите за каждый токен. Только за железо и электричество. Приватность. Отсутствие Network latency.

Источник: https://x.com/TheAhmadOsman/status/1974730678513041490
367🔥18👍156👌4
Представьте, что у вас есть готовое приложение, в нем есть поиск. Сколько времени у вас займет добавить вот такую фичу с условием, что ее еще нет:

Add keyboard navigation through search results. When searching and search results show up and I press down arrow button, the first search result should become selected, pressing up and down - navigate through results, pressing enter when a result is selected should open this document
Читая чаты про AI-кодинг, кажется, что существует два абсолютно разных мира:

В одном мире чуваки обмазываются с ног до головы всякими mcp/supercode/memory bank/субагентами/sdd и т.д., пишут кастом-моды, каталоги правил, используют не просто агентов, а целые агентские ансамбли

В другом - особо никто даже просто агентов не юзает, в лучшем случае - чистый Cursor/JetBrains(с AI), а в худшем случае вообще генерят код в ChatGPT/DeepSeek-чате.

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

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

Спикеры - CTO, Head of AI, фаундеры. Все умеют давать концентрированную пользу – их каналы читают тысячи разработчиков.

14 октября. 14:00-19:30 онлайн

[Подробности тут]

Участие бесплатное при условии подписки на организаторов (платные опции в наличии).

Перешлите коллегам

#реклама, ИП Федоров Егор Павлович, ИНН: 532008901966
🤣70👍128🌚5🔥4
Звонки и мессенджеры блокируют, мошенники звонят родителям, как уберечь свою семью и при этом поддерживать связь? В этом выпуске установим и настроим чат со звонками на своем сервере.

https://youtu.be/2ckh6qmp6oY
1248🔥29👍7
Мне кажется идея, что все будут вайбкодить себе приложения вместо того чтобы покупать готовые очень странной.

Внезапно оказалось, что

>>> Описывать приложение на английском это тоже работа и ее точно так же не хочется делать <<<

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

Это конечно повышает доступность. Теперь любой усидчивый человек может что-то сделать.

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

Т.е. это бизнес модель спортзала. Заманить человека. Продать подписку. Потом получать каждый месяц 5 баксов за то чем человек не пользуется, но отменить либо жалко, либо забыл.

Конкретно эта часть AI бума кажется наименее жизнеспособной.
1👍76💯22👌31👀1
Для интереса чекнул производительность своей престарелой игровой карты, а она рвет не только мой мак, но и не уступает m4max!

Конечно, энергопотребление значительно ниже + возможность нарастить память. На маке у меня 32 гига общей памяти, но без натуги свободно только 10.

Буквально те же 10, которые есть на RTX 3080.

Теперь думаю может ПК просто как ллм тачку использовать через АПИ.
😁54👍157🔥3🤓3👌1
Вот так думаешь, что ИИшники в безопасности, а потом мета режет 600 ИИшников.
🤯62🔥20😁143👀1
На данном этапе как будто не имеет смысла настраивать кодинг агента под себя. Т.к. тут же выходит новый агент который справляется с теми же задачами лучше чем то как ты настроил старого.

Мощность модели как будто вообще потеряла смысл.

Ещё любопытнее тот факт что агенты от других производителей работают лучше чем агент от производителя самой модели. Например Claude Code далеко не самый лучший агент который работает с моделями от антропик. Kiro на голову выше.

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

Ещё один побочный эффект который я заметил за собой это то что я не возвращаюсь к старым агентам. Например я очень давно не смотрел на курсор точно также я попробовал один раз qoder, но больше не вернулся к нему.

Теоретически если Kiro будет настолько лучше я просто отменю подписку на Claude и никогда больше к нему не вернусь.

В этом плане, пока рынок не устоялся, я думаю имеет смысл поддерживать какое-то количество бесплатных токенов. Таким образом я бы мог возвращаться к старым моделям бесплатно чтобы проверять стоит ли за них начать снова платить.
44👍24🤓8
Рынку снова нужны айтишники! Плохие новости: далеко не все. “Рыночек порешает!”, - говорили они про низкие зарплаты в 2021. Рыночек порешал, но не в нашу пользу. Теперь не редкость когда резюме хорошего спеца просто отправляется в урну, потому что оно плохо упаковано.

Я сам это не люблю и могу быть тысячу раз несогласен, но сегодня это реальность.

Вот пишете вы в резюме, что делали сервисы, пилили фронтенды, а к чему это привело? Как это помогло компании?

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

Поэтому я охотно согласился рассказать вам про Карьерный Цех. За Лесей и Глебом я давно одним глазком слежу и подкаст их слушаю. И вот они профи карьерных консультаций на рынке.

Чем они могут помочь:
– определяют вашу карьерную стратегию с HR, помогают состыковать навыки с рынком, сверку по зп, задачам и тд;
– учат делать классное резюме, чтобы быть понятным кандидатом для HR и нанимающих, а еще учат писать сопроводительные и подсказывают, где искать работу;
– реальная практика собеседований с HR и хардами + честная обратная связь о моментах, которые проседают;
– работают с софтами, организуют встречи с психологом, личные встречи с экспертами под запрос;
– поддерживающее комьюнити и жесткий нетворк. КЦшники повсюду, их отрывают с руками. Для работодателей КЦшники – показатель качества.

Короче помогают строить стратегическую карьеру. Это когда даже через 10-20 лет можно получить профит от действий, которые делаете сейчас. А тактическая выгода, когда получаешь полгода 300+, а потом не берут даже на 100к.

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

Я даже выторговал для вас скидку в 10% по коду SSV10, но действовать она будет только неделю поэтому поторопитесь!

#реклама, ИП Федоров Егор Павлович, ИНН: 532008901966
🤣106🌚31😁1510🤯6😱4👾2😢1🆒1
Экономим токены! Нашел в иксе: Toon или token oriented object notation.

Это новый формат записи объектов с целью сократить количество токенов, которыми ллм все кодирует. По тестам автора экономия достигает 40-60%! В то время как качество не падает, а на некоторых сетях даже растет.

Это важно не только для экономии денег, но и ресурсов. Когда у вас есть лимит на количество токенов в контексте или для выдачи - в таком формате вы упакуете больше информации.

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

https://github.com/johannschopplich/toon/tree/main/benchmarks
👍48🔥244🤣1
Я же наиисал приложение под мак. Для чего пришлось познакомиться со SwiftUI, который оказался довольно приятной штукой!

Прямо из коробки у тебя куча примитивов и гибкая система для разметки экранов. Отдельно понравились реактивные примитивы работы с данными. @State - для состояния вьюхи, @Binding для двунаправленой связи и @Observable для связи родительских вьюх и детей.

Да, некоторые моменты как будто прибиты гвоздями. Например, надо было сделать выпадашку для поиска в заголовке окна, и вот не получилось сделать чтобы эта выпадашка могла перехватывать мышку. Скорее всего я не так понял, но выглядело как ограничения тулбара. Решил я использовав popover, который не такой кастомный зато работает.

Отдельно интересно выглядит свифт со своими акторами для многопоточности и кейс классами.

По началу я не смотрел в код пока не надо было работать с дебаггером чтобы отловить рейсы. Если бы клод умел работать с дебаггером, то наверное и этого бы делать не пришлось.

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

Сейчас в приложении 35539 строк свифта и 2 вкомпиленные сишные либы. Приложение готово. Я теперь воюю с апп стором и его ограничениями.

* наиисал - это не опечатка
2👀46👍33🔥12👌76😁2👏1
Я верю, что большинство задач ИИ будет решать локально.

Маленькие модели становятся только мощнее из-за чего требования к локальному железу снижаются, с другой на рабочий стол завозят мини-датацентры в корпусе ATX.

Посмотрите на этого монстра!

- NVIDIA GB300 Grace Blackwell Ultra Desktop Superchip
- 496GB LPDDR5X CPU memory, 288GB HBM3e GPU memory
- Supports up to 1 trillion parameter models
- 20 Petaflops (20,000 TFLOPS) of FP4 computing power
- NVIDIA DGXTM OS on Linux & NVIDIA AI Enterprise software stack
👍60🤩22🤯43
Если бы вы могли свичнуться на тот же уровень, но на другой трек, что бы вы выбрали:
Anonymous Poll
5%
Фронтенд
30%
Бекенд
14%
Мобилки
51%
ML
😁23
Сперва я волевым усилием прекращаю писать фичи и фокусируюсь на публикации приложения в апп сторе.

Потом я возвращаюсь к полировке приложения в качестве детокса от бюрократии апп стора.

На каждом этапе новые формы. За каждой формой киллограм документации.

Но свет в конце тоннеля уже виден. In-app purchase протестировано. Закончить надо до выхода на новую работу.
🔥65🤯84
Любопытно как инфраструктурные компании опенсорсят вайбкодинг тулы, затачивают их на свою платформу и ждут.

Выше я писал про такой подход, при котором вы перестаете платить 20 долларов саас платформе и начинаете платить 5 долларов напрямую поставщику инфраструктуры. Но так как своим "саас" сайтом пользуетесь только вы, но почти все время инфраструктура будет отдыхать.

Короче, вот вайбкод платформа от CloudFlare с открытым исходным кодом:

https://github.com/cloudflare/vibesdk
👍2611🔥4🤯1
Карьера — это тоже продукт, просто главный пользователь — ты сам.

Продвижение в карьере — это не про количество выученных фреймворков.
Почти все, кто застревает на уровне middle, делают ставку на «еще один язык программирования».
Но настоящие Senior-инженеры растут не из-за технологий, а из-за мышления и системности.

Вот 5 ошиьок, которые люди повторяют снова и снова:

1. Работа — это не только код.
Самые успешные инженеры умеют системно управлять своей работой: приоритизировать, документировать, делать результаты прозрачными.
Они не просто «делают задачи» — они владеют проектом, временем и ожиданиями.

2. Три кита роста: доверие, ценность и видимость.
* Делай то, что приносит реальную ценность бизнесу, а не просто «красиво написанный код».
* Строй отношения — будь тем, на кого можно положиться.
* Не забывай про видимость — рассказывай о своих результатах.
Без этого продвижение происходит случайно (или не происходит), а не по плану.

3. Мысли стратегически, а не реактивно.
Перестань бегать за хайпом.
Вместо этого думай о карьере как продакт: где твоя карьера сейчас, куда ты хочешь прийти, какие эксперименты проведёшь, чтобы туда попасть.
Карьера — это тоже продукт, просто главный пользователь — ты сам.

4. Система важнее силы воли.
Те, кто растут быстрее, не «просто стараются сильнее».
Они строят систему: шаблоны, заметки, чек-листы, регулярные ревью.
Когда система работает — мотивация перестаёт быть проблемой.

5. Твоя карьера должна иметь лицо.
Не «я просто backend-разработчик», а: «я инженер, который делает сложные системы простыми для пользователей»
Когда ты чётко понимаешь, в чём твоя ценность, другие начинают это видеть тоже.

Всему этому мой дружище Алексей Мигутский собирается обучать на своем курсе. Этот пост - дружеская рекомендация Лехи. Леха крутой, а крутых друзей я рекомендую. Он поменторил более 400 человек и обнаружил, что люди повторяют одни и те же ошибки. Я тоже был одним из 400 поменторенных. Посмотрите, возможно вам это тоже будет интересно. Курс будет на английском, если что.

https://maven.com/s/course/0130f71aac
1👍3811🤣8😢3🌚32🫡2🔥1