английский 中文
Новости
- [2024 / 06] Мы выпускаем совершенно новую версию rtp-llm, которая включает в себя структуру планирования и пакетной обработки, переработанную на C++, полное управление и отслеживание распределения памяти графического процессора, а также новую серверную часть устройства. Проверьте информацию о выпуске для более подробной информации!
- [2024 / 06] В настоящее время мы работаем над поддержкой нескольких серверных частей оборудования в тесном сотрудничестве с производителями оборудования. Поддержка AMD ROCm, Intel CPU и ARM CPU уже в пути, следите за обновлениями!
О
- rtp-llm — это механизм ускорения вывода модели большого языка (LLM), разработанный командой Alibaba Foundation Model Inference. Он широко используется в Alibaba Group, поддерживая услуги LLM в нескольких бизнес-подразделениях, включая Taobao, Tmall, Idlefish, Cainiao, Amap, Ele.me, AE и Lazada.
- Проект rtp-llm является подпроектом Havenask.
Функции
Проверенная продукция
Применяется во многих сценариях LLM, таких как:
- Таобао Венвен
- Международная платформа искусственного интеллекта Alibaba, Aidge
- OpenSearch LLM Умное издание вопросов и ответов
- Переписывание длинных запросов на основе большой языковой модели в поиске Taobao
Высокая производительность
- Использует высокопроизводительные ядра CUDA, включая PagedAttention, FlashAttention, FlashDecoding и т. д.
- Реализует квантование WeightOnly INT8 с автоматическим квантованием во время загрузки; Поддержка квантования WeightOnly INT4 с GPTQ и AWQ
- Адаптивное квантование KVCache
- Детальная оптимизация накладных расходов на динамическую пакетную обработку на уровне платформы.
- Специально оптимизирован для графического процессора V100.
Гибкость и простота использования
- Бесшовная интеграция с моделями HuggingFace, поддержка нескольких форматов веса, таких как SafeTensors, Pytorch и Megatron.
- Развертывает несколько сервисов LoRA с помощью одного экземпляра модели.
- Обрабатывает мультимодальные входные данные (объединение изображений и текста).
- Обеспечивает тензорный параллелизм между несколькими компьютерами и несколькими графическими процессорами.
- Поддерживает модели P-тюнинга
Передовые методы ускорения
- Загружает обрезанные нестандартные модели
- Контекстный кэш префиксов для многоходовых диалогов
- Кэш системных подсказок
- Спекулятивное декодирование
- Medusa для продвинутых стратегий распараллеливания
Как использовать
Требования
- Операционная система: Линукс
- Питон: 3.10
- Графический процессор NVIDIA: вычислительные возможности 7.0 или выше (например, RTX20xx, RTX30xx, RTX40xx, V100, T4, A10/A30/A100, L4, H100 и т. д.)
Пример запуска
- докер
cd rtp-llm/docker
# IMAGE_NAME =
# if cuda11: registry.cn-hangzhou.aliyuncs.com/havenask/rtp_llm:deploy_image_cuda11
# if cuda12: registry.cn-hangzhou.aliyuncs.com/havenask/rtp_llm:deploy_image_cuda12
sh ./create_container.sh < CONTAINER_NAME > < IMAGE_NAME >
sh CONTAINER_NAME/sshme.sh
cd ../
# start http service
TOKENIZER_PATH=/path/to/tokenizer CHECKPOINT_PATH=/path/to/model MODEL_TYPE=your_model_type FT_SERVER_TEST=1 python3 -m maga_transformer.start_server
# request to server
curl -XPOST http://localhost:8088 -d ' {"prompt": "hello, what is your name", "generate_config": {"max_new_tokens": 1000}} '
- что
# Install rtp-llm
cd rtp-llm
# For cuda12 environment, please use requirements_torch_gpu_cuda12.txt
pip3 install -r ./open_source/deps/requirements_torch_gpu.txt
# Use the corresponding whl from the release version, here's an example for the cuda11 version 0.1.0, for the cuda12 whl package please check the release page.
pip3 install maga_transformer-0.1.9+cuda118-cp310-cp310-manylinux1_x86_64.whl
# start http service
cd ../
TOKENIZER_PATH=/path/to/tokenizer CHECKPOINT_PATH=/path/to/model MODEL_TYPE=your_model_type FT_SERVER_TEST=1 python3 -m maga_transformer.start_server
# request to server
curl -XPOST http://localhost:8088 -d ' {"prompt": "hello, what is your name", "generate_config": {"max_new_tokens": 1000}} '
Примечание к выпуску Docker
- Примечание к выпуску Docker
Часто задаваемые вопросы
libcufft.so
Журнал ошибок : OSError: libcufft.so.11: cannot open shared object file: No such file or directory
Решение : проверьте, совпадают ли версии cuda и rtp-llm.
libth_transformer.so
Журнал ошибок : OSError: /rtp-llm/maga_transformer/libs/libth_transformer.so: cannot open shared object file: No such file or directory
Решение : если установлено через whl или docker (что означает не сборку bazel), убедитесь, что ваш текущий каталог не rtp-llm, иначе Python будет использовать пакет относительного пути вместо установленного whl.
Тайм-аут сборки Базеля
Журнал ошибок : ERROR: no such package '@pip_gpu_cuda12_torch//': rules_python_external failed: (Timed out)
Разрешение :
- измените репозиторий зеркала pip в open_source/deps/pip.bzl, добавьте extra_pip_args=["--index_url=xxx"]
- требования к установке pip вручную, особенно для pytorch, поскольку эта сборка bazel по умолчанию имеет тайм-аут 600 с, чего может быть недостаточно для загрузки pytorch
Ошибка Curl Журнал ошибок: thread '<unnamed>' panicked at 'index out of bounds: the len is 1 but the index is 1', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/regex-1.8.1/src/dfa.rs:1415:45
Решение : обновить tiktoken до версии 0.7.0.
Документация
- Тестирование в развертывании Docker
- Пример обслуживания
- Пример RWKV-Runner
- Пример библиотеки Python
- Использование RTP-LLm в Aliyun Ecs
- Параметры конфигурации
- Сборка исходного кода
- Формат запроса
- Вывод нескольких графических процессоров
- ЛоРА
- PTuning
- Системная подсказка
- Повторное использованиеKVCache
- Мультимодальный
- Развертывание модели внедрения/переранжирования
- Структурированная обрезка
- Квантование
- Спекулятивная выборка
- Дорожная карта
- Содействие
- Тестирование и производительность
Благодарности
Наш проект в основном основан на FasterTransformer, и на этой основе мы интегрировали некоторые реализации ядра из TensorRT-LLM. FasterTransformer и TensorRT-LLM предоставили нам надежные гарантии производительности. Flash-Attention2 и Cutlass также оказали большую помощь в нашем непрерывном процессе оптимизации производительности. Наша непрерывная пакетная обработка и инкрементное декодирование основаны на реализации vllm; выборка опирается на преобразователи: спекулятивная выборка объединяет реализацию Medusa, а мультимодальная часть объединяет реализации llava и qwen-vl. Мы благодарим эти проекты за вдохновение и помощь.
Сценарии внешних приложений (постоянно обновляются)
- Таобао Венда
- Международная платформа искусственного интеллекта Alibaba Aidge
- OpenSearch LLM Умное издание вопросов и ответов
- Переписывание длинных запросов на основе большой языковой модели в поиске Taobao
Список поддерживаемых моделей
Магистр права
- Aquila и Aquila2 (BAAI/AquilaChat2-7B, BAAI/AquilaChat2-34B, BAAI/Aquila-7B, BAAI/AquilaChat-7B и т. д.)
- Байчуань и Байчуань2 (baichuan-inc/Baichuan2-13B-Chat, baichuan-inc/Baichuan-7B)
- Блум (большая наука/блум, большая наука/блумз)
- ChatGlm (THUDM/chatglm2-6b, THUDM/chatglm3-6b, GLM4 и т. д.)
- Сокол (tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b и т.д.)
- GptNeox (ЭлеутерАИ/gpt-neox-20b)
- GPT BigCode (bigcode/starcoder, bigcode/starcoder2)
- LLaMA и LLaMA-2 (мета-лама/Лама-2-7b, мета-лама/Лама-2-13b-hf, мета-лама/Ллама-2-70b-hf, lmsys/vicuna-33b-v1.3, 01-ai/Yi-34B, xverse/XVERSE-13B и т. д.)
- MPT (mosaicml/mpt-30b-chat и т. д.)
- Фи (microsoft/phi-1_5 и т. д.)
- Квен (Квен, Квен1.5, Квен2 и т. д.)
- InternLM (internlm/internlm-7b, internlm/internlm-chat-7b и т. д.)
- Джемма (google/gemma-it и т. д.)
- Микстрал (mistralai/Mixtral-8x7B-v0.1 и т. д.)
LLM + Мультимодальный
- ЛЛАВА (liuhaotian/llava-v1.5-13b, liuhaotian/llava-v1.5-7b)
- Квен-ВЛ (Квен/Квен-ВЛ)
Связаться с нами
Группа ДинТок
Группа Вичат