Crawl4LLM: эффективный инструмент для предварительного обучения LLM с помощью веб-ползания
Общее введение
Crawl4LLM - это проект с открытым исходным кодом, разработанный совместно Университетом Цинхуа и Университетом Карнеги-Меллон и направленный на оптимизацию эффективности веб-ползания для предварительного обучения больших моделей (LLM). Он позволяет значительно сократить неэффективность ползания за счет интеллектуального отбора высококачественных данных о веб-страницах и утверждает, что может сократить рабочую нагрузку, когда первоначально требовалось проползти 100 веб-страниц, до 21, сохраняя при этом эффект предварительного обучения. Проект размещен на GitHub с подробным кодом и документацией по настройке для разработчиков и исследователей. Суть Crawl4LLM заключается в алгоритме отбора данных, который оценивает ценность веб-страниц для обучения модели и отдает предпочтение полезному контенту, и уже привлек внимание ученых и сообщества разработчиков.

Список функций
- Интеллектуальный выбор данных: Фильтрация высокоценного контента на основе влияния веб-страниц на предварительное обучение больших моделей.
- Несколько режимов ползанияПоддерживается режим Crawl4LLM, случайный просмотр и т.д., что позволяет гибко реагировать на различные потребности.
- Эффективная система поиска: Использование многопоточности и оптимизированных конфигураций позволяет значительно увеличить скорость выполнения операций.
- Извлечение и хранение данных: Сохраните идентификаторы просмотренных веб-страниц и текстовое содержимое в файлах, которые можно использовать для обучения модели.
- Поддержка масштабных наборов данныхСовместимость с такими наборами данных, как ClueWeb22, подходит для академических исследований и промышленных приложений.
- Конфигурация Настройка: Параметры краулинга, такие как количество потоков и максимальное количество документов, настраиваются с помощью файлов YAML.
Использование помощи
Процесс установки
Crawl4LLM должен работать в среде, поддерживающей Python, вот подробные шаги по установке:
- Подготовка к защите окружающей среды
- Убедитесь, что в вашей системе установлен Python 3.10 или более поздняя версия.
- Создавайте виртуальные среды, чтобы избежать конфликтов зависимостей:
python -m venv crawl4llm_env source crawl4llm_env/bin/activate # Linux/Mac crawl4llm_env\Scripts\activate # Windows
- проект клонирования
- Загрузите исходный код с GitHub:
git clone https://github.com/cxcscmu/Crawl4LLM.git cd Crawl4LLM
- Загрузите исходный код с GitHub:
- Установка зависимостей
- Выполните следующую команду для установки необходимых библиотек:
pip install -r requirements.txt
- Примечание: В файле зависимостей перечислены все пакеты Python, необходимые для работы краулера, поэтому убедитесь, что у вас хорошая сеть.
- Выполните следующую команду для установки необходимых библиотек:
- Скачать Сортировщик
- Проект использует классификатор DCLM fastText для оценки качества веб-страниц и требует ручной загрузки файла модели на
fasttext_scorers/
Каталог. - Пример пути:
fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin
. - Доступны на официальных ресурсах или по соответствующим ссылкам.
- Проект использует классификатор DCLM fastText для оценки качества веб-страниц и требует ручной загрузки файла модели на
- Подготовка набора данных
- Если вы используете наборы данных ClueWeb22, вам необходимо запросить доступ и сохранить их на SSD (путь должен быть указан в конфигурации).
Как использовать
Работа Crawl4LLM в основном осуществляется через командную строку, которая разделена на три этапа: настройка, поиск и извлечение данных. Ниже приведен подробный порядок действий:
1. Настройте задание на ползание
- существовать
configs/
Создайте YAML-файл в каталоге (например.my_config.yaml
), пример содержания:cw22_root_path: "/path/to/clueweb22_a" seed_docs_file: "seed.txt" output_dir: "crawl_results/my_crawl" num_selected_docs_per_iter: 10000 num_workers: 16 max_num_docs: 20000000 selection_method: "dclm_fasttext_score" order: "desc" wandb: false rating_methods: - type: "length" - type: "fasttext_score" rater_name: "dclm_fasttext_score" model_path: "fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin"
- Описание параметров::
cw22_root_path
: путь к набору данных ClueWeb22.seed_docs_file
: Первоначальный список документов для посева.num_workers
: Число нитей, отрегулированное с учетом производительности машины.max_num_docs
: Максимальное количество документов для просмотра.selection_method
: Метод выбора данных, рекомендуемыйdclm_fasttext_score
.
2. Запуск краулера
- Выполните команду crawl:
python crawl.py crawl --config configs/my_config.yaml
- После завершения переползания идентификатор документа сохраняется в файле
output_dir
в файле по указанному пути.
3. Извлечение содержимого документа
- Используйте следующую команду, чтобы преобразовать идентификатор документа в текст:
python fetch_docs.py --input_dir crawl_results/my_crawl --output_dir crawl_texts --num_workers 16
- На выходе получается текстовый файл, который можно использовать непосредственно для последующего обучения модели.
4. Просмотр отдельных документов
- Если вам нужно проверить конкретный документ и ссылки на него, вы можете выполнить команду:
python access_data.py /path/to/clueweb22 <document_id>
Функциональное управление
- Интеллектуальный выбор веб-страниц
- Основу Crawl4LLM составляет возможность фильтрации данных. Она использует классификаторы FastText для оценки длины и качества веб-контента, отдавая предпочтение страницам, которые более полезны для обучения модели. Пользователям не нужно фильтровать вручную, оптимизация выполняется автоматически.
- Как это сделать: Задайте конфигурацию YAML в файле
selection_method
из-заdclm_fasttext_score
Убедитесь в правильности пути модели.
- Многопоточное ускорение
- пройти (законопроект, проверку и т.д.)
num_workers
параметр для настройки количества потоков. Например, для 16-ядерного процессора можно установить значение 16, чтобы полностью использовать вычислительные ресурсы. - Примечание: Большое количество потоков может привести к переполнению памяти, поэтому рекомендуется проводить тестирование в соответствии с конфигурацией машины.
- пройти (законопроект, проверку и т.д.)
- Поддержка крупномасштабного поиска
- Проект рассчитан на очень большие массивы данных, такие как ClueWeb22, и подходит для исследовательских сценариев, требующих обработки миллиардов веб-страниц.
- Совет по действию: Обеспечьте производительность ввода-вывода, храня данные на твердотельном накопителе; установите значение
max_num_docs
целевое количество документов (например, 20 миллионов).
Советы и рекомендации
- Отладка и ведение журнала: Включить
wandb: true
Процесс ползания может быть записан для удобства анализа эффективности. - Оптимизация хранения: Результаты ползания имеют большой размер, поэтому рекомендуется зарезервировать достаточно места на диске (например, сотни ГБ).
- Расширенная функциональность: В сочетании с системой DCLM извлеченный текст может быть использован непосредственно для предварительной тренировки большой модели.
Выполнив описанные выше действия, пользователи смогут быстро начать работу с Crawl4LLM для эффективного сбора веб-данных и оптимизации процесса предварительного обучения.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...