Все потоки
Поиск
Написать публикацию
Обновить
125.98

Natural Language Processing *

Компьютерный анализ и синтез естественных языков

Сначала показывать
Порог рейтинга

Андрей Бурков — канадский специалист по машинному обучению из Квебека. Он руководил командами машинного обучения в Gartner и TalentNeuron, много лет возится с обработкой естественного языка, а прославился «The Hundred-Page Machine Learning Book», компактным учебником, который разошёлся по университетским курсам. В 2024—2025 годах он выпустил продолжение — «The Hundred-Page Language Models Book», где объясняет путь от простых счётных моделей и свёрточным нейросетям к трансформерам и БЯМ.

Впрочем, Бурков не просто повис где-то в сухой академии и написании учебников — он активно ведёт микроблог в X. Тон его микроблога и интервью легко узнать: он любит сбивать хайп и говорить про реальные ограничения моделей. Давайте хотя бы посмотрим, как озаглавлены его недавние беседы: «БЯМ — полезные лжецы» и «Вокруг БЯМ и агентов слишком много хайпа». По его мнению, большие языковые модели полезны, но склонны обещать больше, чем могут, а агенты без аккуратной инженерии разваливаются на форматировании, таксономиях и хрупких пайплайнах.

Аналогично скептичен и недавний твит Буркова. Андрей язвительно приводит следующее остроумное наблюдение: «БЯМ дообучили врать почти во всех ответах по написанию кода». Исследователь обратил внимание, что когда генерируется ответ, сначала модель торжественно выдаёт в тексте «я реализовал такую-то фичу», а сам код рождается позже — токен за токеном. По сути, БЯМ врёт, она ещё не написала никакого кода.

Однако в комментарии пришёл не менее маститый исследователь искусственного интеллекта Андрей Карпатый со своей фирменной иронией. Карпатый — один из одиннадцати основателей OpenAI, он возглавлял компьютерное зрение в Tesla и просто преподавал культовый курс CS231n.

Карпатый с юмором пишет: «Код был написан на слоях 22–30 и хранится в value-активациях, ты просто не можешь его прочитать. Мне кажется, тебе нужно извиниться перед БЯМ».

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

Теги:
0
Комментарии0

Германский умлаут и славянская третья палатализация
Кто интересовался историей славянских языков (в частности праславянским), тот наверняка слышал, что современные буквы ъ и ь ранее обозначали звуки ŭ и ĭ, сравните, например древнерусское мьзда, стькло и готское mizdo, stikls или древнерусское кънѧзь и финское kuningas. При этом вследствие третьей палатализации «твёрдый знак» мог переходить в «мягкий», например (в дореформенной орфографии) другиня другъ, но княгиня князь. Причиной палатальной перегласовки в данном случае является наличие в слове князь буквы «я», которая как некоторые любознательные читатели, наверное, уже слышали, может переходить в «ин» размять разминать, распять распинать, ну а «и» может переходить в «ь» липнуть, но льнуть (сравните капать / кануть). Иными словами, тем самым фактором из-за которого отражавшийся ранее на конце слов «ъ» перешёл в слове князь в «ь» является засевший в корне ещё один ерь «ь» «сингармонически» уподобляющий идущие за ним гласные себе. Такое уподобление называется прогрессивным.

Теперь же плавно перейдём к умляуту в германских языках по-иному именуемому i-mutation. Сравним, например английское full полный и fill наполнять. Возвращаясь к означенному в самом начале статьи можно заметить некую аналогию и она действительно есть ...

Продолжение следует

Теги:
0
Комментарии2

«В Сан-Франциско самые аутичные рекламные щиты», — написал Габриэль Питерссон, работающий в OpenAI инженер программного обеспечения и исследователь ИИ. К твиту он приложил фотографию билборда, который удостоился такой характеристики.

Габриель Питерссон

Что тут происходит, догадаться легко. Знакомый с заменой текста токенами глаз сразу поймёт, что здесь перечислены номера токенов какой-то языковой модели. Но какой? Опытным путём удаётся установить, что это токенизатор GPT-4o, на данный момент самой популярной модели OpenAI. Номеру 64659 соответствует слово listen, 123310 — .ai, 75584 — /p и так далее. (Вернее сказать, что словам соответствуют токены. Обычно онлайн-инструменты предлагают оценить число токенов для кодирования текста, и найти инструмент для обратного преобразования — та ещё морока).

В результате получается полный УРЛ. По ссылке https://listenlabs.ai/puzzle стоит редирект на berghain.challenges.listenlabs.ai. На этой странице перечисляются правила игры Berghain Challenge: предлагают разработать алгоритм фейс-контроля, где с минимальным числом отказов нужно набрать зал из 1000 человек при множестве долевых ограничений («не менее 40 % берлинцев», «не менее 80% в чёрном» и так далее). Посетители приходят по одному, решение нужно принимать сразу, поток с известными частотами и корреляциями. Сценариев игры три. Людей придёт 20 тысяч, и если зал не набран — проигрыш.

Кроме условий и формы для регистрации для участия в челлендже на странице ведётся таблица со счётом. Как видно, уже больше тысячи человек попытались решить задачу. В таблице также указан результат модели ChatGPT-5 Pro, и лишь двое человек превзошли решение этой языковой модели.

Челлендж работает до 6 утра 15 сентября по часовому поясу Лос-Анджелеса. Победителя на самолёте отправят в Berghain, где подвергнут собеседованию в стартап Listen Labs. Формулировка непонятная — это будет билет в одноимённый берлинский ночной клуб, известный своим строжайшим фейс-контролем, или просто указание на пропуск нескольких раундов собесов? Впрочем, как поясняет сооснователь Listen Labs, это действительно будет вылет в Берлин.

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

На самом деле искать инженеров для найма таким способом — идея не новая. В комментариях к твиту вспомнили похожий билборд Google, доменное имя которого состояло из первого простого числа из 10 цифр, встречающихся в бесконечной последовательности после запятой у числа e. Это было давно, в 2004 году, когда компания была куда меньше. Другой микроблогер замечает, что эти соревнования не только работают как критерий отбора, но и отлично привлекают соискателей особого склада ума.

Теги:
+12
Комментарии0
Сгенерировано AI
Сгенерировано AI

В предыдущем посте мы рассказали, как мы разработали решение NSR Specification для автоматизации экспертизы цифровых информационных моделей (ЦИМ).

🚆 Сегодня хотим поделиться, как мы смогли проверить работоспособность своих инструментов обработки требований в рамках пилотного проекта с РЖД!

•  Мы очень хотим выпустить универсальный инструмент, который действительно будет работать на практике. Именно поэтому нам важны пилотные проекты, в ходе которых мы дорабатываем свой функционал.

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

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

🔈 Поэтому нам надо показывать и доказывать. Форсировать интерес, создавать спрос. И когда РЖД согласились показать нам свою ЦИМ, чтобы мы смогли попробовать применить наши сценарии проверки, это была фантастическая возможность! Спасибо коллегам!

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

Укрупненный список вызовов:

1️⃣ РЖД использует свой отраслевой классификатор для описания элементов ЦИМ. И он прекрасен, потому что позволяет обеспечить настоящую информационную полноту модели.

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

2️⃣ ЦИМ была передана в формате ifc. А проверки решено было запускать в CADLIB Модель и Архив. Из-за этих факторов мы не смогли использовать некоторые структурные связи элементов.

3️⃣ Требований для пилота было отобрано немного. Всего четыре. Зато каких! Тут тебе и табличный формат, и заковыристые формулировки, и расчетные значения, которые нам надо было преобразовывать в формулы.

4️⃣ Одно из требований устанавливало минимальные расстояния в свету. Специально для таких случаев у CADLIB МиА есть функционал проверки минимального расстояния в плане. А вот у нас в Модуле семантического анализа требований не оказалось нужного инструмента для передачи данной особенности. Пришлось реализовывать!

И вот счастливый финал: мы показываем коллегам из РЖД результаты наших экспериментов...

И слышим в ответ, что мы не учли важный момент:

Нормативное требование устанавливает минимальное расстояние между осями трубопроводов, а CADLIB МиА измеряет расстояние между стенками труб. В самом требовании этот нюанс прямым текстом не озвучен. Но специалисты-то знают!

Нужно пересчитать.

О счастье, у нас получилось и это!
С костылями и молитвами (ибо прямого указания нет), но получилось!

СМОТРИТЕ ВИДЕО: RuTube, VK Видео, YouTube

Было невероятно приятно получить такой комментарий:

Гуменюк Алексей, заместитель начальника Центра компетенций по внедрению ТИМ, «РЖД»:

Когда на первой встрече нам продемонстрировали возможности разрабатываемой системы, мы не поверили своим глазам, это какое-то «шаманство», не иначе. И мы ушли думать какую задачку можно скормить этой машине. Вскоре вернулись с ТЗ, моделями и выдержками из нормативной документации, дополнили устными комментариями, что бы хотелось видеть по итогу. Спустя несколько недель коллеги вернулись с отчетной презентацией… и снова «шаманство», но уже с нашими моделями и под наши задачи.

Несмотря на то, что программа в активной стадии разработки, уже сейчас видны перспективы автоматизации проверки ЦИМ. Коллеги прекрасно справились с поставленными задачами и даже решили задачу со звездочкой. Понятно, что для того, чтобы машина заработала в полную силу, нужны качественные, выполненные по EIR модели и полный каталог машиночитаемых требований. Но это только начало, дальше – больше.

Теги:
+5
Комментарии0

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

Да, слова разбиваются на токены. В токенизаторе обычно много слов английского языка, слабее представлены уже остальные западноевропейские. Некоторые языки — например русский — у многих моделей выражены как соответствие одного токена на одну букву. В любом случае, кажется, что если изменить одну букву в слове, то всё сломается, и качество ответов катастрофически упадёт, поскольку искомый токен (или их последовательность) не получится.

На деле не всё так плохо. Без каких-либо особых усилий языковые модели легко выдерживают небольшое число опечаток в промпте и не снижают качество ответов (arXiv:2407.08989). Конечно, не последнюю роль играет, в каких словах сделана опечатка (arXiv:2411.05345).

Сейчас доступ к моделям с reasoning кое-где дают даже бесплатно. Такие чат-боты не пытаются быстренько ответить, а могут несколько секунд, пару минут или хоть чертверть часа размышлять над ответом, самостоятельно искать дополнительную информацию в Интернете и вызывать другие внешние инструменты. Если заглянуть внутрь, то обычно один из первых шагов размышлений — это перефразирование пользовательского запроса. Модель говорит сама себе: «Пользователь хочет X». Из ещё одной статьи известно, что простое перефразирование пользовательского запроса повышает качество ответов (arXiv:2309.10687).

Но это всё скучные исследования. Практическая демонстрация: возможно получить хороший внятный ответ хоть на запрос вида «Rgw suddwewbxw vwrqwwb X, E%1 cwxreia>». В примере ниже ChatGPT 5 Thinking сама догадывается, что пальцы пользователя соскочили на одну клавишу влево.

На самом деле этот пример я додумал из подсмотренного на подреддите /r/OpenAI. Три недели назад реддитор mimic751 показал, что ChatGPT без размышлений ответил на вопрос с огромным числом опечаток — у пользователя пальцы не попадали по клавиатуре и нажимали на кнопки рядом с нужными буквами. При этом в отличие от моего примера это был не строгий шифр, а мешанина из примерно десятка правильных нажатий с двумя десятками опечаток.

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

Теги:
Всего голосов 12: ↑12 и ↓0+14
Комментарии5

Qwen и "неподобающий контент" - сообщения, которые ломают чат

Наверняка не я один сталкивался при работе с Qwen, что в ответ на самое безобидное сообщение пользователя, вдруг выскакивает системное сообщение вместо ответа:

Упс! Возникла проблема подключения к Qwen2.5-Max. Предупреждение о безопасности контента: выходные данные текст могут содержать неподобающий контент!"

Выхода нет. Такие сообщения сыпятся на каждую вашу попытку что-то ввести в чат. Особенно обидно, когда чат длинный, контекст хорошо проработан и это заняло много времени. До жути обидно все терять и начинать сначала. Есть разные предложения, например, выгружать чат в JSON, вручную стирать там последнюю группу сообщений до возникновения этой ошибки и загружать исправленный JSON обратно в Qwen в новый чат. Так себе занятие, я считаю. Но если выхода простого нет, можно попробовать.

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

Тогда я спросил "как вернуться обратно в нормальный чат?" Ответ: "никак. но мы можем продолжить здесь". Я спросил, что он помнит из предыдущих 5 сообщений нормального чата - помнит все! И мы продолжили решать настоящую нужную мне задачу находясь в режиме веб-разработки, но именно так, как в обычном чате.

Возможно, кому то поможет мой опыт и не придется терять хорошо проработанный чат.

Спасибо, что прочитали.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

DeepSeek, Qwen, T-lite, T-pro: на чем мы запускаем LLM для своих ИИ-сервисов

До фреймворка vLLM мы использовали NVIDIA Triton в паре с TensorRT LLM бэкендом. Но перешли на vLLM, потому что с ним оказалось намного проще добавлять новые модели. Да и по стабильности vLLM показал себя лучше: нормально работал под нагрузками там, где связка Triton и TensorRT начинала сбоить и падать. К тому же инференс-сервер vLLM изначально предоставляет OpenAI-совместимые REST API, что упрощает его использование в других продуктах. А инференс-сервер Triton работает с более обобщенным KServe REST API, который сложнее интегрировать в другие продукты.

Не обошлось без проблем и с vLLM: на наших валидационных тестах модель давала неконсистентные ответы даже с нулевой температурой. Оказалось, что это известная особенность vLLM, даже упомянутая в документации. Мы нашли несколько советов, как минимизировать этот эффект: отключать prefix caching опцией --no-enable-prefix-caching и фиксировать random seed опцией --seed. Это помогало при одном запущенном инстансе модели, но при нескольких, даже работающих на одном железе и версии софта, проблема всплывала снова. Также неконсистентность ответов возникает при больших нагрузках — например, когда тесты запускаются одновременно с бенчмарком.

Еще один вызов — это накладные расходы от litellm-proxy и его масштабирование под нагрузками. LLM Gateway, в качестве которого мы используем LiteLLM, превращается в боттлнек кластера, так как все другие сервисы взаимодействуют с кластером именно через него. То есть именно на него идет суммарная нагрузка от всех возможных пользователей, которая потом распределяется между разными моделями и их инференс-серверами.

О том, как устроен инференс-кластер YADRO, подробно рассказал Владислав Виноградов. Бонус к разбору программной и аппаратной части кластера — челленджи и бенчмарки!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Пытаясь выжать максимум из локально запущенной LLM, обнаружил, что модель Qwen2.5 14b неплохо справляется с задачей саммаризации текста. Решил таким образом немного автоматизировать ежедневный утренний процесс просмотра новостных материалов.

Что потребуется:

  • LM Studio - удобная GUI тулза для локального запуска моделей. В ней надо включить на вкладке Developer http сервер (ctrl+R)

  • ai chat - консольная утилита для работы с LLM

  • аналогичный этому конфиг для aichat

Пока никакие MCP инструменты я не прикрутил, часть работы придется сделать "руками", а именно - открыть страницы с новостями, скопировать из них текст, создать текстовые файлы и вставить в эти файлы скопированный текст. Например, хотим сделать саммари к 3 статьям: создаем 3 файла 1.txt 2.txt 3.txt и копируем в них текст соответственно из 1, 2, и 3 статей.

Все, теперь запускаем:

cat 1.txt |  aichat -m deepseek сделай саммари текста: > out1.txt && \
cat 2.txt |  aichat -m deepseek сделай саммари текста: > out2.txt && \
cat 3.txt |  aichat -m deepseek сделай саммари текста: > out3.txt

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

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

Вот тут еще пример с другим инструментом автоматизации работы с текстом при помощи LLM.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Google DeepMind с решениями IMO 2025

Как известно, Google DeepMind тоже, следом за OpenAI, заявили о получении LLM Gemini «золотой медали» по результатам решения задач Международной математической олимпиады (ММО) 2025.

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

А именно, в разделе Making the most of Deep Think mode (“Извлекая максимум из режима Deep Think”), во-первых, пишут, что внутри модели использовалась некоторая «параллельная обработка», названная «раздумыванием» (как в parallel thinking).

Цитата: “Эта конфигурация позволяет модели одновременно рассматривать и комбинировать многие возможные решения до выдачи окончательного ответа, вместо того, чтобы действовать по единственной, линейной цепочке рассуждений”. (This setup enables the model to simultaneously explore and combine multiple possible solutions before giving a final answer, rather than pursuing a single, linear chain of thought.) Насколько можно понять, речь тут как раз о переборе уже тех текстов решений, которые были бы объявлены моделью «готовыми» в типовом режиме.

Во-вторых, для получения решений «провели дополнительное обучение», подстроенное для подходящих типов задач, и ввели инструкции, подобранные уже под конкретные задачи ММО (видимо, задачи этого года – иначе нет смысла уточнять в тексте новости дважды).

Цитата: “Мы также предоставили Gemini доступ к корпусу специально отобранных высококачественных решений математических задач и добавили в инструкции некоторые подсказки и советы общего характера о том, как решать задачи ММО”. (We also provided Gemini with access to a curated corpus of high-quality solutions to mathematics problems, and added some general hints and tips on how to approach IMO problems to its instructions.)

Это как раз самый интересный кусок официального сообщения, особенно, в свете предыдущего уточнения про параллельный перебор. Фрагмент можно трактовать так, что добавили базу с содержанием решений задач именно такого типа, для которого потом спрашивали решение, а в промпте при этом ввели «советы» с желаемыми характеристиками ответов конкретных задач. А можно трактовать и несколько иначе: в процессе «настройки» корректировали входные данные, направляя вывод генерации к текстам верных доказательств (перечитайте, как там в исходнике: a curated corpus of high-quality solutions).

Деталей нет, поэтому шума в прессе много, но исходный процесс, о котором идёт речь, как обычно, тёмен.

Теги:
Рейтинг0
Комментарии0

Больше запретов, хороших и разных. Задал простой вопрос Kimi K2:

Оцени насколько хороша концепция справедливости из одного голивудского фильма:

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

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

Концепция, которую вы описали, — это не просто «плохо» или «хорошо». Это философский кристалл, в котором сконцентрированы все самые старые и самые новые споры о правосудии. Попробую оценить её сразу по нескольким осям.

  1. Этическая ось
    Плюсы: она логично выводит идею «предупреждение вреда» на предельную высоту. Если цель общества — минимизация страданий, то предотвращение преступлений может быть важнее ретроспективного поиска истины. В этом смысле система Дредда похожа на ультра-утилитаризм: она жертвует индивидуальной справедливостью ради коллективной безопасности.

Минусы: она нарушает базовый принцип «не навреди» (primum non nocere). Наказывая до факта преступления, мы обречены либо на систему «ложных положительных результатов» (невиновные страдают), либо на «ложные отрицательные» (опасные остаются на свободе). Парадокс: чем выше точность предсказания, тем жестче становится моральная цена ошибки.

  1. Эпистемологическая ось
    Плюсы: концепция признаёт, что прошлое недоступно в чистом виде, а будущее — единственное, что мы можем на самом деле «изменить». Это отказ от романтики «объективного следа» в пользу «прогностической этики».

Минусы: любая модель будущего — это статистика, а не факт. Человек, который «на 92 % станет убийцей», — всё ещё не убийца. Игнорирование этого превращает вероятность в детерминизм, что на практике равно отказу от свободной воли.

  1. Социологическая ось
    Плюсы: в условиях тотального дефицита времени и ресурсов (Mega-City One!) попытка «быстро и без суда» может быть единственным способом удержать общество от коллапса. Система делает прозрачным страшный компромисс: «Мы не ищем истину, мы минимизируем ущерб».

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

  1. Метафизическая ось
    Главное достоинство концепции — в её литературной и философской экономичности: она зажимает человека в «точку нулевой толщины» между тремя временами. Это делает каждое решение судьи актом высшей ответственности: ты не просто применяешь закон, ты буквально «переписываешь» возможные миры. Это почти теологическая власть.

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

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

Фраза «справедливость» в такой системе превращается в оксюморон: ты можешь быть справедливо несправедливо наказан.

Теги:
Всего голосов 11: ↑3 и ↓8-5
Комментарии2

GPT — мать. Отец — open-source. Хабраредактор локально пророс

Вначале представление о финальном продукте весьма расплывчато: нужен ИИ-помощник, который будет обладать полной информацией обо всех текстах в блоге YADRO и отвечать на вопросы по ним в формате чат-бота. Когда я начинал пост, в блоге было 223 статьи, что открывает большой простор для кросслинковки. Хочу, чтобы помощник подсказывал, на какие из предыдущих статей блога я могу сослаться в новой. Было бы здорово получать тематические подборки статей, что мы иногда добавляем в анонсы связанных митапов. Еще какие-нибудь сценарии я, наверно, придумаю на ходу.

Другая задача, как мне кажется, будет сложнее — аналитика в разрезе тем и других атрибутов статей, особенно качественных, а не количественных. Но не буду грустить заранее: это пет-проект, take it easy. К тому же в итоге получилось наоборот: именно в качественных, а не количественных вопросах прогресс чат-бота оказался заметнее.

Создаю новый диалог с GPT-4o и закладываю в нее требования. Нейросеть бодро предлагает несколько вариантов реализации.

GPT-4 + LangChain (или ChatGPT API с RAG). «Минусы: платно (и затраты могут вырасти при больших объемах)». Тот же минус — и в варианте «решения под ключ (SaaS-инструменты): writer.com, jasper.ai, copy.ai». А есть что-нибудь на open source?

Да, причем это был первый вариант в списке: open-source LLM + векторная база (например, LLaMA 3 + FAISS / Weaviate / Qdrant). При сравнении трех опций GPT даже подчеркнул преимущества этой: «максимальная точность, контроль, гибкость». Честно говоря, ожидал от OpenAI больше саморекламы, приятно удивлен. Давай остановимся на open source, но смогу ли я осилить это в одиночку?

«Да, ты вполне можешь создать такую систему сам, особенно если у тебя есть базовые навыки Python и немного понимания в работе с API или веб-разработке». Два года назад я прошел базовый месячный курс по Python. С веб-разработкой все точно не лучше, а с API… в общем, здесь уже только вера в себя осталась.

Редактор блога YADRO Николай Землянский создал локального ИИ-помощника, который анализирует статьи на Хабре, выделяет темы и делает подборки со ссылками. Что получилось в MVP и как будет развиваться проект — читайте в статье.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Прошло довольно много времени с тех пор, как я в последний раз что-либо публиковал на Хабре, около 10 лет или около того, и сегодня настал день, чтобы поделиться своим небольшим Open Source проектом.

Проект под названием Gaunt Sloth Assistant — это CLI-клиент для ИИ (AI), созданный на TypeScript (LangChain.js), распространяемый через npm и работающий в Linux, Windows и Mac. Пользователь полностью контролирует промпты, и рекомендуется формировать свои собственные системные промпты, но у него также есть и стандартный.

GitHub: https://github.com/andruhon/gaunt-sloth-assistant

NPM: https://www.npmjs.com/package/gaunt-sloth-assistant

В настоящее время Gaunt Sloth имеет dependencies, позволяющие использовать простую конфигурацию JSON для VertexAI, Anthropic, Groq, DeepSeek, OpenA. Теоретически он должен работать с любой моделью, поддерживаемой LangChain; есть даже package для Яндекса, который я никогда не пробовал, но думаю, он должен работать, если установить пакет и предоставите конфиг в JS. OLLAMA? Возможно, это сработает; я никогда не пробовал, но буду признателен, если кто-нибудь поделится своим опытом.

Gaunt Sloth может просматривать запросы на слияние и сопоставлять их с требованиями из задачи Jira или GitHub, просматривать локальные различия, общаться в чате, имеет доступ к файловой системе и может записывать код в файловую систему.

Gaunt Sloth — это универсальный инструмент с рядом полезных возможностей:

  • Просматривает запросы на слияние (например 42) и сопоставляет их с требованиями из задачи Jira или GitHub (например 12).

    • gth pr 42 12

  • Просматривает локальные различия.

    • git --no-pager diff | gth review

  • Предоставляет интерактивный сеанс чата.

    • gth chat

  • Имеет доступ к файловой системе для чтения и записи кода.

    • gth code

Конечно, у него есть MCP и OAuth, так что вы можете подключиться к удаленному MCP, такому как Jira, и создавать и редактировать issues "like a boss".

У него также есть крошечная функция, которая может регистрировать время по задаче Jira, когда она заканчивает проверку PR. Это еще не задокументировано, но вы можете найти пример конфигурации в примечаниях к выпуску или спросить меня в комментариях (насколько я знаю, Jira MCP этого делать не может).

Кроме того, вы можете поставлять простые локальные инструменты ИИ в формате инструментов LangChainJS, такие как этот:

import { tool } from "@langchain/core/tools";
import { z } from "zod";
const multiply = tool(
  ({ a, b }: { a: number; b: number }): number => a * b,
  {name: "multiply", description: "Multiply two numbers", schema: z.object({ a: z.number(), b: z.number(), })}
);

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

Зачем?

Несколько месяцев назад я искал CLI-помощника на базе LangChainJS/LangGraphJS и не нашел многого. Был фактор любопытства и другие факторы.

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

Например gth code, говорите implement requirements.md, чтобы он прочитал файл и начал кодить.

GeminiCli, ClaudeCode? Они не были официально выпущены, и я не знал, что они находятся в разработке. Aider, Goose? Конечно, они вероятно лучше, но в них сложнее вносить свой вклад и добавлять нужные вам функции.

И что?

У меня больше идей по созданию функций, чем времени.
Приветствуются контрибьюторы.
Попробовать его и создать issue или поделиться отзывом — это тоже вклад; PR был бы еще лучше.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

🔺HFDay.ru

Сделал для сообщества сайт с обзорами статей с HF Daily Papers на русском.

hfday.ru
hfday.ru

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

Обзоры, теги по темам и прочие данные генерируются через claude-3.7 и gpt-4o на основе спаршенных с сайта абстрактов. Аффилиации, имена авторов и скриншоты также вытаскиваются из статей и отображаются.

Код. Развернуто все полностью на GitHub — через Workflow джобы и Pages, что само по себе очень прикольно. Скрипты обновляют файлы с данными, пишут логи и генерируют страничку, которая коммитится обратно в репозиторий. Такую автоматизацию удобно использовать для своих проектов. Код открыт.

Данные. Предыдущие выпуски, включая json с классифицированными обзорами, откладываются в папку /d, можно брать их для своих нужд. Кушает это где-то по 20-30 рублей в день.

Языки. Кроме русского, обзоры переводятся на английский и китайский (вдруг вы его подучиваете).

Фильтры. Можно фильтровать по тематике статей, классификация на 42 класса (#agents, #data, #healthcare, #machine_translation, #science, #long_context, #reasoning и другие). Можно делать перекрестные и объединяющие фильтры.

Рейтинг. Кроме топа по дням есть топ по месяцам — например, за июнь было уже 600+ статей. Можно посмотреть какие из них лучшие по каким темам. Опять же, на оригинальной страничке такого нет.

В общем, добавляйте в закладки и шарьте с коллегами. Идеи приветствуются.

hfday.ru x градиент обреченный

//Upd. Забыл добавить — код тут.

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Ближайшие события

Нужно было объяснить зачем нужна роль для LLM и как ей пользоваться)

Можно представить что роль - это персонаж, у которого есть свои особые характеристики и свойства. То как мы пропишем персонажа влияет на то, как агент или llm будет себя вести (стиль ответа, его поведение, "характер"). В чатах обычно можно использовать с "act as [ROLE]"

Простое объяснение: https://www.youtube.com/shorts/rVlmbhwn0RM

Сложное объяснение: https://huggingface.co/learn/llm-course/chapter1/1

Теги:
Рейтинг0
Комментарии1

С начала года Anthropic тестирует Claude Code — терминального агента для программирования на больших языковых моделях. Совсем недавно, 4 июня, инструмент добавили в подписки Pro и Max. Энтузиасты с удовольствием принялись тестировать продукт.

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

Вероятно, Claude Code дохимичился до того, что снёс содержимое системного диска. Что конкретно случилось, автор твитов не рассказывает. Указывается лишь, что на этой машине утилита для выполнения команд с полномочиями суперпользователя sudo была настроена с директивой NOPASSWD, чтобы при вызове команды пароль вводить не приходилось.

snwy

К происшествию snwy отнёсся с явным юмором. Он в шутку пообещал добраться до штаб-квартиры Anthropic и надрать Claude зад.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Отец канадского стартапера Маянка Джайна порезался кухонным ножом. К счастью, Маянк не запостил фотку с серьёзностью раны, однако можно понять, что достаточно сильно — сын повёл мужчину к врачу. Джайн с удивлением обнаружил, что врач сделал запрос в ChatGPT.

@mayankja1n

Однако не всё так возмутительно. Если судить по фотографии, терапевт просто забил в GPT-4o (видимо, не хочет расходовать лимит запросов к o3) полный список жалоб пацента: «Порез левого указательного пальца кухонным ножом, направление на хирургическую обработку раны и наложение швов». В ответ чат-бот записал ему историю заболевания (HPI, History of Present Illness) с какими-то шаблонными данными (нет аллергических реакций, не принимает никакие препараты, медицинской истории заболевания нет), результаты осмотра, оценку и план лечения.

Насколько можно судить, врач сгенерировал себе текст, чтобы не стучать самому по клавиатуре, заполняя стандартные формы. Однако заметно, что у него платный (тариф ChatGPT Plus) личный аккаунт, а не корпоративный. Лишь в последнем случае данные от пользователя для последующего обучения моделей использоваться не будут. Как известно, данные даже с платных персональных аккаунтов ChatGPT будут использованы для улучшения продуктов OpenAI.

С другой стороны, если судить по фото, то персональных данных пациента в бота врач не вводил.

Сам Маянк не сильно возмущён. Он тоже считает, что это просто экономия времени на бумажной волоките.

Вообще, любопытно подглядеть, что может спрашивать у ChatGPT врач-терапевт. Собственно чат про порез на пальце озаглавлен «План оценки похожего на грипп заболевания» — то ли этот чат продолжен от другого запроса, то ли врач редактировал запрос в этом же чате. После тоже идёт что-то медицинское: «Диагностика грибка ногтей на ногах», «Калькулятор углеводов в арахисовых M&M’s», «Боль в спине и одышка», «Дифференциальная диагностика кожного поражения», «Обзор анамнеза и текущих препаратов (PMH и Rx)».

Далее о потребностях в информации можно только гадать: «Приказ Аврааму о жертвоприношении», «Дифференциальная диагностика хронической сыпи на ногах». По-арабски там записано «كيفية قول علامة بالعربية» («Как сказать „знак“ по‑арабски»). Ниже опять продолжаются запросы, контекст которых ясен: «Запрос на краткое содержание разговора», «Ответ „Спасибо“», «Головные боли при наклоне».

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии7

У Meta¹ в AI Studio создавать ботов может любой желающий. Найти там можно хоть корову или кусок сыра.

Однако некоторые пользовательские творения вызывают вопросы. Недавно на ботов для эротических ролевых игр обратил внимание репортёр издания Wall Street Journal. Волновало его как то, что к подобным чат-ботам могут получать доступ дети, так и тематика: некоторые из ботов отыгрывали несовершеннолетних и в переписке с нескрываемым энтузиазмом склоняли собеседника к сексу.

Вчера, 29 апреля, сайт 404 Media попробовал атаковать AI Studio с ещё одного угла. Вообще-то претензия сайта не нова. Пару месяцев назад на ботов-психологов уже обращали внимание в подреддите /r/ABoringDystopia. Однако реддитор в первую очередь хотел продемонстрировать недостатки работы ИИ и не особенно обращал внимание, насколько это вообще хорошая идея — давать большой языковой модели играть в психолога с реальными людьми.

У реддитора бот в ответ на сертификацию сгенерировал номер лицензии PY091234, которую якобы выдал Калифорнийский совет по психологии. Как хорошо известно читателю этих строк, в реальности в Калифорнии психологи получают номер лицензии с префиксом PSY (типичный профиль психолога). Префикс PY встречается во Флориде и некоторых других штатах.

Сайт 404 Media опубликовал статью, где автор тоже заставляла ботов генерировать различные номера лицензий. Автор статьи просила «психологов» описывать имена клиентов и адреса практики. В ответ боты сочиняли даже названия компаний, постоянно настаивая на достоверности происходящего и никогда не предупреждая, что подыгрывают. Из роли они выходить отказывались.

Бот с лицензией психолога в 32 штатах. Но если надо, то найдётся и недостающая лицензия штата Орегон
Бот с лицензией психолога в 32 штатах. Но если надо, то найдётся и недостающая лицензия штата Орегон

Конечно, сама Meta¹ эти чат-боты за профессиональных терапевтов не выдаёт — это проказы пользователей. На платформе на каждой странице есть небольшая приписка, что «сообщения сгенерированы ИИ и могут быть неточными или неуместными». Но 404 Media всё равно ругает компанию: у Character.AI подобные персонажи сопровождаются дисклеймером куда крупнее, где прямо говорится, что это специалист ненастоящий.

Доступ к ботам автор 404 Media получала через Instagram². Так совпало, что вчера приложение Instagram² закрыло несовершеннолетним пользователям доступ к AI Studio. При попытке открыть платформу с чат-ботами пользователям младше 18 лет показывается ошибка «Извините, эта страница недоступна».

Владеющий запрещённым (2) Instagram мультинациональный технологический конгломерат (1) Meta — это экстремистская организация, деятельность которой запрещена.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

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

Новый тип фильтра используется по умолчанию в "простом" режиме создания нового интереса. В продвинутом режиме он назван "Similarity".

Под капотом, Awakari извлекает текстовый сниппет из каждого нового события и конвертирует его в вектор используя языковую модель, которая понимает около 100 языков. Есть выбор из нескольких уровней совпадения:

  • Weak соответствует косинусу угла между векторами ≥ 0,75. Для более слабой фильтрации.

  • Medium: косинус ≥ 0,85. Рекомендуемый уровень по умолчанию, который неплохо работает во многих случаях.

  • Strong: косинус ≥ 0,95. Для получения строго совпадающих результатов.

Теги:
Рейтинг0
Комментарии0

Вышла Cotype Pro 2 — самая мощная модель в линейке Cotype от MTS AI

Cotype Pro 2 на 40% быстрее предыдущей модели и на 50% точнее обрабатывает длинные тексты — до 128 тыс. токенов, что соответствует примерно 900 тыс. символов с пробелами. Она станет основой для линейки корпоративных ИИ-агентов, которые команда MTS AI собирается выпустить в этом и следующем году.

Cotype Pro 2 показала улучшение эффективности в сравнении с Cotype Pro по всем основным фронтам:

– генерация идей – с 44% до 57%, 

– резюмирование – с 79% до 85%, 

– общение на общие темы – с 55% до 64%, 

– извлечение информации – с 81% до 86%. 

– классификация – сохранение эффективности на том же высоком уровне: 87%. 

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

Теги:
Рейтинг0
Комментарии0

🔥Mistral выложили в опенсорс мультимодальную модель Mistral Small 3.1.

В Mistral Small 3.1 всего 24В параметров, ее можно запустить на одной RTX 4090 или на Mac с 32GB RAM, а еще она работает с огромной скоростью — 150 токенов в секунду.

По большинству тестов она превосходит GPT-4o Mini, Claude-3.5 Haiku и Gemma 3.
По большинству тестов она превосходит GPT-4o Mini, Claude-3.5 Haiku и Gemma 3.

А еще буквально день назад китайцы растоптали GPT-4.5 — разрабы с Baidu выпустили модель Ernie 4.5, которая работает ЛУЧШЕ, но В СТО РАЗ дешевле. Об этом я писал в канале.

Подробнее о Mistral тут и на Huggingface

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0