Да, верно, чтобы не усложнять статью эту тему опустил.
Но общий подход все равно такой же должен сработать:
Во-первых, в жизни все равно будут какие-то отзывы, которые содержат ровно одну тему. Они выделятся в отдельные кластеры и там мы эту тему поймаем.
Во-вторых, можно усложнить этот этап - просить у LLM для каждого кластера написать не одну общую тему, а список нескольких тем, потом все эти списки объединить и уже с большей вероятностью ничего не потерять.
Последний этап тоже придется чуть-чуть обновить — когда получили список всех возможных тем, то просим у LLM для каждого отзыва написать набор тем, которые упомянуты в нем. И потом считаем статистику для каждой темы как обычно, просто один отзыв сможет сделать вклад сразу в несколько категорий.
Интересно про количество кластеров. Кажется, не очень хорошо, что я просто на глаз их определяю, поэтому мне понравилось про метод "по силуэту", я про него раньше не знал.
И также классная идея про семплирование из окрестности центра кластера - воспользуюсь, когда буду анализировать переписки со службой поддержки. Такие диалоги действительно довольно длинные и даже в рамках одного кластера все могут не влезть целиком в один запрос, либо будет очень дорого в сумме.
Спасибо! Посмотрел BERTopic, выглядит действительно удобно!
На самом деле, в жизни у меня были отзывы, в которых как раз почти всегда сразу несколько тем описано в одном отзыве. В целом, подход был почти такой же, только я просил в конце для каждого отзыва выделить не одну тему, а сразу список тем. ChatGPT с этим отлично справлялся, субъективно кажется, что он всегда определяет правильный набор тем для 1 конкретного отзыва.
Хотя в таком случае усложняется пост-анализ, когда интересно посмотреть не только на то, сколько раз была упомянута каждая тема, но еще и как часто встречаются разные пересечения тем в одном отзыве.
Но сначала нам нужно сформировать эту таблицу для классификации, то есть понять, какие вообще бывают классы отзывов.
Мы тут действуем в предположении, что мы вообще не знаем, на что жалуются юзеры. Если мы изначально знаем набор тем, то задача намного проще, тогда действительно достаточно показать каждый отзыв и попросить выбрать для него тему из списка
Здравствуйте! Попробуйте вот тут посмотреть, у Mistral как раз одно из нововведений — function calling, и ollama на сайте даёт пример, как этим пользоваться через API локально.
100%, моему знакомому, который работает в одном российском банке, запрещено использовать любые ChatGPT и аналоги на работе (по соображениям безопасности), в таком случае я бы точно запускал какую-нибудь Llama локально)
Можно еще обратиться к бенчмаркам, которые приводят здесь.
Результаты бенчмарков уже слегка другие - большинство версий ChatGPT-3.5 обгоняют Llama, но, тем не менее, и Mistral 7B, и Llama 3 выглядят очень неплохо и в этом рейтинге.
Тут нужно добавить, что Llama - это разработка Meta. Здесь они сами сравнивают свою open source модель с Gemini Pro 1.5 и Claude 3 Sonnet.
Можно предположить, что у Meta (ex. Facebook) довольно много и ресурсов, и качественных датасетов, и продвинутых технологий, чтобы обучить качественную модель, способную конкурировать с младшими версиями ChatGPT
Согласен, что для личного использования не слишком выгодно покупать GPU, особенно когда ChatGPT-4o бесплатно доступен сейчас всем)
Но если локально хранится много документов (PDF, таблицы и тд), то можно легко прикрутить RAG систему, используя open source LLM (пример), которая будет отвечать на вопросы по этим документам. В ChatGPT их всех не загрузишь, а по API OpenAI часто ходить будет дорого. Для этого кейса уже вполне выгодно покупать видеокарту
Числа таблице - кол-во токенов в секунду для разных open source LLM. Видно, что корреляция с размером прямая - llama 2 7B генерирует почти в 2 раза больше токенов за секунду, чем llama 2 13B.
Это уже не очень актуальные модели, статья старовата, но примерно можно ориентироваться. Интересно, что Mistral и Llama почти не отличаются при одинаковых размерах. Поэтому можно предположить, что сильнее всего на скорость влияет именно размер модели
Качество модели VS количество токенов обработано за 1 доллар
Не совсем про скорость, но думаю, что это очень коррелирует. Вот тут есть интересная табличка - по оси Х рейтинг модели на Chatbot Arena, а по оси Y - количество токенов, которые обработаются за 1 доллар. Для LLM моделей скорость работы часто коррелирует с их размером, соответственно и со скоростью работы, и вероятно с ценой. Но это мой субъективный опыт, бывают исключения, нужно перепроверять.
Llama 3 8B выглядит очень неплохо на этом графике.
Как раз недавно авторы Chatbot Arena добавили фильтр для сложных запросов, вот тут можно посмотреть разбор, что изменилось в рейтинге
Главный вывод — действительно, многие open source модели сильно упали в рейтинге, то есть они и правда справляются хуже со сложными запросами, чем модели типа ChatGPT и Claude.
Но тем не мене, если сравнивать не с топовыми представителями, а со старыми версиями (ChatGPT-3.5 и тд), то новые open source модели выглядят неплохо даже в обновленном рейтинге
Там много open source реализаций с интеграцией ollama, например, локальная RAG-система, которая позволит задавать вопросы к локальным PDF и другим файлам. Или бот в телеграме на базе ollama. Думаю, все это можно реализовать и без ollama, а список просто использовать для вдохновения
Это правда, что вопросы к рейтингу возникают регулярно, поэтому авторы добавляют разные фильтры - можно посмотреть рейтинг по разным типам запросов, например, только сложные промпты. Или по разным языкам.
Для китайского языка, кстати, Claude 1 в рейтинге выше, чем Llama. Но все равно рейтинг не всегда будет объективным, потому что голосуют обычные люди, не имея четких критериев.
Другой вопрос, что объективного рейтинга сейчас, кажется, нет :(
Это таблица с сайта https://chat.lmsys.org/ - Chatbot Arena. Там любой человек может вслепую проголосовать за модель - написать свой запрос, получить 2 ответа от разных моделей и выбрать какой из ответов лучше, при этом он не видит названия моделей до своего голоса. На основе этих голосов потом и складывается рейтинг
Согласен с вами, что на русском языке open source модели работают плохо.
Я опираюсь на рейтинг Chatbot Arena - https://chat.lmsys.org/, там в основном результаты для английского языка. Рейтингу можно доверять, как так модели тестируются людьми вслепую
Да, верно, чтобы не усложнять статью эту тему опустил.
Но общий подход все равно такой же должен сработать:
Во-первых, в жизни все равно будут какие-то отзывы, которые содержат ровно одну тему. Они выделятся в отдельные кластеры и там мы эту тему поймаем.
Во-вторых, можно усложнить этот этап - просить у LLM для каждого кластера написать не одну общую тему, а список нескольких тем, потом все эти списки объединить и уже с большей вероятностью ничего не потерять.
Последний этап тоже придется чуть-чуть обновить — когда получили список всех возможных тем, то просим у LLM для каждого отзыва написать набор тем, которые упомянуты в нем. И потом считаем статистику для каждой темы как обычно, просто один отзыв сможет сделать вклад сразу в несколько категорий.
Спасибо за полезные дополнения!
Интересно про количество кластеров. Кажется, не очень хорошо, что я просто на глаз их определяю, поэтому мне понравилось про метод "по силуэту", я про него раньше не знал.
Про него я нашел небольшой текст на Хабре - https://habr.com/ru/companies/jetinfosystems/articles/467745/. В нем силуэт сравнивается с Elbow методом, и силуэт выглядит действительно намного удобнее
И также классная идея про семплирование из окрестности центра кластера - воспользуюсь, когда буду анализировать переписки со службой поддержки. Такие диалоги действительно довольно длинные и даже в рамках одного кластера все могут не влезть целиком в один запрос, либо будет очень дорого в сумме.
Спасибо! Посмотрел BERTopic, выглядит действительно удобно!
На самом деле, в жизни у меня были отзывы, в которых как раз почти всегда сразу несколько тем описано в одном отзыве. В целом, подход был почти такой же, только я просил в конце для каждого отзыва выделить не одну тему, а сразу список тем. ChatGPT с этим отлично справлялся, субъективно кажется, что он всегда определяет правильный набор тем для 1 конкретного отзыва.
Хотя в таком случае усложняется пост-анализ, когда интересно посмотреть не только на то, сколько раз была упомянута каждая тема, но еще и как часто встречаются разные пересечения тем в одном отзыве.
Верно, по сути это мы в итоге и делаем.
Но сначала нам нужно сформировать эту таблицу для классификации, то есть понять, какие вообще бывают классы отзывов.
Мы тут действуем в предположении, что мы вообще не знаем, на что жалуются юзеры. Если мы изначально знаем набор тем, то задача намного проще, тогда действительно достаточно показать каждый отзыв и попросить выбрать для него тему из списка
https://ollama.com/library/mistral
Здравствуйте! Попробуйте вот тут посмотреть, у Mistral как раз одно из нововведений — function calling, и ollama на сайте даёт пример, как этим пользоваться через API локально.
https://github.com/ollama/ollama/blob/main/docs/api.md#api
Вот тут подробнее про API
Судя по этой строчке — open source модель, но думаю можно и свое что-то подставить, в т.ч. платное
100%, моему знакомому, который работает в одном российском банке, запрещено использовать любые ChatGPT и аналоги на работе (по соображениям безопасности), в таком случае я бы точно запускал какую-нибудь Llama локально)
Можно еще обратиться к бенчмаркам, которые приводят здесь.
Результаты бенчмарков уже слегка другие - большинство версий ChatGPT-3.5 обгоняют Llama, но, тем не менее, и Mistral 7B, и Llama 3 выглядят очень неплохо и в этом рейтинге.
Тут нужно добавить, что Llama - это разработка Meta. Здесь они сами сравнивают свою open source модель с Gemini Pro 1.5 и Claude 3 Sonnet.
Можно предположить, что у Meta (ex. Facebook) довольно много и ресурсов, и качественных датасетов, и продвинутых технологий, чтобы обучить качественную модель, способную конкурировать с младшими версиями ChatGPT
Согласен, что для личного использования не слишком выгодно покупать GPU, особенно когда ChatGPT-4o бесплатно доступен сейчас всем)
Но если локально хранится много документов (PDF, таблицы и тд), то можно легко прикрутить RAG систему, используя open source LLM (пример), которая будет отвечать на вопросы по этим документам. В ChatGPT их всех не загрузишь, а по API OpenAI часто ходить будет дорого. Для этого кейса уже вполне выгодно покупать видеокарту
Вот тут еще нашел табличку как раз про скорость:
Числа таблице - кол-во токенов в секунду для разных open source LLM. Видно, что корреляция с размером прямая - llama 2 7B генерирует почти в 2 раза больше токенов за секунду, чем llama 2 13B.
Это уже не очень актуальные модели, статья старовата, но примерно можно ориентироваться. Интересно, что Mistral и Llama почти не отличаются при одинаковых размерах. Поэтому можно предположить, что сильнее всего на скорость влияет именно размер модели
Не совсем про скорость, но думаю, что это очень коррелирует. Вот тут есть интересная табличка - по оси Х рейтинг модели на Chatbot Arena, а по оси Y - количество токенов, которые обработаются за 1 доллар. Для LLM моделей скорость работы часто коррелирует с их размером, соответственно и со скоростью работы, и вероятно с ценой. Но это мой субъективный опыт, бывают исключения, нужно перепроверять.
Llama 3 8B выглядит очень неплохо на этом графике.
Как раз недавно авторы Chatbot Arena добавили фильтр для сложных запросов, вот тут можно посмотреть разбор, что изменилось в рейтинге
Главный вывод — действительно, многие open source модели сильно упали в рейтинге, то есть они и правда справляются хуже со сложными запросами, чем модели типа ChatGPT и Claude.
Но тем не мене, если сравнивать не с топовыми представителями, а со старыми версиями (ChatGPT-3.5 и тд), то новые open source модели выглядят неплохо даже в обновленном рейтинге
Спасибо за рекомендацию! Посмотрел гайды, выглядит удобно.
Про ollama еще можно добавить, что у них есть интересная подборка Community Integrations: https://github.com/ollama/ollama/blob/main/README.md#community-integrations
Там много open source реализаций с интеграцией ollama, например, локальная RAG-система, которая позволит задавать вопросы к локальным PDF и другим файлам. Или бот в телеграме на базе ollama. Думаю, все это можно реализовать и без ollama, а список просто использовать для вдохновения
Это правда, что вопросы к рейтингу возникают регулярно, поэтому авторы добавляют разные фильтры - можно посмотреть рейтинг по разным типам запросов, например, только сложные промпты. Или по разным языкам.
Для китайского языка, кстати, Claude 1 в рейтинге выше, чем Llama. Но все равно рейтинг не всегда будет объективным, потому что голосуют обычные люди, не имея четких критериев.
Другой вопрос, что объективного рейтинга сейчас, кажется, нет :(
Это таблица с сайта https://chat.lmsys.org/ - Chatbot Arena. Там любой человек может вслепую проголосовать за модель - написать свой запрос, получить 2 ответа от разных моделей и выбрать какой из ответов лучше, при этом он не видит названия моделей до своего голоса. На основе этих голосов потом и складывается рейтинг
Здравствуйте!
Согласен с вами, что на русском языке open source модели работают плохо.
Я опираюсь на рейтинг Chatbot Arena - https://chat.lmsys.org/, там в основном результаты для английского языка. Рейтингу можно доверять, как так модели тестируются людьми вслепую