Иван Закутний про
196 subscribers
130 photos
3 videos
161 links
Авторский канал про инженерию умных систем.
По всем вопросам: @m0n0x41d
Download Telegram
Честно говоря, даже не знаю, что рассказать про WhitePaper о эмбеддингах и векторных хранилищах из вчерашнего дня интенсива.

Например, в конце этого дока уже 58 других источников 🙂

Ноубуки лабы были короткие – в основном опять про примеры использования API Гугла, чуть-чуть Кераса. Была питоновская ChromaDB, немного перемешали матрицы с векторами, потыкались в similarity.

В общем, как обычно — если нет времени, послушайте подкаст, а если время есть — обязательно почитайте сам WhitePaper.

Обмазываться Embedding круто, модно и полезно — не только при построении RAG-систем, но, например, и для Semantic Router. (До сих пор, на момент первой бумаги третьего дня, ни одного упоминания про такое использование 🙂

Semantic-router библиотека не сырая, уже даже брейкинг-чендж версию пережила 🤣.

У неё уже две с половиной тысячи звезд на GitHub (будет больше, я уверен), потому что с помощью Semantic Router вполне можно построить очень достойного ассистента в плане детерминированного выбора.

Рассказывать про ReAct, ToT и прочую теоретическую шутку, конечно, здорово, но я вот почему-то совсем не сомневаюсь, что все большие провайдеры нейронных удовольствий эмбеддинги для роутинга по тем же ToT используют 🙂

Первый и основной документ третьего дня называется очень знакомым словом - Agents, полностью меркнет на фоне доки про вектора – опять про RAG, про Vertex AI.

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

Ну реклама, да, а кто спонсор? Чей Kaggle в конце концов? И тем не менее Vertex AI неплохая платформа, если вы готовы к полному вендерлоку... почему нет?


Рассказали про tool-calls, очень аккуратно упоминают, что "сложно! Сложно может быть! Делай больше в RAG", но очень конкретно – "Агент – это не просто LLM с тулами, там нужно делать cognitive architecture".

Вот это cognitive architecture очень важно подчеркивать и нормально проектировать. Да, я сейчас опять скажу это – semantic-router, similarity!

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


А пока мне кажется, что пространство возможностей вокруг LLM в AI системах благодаря эмбеддингам очень и очень сильно расширяется. Работает это достаточно быстро, прям ну вот так и хочется каких то сценариев, переходов в виде деревьев нахреначить... А может все таки и циклических графов? 😨

В общем и целом саммари такое – важно помнить, что эмбеддинги это не только про векторные базы данных и RAG. Вот.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭22
Для совсем ленивых или тех кто вообще не в теме, вот выжимка из дока от NotebookLM в любезном переводе gpt:

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

В техническом документе рассматриваются различные типы встраиваний, включая встраивание текста (встраивание слов и документов с использованием таких методов, как Word2Vec, GloVe, Doc2Vec, и тех, которые получены из больших языковых моделей, таких как BERT и Gemini), встраивание изображений и мультимодальное встраивание, встраивание структурированных данных и встраивание графов.

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

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

Эффективный векторный поиск опирается на алгоритмы Approximate Nearest Neighbor (ANN), такие как Locality Sensitive Hashing (LSH), KD-деревья, Ball-деревья, Hierarchical Navigable Small Worlds (HNSW) и ScaNN, чтобы преодолеть ограничения линейного поиска в больших наборах данных.

Векторные базы данных — это специализированные системы, предназначенные для хранения, управления и запроса вложений в масштабе для производственных сред, решая такие проблемы, как масштабируемость, доступность и согласованность данных. Примерами являются Vertex Vector Search от Google Cloud, AlloyDB, Cloud SQL Postgres и Pinecone.

Встраивания и векторные хранилища позволяют использовать многочисленные приложения, в частности Retrieval Augmented Generation (RAG), который объединяет извлечение соответствующих документов с использованием семантического поиска с большими языковыми моделями для генерации более точных и фактических ответов с указанием источника.

Выбор модели встраивания и векторной базы данных должен основываться на конкретных данных, варианте использования, бюджете и бизнес-потребностях.
🌭3
Сколько HR сможет ответить на этот вопрос с пикчи ниже?
Anonymous Quiz
63%
0% 🤤
38%
100% 😎
🌭1
А это точно computer autopilot? 😈

Просто сильно похоже на прилизанный browser-use

Выглядит конечно здорово. Отличный пример как надо воровать опенсорс 😃
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭2
Короче, сижу я такой наслаждаюсь своей ноотропной таблеткой с Шен Пуэром и начинаю затаскивать в наш проект локальный энкодер семантик роутера (чтобы каждый раз на стартапе деньги не тратить, пусть и небольшие, на пересоздание векторов в OpenAI апихе)

Ну вроде все норм, Fastembed работает как надо.

Думаю – зачем на этом останавливаться, надо базу прикрутить и складывать вектора туда. Ну и в целом не комильфо в памяти – это пока векторов мало, а черт их знает как у меня слои роутера и колличество роутов, векторов для каждого разрастется? Не хранить же их в памяти!

Смотрю чо есть в либе на поддержке:

- Local – ну это чуть ли не тупо baseIndex, храним все в памяти.
- pinecone – тот самый опенсорс у которого из опенсорса только сдк-клиент, в который надо API токен пихать.
- postgresql with pgvector – ну тут все понятно
- qdrant – не такой зашкварный опенсорс, можно запустить контейнер и вроде как без ограничений


Ну в целом, выбор очевидный, правда ведь? Постгресс бери и делай.

Взял и сделал, а там try/except с попыткой импорта в init конструкторе 😳

Ну в целом ладно, с кем не бывает, думаю я – не беда! Отнес пацанам PR с небольшими изменениями, себе пока воткнул

sys.modules["semantic_router.index.postgres"].psycopg2 = psycopg2

Ура все заработало! semantic-router создал на стартапе табличку, записал в нее все все вектора!

Только вот в логах больно много ворнингов:

base.py:108 - get_utterances() - Index is None, could not retrieve utterances.

Здесь мое хлебало борщей принимает идеально квадратную форму.

Во-первых – какой еще base.py?
Во-вторых – В смысле Index is None?

Да, все верно – base.py с BaseIndex 😃
Да, все правильно – get_utterances() в PostgresqlIndex вообще не реализован.

Я все понимаю – опенсорс. Надо как то деньги зарабатывать... А нахрена это релизить и в доку писать?

Нет времени дописать – сделайте майлстоун, покличьте народ, это норм практика.
Please open Telegram to view this post
VIEW IN TELEGRAM
2🌭1
Вот и кончилась неделя интесива про LLM трансформеры и все что вокруг них от Google/Kaggle.

тут написал небольше резюме по 3-ему и оставшимся дням.

TLDR;
4 - 5 день практически целиком в мусорку, 1-3 забираем документы, изучаем пейперы в источниках, умнеем, бежим дальше.

А дальше все самое интересное 💖
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭11
Я потихоньку строю персонального ассистента – rag систему по материалам о программной инженерии и инженерии вообще, которые накопились за последние пять лет и продолжают копиться пока я стучу по кнопкам.

Проблема конечно дефолтная - что то в pdf, что то уже в маркдаун (98% моих записей), что то сохранено html линками или файлами.

Если с pdf и маркдауном все понятно (мы целимся в последний, его удобно рубить на чанки и прокручивать в вектора), то с html надо повозиться чуть больше.

Сначала я взял майкрософтовский maritdown и он оказался очень странным именно для html - вытаскивает в какие то корявые таблицы которые придется руками или через LLM приводить в порядок.

Они еще так опрометчиво в последних версиях на 2>=numpy завязались, лол.

Так а нафиг тогда?

Знакомьтесь, сегодня хороший опенсорс:

https://github.com/unclecode/crawl4ai

Шустренько так работает, вполне себе норм достает маркдаун, все что надо.

Нет проблем прожевать локальные файлы, или html.

Будем молотить и те и другие.

Потом расскажу больше про персональный rag, может вообще отдам mcp сервером :)
4🌭1
Наверное самые лучшие мысли в этой статье:

1) LLM хороши для быстрого прототипирования, и то что большие модели, нужно заменять на малые (тюнить os / обучать свои и тд), или избавляться от них вообще там где они оказываются не нужны.

2) LLM не серебрянные пули. Люди никак не поймут что никакая прикладная технология или метод по определению не могут быть серебряными пулями, ну они же прикладные.

***
Гипотетический AGI на то и general. Продолжать на серьезных щах говорить про AGI хоть сколько нибудь уважающим себя людям – уже зашквар. Это я к свежим, но все еще идиотским разгонам. Если такая технология появится, то тогда и только тогда когда будет решен огромный пласт сопутствующих осложнений. Уважающие себя, нацеленные на результат в этой сфере разгоняют мульти-агентские системы, где агенты имеют предельно четкую ответственность. И как раз работы которые потенциально увеличат возможность создания AGI хоть сколько нибудь. Перспективное!

***

А теперь к минусу статьи с которой я начал.

В самом начале набрасывается вроде бы здравая мысль определить задачу:

Stage I: Prepare
In this stage, the goal is to get a good sense of what you want to accomplish and where is the best place to start.
Define the task: With all the publicity surrounding LLMs, it is easy to think that they are general problem-solvers that can take a complex task and come up with a solution. But if you want to get good results, you should pick one specific task and try to formulate it as an input-output problem that can be categorized into one of known categories (classification, regression, question-answering, summarization, translation, text generation, etc.). 


Вы видите тут задачу? Вот и я не вижу. А она есть.

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

Быть может окажется что нам даже для прототипирования LLM не понадобится.

Если вы ищите серебряные пули - вы уже проиграли. Нам нужны не пули, а пулелейки.

Рациональная системная инженерия и ее первые принципы как раз такая пулелейка.
🌭2
Китайцы выкатили очередной Хуньян резонер, турбо декодер блин!


Попробуй тут https://llm.hunyuan.tencent.com/#/chat/hy-t1
🌭3
Попросил ChatGPT нарисовать как он видит свои мозги будущего, работающие на базе квантовых вычислений под криогенными температурами.

Навеяно свежими исследованиями.

Буквы он конечно хорошо стал копировать на изображение. Можно плакаты на техно рейвы генерировать 💃
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭2
Ответил тут где то в комментах на вопрос «вы deep research пользуетесь вообще».

Мой ответ, tldr – уже практически нет.

Я перестал пользоваться дип ресерчем, не каким то конкретным, а вообще полностью с тех пор как купил Kagi поисковик. Perplexity похоронил и подавно.

И не то чтобы я Kagi «ассистента» пытаюсь пиарить (хотя он и не плох).

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

Мой новый флоу в этом деле такой:

1) ищу через Kagi все нужные пейперы / новости / nameyourthing

2) пихаю в NotebookLM и радуюсь предметному, конструктивному, и главное управляемому мной самим ресерчу 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
3🌭1
Я вообще конечно спать собирался, но тут Decompute AI какого-то жесткого хайпа нагнал...

Что только не пишут:
- first on-device AI agent creation platform
- without needing extensive AI expertise 😦
- Privacy by Design Your data never leaves your device

кхек-кхек, ну давайте смотреть маководы
Please open Telegram to view this post
VIEW IN TELEGRAM
2🌭1
PM: Сеньор Павел, сколько тебе потребуется времени чтобы добавить третий SSO провайдер?

Павел: нууууууу… полтора спринта как минимум! *** Итак, Сеньор Павел:
Anonymous Quiz
22%
Лентяй и мог бы сделать за час с курсором! 🤬
52%
Трудяга работяга, я бы на 2 спринта планировал… 😑
26%
Сеньор Павел адепт закона Хофштадтера! 👮
3🌭1
Наконец то бенчмарки от Рината!

По поводу девы 3.5 – спустя эти пару недель работы на ней в курсоре субъективные ощущения такие – точно не хуже соннета, и работает… быстрее!!! Вообще назад не переключался.

Картина очень интересная.
2🌭1
LLM Benchmarks - прогресс у Google

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

Gemini-2.5-pro-preview - это платная и самая большая модель Google. Она так хороша, как про нее говорят. В моем LLM бенчмарке на продуктовых задачах она побила OpenAI o1 и Anthropic Claude 3.7 Sonnet, заняв второе место. При этом она работала без Structured Outputs (ибо у Google он пока реализован шиворот навыворот)

DeepSeek-V3-0324 - это новая версия DeepSeek Chat (не путать с r1). Они смогли последовательно улучшить качество предыдущей chat версии. Прогресс не стоит на месте. Посмотрим, как у них будет дальше с новыми моделями.

Llama 4 модели - появились на радаре, но пока не обладают выдающимися способностями. Но это типичная картина, которая повторялась со всеми версиями Llama. Meta выпускает мощные foundational модели, которые потом тюнятся под конкретные задачи. Ждем r1 distill.

Gemma-3-27B-it - а вот тут уже очень интересно становится. Эта локальная мультимодальная модель от Google Deepmind. Это первая модель такого небольшого размера, которая забралась так высоко. Заявляется контекст 128k, поддержка 140 языков и function calling.

Возможно благодаря последнему модель смогла вытянуть достойный результат без поддержки Structured Output. Лучше всего она показала себя в инженерных задачах на работу со сложным кодом.

Ее младшая сестренка - gemma-3-12b-it тоже отличилась и заняла место на уровне лучших моделей в пару раз больше.

Что-то такое интересное Google DeepMind нащупали, что дает им возможность клепать хорошие модели по всем уровням (еще и на TPU). Будем ждать от них новых релизов.

Ваш, @llm_under_hood 🤗


PS: Прочитать про мой подход к бенчмаркам можно тут. Там есть и FAQ со всеми вопросами, которые задают последние полтора года. Пожалуйста, прочитайте его, прежде чем оставлять свой первый комментарий.
4🌭2
Разрыв между ментальными представлениями и реальностью который я рассматривал ранее (тут и здесь) это не только про бытовые когнитивные искажения и бытовые идеи отстающие от реальности (бытовые тут в том числе и "рабочие/проектные"), но и про концепции более научные.

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

Там где хорошая математика начинает проникать в реальность все становится эффективнее. Чисто интуитивно сравните степень заземленности математики самой по себе, и например математики используемой в физике. Разница очевидна: во втором случае абстрактные концепции непосредственно описывают и предсказывают реальные явления.

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


Как и с физикой, примерно то же самое происходит с computer science. На первый взгляд кажется, что это какая-то неприкладная теория.

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

Да практически все 💪

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

Потому что computer science в принципе как область почти во всех исследованиях сразу направлена на реальный мир – как бы вчисления оптимизировать? какая мат. модель подойдет лучше? Как бы нам шифрование усилить в целях безопасности?
И так далее.


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

Эта "неприкладная теория" трансформируется в совершенно прикладной навык — например, способность отрефакторить говняный API во вполне вменяемый, или создать элегантную абстракцию, которая упрощает сложную систему.

Когда мы понимаем изоморфизмы, мы можем увидеть и зарыдать как преобразовать реляционные "объекты" базы данных в объектные структуры в коде и обратно (ORM'ки).

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

Ставь Бейтмана если тема интересна, но ничего не понятно и надо больше примеров на пальцах.
Ставь Гарольда если готов скинуться админу на лечение.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌭2211