Ваш LLM-агент забывает цель через 10 шагов? Контекст "гниёт" на длинных документах? Модель галлюцинирует? Разбираем 10 реальных проблем LLM-приложений и паттерн RLM, который их обходит — без замены модели. С примерами кода и FAQ для новичков.
Читать далееЯ люблю простые костыли.
Когда требуется сериализовать некоторые поля в какой-то текстовый формат,
бывает удобно использовать промежуточное представление данных вида:
// Name/Value item
public class NVItem {
public string? Name;
public object? Value;
public IEnumerable? SubItems;
public NVItem(string? name, object? value) {
Name = name;
if (value==null) return;
SubItems = value as IEnumerable;
if (SubItems != null) return;
// Упс!
Value = value as string;
if (Value != null) return;
var num = value as IEnumerable;
if (num==null) {
Value = value;
} else {
SubItems = num.Cast<object>().Select(t => new NVItem(null, t));
}
}
}
Допустим, вы написали код для решения задачи, которая хорошо распараллеливается. Каждый поток занимается своим участком работы и не зависит от других, поэтому потоки почти не должны координироваться друг с другом, за исключением самого последнего этапа, когда требуется объединить результаты. Естественно, в данном случае логично предположить, что чем больше ядер задействуется для такого кода, тем быстрее он выполнится. Вы ставите бенчмарки и сначала прогоняете этот код на ноутбуке. Действительно, оказывается, что он практически идеально масштабируется на всех четырёх доступных ядрах. Затем вы прогоняете его на большой и пафосной многопроцессорной машине, рассчитывая, что производительность будет ещё выше — но убеждаетесь, что на практике этот код работает даже медленнее, чем на ноутбуке, сколько бы ядер под него не выделить. Да, именно с таким случаем мне однажды довелось столкнуться.
Читать далееНачнем данную статью с казалось бы простого вопроса: "Кто такие клиенты и зачем их считать?". Ответ на данный вопрос не такой простой и вообще философский! Каждая компания и человек в отдельности ответят на него по-своему.
В телеком компании вам скажут: "Клиент = абонент. Мы считаем их прирост, а также дни, в течение которых они платят нам абонентскую плату.". В небольшой парикмахерской вам, возможно ответят так: "Ну вот кто пришел стричься, тот и клиент. Считаем количество тех, кто постригся за отрезок времени.". Подсчет клиентов может даже пригодиться для оценки компании третьими лицами, здесь также используются свои методологии. И так далее... Думаю, мораль ясна, каждый определяет для себя сам, кто является клиентом и как их считать.
Но может быть существует более универсальный способ подсчета клиентов? В следующих разделах я постараюсь предоставить такой способ, пусть меня рассудят в комментариях.
Читать далееСуществует ли такая задача или класс задач, в которых машина вынуждена демонстрировать разумное поведение, а не просто оптимизировать заранее заданную цель?
Читать далееКажется, в мире нейрогенераторов сейчас настоящая гонка вооружений. Каждый месяц выходит новая модель, каждая громче предыдущей кричит о “прорыве”, “фотореализме” и “понимании контекста”. OpenAI, Google, Black Forest Labs, Midjourney – все хотят быть первыми. Но кто из них действительно умеет работать со сложными, многосоставными сценами?
Мы решили не гадать, а провести честный эксперимент. Взяли один мегапромпт – с девушкой, двумя необычными спутниками, инопланетной атмосферой и кучей деталей – и прогнали его через пять топовых нейросетей 2026 года. Что получилось? Кто‑то блистательно справился, кто‑то сделал вид, а кто‑то просто нарисовал милую открытку, проигнорировав половину условий.
Это не просто обзор – это битва алгоритмов, где победит тот, кто не просто рисует красиво, а думает, как художник. Итак, запускаем генерацию – и смотрим, чья нейросеть действительно готова к полету на другую планету в компании Крокодила и Зебры.
Включаем воображение и начинаем тест!
Читать далееКак подружить MCP-сервер, клиент и LLM в вашем приложении - практическое руководство.
Всем привет! Меня зовут Владимир, последние несколько лет я занимаюсь разработкой приложений с использованием моделей компьютерного зрения (CV), обработки естественного языка (NLP) и больших языковых моделей (LLM).
Буду делиться своими наработками в этих областях. Начнем с серии материалов про МСР
Читать далееВ прошлой статье я описывал свой путь в качестве основателя стартап в Кремниевой Долине и вывел 12 уроков. Одни из наиболее «срезонировавших» тезисов того материала стал раздел про «управленческий долг». Я упомянул его вскользь, но на самом деле именно он стал тем фактором, который не позволил вырастить компанию до уровня в десятки миллионов долларов – хотя такой шанс в какой-то момент реально был.
Термин управленческий долг (management debt) я впервые увидел в книге Бена Хоровица – The Hard Thing About Hard Things. Бен – легендарный CEO (выводил компанию на биржу и продавал на $1млрд+) и сооснователь фонда Andreessen Horowitz, он умеет называть вещи своими словами.
Все похоже на техдолг – ты принимаешь удобное, «мягкое» решение сегодня, а завтра за него приходится расплачиваться с дикими процентами. И как и в случае с техдолгом, management debt может приводить к серьезным последствиям.
Ниже – 5 уроков о том, как я брал эти «кредиты», и как потом приходилось расплачиваться.
Читать далееДля многих людей искусственный интеллект стал важной частью жизни: с ним советуются по поводу здоровья, психологических проблем, составляют планы питания и тренировок, дружат, пишут с ним исследовательские работы и т.д. Но мало кто задумывается о качестве информации, которую выдает ИИ, предпочитая слепо верить первому же ответу. В статье история моего личного провала.
Читать далееВ 2012 году AlexNet потряс мир — тысячи строк кода, две видеокарты, недели обучения. Сегодня вы превзойдёте его одной строкой, а модель загрузится за секунды.
В статье — 20 полностью рабочих примеров глубокого обучения, каждый ровно в три строки Python. Анализ тональности, резюмирование текста, вопросно-ответные системы, генерация текста, перевод, NER. Детекция объектов, сегментация, оценка глубины, поиск изображений по описанию. Мультимодальные модели, которые отвечают на вопросы о картинках.
Это не упрощение и не обман. За тремя строками скрываются модели с миллиардами параметров: BERT прочитал всю Википедию, GPT-2 обработал 40 ГБ текста, CLIP просмотрел 400 миллионов пар «картинка-описание». Всё это знание теперь доступно через один вызов функции.
Никакой дополнительной подготовки данных, никаких конфигурационных файлов, GPU не требуется. Скопируйте код — и получите результат, на который ещё пять лет назад ушли бы недели. Те же модели прямо сейчас работают в production у Netflix, Google и тысяч стартапов.
К концу статьи вы освоите 20 техник, покрывающих большинство задач NLP и компьютерного зрения — и каждая уместится в твит.
Почему запуск нового устройства часто превращается в сериал: ревизия №1, №2, а иногда и №4? Ответ, который редко звучит вслух, неудобен: во всём «виноват» тополог. Точнее — системное недопонимание важности этой роли.
Читать далееВы подняли свой прокси-сервер, настроили навороченный sing-box на Android, всё летает, 4K видео грузится мгновенно. Но стоит положить телефон в карман на пять минут и магия исчезает. Соединение залипает, SSH-сессии рвутся, а WhatsApp-звонки превращаются в тишину
Как только вы включаете экран сеть оживает. Казалось бы, типичный агрессивный энергосберегатор Android, но всё гораздо глубже. Я обнаружил там проблему на стыке рантайма Go, логики ядра Linux
Улика №1: conntrack и чистка сети
Первое, что бросается в глаза при анализе логов это странное поведение системы при событиях Pause и Wake. В Android-клиенте sing-box при выключении экрана срабатывает механизм приостановки
DEBUG inbound/hysteria2[hy2-in]: connection failed: timeout: no recent network activity
panic: runtime error: index out of range [0] with length 0
goroutine 615 [running]:
github.com/sagernet/sing/common/bufio.(*SyscallVectorisedWriter).WriteVectorised(...)
В современных сборках sing-box включен флаг with_conntrack. Когда Android сообщает приложению, что пора уходить в спячку (Pause), срабатывает метод ResetNetwork(). Внутри он вызывает conntrack.Close()
Разработчики хотели как лучше: очистить таблицу состояний, чтобы при смене сети (например, переход с Wi-Fi на LTE) не оставалось мертвых записей.
К чему это приводит? На мобилке это буквально рубит все активные TCP-сессии при каждом засыпании экрана. Если ваше приложение не умеет мгновенно переподнимать сессию, вы получаете обрыв
Улика №2: Проблема замершего времени
Почему WireGuard в официальном приложении работает стабильно, а в Go-клиентах (вроде sing-box или других форков) постоянно отваливается?
Всё дело в том, как Go считает время. По умолчанию рантайм Go для всех таймеров и time.Sleep использует системные часы CLOCK_MONOTONIC
В режиме глубокого сна на Android часы CLOCK_MONOTONIC останавливаются
Если вы настроили WireGuard на отправку keepalive каждые 20 секунд:
В 1974 году, когда SQL только вышел из исследовательских лабораторий IBM, работа с базами данных выглядела просто: разработчик писал запрос и получал результат. Без слоёв, абстракций и фреймворков — только строки, описывающие нужные данные.
Эта прямота дорого обходилась. Переименование колонки превращалось в поиск по тысячам строк кода в надежде отловить все упоминания. Неаккуратная работа с пользовательским вводом приводила к SQL-инъекциям. Миграция с Oracle на PostgreSQL часто означала переписывание значительной части запросов из-за различий диалектов.
К середине 1990-х проблема стала настолько заметной, что начали появляться Object-Relational Mapper’ы (ORM). Идея выглядела привлекательно: работать с таблицами как с объектами, писать код на «родном» языке программирования вместо SQL-строк, а перевод на SQL оставлять фреймворку.
Читать далееВ конце прошлого года обновился EuroAssembler, известный лишь в узких кругах, с чем хотелось бы поделиться с любителями низкоуровнего программирования. Он может быть интересен как новичкам, лишь делающим первые шаги в мире ассемблера, так и профессионалам для расширения кругозора. Под катом мы напишем несколько несложных этюдов на этом ассемблере.
Читать далееПериодически читаю комментарии в духе «Разница между Past Simple и Present Perfect – простая грамматическая тема, в школьной программе нормально даётся, или у вас школы какие-то не такие были». Это неправда. Тема тяжелейшая. Не бывает людей, которым она даётся легко. Нередко в ней путаются даже выпускники ИнЯзов. Например, в ситуациях, когда оба времени возможны. Пока есть слова-маркеры (when, just, already) – всё более-менее. Без них плывут, потому что плохо понимают саму суть.
Есть мнение, что занятия по иностранному языку на русском ведут только преподаватели с низкой квалификацией. Английский надо преподавать на английском!
Вести на иностранном языке – хорошая идея, если цель урока – развитие именно устной речи. А вот ставить произношение, объяснять внутреннюю логику сложных идиом тяжело даже на русском. Многие грамматические темы «объяснить» практически невозможно – преподаватель должен ставить задачи в правильной последовательности и направлять их решение. Это ювелирная работа – многие учителя не справляются, не могут вскрыть моменты, которые ученик понял неправильно. Добровольно усложнять этот процесс, делая то же самое на иностранном языке, – это зачем??
У меня была студентка, которая каталась на велосипеде не держась руками за руль и при этом вязала. Это не так уж сложно: она любит ездить на велосипеде, часто отпускает руль, вяжет с детства. А представьте учить кого-то СРАЗУ ездить на велосипеде не держась за руль, и чтобы он при этом ещё вязал! Научится, конечно, в конце концов, если не свернёт себе шею в процессе. При изучении языка шею сворачивают редко, зато часто приходят к твёрдому убеждению, что «языки – не моё». По мне, это такая же нелепость, как «я не способен осилить химию в объёме школьного курса – не дано».
___Произношение
Считается, что у преподавателя оно должно быть хорошее, а то «у студента неправильное произношение закрепляется». Это кажется невероятно логичным до тех пор, пока на сотнях примеров не столкнёшься с результатом работы учителей-носителей и с людьми, которые живут 24/7 в языковой среде. Произношение у них часто такое же дубовое, как если бы их учил человек с таким же дубовым произношением.
Читать далееДжеффри Эмануэль — бывший квантовый аналитик с Уолл-стрит, автор эссе про NVIDIA, которое год назад связывали с падением рынка на $2 трлн. Сейчас он руководит блокчейн-компанией Lumera Network, а в свободное время строит открытые инструменты для ИИ-кодинга, используя 20+ ИИ-агентов параллельно.
Читать далееПродолжаем цикл статей с обзором изменений 19-й версии. На этот раз рассмотрим что появилось в рамках сентябрьского коммитфеста 2025 года.
Самое интересное из первого июльского коммитфеста можно прочитать здесь: 2025-07.
Читать далееЧеловек тем успешнее, чем ближе к реальности. Но мысль о том, что она рядом, говорит скорее об обратном. Поэтому мистер Чэтфилд ни на что не претендует, а просто излагает факты и результаты исследований. Честно, открыто, и в большинстве случаев не лестно для среднестатистического человека.
Что ж, попробуем в этом разобраться.
Меня зовут Костя Дубровин. Я веду канал про книги.
Разобраться8 декабря 2025 года вышел релиз Capacitor 8. О нововведениях и миграции со старых версий читайте в статье
Читать далееУже более полутора лет Perplexity почти полностью заменяет мне классический поиск, помогая в работе, учёбе и бытовых вопросах.
Для доступа к Perplexity из России не нужен VPN, есть мобильное приложение и собственный браузер Comet. В наличии много популярных AI-моделей. Базовые функции - бесплатны. Для студентов есть скидка 75% на версию Pro.
В этой статье я постарался систематизировать свой опыт работы с Perplexity.
Мы разберем, как превратить Perplexity из «умного чата» в интерактивную базу знаний, используя Spaces, Tasks, Comet Assistant и другие функции.