Forwarded from red_mad_robot
GenAI trends_feb2025_red_mad_robot.pdf
46.8 MB
AI перестал быть просто трендом — это полноценный технологический цикл, меняющий бизнес-процессы, экономику и рынок труда. Стратегические аналитики red_mad_robot собрали ключевые тренды и события, которые помогут лучше понять, куда движется индустрия.
Что внутри:
Сохраняйте, изучайте, делитесь фидбеком.
Please open Telegram to view this post
VIEW IN TELEGRAM
Enterprise RAG Challenge
Как всегда меня немного затянуло =)
Прямо сейчас участвую в Enterprise RAG Challenge от @llm_under_the_hood, и хочу рассказать, что pdf2md challenge почти в кармане.
В итоге я тестировал около 6 стратегий поиска информации
Разметка смог протестировать только одну стратегию, но и самую затратную она и заняла больше всего времени.
Я топлю за on-premise так что никаких облачных моделей все на своем железе благо мы в NDT закупились у теперь у нас есть 10 штук 4090 !
Итак, мы взяли все 100 PDF финансовых отчетов, это примерно ~14454 страниц
Из них было 3026
Общее кол-во категорий 13 (направлений)
1) Команда помогла найти топ библиотеку и конвертировала все PDF в markdown в текст.
2) Даже топ подход теряет около 2-5 % данных просто потому, что не видит кодировки или выводит ромбики. Сюда входят даже платные сервисы и самая топовая обработка
Все модели поднимаются в FP16 на vLMM
Векторная модель intfloat/multilingual-e5-large развернутая на 4 2080ti пропускная способность бешеная в 32 батч сайз
3) Я поднял наш весь свободный кластер и классифицировал все 14к страниц через 6 серверов с vLLM 4090 с развернутыми qwen 2 VL 7b instruct (это заняло примерно 2 часа времени)
На выход были вот такие:
4) Далее мы перевели все таблицы в markdown, img 2 markdown процесс занял у нас примерно 4 часа
5) Далее мы векторизировали часть данных (чанки + названия компаний, они были предоставлены в subset)
И загрузили в Milvus с вот такой схемой:
Сейчас, кстати 6 утра, и хорошо отрабатывает вот так поиск с подходом ANN search:
Самое важное, что при просмотре найденного контекста я беру топ 3 чанка и загружаю полные страницы из файловой системы:
Что хоро вижу четкую связь между названием компании, текстом и найденной страницей (достаточно близко), нет сильной разреженности
Ну и далее 4 схемы для SO в реквестах есть тип данных которые хотят видеть это упрощает жизнь, куда же без него:
И так далее для других типов под каждый типо свой промпт
На текущий момент прогнались все вопросы пошел глядеть и сабмитить!
Как всегда меня немного затянуло =)
Прямо сейчас участвую в Enterprise RAG Challenge от @llm_under_the_hood, и хочу рассказать, что pdf2md challenge почти в кармане.
В итоге я тестировал около 6 стратегий поиска информации
Разметка смог протестировать только одну стратегию, но и самую затратную она и заняла больше всего времени.
Я топлю за on-premise так что никаких облачных моделей все на своем железе благо мы в NDT закупились у теперь у нас есть 10 штук 4090 !
Итак, мы взяли все 100 PDF финансовых отчетов, это примерно ~14454 страниц
Из них было 3026
Общее кол-во категорий 13 (направлений)
1) Команда помогла найти топ библиотеку и конвертировала все PDF в markdown в текст.
2) Даже топ подход теряет около 2-5 % данных просто потому, что не видит кодировки или выводит ромбики. Сюда входят даже платные сервисы и самая топовая обработка
Все модели поднимаются в FP16 на vLMM
Векторная модель intfloat/multilingual-e5-large развернутая на 4 2080ti пропускная способность бешеная в 32 батч сайз
3) Я поднял наш весь свободный кластер и классифицировал все 14к страниц через 6 серверов с vLLM 4090 с развернутыми qwen 2 VL 7b instruct (это заняло примерно 2 часа времени)
На выход были вот такие:
"has_tables": true,
"table_count": 56,
"content_types": {
"image": 11,
"mixed_image_text": 11,
"chart": 3,
"text": 20,
"mixed_chart_text": 1,
"mixed_table_text": 33,
"table": 21
}
4) Далее мы перевели все таблицы в markdown, img 2 markdown процесс занял у нас примерно 4 часа
5) Далее мы векторизировали часть данных (чанки + названия компаний, они были предоставлены в subset)
И загрузили в Milvus с вот такой схемой:
{
"fields": [
{"name": "id", "type": "Int64"},
{"name": "text", "type": "VarChar(65535)"},
{"name": "page_number", "type": "VarChar(10)"},
{"name": "file_path", "type": "VarChar(2048)"},
{"name": "company_name", "type": "VarChar(256)"},
{"name": "embedding", "type": "FloatVector(1024)", "index": {"name": "embedding", "type": "COSINE", "nlist": 1024}},
{"name": "company_embedding", "type": "FloatVector(1024)", "index": {"name": "company_embedding", "type": "COSINE", "nlist": 1024}},
{"name": "sparse", "type": "SparseFloatVector", "index": {"name": "sparse", "type": "BM25"}}
]
}
Сейчас, кстати 6 утра, и хорошо отрабатывает вот так поиск с подходом ANN search:
{
"query": "",
"top_k": 5,
"search_type": "vector",
"text_weight": 0.7,
"company_weight": 0.3
}
Самое важное, что при просмотре найденного контекста я беру топ 3 чанка и загружаю полные страницы из файловой системы:
{
"results": [
{
"relevance": 0.8573796153068542,
"collection": "Financial_Services",
"text": "```markdown\n# Pintec Technology Holdings Limited\n## Consolidated Statements of Operations and Comprehensive Loss\n(RMB and US$ in thousands, except for share and per share data, or otherwise noted)\n\n### For the years ended December 31",
"company_name": "Pintec Technology Holdings Limited",
"file_path": "mk_embedded\\9e794a58e511f6a6a9a13b201d652deff9f9f69a.pdf.json",
"page_number": "204",
"id": "456258446756725963"
},
Что хоро вижу четкую связь между названием компании, текстом и найденной страницей (достаточно близко), нет сильной разреженности
Ну и далее 4 схемы для SO в реквестах есть тип данных которые хотят видеть это упрощает жизнь, куда же без него:
NUMBER_SCHEMA = {
"type": "object",
"properties": {
"value": {"type": "string"},
"confidence": {"type": "number"},
"reasoning": {"type": "string"}
},
"required": ["value", "confidence", "reasoning"]
}
BOOLEAN_SCHEMA = {
"type": "object",
"properties": {
"value": {"type": "boolean"},
"confidence": {"type": "number"},
"reasoning": {"type": "string"}
},
"required": ["value", "confidence", "reasoning"]
}
И так далее для других типов под каждый типо свой промпт
На текущий момент прогнались все вопросы пошел глядеть и сабмитить!
Просмотрев ответы и поняв что я
И что это такое а то что я каждый док гружу как коллекцию
self.router_schema = {
"type": "object",
"properties": {
"collections": {
"type": "array",
"items": {"type": "string"},
"description": "List of collection names that match the query"
},
"companies": {
"type": "array",
"items": {"type": "string"},
"description": "List of company names from the query or ['unknown'] if impossible to determine"
},
"reasoning": {
"type": "string",
"description": "Brief explanation of why these collections and companies were chosen"
}
},
"required": ["collections", "companies", "reasoning"]
}
Крч пошел новый прогон где я прям уверен в нормальном мапинге)))
Кстати все снова опять на qwen 7b
И уже на 40 вопросах я вижу 100% попадание
Да я учел что есть вопросы где нужно вернуть несколько коллекций!
Засабмитил с роутер агентом
Заодно ввел классификации запросов по тематикам
Я все, вырубаю сервер =)
Enterprise RAG Challenge
Заодно ввел классификации запросов по тематикам
Я все, вырубаю сервер =)
Enterprise RAG Challenge
LLaDA - это диффузионная языковая модель (LLM) что?
Появился новый тип LLM на основе диффузионных моделей
Отличие от авторегрессии(текущие LLM) в том, что в таких моделях каждый токен предсказывается последовательно, а в диффузионном подходе предсказывается целая матрица токенов в заданном фрейме
Это похоже на то, как идёт генерация изображений 100×100 пикселей из шума в понятную картинку
В этом подходе модель генерирует не последовательность, а целый текстовый фрейм. Нужны сравнения по весу, стоимости обучения и инференса - подход выглядит новаторским. На мой взгляд, это несколько усложняет процесс инференса и сборки датасета, но нужно тестировать! Посмотрим, что там по open-source.
Основные отличия вот в чем
Авторегрессивные модели (большинство существующих LLM):
Генерируют текст последовательно, токен за токеном слева направо
Каждый новый токен зависит от предыдущих токенов
Более прямолинейный процесс генерации
Диффузионные модели (LLaDA, Mercury):
Генерируют все токены одновременно, постепенно "очищая" шум
Работают по принципу "от грубого к точному" (coarse-to-fine)
Могут позволить более гибкое управление текстом (например, задание определенных слов в конкретных позициях)
До сих пор диффузионные модели доминировали в генерации изображений и видео, в то время как текст опирался на авторегрессию
Mercury от Inception Labs представлена как первая коммерческая диффузионная LLM
Судя по посту Karpathy, такой подход может привести к появлению моделей с уникальными сильными и слабыми сторонами
Потенциальные преимущества диффузионных LLM могут включать параллельную генерацию (возможно, более быстрый инференс) и более гибкое управление содержимым ждем open-source и гоу тестить!
Появился новый тип LLM на основе диффузионных моделей
Отличие от авторегрессии(текущие LLM) в том, что в таких моделях каждый токен предсказывается последовательно, а в диффузионном подходе предсказывается целая матрица токенов в заданном фрейме
Это похоже на то, как идёт генерация изображений 100×100 пикселей из шума в понятную картинку
В этом подходе модель генерирует не последовательность, а целый текстовый фрейм. Нужны сравнения по весу, стоимости обучения и инференса - подход выглядит новаторским. На мой взгляд, это несколько усложняет процесс инференса и сборки датасета, но нужно тестировать! Посмотрим, что там по open-source.
Основные отличия вот в чем
Авторегрессивные модели (большинство существующих LLM):
Генерируют текст последовательно, токен за токеном слева направо
Каждый новый токен зависит от предыдущих токенов
Более прямолинейный процесс генерации
Диффузионные модели (LLaDA, Mercury):
Генерируют все токены одновременно, постепенно "очищая" шум
Работают по принципу "от грубого к точному" (coarse-to-fine)
Могут позволить более гибкое управление текстом (например, задание определенных слов в конкретных позициях)
До сих пор диффузионные модели доминировали в генерации изображений и видео, в то время как текст опирался на авторегрессию
Mercury от Inception Labs представлена как первая коммерческая диффузионная LLM
Судя по посту Karpathy, такой подход может привести к появлению моделей с уникальными сильными и слабыми сторонами
Потенциальные преимущества диффузионных LLM могут включать параллельную генерацию (возможно, более быстрый инференс) и более гибкое управление содержимым ждем open-source и гоу тестить!
VLM заменит CV?
Ты знал что qwen 2.5 VL вернет тебе bbox?
А теперь магия без рук!
Я взял этот квен Qwen2.5-VL-72B-Instruct-FP8-Dynamic
Взял на иммерс эту тачку https://immers.cloud/flavor/view/?id=984 (Цена, месяц = 269 660,16 ₽)
Наконец дождался пока vLLM обновится и станет поддерживать 2.5 VL
Взял вот такой код
Получил вот такой ответ
Но это только начало просто вернуть bbox таблицы это легко
По мимо этого мы можем получить содержимое, но ведь есть кейсы сложнее
А что если прислать сообщения из тг например?
Определить sender'ов и сразу в один проход достать текст?
Да на х4 4090 это около 35 секунд, но!
Сам текст она достала нем немного ужасно, но с этим уже можно работать!
Я вас направил! Дальше я думаю вы знаете как использовать это в бизнесе и стартапах!
Ты знал что qwen 2.5 VL вернет тебе bbox?
А теперь магия без рук!
Я взял этот квен Qwen2.5-VL-72B-Instruct-FP8-Dynamic
Взял на иммерс эту тачку https://immers.cloud/flavor/view/?id=984 (Цена, месяц = 269 660,16 ₽)
Наконец дождался пока vLLM обновится и станет поддерживать 2.5 VL
Взял вот такой код
OBJECT_JSON_SCHEMA = {
"type": "object",
"properties": {
"objects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"bbox_2d": {
"type": "array",
"description": "Coordinates of the table bounding box [x1, y1, x2, y2]",
"items": {
"type": "integer"
}
},
"label": {
"type": "string",
"description": "Object label, e.g. 'table'"
}
},
"required": ["bbox_2d", "label"]
}
}
},
"required": ["objects"]
}
Получил вот такой ответ
{
"id": "chatcmpl-9a5edf7433e246b78376c4f18bdbf263",
"object": "chat.completion",
"created": 1741078401,
"model": "qwen2.5-vl-72b-instruct",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"reasoning_content": null,
"content": "{\"objects\": [{\"bbox_2d\": [54, 126, 532, 434], \"label\": \"table\"}]}",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}
],
"usage": {
"prompt_tokens": 724,
"total_tokens": 760,
"completion_tokens": 36,
"prompt_tokens_details": null
},
"prompt_logprobs": null
}
Но это только начало просто вернуть bbox таблицы это легко
По мимо этого мы можем получить содержимое, но ведь есть кейсы сложнее
А что если прислать сообщения из тг например?
Определить sender'ов и сразу в один проход достать текст?
"objects": [
{
"bbox_2d": [
58,
292,
540,
360
],
"label": "Кстати вы знали что Qwen 2.5 VL может выдавать bbox объектов? https://qwenlm.github.io/blog/qwen2.5-vl/",
"sender": "user1",
"type": "text"
},
{
"bbox_2d": [
60,
374,
276,
404
],
"label": "о спасибо попробую",
"sender": "user2",
"type": "text"
},
{
"bbox_2d": [
60,
413,
490,
466
],
"label": "00:19, 72.9 KB",
"sender": "user2",
"type": "voice"
}
Да на х4 4090 это около 35 секунд, но!
Сам текст она достала нем немного ужасно, но с этим уже можно работать!
Я вас направил! Дальше я думаю вы знаете как использовать это в бизнесе и стартапах!
Forwarded from AI для Всех (Artemii)
This media is not supported in your browser
VIEW IN TELEGRAM
Снова ваш карманный AI-эксперт летал в Москву и вместе с командой @red_mad_robot рассказывал и обучал.
Речь как всегда, шла вокруг LLM и GenAI
Как вывод: сейчас всё меняется очень быстро
Полгода назад мы рассказывали про Naive RAG, а сегодня про MAS, MCP Deep Research и LLaDa
Что ж, попрактиковался с микрофоном, были очень интересные вопросы!
Речь как всегда, шла вокруг LLM и GenAI
Как вывод: сейчас всё меняется очень быстро
Полгода назад мы рассказывали про Naive RAG, а сегодня про MAS, MCP Deep Research и LLaDa
Что ж, попрактиковался с микрофоном, были очень интересные вопросы!
Neural Deep pinned «Мои пет-проекты в AI: от идеи до 9000 MAU за год Я тут по-тихому разрабатываю через Claude инструменты, которыми пользуюсь каждый день сам, и по недавней выгрузке имею ~9 000 активных пользователей в месяц Некоторым проектам меньше месяца, некоторым больше…»
This media is not supported in your browser
VIEW IN TELEGRAM
С 8 марта, вас ожидает чело́век павук