Свежая выжимка ml и AI статей - каждый день
В современном мире генеративный искусственный интеллект (AI) играет ключевую роль в нашей повседневной жизни, от автоматизации процессов до помощи в принятии решений. В области обработки естественного языка (NLP) генеративные модели, особенно крупные языковые модели (LLM), стали неотъемлемой частью технологий, способных создавать текст, который понимает и использует контекст. Однако, несмотря на их впечатляющие достижения, эти модели часто сталкиваются с проблемами при работе с языками, для которых доступно мало данных для обучения.
LLM, такие как модели серии GPT, обучены на огромных объемах данных, преимущественно на английском языке. Это приводит к тому, что их производительность значительно снижается при работе с языками, для которых недостаточно данных для обучения. Например, при запросах на языке Амхарский (Amharic), модели могут выдавать непонятные или бессмысленные ответы. Это ограничение не только уменьшает полезность LLM для пользователей из регионов с низкоресурсными языками, но и подчеркивает необходимость разработки методов, которые позволят эффективно адаптировать эти модели.
Для решения этой проблемы мы разработали метод под названием UnifiedCrawl, который позволяет собирать текстовые данные для языков с ограниченными ресурсами из всего корпуса Common Crawl. Этот метод включает:
Фильтрацию и извлечение: Использование минимальных вычислительных ресурсов для фильтрации и извлечения монолингвальных наборов данных из Common Crawl, что позволяет создать наборы данных значительно большего размера, чем ранее доступные источники.
Адаптация моделей: Использование метода QLoRA (Quantized Low-Rank Adapters) для эффективной дообучки многоязычных LLM на собранных данных, что значительно повышает их производительность при работе с низкоресурсными языками и минимизирует использование VRAM.
Индексирование и фильтрация: Мы используем DuckDB для фильтрации индексов Common Crawl, чтобы выбрать только те URL, которые соответствуют нашему целевому языку. Это позволяет избежать загрузки всего индекса, что экономит место на диске и время.
Извлечение WARC файлов: После фильтрации индексов, мы загружаем только те WARC файлы, которые содержат контент на нашем целевом языке, используя HTTP Range Requests для минимизации загрузки данных.
Извлечение текста: Из WARC файлов извлекается HTML, а затем с помощью библиотеки Trafilatura получается чистый текст, очищенный от шума и повторяющихся элементов.
Дедупликация: Для улучшения качества данных и ускорения обучения модели, мы применяем метод точной дедупликации подстрок, удаляя повторяющиеся фрагменты текста.
Мы используем метод QLoRA для дообучки многоязычных LLM на собранных данных. QLoRA позволяет:
Наши эксперименты показали значительное улучшение производительности моделей после адаптации с помощью UnifiedCrawl:
Перплексия: Дообученные модели демонстрируют значительное снижение перплексии, что указывает на лучшее понимание и генерацию текста на низкоресурсных языках.
Few-shot prompting: Модели, дообученные на нашем наборе данных, показали улучшение в задачах few-shot prompting, особенно в вопросно-ответных системах.
UnifiedCrawl предоставляет доступный и эффективный способ улучшения LLM для работы с языками, для которых существует ограниченное количество данных. Наш подход не только расширяет доступность и применимость LLM, но и демократизирует использование AI, делая его более доступным для сообществ, говорящих на языках с ограниченными ресурсами. Исходный код нашего метода доступен на GitHub, что позволяет другим исследователям и разработчикам использовать и улучшать нашу работу.