Интересно, учитывая недавние достижения в области больших языковых моделей (LLM), возможно ли анализировать посты и историю чтения пользователя, чтобы формировать для него ленту рекомендаций?
Это было бы отличным решением для нашего сценария использования, ориентированного на вопросы и ответы (Q&A). У нас много различных категорий, активные пользователи (коллеги) и огромное количество крайне полезной информации, которую они просто не увидят. Хороший список рекомендаций помог бы некоторым из наших пользователей быть на шаг впереди проблем, которые они пытаются решить.
Нам бы хотелось видеть список, состоящий из распространённых, значимых и горячих багов, о которых говорят люди, связанных с инструментами и темами, к которым пользователь уже проявляет интерес.
Если сайт общедоступен, не могли бы вы поделиться ссылкой на него?
Как пользователь функций Discourse AI, многие из которых я использовал ещё до их официального выпуска, я очень заинтересован в том, чтобы узнать больше о вашем сайте. Понимание конкретных деталей, которые вы отметили, поможет мне давать более обоснованные рекомендации по Discourse AI, учитывая уникальные особенности вашей платформы.
Очень бы хотелось, но, к сожалению, это крупная внутренняя корпоративная инстанция
Однако я могу попробовать объяснить, что именно мы делаем.
Контекст
По сути, это внутренний аналог Stack Overflow, где мы обсуждаем специфичные для компании и отрасли вопросы, например: «Как, чёрт возьми, настроить прокси для этого?» или «Я не могу найти никаких результатов по Bug123 в Google, кто-нибудь уже решил эту проблему?»
Наши категории привязаны к конкретным инструментам, например:
Kubernetes
GitLab
Глючные продукты IBM с самым ужасным интерфейсом, который вы когда-либо видели
Чем может быть полезен список рекомендаций?
В настоящее время, если я читаю или отвечаю на тему в категории GitLab, которая касается интеграции с другими инструментами, такими как Kubernetes, я не получаю уведомлений о связанных темах. Поэтому, если в категории Kubernetes появится очень полезный пост, я могу увидеть его слишком поздно. Мне приходится искать его самостоятельно или подписываться на правильные уведомления.
У большинства наших пользователей не будут оптимально настроены уведомления:
Они находятся под давлением и должны быстро получать результаты.
Они не проводят на платформе достаточно времени, чтобы максимально эффективно настроить уведомления.
Список рекомендаций мог бы предоставлять потенциально полезную информацию по требованию в один клик. По сути: «На основе ваших недавних интересов вот несколько тем, которые могут вам помочь». Его можно формировать на основе истории поиска пользователя, популярных тем, общих ключевых слов в темах, в которых он участвует, и т. д. Таким образом, если пользователь никогда не посещает категорию «Глючные продукты IBM», ничего из этой категории не будет рекомендовано, если только это не касается чего-то, что уже вызывает у него сильный интерес, например, GitLab.
На этом сайте вверху я предоставляю ежедневную сводку «daily buzz» на основе ИИ, которая обновляется каждые 12 часов и включает посты за последние 2 дня.
Решение является проприетарным и не представлено в виде общедоступного плагина, однако оно демонстрирует саму концепцию.
И да, оно подвержено ошибкам!
Я давно собирался добавить возможность ссылаться на контент… ОБНОВЛЕНИЕ: готово, потребовался GPT 4 Turbo и некоторая настройка промптов. GPT 3.5 не справляется с таким уровнем инструкций.
Спасибо, я не видел эту тему. Она могла бы оказаться полезной, если бы у нас изменились обстоятельства, но, к сожалению, она не соответствует нашим текущим ограничениям (о которых я, к сожалению, не упомянул ранее ).
Ограничения
Нельзя использовать чат
Нельзя использовать личные сообщения (PM)
Нельзя полагаться на ИИ для генерации ответов и их скрытой передачи нашим разработчикам — мы создаём программное обеспечение, критичное для безопасности
Именно эти ограничения делают список рекомендуемых тем отличным решением для нас: контент не генерируется, чат не используется, личные сообщения не применяются.
Это был бы интересный способ предоставлять ежедневную сводку. Как вы и сказали, гиперссылки определённо были бы отличной функцией. Вы думали о том, чтобы адаптировать её под уникальный набор интересов пользователя? Что сделало этот подход более привлекательным по сравнению с использованием существующего ежедневного дайджеста?
Подозреваю, что это самая сложная часть данного запроса, но именно здесь кроется огромная ценность.
Большинство платформ для размещения контента имеют какую-либо систему персонализированных рекомендаций, и было бы удивительно, если бы Discourse со временем не пошла по этому пути. Это, пожалуй, более достижимо, чем для таких платформ, как Spotify или YouTube, поскольку всё основано на тексте, что устраняет один уровень ошибок при переводе изображений или звука в объекты/текст/понятия.
Подойдите к запросу в первом посте более творчески. У вас есть множество допустимых ограничений, которые необходимо выполнить, но это не значит, что не существует потенциально более эффективных решений.
Кстати, о связанных темах. Честно говоря, за последние несколько дней я просмотрел их несколько тысяч и заметил это.
Стоит держать это на виду.
При просмотре множества постов в разделе «Связанные темы» на английском сайте (OpenAI) я начал замечать, что темы на испанском языке склонны группироваться вместе. Подозреваю, что если бы их сначала перевели на английский, у каждого поста был бы свой вектор, и они были бы сгруппированы с другими постами.
Мы всё ещё дорабатываем эту функцию (о её анонсе, вероятно, сообщим на следующей неделе), но наш новый инструмент Периодический отчёт с использованием ИИ полностью соответствует вашему видению:
Приведи ключевую статистику: топ пользователей, количество постов и тем
Перечисли около 10 интересных новых тем с кратким описанием активности за день
Перечисли около 10 интересных старых тем, которые набрали значительную активность в течение дня
Приведи сводку активности группы @team со ссылками на темы, которые они создали, прямо в тексте
Источники: ВСЕГДА подкрепляй утверждения ссылками на обсуждения на форуме
Использование Markdown: улучшай читаемость с помощью жирного, курсивного, > цитат и ссылок
Ссылки: используй https://meta.discourse.org/t/-/TOPIC_ID/POST_NUMBER для прямых ссылок
Упоминания пользователей: ссылайся на пользователей через @USERNAME
Добавляй много ссылок на темы: стремись добавить ссылки минимум на 30 тем. Идентификатор темы ничего не значит для конечных пользователей, поэтому если нужно добавить ссылку, используй ref или, что ещё лучше, просто встрой её в предложение
Категории и теги: используй формат #TAG и #CATEGORY для обозначения тегов и категорий
Теги Contribute > Bug очень важны для меня, обязательно обращай на них приоритетное внимание и не стесняйся выделять любые неправильно классифицированные баги, если такие найдёшь. НЕ упоминай, если баги классифицированы верно.
При предоставлении сводки по теме, делай это в виде абзаца, например:
Экспериментальная боковая панель навигации администратора - @martin представил экспериментальную боковую панель навигации для администратора, что вызвало обсуждения её дизайна и функциональности. Такие пользователи, как @packman и @Don, оставили отзывы об отсутствующих пунктах и проблемах отображения на мобильных устройствах, что @martin признал и рассматривает для будущих обновлений. Читать далее.
Список рекомендуемых тем - @Tris20 предложил добавить список рекомендуемых тем в верхнее меню, используя достижения в области LLM для подбора контента в соответствии с интересами пользователей. Разговор продолжился с участием @EricGT, @merefield и других, обсуждавших потенциал и сложности персонализированных рекомендаций. Читать далее.
Десять лет Discourse - Пользователи, такие как @Judy_Hawkins и @Quercus, выразили благодарность различным сообществам Discourse, повлиявшим на их жизнь, празднуя десятилетие платформы. Читать далее.
Плагин Locations - @Don сообщил о проблеме с плагином Locations, на что @merefield оперативно отреагировал, выразив готовность расследовать проблему. Читать далее.
Ограничение прав пользователей на редактирование панели навигации - @Yola искал помощь, чтобы ограничить возможность редактирования панели навигации для пользователей, и @JammyDodger уточнил, что эта функция предназначена для индивидуальной настройки. @pfaffman и @LOCOSP предложили решения на CSS для скрытия кнопки редактирования. Читать далее.
Баги при загрузке файлов - @Vladimir_P столкнулся с ошибками при загрузке файлов, на что отреагировали @JammyDodger и @blake, после чего было внедрено исправление. Читать далее.
Создание и установка плагинов - @Gaurav_Kumar_Sandan интересовался созданием и установкой плагинов на главной странице, @JammyDodger и @pfaffman предоставили инструкции по компонентам тем и установке плагинов. Читать далее.
DiscoTOC — Автоматическое оглавление - Пользователи, такие как @digitaldominica и @Arkshine, обсуждали проблемы с компонентом DiscoTOC, которые были решены после обновлений Discourse. Читать далее.
Пользовательская настройка в плагине - @pirhoo искал совет по созданию пользовательских полей из плагина, @merefield предоставил ресурсы для помощи в этом процессе. Читать далее.
Местоположение платёжных данных - @Teresations нужна была помощь в поиске платёжных данных для их Discourse, размещённого на Communiteq, @awesomerobot и @RGJ помогли, указав на панель управления. Читать далее.
Интересные старые темы с высокой активностью
Обратная связь по настройке межстрочного интервала эмодзи - @sam и @tynaut обсудили влияние изменений межстрочного интервала эмодзи на стилизацию статуса пользователя, @tynaut подтвердил исправление для чата и изучал решение для постов/сообщений. Читать далее.
Использование FILTER для суммирования данных - @JammyDodger поделился SQL-запросом с использованием функции FILTER для сегментации данных пользователей на основе предпочтений сводки активности, предоставив подробное объяснение компонентов запроса. Читать далее.
Стиль общения как часть профиля пользователя - @Saif и @simon обсудили потенциал и опасения, связанные с внедрением анализа тональности в профили пользователей для оценки стиля общения. Читать далее.
Enter для новой строки, Shift+Enter для отправки сообщения в чате - @meglio предложил изменение конфигурации поведения ввода в чате, поддержанное пользователями, такими как @Jagster и @Moin, чтобы сделать многострочную отправку сообщений более удобной. Читать далее.
Невозможно одобрить первый пост пользователя, если в нём есть опрос - @Firepup650 сообщил о проблеме, когда первый пост пользователя, содержащий опрос, не мог быть одобрен из-за ошибки прав доступа. Читать далее.
Сообщение об ошибке при загрузке логотипа - @spicerunner сообщил о сообщении об ошибке при загрузке логотипа, которое было устранено после обновления. Эта тема была классифицирована верно как Contribute > Bug. Читать далее.
Сбои во входящих уведомлениях по электронной почте - @managenet столкнулся с проблемами с исходящими уведомлениями по электронной почте после попытки изменить лимит размера вложений. Читать далее.
Невозможно пересобрать приложение, зависло на извлечении одного слоя - @LOCOSP столкнулся с проблемой извлечения слоя Docker во время пересборки, искал совет, как принудительно повторить загрузку файлов. Читать далее.
Использует ли Discourse Launcher / Docker локальные серверы Postgresql и Redis? - @dalu74 интересовался, использует ли Discourse установки Postgresql и Redis хоста, что было разъяснено @hello-smile6. Читать далее.
Для получения более подробной информации и обсуждений посетите meta.discourse.org.
В частности, вы можете задействовать некоторые из этих автоматизированных отчётов, чтобы попытаться выделить интересный контент.
Тот факт, что вы контролируете размер контекста, количество дней, охватываемых отчётом, и многое другое, даёт вам экстремальный контроль над этим процессом.
Предупреждение: для корректной работы требуется GPT-4 turbo. Anthropic Claude — это LLM с большим контекстным окном, но результаты, которые она выдает, меня не впечатлили.
Возможно, вы об этом уже знаете, но для других уточню, так как это может быть неочевидно.
Если у вас есть доступ к боту Discourse AI, который находится в правом верхнем углу ,
то, используя персонажа Forum Helper, вы можете протестировать различные инструкции, которые можно применять в разделе custom instructions отчёта Periodic report using AI. Иными словами, Forum Helper поможет быстро создать прототип отчёта.
Как тот, кто имел честь помогать с обратной связью в процессе разработки, могу сказать, что custom instructions играют ключевую роль в получении желаемых результатов. В приведённом выше примере явно видно, что Сэм добавил это для вашей вариации отчёта, основанной на вашем первоначальном запросе:
Мне нравится, как это выглядит, хотя я не до конца понимаю, как это работает. Похоже, это генерирует что-то похожее на Digest. Мне очень нравится новый формат для этой информации.
Из ответа я не смог понять, можно ли здесь получить персонализированную сводку. Я что-то упустил? Возможно ли генерировать её для каждого пользователя отдельно, исходя из его личных интересов?
Чтобы конкретизировать эти мысли, вот примерно то, что я имел в виду:
Определить основные интересы пользователя: (Запуск один раз) Просканировать все темы и ответы, с которыми пользователь взаимодействовал (лайк, ответ, создание), на наличие ключевых слов.
Определить недавние интересы пользователя: Просканировать темы и ответы, которые пользователь читал в этом месяце, на наличие ключевых слов.
Определить ключевые концепции недавних тем: Просканировать все новые темы за эту неделю.
Самая любимая функция, работающая на основе LLM, — это простой пересказ изменений по теме в одном абзаце за период с даты X по дату Y.
Вместо того чтобы заставлять LLM просматривать весь корпус документов и создавать такой отчёт, мы могли бы просто поддерживать «фрагментный кэш», где, например, храним абзацы по темам:
ID темы
Диапазон дат для сводки
Очень краткая сводка
2343
12-1 → 12-9
…
С помощью этого мы сможем формировать индивидуальные сводки для каждого пользователя. По сути, мы разбиваем эту задачу на несколько подзадач:
Выявление интересных тем → традиционное программирование (отслеживаемые теги/категории или, возможно, «фоновый» мониторинг на основе активности — исключая уже прочитанное)
Составление сводок по темам → функция на базе LLM
У этого подхода несколько преимуществ: он отлично масштабируется, сводки могут быть значительно точнее, поскольку контекст гораздо более ограничен, и снижается риск утечки контекста и галлюцинаций.
Я размышлял о вариации этой идеи. Вместо того чтобы группировать темы по тегам или категориям, стоит рассматривать их на основе семантической близости. Хотя не все семантически связанные темы образуют идеальную сферу, полезно представлять их именно так. Представьте сферу, которая начинается с одной темы; по мере добавления новых тем сфера расширяется, но со временем достигает ограниченного размера. Тем не менее, новые темы можно добавлять внутрь сферы по мере её роста и даже после достижения максимального размера. Представьте это как салют в небе: быстрые взрывы символизируют добавление тем с разной семантической близостью с течением времени. Эта аналогия помогает мне лучше понять концепцию. Меня особенно интересуют те быстрые взрывы и те, что долго светятся и мерцают. Если бы существовало визуальное представление этого процесса, было бы здорово выбрать семантические центры и составить о них отдельный абзац.
В этой теме при использовании опции Показать полный пост отображается реальное изображение семантически связанных тем.
РЕДАКТИРОВАНИЕ
Вот изображение, которое ближе к тому, что я имею в виду.
Честно говоря, я впервые слышу о «алгоритме», но да, это во многом совпадает с моими мыслями. Мне нужно будет изучить это подробнее, но я не думаю, что буду не согласен с тем, что вы отметили.
Алгоритм Twitter — это сложный набор математических правил и процессов, которые платформа социальных сетей использует для определения того, какой контент показывать пользователям в их лентах и новостных лентах. Этот алгоритм предназначен для курирования и персонализации контента, который видят пользователи, на основе их интересов, истории взаимодействия и других факторов. Алгоритм Twitter развивался на протяжении многих лет, но в целом он стремится показывать пользователям самые релевантные и engaging твиты, одновременно способствуя вовлеченности и удержанию пользователей на платформе.
Ключевые компоненты и факторы, которые могут влиять на алгоритм Twitter, включают:
Релевантность: Алгоритм учитывает релевантность твита интересам и предпочтениям пользователя. Он принимает во внимание аккаунты, на которые подписан пользователь, контент, с которым он взаимодействует (лайки, ретвиты, ответы), а также ключевые слова и хэштеги, которые он использует в своих твитах.
Вовлеченность: Твиты, которые получают больше лайков, ретвитов, ответов и репостов, с большей вероятностью будут продвигаться алгоритмом. Высокая вовлеченность указывает на то, что твит находит отклик у пользователей и считается более ценным.
Актуальность: Twitter часто отдает приоритет недавним твитам, чтобы пользователи были в курсе последних новостей и трендов. Однако он также может показывать более старые твиты, которые все еще актуальны и интересны.
Персонализация: Алгоритм создает персонализированный опыт для каждого пользователя, адаптируя его ленту под его конкретные интересы и поведение. Он адаптируется со временем по мере взаимодействия пользователей с платформой.
Количество подписчиков: Количество подписчиков аккаунта также может влиять на видимость его твитов. Аккаунты с большим количеством подписчиков, как правило, с большей вероятностью будут показывать свои твиты более широкой аудитории.
Тип медиа: Твиты с изображениями, видео или другим медиа-контентом, как правило, получают более высокую вовлеченность и могут продвигаться алгоритмом.
Качество и безопасность: Алгоритм Twitter также стремится продвигать качественный и безопасный контент, одновременно снижая видимость спама, фейковых новостей и вредоносного контента.
Важно отметить, что Twitter периодически обновляет и совершенствует свой алгоритм для улучшения пользовательского опыта и решения проблем, связанных с распространением дезинформации и вредоносного контента. Пользователи также могут частично контролировать свою ленту, изменяя настройки, отключая аккаунты или используя функции Twitter, такие как Списки и опция «Сначала показывать лучшие твиты», чтобы дополнительно настроить свою ленту.
Мне это безумно нравится. Это похоже на версию функции «Слежение» без уведомлений, и именно такого рода функционал мы ищем. Меня по-настоящему впечатляет, насколько мало когнитивных усилий требуется при чтении в таком формате! Честно говоря, я не могу дождаться, чтобы прочитать больше таких обзоров!
Правильно ли я понимаю, что это пока пробовали только на Meta? Мне крайне интересно, как это будет работать на техническом форуме, где информация может быть более сложной для восприятия.
Я также попробовал это на очень техническом форуме, и всё сработало отлично. Сейчас можно уже пробовать, а на следующей неделе я добавлю нормальную документацию.