- BrainTools - https://www.braintools.ru -
Сегодня мы продолжим изучать руководства по разработке LLM. А 23 апреля на онлайн-встрече расскажем, почему создание платформы для инференса LLM с нуля — далеко не всегда оптимальный выбор, и объясним, как MWS GPT может значительно упростить и ускорить работу с большими языковыми моделями. Подключайтесь, регистрация открыта по ссылке [1].
Как правило, публикации про большие языковые модели посвящены перспективам и возможностям новых решений. Литературы, описывающей подводные камни и сложности разработки подобных систем, не так уж много. Предприниматель и преподаватель Колумбийского университета решил исправить ситуацию, написав книгу-справочник «Укрощая LLM [2]». Фактура основана не только на личном опыте [3] автора; материал объединяет знания и разработки других программистов и членов ИТ-сообщества.
Книга включает семь глав, посвященных тестированию недетерминированных и генеративных систем ИИ, работе с галлюцинациями и оптимизации расходов на разработку ML-моделей. Так, в одном из подразделов показаны методы контроля качества выходных данных LLM: промпт-инжениринг, тонкая настройка и постобработка логитов.
Рассказ сопровождают наглядные иллюстрации и примеры кода на Python. А в подразделе под названием «Парадокс сокращения стоимости» (The Falling Cost Paradox) автор демонстрирует [4], как квантирование позволяет уменьшить модель на 47%. Здесь он приводит не только примеры кода, но и рекомендации со ссылками на научные работы.
На момент публикации статьи на сайте автора доступны семь тематических глав (всего их девять, но первые две — вводные) из запланированных восьми. В качестве альтернативы часть материала можно прослушать в формате подкаста [5] или скачать [2] в PDF. Руководство можно найти и в репозитории [6] на GitHub. Поскольку это open source книга, все желающие могут оставлять замечания, а также предлагать новые главы и подразделы.
Это — запись конференции [7] OpenAI, на которой выступили старший программный инженер отдела тонкой настройки Джон Аллард и глава технического подразделения Колин Джарвис. Презентация длится 45 минут — спикеры разбирают ключевые принципы оптимизации LLM. При разработке больших языковых моделей необходимо соблюдать баланс между качеством входных и выходных данных. Однако универсального подхода для решения этой проблемы пока не существует. Например, генерация на базе результатов поиска (RAG) обогащает промпт, что снижает вероятность галлюцинаций. Но у RAG есть обратная сторона — сложность оценки качества таких решений. На результат влияет множество компонентов, и каждый из них нужно оценивать отдельно (формировать тестовые своды данных, метрики, разметку).
Спикеры показали, как можно совместить несколько подходов к оптимизации данных и повысить точность ответов языковых моделей. Так, LLM на базе GPT-4, подготовленная с помощью классической промпт-инженерии, генерировала корректный ответ в 69% случаев. Тонкая настройка и RAG-оптимизация позволили добиться показателя в 83,5%.
Если вы не хотите просматривать всю запись выступления, есть краткий конспект [8] лекции.
Практически все общедоступные чат-боты имеют определенные фильтры. Они запрещают нейросети выдавать спорный, оскорбительный или вредоносный контент. Но цензурируя нейросети, разработчики ограничивают эффективность поиска и полезность систем ИИ. Этому аспекту посвящены научные работы. Например, статья «What is H.P. Lovecraft’s Cat’s Name: Syntactic Censoring in LLM Applications».
Специалист по ML Максим Лабонн в статье «Uncensor any LLM with abliteration» описал [9] подход под названием метод «аблитерации», позволяющий обойти механизмы цензурирования, установленные разработчиками. Материал довольно длинный и написан на английском языке, однако перевод можно найти [10] на Хабре.
Автор статьи предлагает пошаговый алгоритм. Первым делом необходимо запустить модель на наборе «вредных» и безобидных инструкций, чтобы собрать информацию о характере запретов. Далее, вычисляется среднее различие между активациями вредных и безобидных инструкций и формируется вектор, представляющий «направление отказа» (refusal direction) для каждого слоя модели. Вектора нормализуются, и получившийся единый вектор «аблируется» — то есть модель теряет способность представлять эту характеристику. Код, предложенный автором, опирается на TransformerLens [11] и ноутбук FailSpy [12].
Здесь всё же стоит отметить, что подобного рода «дообучение» — сложный процесс, способный снижать производительность модели. Ознакомиться с кодом можно самостоятельно, он лежит в открытом доступе на GitHub [13].
Этот проект немного отличается от предыдущих в подборке. Он нишевый, а его практическая применимость может вызывать вопросы. Но специалисты по машинному обучению [14] и разработчики систем ИИ все равно могут почерпнуть здесь что-нибудь интересное. Речь идет о проекте Llama.ttf [15]. Это — файл шрифтов, который одновременно является большой языковой моделью и движком для инференса. Он на лету корректирует набираемый в редакторе текст — например, может заменять слово OpenSans на LLaMaSans. Звучит странно, но как все выглядит на практике, можно посмотреть здесь [16].
В основе Llama.ttf лежит модель TinyStories [17]. Она имеет около 15 млн параметров и очень незначительный вес — всего 60 Мбайт (хотя в ходе работы ttf-файл и может разрастись до 300 Гбайт). Файл шрифтов можно использовать в редакторе с поддержкой HarfBuzz.
Что интересно, идея динамического преобразования текста и программируемых шрифтов не нова. Один энтузиаст продемонстрировал функционирующий Тетрис из шрифтов [18]. Код доступен в открытом репозитории [19] GitHub, так что можно лично опробовать разработку.
Есть и более абсурдные эксперименты с символами, изначально позиционируемые их авторами как шутки. Например, встроенный в шрифт генератор лабиринтов [20].
Реализуемые энтузиастами изобретательные подходы и техники открывают новые возможности в LLM и могут быть потенциально полезны на практике.
Можно научить модель решать сразу несколько задач, но тогда разработчикам приходится сталкиваться с феноменом катастрофической забывчивости (Catastrophic Forgetting [21]). При получении новой информации модель забывает [22] ранее усвоенную. В попытке решить эту проблему инженеры разработали аналитическую модель, способную мыслить и рассуждать логически. Она должна проходить через минимальное предварительное обучение и адаптироваться в контексте поступающих запросов.
Экспериментальную модель QwQ-32B-Preview [23] спроектирована с упором на изучение природы мышления [24] и процессов внутри LLM. Авторы подают её с исследовательско-философской стороны — даже предисловие на странице проекта оформлено в подобном ключе. QwQ относится к серии моделей Qwen 2.5 [25]. Пока LLM доступна только в виде демоверсии, и разработчики предупреждают о наличии ограничений. Например, модель может уходить в бесконечные рассуждения и путать языки. Кроме того, стремление к свободным размышлениям иногда рождает неэтичные ответы.
Но что касается эффективности в математических вычислениях, то она подтверждена тестами. Модель справилась с экзаменом для специалистов GPQA [26], задачами AIME [27], примерами из MATH-500 [28] и вопросами сценариев программирования LiveCodeBench [29]. В некоторых тестах QwQ превзошёл OpenAI-o1-preview, OpenAI-o1-mini и GPT-4o.
Интересная особенность QwQ — стиль рассуждений. При решении задач модель имитирует человеческое мышление: задаёт вопросы, использует междометия, выражает сомнения. Вычисления происходят не мгновенно, а через последовательное размышление, напоминающее человеческую логику [30]. Наблюдать за таким процессом увлекательно. Кроме того, QwQ можно запустить локально и протестировать на собственных задачах.
Ещё одна разработка, QvQ [31], изучает мультимодальное восприятие [32]. Эта модель анализирует текст и визуальные данные, сопоставляя их в процессе обработки запроса. QvQ протестировали на математических задачах, представленных в виде текста, таблиц и изображений. Поведение [33] модели похоже на QwQ: она объясняет, на какие элементы данных обращает внимание [34], и рассуждает, как приходит к ответу.
Художественность языка моделей QwQ и QvQ может создать впечатление [35] несерьёзности, но эксперты подчёркивают их ценность для развития систем ИИ. Возможность наблюдать за этапами мышления расширяют представления о машинной логике.
Напомним, что больше о LLM расскажем на вебинаре по ссылке [1].
Автор: randall
Источник [36]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/14024
URLs in this post:
[1] ссылке: https://mws.ru/events/webinar23042025/?utm_source=habr.com&utm_medium=utm_campaign_webinar23042025&utm_content=article&utm_term=webinar23042025
[2] Укрощая LLM: https://www.tamingllms.com/markdown/toc.html
[3] опыте: http://www.braintools.ru/article/6952
[4] демонстрирует: https://www.tamingllms.com/notebooks/cost.html#quantization
[5] формате подкаста: https://tamingllm.substack.com/p/chapter-1-podcast-the-evals-gap
[6] репозитории: https://github.com/souzatharsis/tamingllms
[7] запись конференции: https://www.youtube.com/watch?v=ahnGLM-RC1Y
[8] конспект: https://blog.ankitsanghvi.in/maximizing-llm-performace/
[9] описал: https://huggingface.co/blog/mlabonne/abliteration
[10] найти: https://habr.com/ru/articles/851120/
[11] TransformerLens: https://github.com/TransformerLensOrg/TransformerLens
[12] FailSpy: https://huggingface.co/failspy/llama-3-70B-Instruct-abliterated/blob/main/ortho_cookbook.ipynb
[13] GitHub: https://github.com/mlabonne/llm-course
[14] обучению: http://www.braintools.ru/article/5125
[15] Llama.ttf: https://fuglede.github.io/llama.ttf/
[16] здесь: https://www.youtube.com/watch?v=Q4bOyYctgFI#t=6m09s
[17] TinyStories: https://arxiv.org/abs/2305.07759
[18] Тетрис из шрифтов: https://youtu.be/Ms1Drb9Vw9M
[19] репозитории: https://github.com/Erk-/programmable-fonts
[20] генератор лабиринтов: https://github.com/hsfzxjy/Harfbuzz-WASM-Fantasy
[21] Catastrophic Forgetting: https://arxiv.org/html/2403.05175v1
[22] забывает: http://www.braintools.ru/article/333
[23] QwQ-32B-Preview: https://qwenlm.github.io/blog/qwq-32b-preview/
[24] мышления: http://www.braintools.ru/thinking
[25] Qwen 2.5: https://github.com/QwenLM/Qwen2.5
[26] GPQA: https://klu.ai/glossary/gpqa-eval
[27] AIME: https://en.wikipedia.org/wiki/American_Invitational_Mathematics_Examination
[28] MATH-500: https://huggingface.co/datasets/HuggingFaceH4/MATH-500
[29] LiveCodeBench: https://github.com/LiveCodeBench/LiveCodeBench
[30] логику: http://www.braintools.ru/article/7640
[31] QvQ: https://qwenlm.github.io/blog/qvq-72b-preview/
[32] восприятие: http://www.braintools.ru/article/7534
[33] Поведение: http://www.braintools.ru/article/9372
[34] внимание: http://www.braintools.ru/article/7595
[35] впечатление: http://www.braintools.ru/article/2012
[36] Источник: https://habr.com/ru/companies/mws/articles/898848/?utm_source=habrahabr&utm_medium=rss&utm_campaign=898848
Нажмите здесь для печати.