Chitu (Red Rabbit): высокопроизводительный фреймворк для рассуждений на основе больших языковых моделей от команды Цинхуа
Общее введение
Chitu - это фреймворк для рассуждений с открытым исходным кодом, разработанный командой PACMAN Университета Цинхуа под названием "Red Rabbit", который специально предназначен для запуска больших языковых моделей. Chitu поддерживает различные аппаратные средства, такие как графические процессоры NVIDIA и отечественные чипы, и может использоваться от автономных до крупных кластеров.Его изюминкой является вывод с помощью моделей FP8, что позволяет значительно снизить затраты, например, запуск DeepSeek-671B на A800, который использует вдвое меньше GPU и более чем в 3 раза быстрее vLLM.Код находится в открытом доступе на GitHub и может быть бесплатно загружен и использован предприятиями или частными лицами. Это готовый инструмент для производственных сред, подходящий для команд, которые хотят сэкономить деньги, но при этом добиться производительности.

Список функций
- Он поддерживает вывод моделей FP8 и BF16 и может работать на старых графических процессорах и отечественных чипах с низкой стоимостью и высокой производительностью.
- Адаптируется к широкому спектру аппаратных средств, от чистых CPU до GPU, таких как NVIDIA A800, H20 и т.д., и крупномасштабных кластеров.
- Оптимизируйте скорость вывода с помощью CUDA Graph для более быстрого вывода за один запрос.
- Предоставляет сервисный интерфейс, позволяющий вызывать модели напрямую через HTTP-запросы.
- Поддерживает многоузловые распределенные рассуждения, подходящие для обработки больших объемов задач.
- Открытый исходный код, который предприятия могут изменять или оптимизировать по мере необходимости.
Использование помощи
Процесс установки
Установка Chitu не является сложной, но требует некоторой подготовки. Ниже приведены подробные шаги:
- Подготовка среды
- Система: рекомендуется Ubuntu 22.04, машина с графическим процессором NVIDIA (например, A800 или H20).
- Программное обеспечение: установите Git, Python 3.10, CUDA 12.1 (с поправкой на версию вашего GPU), PyTorch 2.1.
- Пример команды:
sudo apt update && sudo apt install -y git python3.10 python3-pip pip install -U torch==2.1 --index-url https://download.pytorch.org/whl/cu121
- Код загрузки
- Клонируйте код Читу локально с помощью Git:
git clone --recursive https://github.com/thu-pacman/chitu cd chitu
- Клонируйте код Читу локально с помощью Git:
- Установка зависимостей
- Установите необходимые пакеты Python и среду компиляции:
pip install -r requirements-build.txt pip install flash-attn
- Установите необходимые пакеты Python и среду компиляции:
- компиляция и установка
- Установите параметры компиляции (настройте TORCH_CUDA_ARCH_LIST в соответствии с вашим GPU, например, 8.0 для A800) и скомпилируйте:
TORCH_CUDA_ARCH_LIST=8.0 CHITU_SETUP_JOBS=4 MAX_JOBS=4 pip install --no-build-isolation .
- Установите параметры компиляции (настройте TORCH_CUDA_ARCH_LIST в соответствии с вашим GPU, например, 8.0 для A800) и скомпилируйте:
- Проверка установки
- Проведите тест, чтобы убедиться, что все в порядке:
torchrun --nproc_per_node 1 test/single_req_test.py
- Проведите тест, чтобы убедиться, что все в порядке:
Как использовать
После загрузки Chitu вы можете запустить службу из командной строки или провести один тест. Вот как это сделать:
Запуск службы рассуждений
- Настройка путей модели
- Подготовьте файлы модели, например DeepSeek-R1, в локальном каталоге (например.
/data/DeepSeek-R1
). - в команде редактирования
models.ckpt_dir
Параметр указывает на путь модели.
- Подготовьте файлы модели, например DeepSeek-R1, в локальном каталоге (например.
- Начальные услуги
- Запустите автономную службу с помощью torchrun, прослушивая порт 21002:
export WORLD_SIZE=1 torchrun --nproc_per_node 1 chitu/serve.py \ serve.port=21002 \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1 \ infer.use_cuda_graph=True \ request.max_new_tokens=100
- Запустите автономную службу с помощью torchrun, прослушивая порт 21002:
- Услуги по тестированию
- Отправьте запрос с помощью curl и проверьте, правильно ли отвечает модель:
curl localhost:21002/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"messages": [{"role": "user", "content": "你好,Chitu 是什么?"}]}'
- Результат возврата будет в формате JSON, содержащий ответ модели.
- Отправьте запрос с помощью curl и проверьте, правильно ли отвечает модель:
Выполнение одного теста на рассуждение
- Если вы не хотите запускать сервис, вы можете просто протестировать вывод модели:
torchrun --nproc_per_node 1 test/single_req_test.py \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1 \ request.max_new_tokens=64
- В терминале отобразится вывод, сообщающий о том, что сгенерировала модель.
Многоузловые распределенные рассуждения
- Подготовка нескольких машин
- Убедитесь, что Chitu и зависимости загружены на каждой машине и что файлы моделей находятся в общем хранилище.
- Запуск распределенных служб
- Запустите его на двух машинах с 8 графическими процессорами на каждой:
torchrun --nnodes 2 --nproc_per_node 8 test/single_req_test.py \ request.max_new_tokens=64 \ infer.pp_size=2 \ infer.tp_size=8 \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1
- Запустите его на двух машинах с 8 графическими процессорами на каждой:
- Проверьте эффект
- После многоузлового запуска производительность будет выше, чем на одной машине, что подходит для обработки больших объемов запросов.
Функциональное управление
Экономьте деньги и скорость с моделями FP8
- Chitu поддерживает модели формата FP8, которые используют меньше графических процессоров и быстрее, чем BF16.
- Операция: Добавить при запуске
infer.soft_fp8=True
Например, если модель в формате FP8, то и модель должна быть в формате FP8. Например:torchrun --nproc_per_node 1 chitu/serve.py \ serve.port=21002 \ models=DeepSeek-R1 \ models.ckpt_dir=/data/DeepSeek-R1 \ infer.soft_fp8=True
Ускорение с помощью CUDA Graph
- Одиночные запросы можно ускорить с помощью CUDA Graph, добавив параметр
infer.use_cuda_graph=True
. - Тестовый эффект: запустите одно умозаключение и сравните разницу в скорости с добавлением и без него.
тестирование производительности
- Chitu поставляется с инструментами бенчмаркинга для измерения пропускной способности и задержки:
python benchmarks/benchmark_serving.py \ --model "deepseek-r1" \ --iterations 10 \ --seq-len 10 \ --base-url http://localhost:21002
- Результат покажет количество жетон цифры, которые помогут вам оптимизировать распределение средств.
предостережение
- Если вы используете несколько узлов, сеть должна быть стабильной, иначе она будет падать.
- Недостаточный объем памяти GPU может привести к ошибке OOM, уменьшите его.
infer.max_seq_len
или с меньшим количеством узлов. - Поддержка отечественных чипов все еще находится в процессе оптимизации, возможно, придется изменить код для адаптации.
Пользоваться Chitu несложно - просто следуйте инструкциям, и все будет готово к работе. Его документация и сообщество также находятся на GitHub, так что вы можете поднять вопрос, если у вас есть вопросы.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...