Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Машинное обучение + Программирование

С этим тегом используют

Нейронные сети Искусственный интеллект IT Технологии ChatGPT Python Программист IT юмор Разработка Картинка с текстом Юмор Все
137 постов сначала свежее
CrowsHaveEyes
CrowsHaveEyes
3 дня назад
Лига программистов

Как я разрабатываю агентские ИИ системы для извлечения признаков (feature-extraction) из мультимодальных данных⁠⁠

Извлечение признаков (feature extraction) из текстов — ключевой шаг при анализе документов: он является основной практической частью таких задач по обработке данных, как классификация, тематическое моделирование, NER, QA. Если раньше почти что для каждой из таких задач, и в особенности для разных модальностей данных использовались специализированные архитектуры нейронных сетей, то сейчас подобные системы обычно строятся вокруг LLM/VLM. Однако и современные модели на практике настраиваются под конкретные задачи через fine‑tuning или distillation, в связке с retrieval (RAG) и агентскими архитектурами.

В этой статье я рассматриваю свой опыт проектирования и разработки агентов для выполнения feature-extraction. При наличии мультимодальных данных с разнородной структурой - тексты, PDF, изображения - мне приходится извлекать нужные пользователю фрагменты информации. Для этого я перебрал различные подходы - в зависимости от сложности задачи - и теперь пора сравнить их эффективность и отметить сложности реализации.

Традиционный подход: LLM + RAG, которого уже не достаточно

Retrieval‑Augmented Generation (RAG) — тандем LLM и векторных баз для поиска релевантных фрагментов, вставляемых в контекст перед генерацией, который обрел популярность в последние год-полтора благодаря нескольким безусловным преимуществам.

Этот подход позволяет использовать модели общего назначения на узкоспециализированных доменах без полного дообучения. Он и сейчас является самым надежным и дешевым способом снизить галлюцинации, даёт ссылки на документы и улучшает точность ответа. RAG используется в цепочке следующих логических шагов, через которые проходят данные в системе: векторизация → recall → prompt → LLM → извлечение структурированных данных.

Теперь о минусах RAG. Описанная методика только дополняет контекст модели релевантными данными, но не повышает способность самой LLM к извлечению нужных признаков. Эта способность зависит от того, каким задачам и на каких данных модель была обучена. К тому же RAG добавляет несколько архитектурных и прикладных сложностей - пайплайн с векторной базой, embedding, поиск по индексу, чанкинг данных, который может быть нетривиальным процессом с применением различных методик (таких как Semantic Chunking).

Сейчас контекстное окно модели позволяет вместить намного больше данных, чем раньше - взять хотя бы 1 млн токенов у Llama 4, так что необходимость в чанкинге и самом RAG уже не настолько острая. Есть, конечно, проблема понимания длинного контекста. Важно понимать, что при решении практических задач точность LLM может падать пропорционально длине контекста - на эту тему есть интересный бенчмарк:

Как я разрабатываю агентские ИИ системы для извлечения признаков (feature-extraction) из мультимодальных данных Искусственный интеллект, ChatGPT, Openai, Программирование, Машинное обучение, Lora, Длиннопост

Разные модели имеют разные показатели long context understanding, как видно из таблицы выше. Их точность для определенных задач можно увеличить двумя способами - SFT-файнтюнингом на размеченных данных и дистилляцией - передачей знаний от более сильной модели.

Fine‑tuning: точечное улучшение LLM

Файнтюнинг изначально был менее доступен, чем RAG - во-первых, он требует понимания того, как работает оптимизация весов большой языковой модели-трансформера (если мы не говорим про файнтюнинг каких-то других архитектур нейросетей). Во-вторых, он требует набора данных (как правило, размеченных, если мы говорим про Supervised Fine-Tuning), и в третьих, он требует вычислительных мощностей, таких как GPU-кластер.

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

На своем опыте я сделал следующий вывод: файнтюнинг необходим для разработки агентов, особенно в области feature-extraction задач, это очень эффективная практика, которая должна быть взята на вооружение разработчиками, так как она закрывает недостатки RAG и служит необходимым компонентом прикладных ИИ систем. Перечисленные выше трудности файнтюнинга тоже постепенно решаются - во-первых, облачные провайдеры делают доступными вычислительные мощности. В моих статьях и видео достаточно гайдов по использованию облака для файнтюнинга. Чтобы экономить на GPU, по-прежнему остается актуальной методика Low-Rank Adaptation (LoRA), хотя во многих случаях и полный файнтюнинг, который модифицирует веса модели полностью, тоже возможен и оправдан. Ведь для узко специализированной задачи может быть достаточно обучить модель на совсем небольшом наборе данных - 100-500 примеров.

Динамическая квантизация в сочетании с LoRA (QLoRA) позволяет еще сильнее сократить расход видеопамяти и время обучения модели.

В целом SFT-файнтюнинг можно разделить на следующие шаги: подготовка датасета → формирование train и validation наборов → обучение → оценка. В моем последнем видео я "начал с конца" и разобрал прикладные аспекты оценки (evaluation) при разработке агентских систем. Лишь недавно я обратил внимание на библиотеки для evaluation, такие как openevals в экосистеме Langchain/Langsmith, о которых в знал и раньше, но обходился простым скриптингом. Для тех, кто только начинает знакомство с evals, будет полезен мой ноутбук с экспериментами на Langchain/Langsmith и openevals.

При подготовке данных для feature extraction важно выбрать итоговый формат данных, который будет понятен и человеку, и LLM. При небольшом объеме данных самое важное - качественные примеры ответов (output), которые готовятся обычно человеком, вручную. Это особенно актуально для специализированных случаев feature-extraction - например, если вы разрабатываете систему, которая будет читать технические спецификации изделий, товарные коды и тому подобные типы данных. Для составления такого датасета придется привлекать человека с профессиональными знаниями в соответствующем домене. А для LLM чем проще выходной формат данных, тем меньше вероятность галлюцинаций. Поэтому я руководствуюсь тремя принципами -

1. Не усложнять выходной формат данных применением, например, JSON или XML - простого текста в большинстве случаев достаточно;

2. Выполнять feature-extraction из минимальной единицы входных данных за одну генерацию. Это может быть одна PDF-страница, изображение, параграф текста;

3. Использовать Chain-of-Thoughts для валидации процесса извлечения.

Само обучение, как ни странно, вызывает меньше всего проблем - используйте готовые средства обучения библиотеки transformers или API OpenAI, контролируйте качество чекпоинтов, своевременно используя evaluation, и следите за оверфиттингом.

Distillation: перенос знания

Distillation — это обучение компактных или более слабых моделей на основе поведения более сильной LLM‑«учителя». Это еще один способ повысить качество модели, часто менее затратный, чем SFT-файнтюнинг - достаточно просто сгенерировать датасет с помощью модели-учителя, без участия человека.

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

Авторами была реализована следующая архитектура:

DistilBERT + fine‑tuning на 10 000 документов → компактная модель с эффективным временем обучения (4–9 ч на ПК) с 97% качества модели-родителя. Пайплайн извлечения признаков включал следующие шаги:

Как я разрабатываю агентские ИИ системы для извлечения признаков (feature-extraction) из мультимодальных данных Искусственный интеллект, ChatGPT, Openai, Программирование, Машинное обучение, Lora, Длиннопост
  • Сэмплинг 10k примеров из тестового корпуса (объявления вакансий) с целью извлечения признаков.

  • Разбивка на чанки с применением Semantic Chunking

  • Генерация ground‑truth с помощью LLM (Gemini).

  • Файнтюнинг DistilBERT - небольшой модели с архитектурой раннего трансформера, которая получена путем дистилляции знаний модели BERT. Дистилляция позволяет сохранить 97% процентов качества, при размере на 40% меньше, чем у исходной модели BERT

  • Prediction - извлечение признаков.

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

RAG — поиск релевантных фрагментов, Fine‑tuning для улучшения и стабилизации ответов модели, и Distillation в эффективной агентской системе дополняется промпт-инжинирингом и CoT, Chain‑of‑thoughts, для самовалидации системой извлеченной информации и ее автоматического итеративного приближения к ожидаемому результату.

Показать полностью 2
[моё] Искусственный интеллект ChatGPT Openai Программирование Машинное обучение Lora Длиннопост
1
Avacadasoft
Avacadasoft
1 месяц назад

Внедрение ИИ в мобильное приложение:минус65% обращений в поддержку и98% точность⁠⁠

1/6

Пользователь теряет телефон дома — поддержки засыпают жалобами, а бренд тратит деньги на операторов. 65 % таких обращений можно убрать, если интегрировать офлайн‑ИИ. Ниже — пошаговый рецепт на базе кейса VegaVoice, который доказывает: голосовое управление без Интернета реально, даже в шуме и с «смятой» речью.
<cut>

Оглавление

  1. Почему бизнес спешит встраивать ИИ

  2. Шаг 1. Ищем боль пользователя

  3. Шаг 2. Собираем стек под реальные условия

  4. Шаг 3. Дизайн, который не бесит

  5. Шаг 4. “Коробка” для B2B‑клиентов

  6. Шаг 5. Метрики после релиза

  7. Что дальше


Почему бизнес спешит встраивать ИИ

по данным Accenture, 75 % покупателей готовы сменить бренд из‑за слабого digital‑опыта.

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

Шаг 1. Ищем боль пользователя

Когда смартфон на беззвучном, вопрос «Где ж ты, родной?» всплывает у каждого. Мы опросили 1 200 человек — 82 % теряли телефон дома минимум раз в месяц.

Шаг 2. Собираем стек под реальные условия

Чтобы «Сири, где ты?» работало офлайн и в лай собаки, склеили три слоя:

  1. VAD фильтрует фон.

  2. STT‑модель понимает «мятавую» речь.

  3. Левенштейн + фонетика — ловим неправильные имена.

Шаг 3. Дизайн, который не бесит

Голосовой UX должен быть интуитивным:

  • Назвал имя — телефон зазвонил.

  • Меню для кастомного имени и рингтона.

  • Zero‑battery‑drain: движок “спит”, пока нет речи.

Шаг 5. Метрики после релиза

После продакшна у клиента‑банка:

  • −65 % тикетов «Не могу найти телефон».

  • +18 % NPS мобильного приложения.

  • Снижение нагрузки на call‑центр ≈ 3 FTE.


Что дальше

  1. Протестируй движок в метро и на кухне.

  2. Собери фидбек первых 100 юзеров — поправь wake‑word.

  3. Выбери модель монетизации: лицензия, подписка или white‑label.

Подписывайся и делись своими кейсами внедрения ИИ в мобайл 📲

Внедрение ИИ в мобильное приложение помогло сократить обращения в поддержку на 65 % и повысить точность до 98 % — разбор кейса VegaVoice.

Показать полностью 6
[моё] Приложение Программирование Программа Программист IT Python Искусственный интеллект Flutter Мобильные телефоны Машинное обучение Длиннопост
3
26
user9026187
user9026187
3 месяца назад
Программирование на python
Серия Организую хакатон

Куда идёт программирование в 2025 году⁠⁠

В 2024 году начали проявляться 2 тренда:

  1. Кризис на рынке IT - программистам сложнее устроиться в найм. Можно сколько угодно бодриться, но если сравнить тот же 2020 или 2021 год с 2024м - разница просто очевидна: в ковид хантили вообще всех, на +50% вообще без проблем. В 2024 году устроиться выше, чем на зарплату мидла - уже хорошо.

  2. ChatGPT, генерация кода - у менеджмента появляется заблуждение, что ИИ может заменить программистов. Нас с вами в реальности ИИ пока не заменяет - но его использование в работе в некоторых случаях может ускорить разработку в 2-3 раза. Сейчас самое то LLM сетки использвать как Google на максималках: что раньше приходилось гуглить пару дней - сейчас нейросетка подробно с примерами расскажет за 20 минут.

Отсюда несколько следствий:

  1. Не все, но некоторые hr и CTO начали вести себя неадекватно при найме программистов. Иногда это выливается в лютый бред: хочу канарейку за копейку, чтобы пела и ничего не ела.

  2. Зарплаты программистов просели и не растут. Есть "стеклянный потолок" - чтобы получить зарплату выше 500К рублей или выше 6К евро в ЕС - надо "прыгнуть выше головы". Есть какие-то единичные случаи, но по личному опыту выше этих цифр практически нереально ничего найти за разумные сроки.

  3. Очень сложный вход в профессию для новых разработчиков. Джуны сейчас не нужны от слова совсем - их в принципе не нанимают. Чтобы тебе начали платить деньги за работу - надо быть минимум мидлом с 3мя годами опыта.

  4. Сам не встречал, но знакомые жалуются, что начинающие программисты очень сильно подсели на ChatGPT и ленятся кодить самостоятельно - и поэтому становятся скорее не класическими программистами, а промт-инженерами. Не берусь судить хорошо это или плохо, про это подробнее ниже.

Как выглядит настоящее программирования на 2025 год

  1. Есть крупные компании. Они ищут перекладывателей JSON с сеньёрскими лычками, которые должны дрочить алгоритмы и не выходить за очень узкую область своих компетенций. Нужно знание процессов и отсутствие воображения в принципе. Руководители больших компаний спят и мечтают, как сократят фонд оплаты труда на 90% и всех заменят нейросетками.

  2. Есть средних размеров компании. Там тоже нужно знание процессов, но ещё есть какие-то шансы попрограммировать так, что самому будет интересно.

  3. Есть стартапы - там тебе одному придётся работать за целый отдел. Если человек идёт в стартап аналитиком данных - ему придётся работать ещё и инженером данных, и дата сайнтистом, и нейронки внедрять, и даже девопсить в меру своих сил. Есть простор проявить своё воображение, но слишком интенсивная работа.

Как я вижу, куда всё идёт:

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

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

  3. А вот со стартапами нас ждёт интересный феномен: сейчас 1 техлид, вооружённый ChatGPT может попробовать заменить целый отдел разработки. Т.е. команда из 4-5 человек (1-2 кодера, тестировщик, дизайнер, продакт, маркетолог, девопс на четверть ставки) могут тестировать гипотезы и за 1-3 месяца запускать очень качественный MVP. Это приведёт к ещё более быстрому росту количества стартапов. Что ещё не автоматизировали - в ближайшие 5 лет будут активно пытаться автоматизировать - т.е. в целом нас ждёт следующий шаг в сторону технологической сингулярности. И чтобы вписаться в эту волну и попытаться на ней подняться - начинать надо было ещё год назад.

Индихакинг

Что такое индихакинг? Как я это понимаю: программист приходит после работы, и вместо того, чтобы работать на второй работе или залипать в доту - пилит свой проект. Может в одиночку - а может подключить жену и ещё нескольких своих знакомых. Делает какой-то продукт и пытается его продать.

Я сам пробовал заниматься индихакингом, и прогорел на том, что продукт я сделать смог, а продать его - нет. Т.е. точно нужен ещё продукт овнер - чтобы исследовать рынок и написать ТЗ, что вообще сказать, какой продукт нужно делать. А потом отслеживать метрики и говорить что и как поправить. И ещё точно нужен маркетолог - чтобы получившийся IT продукт как-то в плюс продать.

И если у фронтендеров вообще никогда не было проблемой какой-то свой проект (сайт) запустить, бекендеры могли доучить фронт и двигаться в сторону фуллстеков, то у людей, работающих с данными с этим беда: аналитикам и инженерам данных очень сложно придумать, какой продукт сделать и кому продавать. А дата сайнтистам это сделать практически невозможно (DS стоит начинать когда есть хотя бы 10К пользователей и статистика за пол года).

Хакатон!

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

Обычно хаккатон - это когда собираются до 5 человек и 1 выходные судрожно пишут код.

Я же решил попробовать провести хакатон именно по индихакерству:

  • Люди делятся на команды до 5 человек. При этом не только программистов - а ещё маркетологов, дизайнеров, продактов можно брать в команду.

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

  • Реализуют продукт и пытаются его продать.

  • Потом где-то в октябре 2025 года все собираемся и подводим итоги: кто что делал и у кого как удалось на этом заработать.

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

Все подробности про хакатон: https://hackathon.digitalberd.com/

Обсуждение хаккатона просиходит в телеграме, задать мне вопрос можно там же: https://t.me/digitalberd/13718/13719

Попробуйте хотя бы начать! Буду рад, если в результате хотя бы кто-то сможет организовать своё дело и выйти из работы в найме!

Куда идёт программирование в 2025 году IT, Программирование, Python, Искусственный интеллект, Машинное обучение, Dark Souls, Разработка, SQL, Хакатон, Тренд, Малый бизнес, Успех, Длиннопост
Показать полностью 1
[моё] IT Программирование Python Искусственный интеллект Машинное обучение Dark Souls Разработка SQL Хакатон Тренд Малый бизнес Успех Длиннопост
36
user8521322
4 месяца назад

Те кто шарит , скажите есть ошибки , я новичок(суть модели отличать картинку с собакой от картинки с кошкой)⁠⁠


from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
from tensorflow.keras.preproccessing.image import ImageDataGenerator

img_width, img_height = 128, 128

img_amount = 30

train_data = ImageDataGenerator(
rescale = 1.0/255,
rotation_range = 20,
width_shift_range = 0.2,
heigth_shift_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True
)

path_training_data = 'dataset/train'

training_genrator = train_datagen.flow_from_directory(
path_training_data,
target_size=(img_width, img_height),
batch_size=img_amount,
class_mode='binary'
)


model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(img_width, img_height, 3)),
MaxPooling2D(pool_size=(2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2, 2)),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2, 2)),
Flatten(),
Dense(512, activation='relu'),
Dropout(0.5),
Dense(1, activation='sigmoid')
])


model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

epochs = 10
model.fit(training_genrator, epochs=epochs)

model.save('cat_and_dog.h5')

Показать полностью
Машинное обучение Нейронные сети Питон Python Программирование Tensorflow Текст
4
5
neuromancertdi
neuromancertdi
5 месяцев назад

Машинное обучение: Линейная регрессия. Теория и реализация. С нуля⁠⁠

Машинное обучение: Линейная регрессия. Теория и реализация. С нуля Машинное обучение, Программирование, Telegram (ссылка)

Всем привет. Меня зовут Алмаз Хустнутдинов. Я делаю различные материалы по машинному обучению и буду выкладывать идеи о создании цифрового интеллекта.

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

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

В статье я рассказал основные сведения о линейной регрессии и показал реализацию, написал код с нуля не Python.

Статья находится на Хабре.

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

Показать полностью
Машинное обучение Программирование Telegram (ссылка)
0
user9953431
user9953431
6 месяцев назад

Как я упростил себе жизнь чуть не написав свою нейросеть)⁠⁠

Как я упростил себе жизнь чуть не написав свою нейросеть) Машинное обучение, Python, Программирование, Нейронные сети, ChatGPT, Чат-бот, Digital, IT, IT юмор, Программа, Тестирование, Дизайнер, OZON, Маркетплейс, Интернет-магазин, Информационная безопасность, Инновации, Тренд, Приложение, Telegram (ссылка)

Сейчас пишу описания для товаров для одного продавца и пока искал, как создать свою нейросеть, наткнулся на интересную штуку. Оказалось, что можно использовать готовые модели бесплатно, и не через сайты, а через API. То есть можно написать свой код, который будет работать с нейросетью
Я подключился к модели Meta-Llama-3.1-70B-Instruct… На секундочку, чтобы создать такую нейросеть, нужно потратить миллиарды рублей. А я просто подключился к ней.
А потом) нашел целый сайт, где собраны все нейросети от распознавания фото до генерации текста. Некоторые модели могут делать и то, и другое

В своем тг канале я поделился ссылкой на этот сайт, уж извините, я люблю новых подписчиков)))

Шамиль Зиганшин (https://t.me/ShamilZiganshin)

Показать полностью 1
[моё] Машинное обучение Python Программирование Нейронные сети ChatGPT Чат-бот Digital IT IT юмор Программа Тестирование Дизайнер OZON Маркетплейс Интернет-магазин Информационная безопасность Инновации Тренд Приложение Telegram (ссылка)
11
9
CrowsHaveEyes
CrowsHaveEyes
6 месяцев назад
Лига программистов

Развертывание Marco o1 на локальном PC. Языковая модель рассуждений⁠⁠

Недавно я запускал и тестировал Marco o1. Это одна из первых опенсорсных языковых моделей с многоступенчатой логикой, эта модель использует Chain-of-Thoughts и некоторые другие алгоритмы, которые помогают с решением задач на математику, логику и кодинг. Marco-o1 названа по аналогии с OpenAI o1, благодаря которой Chain-of-Thoughts промптинг и файнтюнинг получил особую популярность в GenAI индустрии.

В последнее время разные компании, в основном из Китая, стремятся повторить возможности o1. Самые впечатляющие результаты - у DeepSeek-R1-Lite-Preview, но веса этой модели не были опубликованы на момент проведения моих тестов. Однако разработчики DeepSeek R1 Lite обещали открыть доступ в свое время, и это будет очень интересно для нас.

А пока я решил поиграть с весами Marco-o1, модели хотя и легковесной, но реализующей те продвинутые алгоритмы, которые стоят за удивительными возможностями оригинальной o1. Как видно из карточки модели на HuggingFace, она создана путем файнтюнинга Qwen 2 7B на Chain-of-Thoughts датасете. Это комбинация датасетов Open-O1 и двух дополнительных наборов данных, которые разработчики из Alibaba Cloud сгенерировали, используя разные стратегии промптинга - Chain of Thoughts и обычные инструкции. Опубликована, к сожалению, только часть данных, но по ним ясно видно, какой формат использовали для файнтюнинга Chain-of-Thoughts:

Развертывание Marco o1 на локальном PC. Языковая модель рассуждений Искусственный интеллект, Программирование, Машинное обучение, Длиннопост

Сам по себе Chain-of-Thoughts - это формат промпта, который заставляет модель строить цепочки мыслей вроде этой. Но как в случае с моделью Marco, чтобы нейросеть могла эффективно работать с таким форматом, ее нужно файнтюнить на Chain-of-Thoughts датасете. Точно так же Instruct модель требует файнтюнинга на данных с определенной структурой промптов и ответов.

Marco o1 также использует алгоритм поиска по дереву Монте-Карло (MCTS), который, согласно статье разработчиков, позволяет исследовать несколько путей рассуждения, используя показатель достоверности, полученный из логарифмических вероятностей топ-K альтернативных токенов. К этому значению вероятности для каждого токена и к пяти альтернативным значениям применяют функцию softmax и получают показатель достоверности C(i) для i-того токена. Потом вычисляют среднее значение для всех пяти альтернатив. Более высокое среднее значение показывает большую уверенность в том, что выбранный путь рассуждения является более оптимальным.

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

Развертывание Marco o1 на локальном PC. Языковая модель рассуждений Искусственный интеллект, Программирование, Машинное обучение, Длиннопост

Изображение взято из статьи Marco-o1: Towards Open Reasoning Models for Open-Ended Solutions

Дальше есть еще пара интересных идей, например, Action Selection. Чтобы использовать только что описанный алгоритм MCTS, нужно определиться, что использовать в качестве единицы в пространстве решений, или одного шага рассуждения, и для этого разработчики применяли разные подходы - как целый шаг или действие в качестве единицы, так и мини-шаг - 32 или 63 токена.

Наконец, разработчики добавили механизм саморефлексии, в виде промпта в конце каждой цепочки рассуждений, который побуждает модель проверить свои решения: "Подожди, может быть я сделал какие-то ошибки, мне нужно обдумать все сначала". Это позволяет модели критически оценивать собственные рассуждения и находить в них ошибки.

А теперь немного практической части. Веса модели Marco-o1 имеют всего 7 миллиардов параметров. Я запускал ее и локально, и в облаке, в обоих случаях особо мощная видеокарта не требуется, особенно если применять квантизацию. Локально я запустил модель на RTX 4060 c 4-битной квантизацией bitsandbytes.

У меня была идея задеплоить полноценный LLM-server, совместимый с openai или gradio клиентом, и я выбрал два решения:

Первое - Text Generation Inference: на этот сервер уже был обзор на моем YouTube-канале, он высокопроизводительный, поддерживается платформой Huggingface, предлагает квантизацию и другие полезные фичи из коробки.

Запустить TGI локально не проблема, простой и правильный путь - в докере. Иначе придется устанавливать Rust и прочие зависимости, это ни к чему. Команда для запуска:

docker run --gpus all --shm-size 1g -p 8080:80 -v $path_to_volume:/data \

ghcr.io/huggingface/text-generation-inference:2.4.1 --model-id AIDC-AI/Marco-o1 --quantize bitsandbytes-nf4

Докер должен поддерживать GPU, что вообще не проблема на Linux или на Windows с WSL2. Флаг --quantize опциональный - можете выбрать опцию bitsandbytes (по умолчанию 8 бит) или вообще без сжатия, если есть достаточно видеопамяти.

В итоге на 4060 инференс получился очень быстрый. Я использовал следующий код для фронтенда на gradio:
статье.

import gradio as gr

from huggingface_hub import InferenceClient

client = InferenceClient("http://127.0.0.1:8080")

def respond(
message,

history: list[tuple[str, str]],

system_message,

max_tokens,

temperature,

top_p,

):
messages = [{"role": "system", "content": system_message}]

for val in history:

if val[0]:

messages.append({"role": "user", "content": val[0]})

if val[1]:

messages.append({"role": "assistant", "content": val[1]})

messages.append({"role": "user", "content": message})

response = ""
for message in client.chat_completion(

messages,

max_tokens=max_tokens,

stream=True,

temperature=temperature,

top_p=top_p,

):
token = message.choices[0].delta.content

response += token

yield response

system_prompt = """You are a well-trained AI assistant, your name is Marco-o1. Created by AI Business of Alibaba International Digital Business Group.

## IMPORTANT!!!!!!

When you answer questions, your thinking should be done in <Thought>, and your results should be output in <Output>.

<Thought> should be in English as much as possible, but there are 2 exceptions, one is the reference to the original text, and the other is that mathematics should use markdown format, and the output in <Output> needs to follow the language of the user input.

"""

demo = gr.ChatInterface(

respond,

additional_inputs=[

gr.Textbox(value=system_prompt, label="System message"),

gr.Slider(minimum=1, maximum=2048, value=1, step=1, label="Max new tokens"),

gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),

gr.Slider(

minimum=0.1,

maximum=1.0,

value=0.95,

step=0.05,

label="Top-p (nucleus sampling)",

),

],

)

if __name__ == "__main__":

demo.launch()

Однако я столкнулся с одной проблемой - системный промпт. Он взят из ollama, которая с таким промптом прекрасно работает. А вот TGI выдает ошибку, когда промпт превышает определенную длину. Так что для тех, кто не хочет возиться, предпочтительнее будет ollama, с ней все просто:

ollama pull marco-o1

ollama serve

А о том, как запустить ollama как сервис, чтобы создать таким образом свой LLM-сервер, я расскажу в следующей статье.

Показать полностью 2
[моё] Искусственный интеллект Программирование Машинное обучение Длиннопост
2
6
CrowsHaveEyes
CrowsHaveEyes
7 месяцев назад
Лига программистов

Qwen 2.5 и Qwen 2.5 Coder - перспективная коллекция LLM для систем агентов⁠⁠

Разработчикам приложений Generative AI стоит обратить внимание на новую коллекцию моделей Qwen 2.5 и Qwen 2.5 Coder. С сентября 2024 года эти модели привлекают внимание разработчиков благодаря своей эффективности.

Во-первых, веса Qwen 2.5 доступны в версиях от 0.5B параметров — это очень легковесная модель — до 72B. Посередине есть 3, 7, 14 и 32B, каждую из которых вполне можно запускать локально, если у вас есть, например RTX 3080 с 16ГБ видеопамяти. В этом поможет квантизация (особенно в случае с 32B). Квантованные веса в форматах GGUF, GPTQ, AWQ есть в официальном репозитории.

Для более быстрого инференса и файнтюнинга Qwen 2.5 можно арендовать облачный GPU и работать с этой моделью так же, как с привычной нам Llama. Я показывал примеры файнтюнинга последней в предыдущих статьях, используя облачные видеокарты и стек Huggingface Transformers (код Qwen 2.5 добавлен в одну из последних версий transformers).

Есть базовая модель и версия Instruct, вы можете пробовать файнтюнить обе и смотреть, какой результат вам лучше подходит. Но если вы хотите взять готовую модель для инференса, то лучше конечно Instruct. Благодаря разнообразию размеров и форматов, Qwen может быть полезен для разных типов приложений - клиент-серверных, или десктопных, и даже на мобильных - вот как это выглядит:

Qwen 2.5 и Qwen 2.5 Coder - перспективная коллекция LLM для систем агентов Искусственный интеллект, Программирование, Машинное обучение, Deep learning, Длиннопост, Qwen

Изображение взято из треда про адаптацию Квен под мобильные платформы:

Но по-настоящему Qwen 2.5 привлек внимание разработчиков, когда вышла коллекция Qwen 2.5 Coder. Бенчмарки показали, что 32 B версия этой модели может конкурировать с GPT-4o по написанию кода, а это очень интересно, притом что 32 миллиарда параметров вполне можно запустить на средней мощности видеокарте, и получить хорошую скорость генерации токенов.

Вообще какие приложения можно создавать с помощью новых моделей Qwen? Это конечно различные чатботы, но не только.

Разработчики говорят, что Qwen хорош для систем агентов.

Вот что написал недавно в Reddit один из них:

Qwen 2.5 и Qwen 2.5 Coder - перспективная коллекция LLM для систем агентов Искусственный интеллект, Программирование, Машинное обучение, Deep learning, Длиннопост, Qwen

Я длительное время использовал кастомный Chain-of-thoughts фреймворк с GPT-4, затем 4o.

Сегодня я развернул Qwen 2.5 14B и обнаружил, что его возможности вызова функций, Chain of Thoughts и следования инструкциям фантастические. Я бы даже сказал, лучше чем GPT 4/4o - для моих задач, во всяком случае

Кажется интересным не только то, что разработчик получил такую высокую производительность для сложных задач, требующих продвинутой логики, на  открытой LLM. Интересно и то, что для этого ему потребовались сравнительно небольшие мощности — ведь речь идёт о квантованной 14B модели:

Я использую одну видеокарту A40 для надёжности системы и высокой скорости генерации. Я выполнил установку через Ollama, взяв дефолтный квантованный Qwen 2.5 14B. A40 нужна для более высокой скорости, но я могу представить, что вам подойдёт и намного меньшая видеокарта для ваших задач

Мне нравится идея разработки агентских систем с помощью открытой модели на 14B параметров, для работы которой достаточно экономичной видеокарты A40 или даже менее мощной модели.

Агенты, вспомним, это GenAI приложения которые могут оперировать компьютером пользователя, взаимодействовать с другими программными компонентами. Для этого очень важна способность интегрироваться с разными API, вызов функций и логическое мышление модели.

По поводу логического мышления, традиционный подход — это Chain of Thoughts, особая стратегия промптинга. Она побуждает LLM строить пошаговые рассуждения, более эффективные для решения задачи и самовалидации решения на каждом шаге. Некоторые модели специально обучены для работы с таким промптом, например, GPT-4o1. Непонятно, обучали ли Qwen строить цепочки мыслей, но, как видим, разработчики указывают на высокую производительность модели в этом отношении.

Показать полностью 2
[моё] Искусственный интеллект Программирование Машинное обучение Deep learning Длиннопост Qwen
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии