@Gilly34

Telegram-бот в сопряжении с нейросетью?

Здравствуйте.
Нужен бот для беглого ознакомления с постами telegram-каналов.

Входные данные:
Пул из 30 конкретных телеграм-каналов

Задача:
1. Каждый новый пост сразу после его публикации нужно представить в кратком виде. Т.е. требуется ужать текст поста в один короткий тезис, передающий общий смысл поста, состоящий из 5-8 слов.
2.Далее эти тезисы нужно формировать в список, и каждый тезис сделать активной ссылкой (направляющей на соответствующий пост).

Первое очевидное и напрашивающееся решение - это бот в сопряжении с нейронкой.
Может кто посоветует оптимальную нейронку для данной задачи?
А в части написания бота, можкто даст пару ссылок на готовые блоки Telethon или TeleBot.
Может кому-то встречались решения в Pyrogram?

Буду благодарен за любые советы/подсказки))
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
99% работы тут анализ текстов, а уж интеграция с telegram дело десятое.

ДО публикации весов llama, я бы предложил изучить технологии вокруг LLM (большие языковые модели), RLHF (Reinforced Learning from Human Feedback - это если с конца заходить, лучшее что там есть), рекомендую видео Igor Kotenkov посмотреть, он как раз с сумаризации текстов зашел, рассказывая о существующих алгоритмах и способах их оценки.

Теперь же все это практически не нужно, достаточно взять готовую языковую модель со свойствами ИИ (например open assistent 30B) и поэкспериментировав с промптами, прогонять через нее статьи, разделяя их на абзацы (если размер их с промптом превышает 2к токенов, это примерно 1.5к слов).

Скорее всего у тебя будет несколько запросов на одну и ту же статью, с разными вопросами (особенно когда длины контекста хватает в притык, а значит пытаться вести общение в пределах контекста будет сложно, т.е. статья+запрос1+ответ+запрос2+ответ+...). У llama.cpp в библиотеках есть возможность сохранять контекст и моментально загружать его (в т.ч. mmap) для как бы моментального продолжения беседы с сохраненного места, в т.ч. к примеру так - формируешь промпт таким образом, чтобы текст статьи был в начале, а вопрос в конце, затем сохраняешь состояние сети и последовательно загружаяя его раз за разом, подставляешь с новыми вопросами, таким образом тратить ресурсы будешь только на эти вопросы, пример в save-load-state.cpp.
spoiler
После того как поиграешь с gpt4, модель от фейсбука конечно туповата, но посмотрев на стоимость первой, понимаешь, что с этим можно жить. Есть лайвхаки, как улучшить качество ответа от сети, дай возможность сети по рассуждать, универсальная палочка выручалочка let's think step by step в разных формулировках, дает возможность ИИ проанализировать в процессе генерации ответа тему, а потом следующим вопросом проси суммаризировать итоги... это активирует в т.ч. One/MultiShot техники, когда предварительными наводящими обсуждениями настроить модель на лучший результат, и автоматизирует процесс, когда не нужно гадать над примерами.

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

Настоятельно рекомендую переводить анализ в сторону английского языка, по возможности (буквально перевести на английский весь текст перед подачей в промпт, почитай комментарии к статье там есть пример открытых инструментов, например FB NLLB), правда если текст это общение а не вылизанные посты от ньюсмейкеров, то лучше в сыром виде модели скармливать, она так ошибки лучше переварит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы