vLLM: мощный инструмент для ускорения рассуждений ИИ
vLLM: мощный инструмент для ускорения рассуждений ИИ

Почему услуга LLM так сложна?

Вычислительные ресурсы

Поскольку LLM необходимо обрабатывать большое количество параметров для прогнозирования, которое может увеличиться с 7 миллиардов параметров до 321 миллиарда, развертывание такой модели может потребовать значительных ресурсов и оптимизации вместо использования традиционных методов развертывания моделей машинного обучения.

Задерживать

Когда предложение или токен являются сложными,Обработка результатов займет несколько минут,Это может вызвать проблемы в масштабе или в реальных операциях. Например,Компания может иметь продуктQ&AПриложения для чат-ботовLLM,Медленный ответ может расстраивать пользователей. поэтому,Хорошей практикой является применение некоторых методов для уменьшения зависимости.

расходы

В крупномасштабных системах или когда в системе несколько LLM.,Потратит много бюджета,Потому что LLM используют много ресурсов для обработки,Как MLE,Поиск способа использования ресурсов принесет системе финансовую выгоду. Например,Снизьте стоимость каждого запроса.

Что такое vLLM?

Этот проект реализован студентами Калифорнийского университета в Беркли, которые увлечены оптимизацией эффективности обслуживания студентов LLM. Многие системы тратят много ресурсов на обслуживание LLM, но имеют малое время отклика при развертывании с использованием простых методов. Поэтому команда vLLM предложила новый метод решения этой проблемы. Используя дизайн виртуальной памяти операционной системы, производительность службы LLM можно повысить примерно в 24 раза, при этом используемая память графического процессора сокращается вдвое по сравнению с традиционным методом. Для интеграции в вашу систему vLLM предоставляет инженерам по машинному обучению простой интерфейс для разработки через интерфейс Python, который вы можете интегрировать в свою систему без использования сложных пакетов или зависимостей.

В чем секретное оружие vLLM?

чтобы понятьvLLMКак уменьшить Задерживатьи Цель оптимизации общей производительности системы.,Нам следует понять узкое место vLLM и способы решения этой проблемы.

Проблемы с использованием памяти

Модель большого языка (LLM) — это, по сути, ветвь нейронной сети внимания, или некоторые называют ее преобразователем, с декодированием на основе специальной модели. Поэтому нам необходимо понять ключевую концепцию: как LLM генерирует токены.

сегментирование памяти

По сути, запрошенный KV-кеш хранится в непрерывном пространстве памяти, поскольку многие вычисления платформы глубокого обучения требуют, чтобы значения тензора хранились в непрерывной памяти. Однако в зависимости от архитектуры модели кэш KV может со временем увеличиваться или уменьшаться, и этот формат хранения может вызывать проблемы и непрактичен для вычислений.

Как преодолеть эту проблему

Команда vLLM разработала новый алгоритм внимания под названием PageAttention, вдохновленный концепцией виртуальной памяти операционной системы. Думайте о блоках как о страницах, о токенах как о байтах, а о запросах как о процессах.

Еще одним преимуществом использования PageAttention является то, что оно позволяет системам совместно использовать кэш KV, поскольку токены хранятся в несмежной памяти. Это позволяет использовать LLM во многих приложениях.

Сервер, совместимый с OpenAI, для vLLM

Если вы хотите быстро использовать vLLM для запуска сервера, совместимого с OpenAI, вы можете сделать следующее:

Установка из командной строки:

Язык кода:bash
копировать
pip3 install vllm==0.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

Обычный запуск (на примере Qwen2-7B):

Язык кода:bash
копировать
python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2-7B-Instruct

Подробное объяснение других параметров запуска:

Язык кода:bash
копировать
python3 -m vllm.entrypoints.openai.api_server -h
использование: api_server.py [-h] [--host HOST] [--port PORT] [--uvicorn-log-level {debug,info,warning,error,critical,trace}] [--allow-credentials] [--allowed-origins ALLOWED_ORIGINS] [--allowed-methods ALLOWED_METHODS] [--allowed-headers ALLOWED_HEADERS]
[--api-key API_KEY] [--lora-modules LORA_MODULES [LORA_MODULES ...]] [--chat-template CHAT_TEMPLATE] [--response-role RESPONSE_ROLE] [--ssl-keyfile SSL_KEYFILE] [--ssl-certfile SSL_CERTFILE] [--ssl-ca-certs SSL_CA_CERTS]
[--ssl-cert-reqs SSL_CERT_REQS] [--root-path ROOT_PATH] [--middleware MIDDLEWARE] [--model MODEL] [--tokenizer TOKENIZER] [--skip-tokenizer-init] [--revision REVISION] [--code-revision CODE_REVISION]
[--tokenizer-revision TOKENIZER_REVISION] [--tokenizer-mode {auto,slow}] [--trust-remote-code] [--download-dir DOWNLOAD_DIR] [--load-format {auto,pt,safetensors,npcache,dummy,tensorizer,bitsandbytes}]
[--dtype {auto,half,float16,bfloat16,float,float32}] [--kv-cache-dtype {auto,fp8,fp8_e5m2,fp8_e4m3}] [--quantization-param-path QUANTIZATION_PARAM_PATH] [--max-model-len MAX_MODEL_LEN]
[--guided-decoding-backend {outlines,lm-format-enforcer}] [--distributed-executor-backend {ray,mp}] [--worker-use-ray] [--pipeline-parallel-size PIPELINE_PARALLEL_SIZE] [--tensor-parallel-size TENSOR_PARALLEL_SIZE]
[--max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS] [--ray-workers-use-nsight] [--block-size {8,16,32}] [--enable-prefix-caching] [--disable-sliding-window] [--use-v2-block-manager]
[--num-lookahead-slots NUM_LOOKAHEAD_SLOTS] [--seed SEED] [--swap-space SWAP_SPACE] [--gpu-memory-utilization GPU_MEMORY_UTILIZATION] [--num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE]
[--max-num-batched-tokens MAX_NUM_BATCHED_TOKENS] [--max-num-seqs MAX_NUM_SEQS] [--max-logprobs MAX_LOGPROBS] [--disable-log-stats]
[--quantization {aqlm,awq,deepspeedfp,fp8,marlin,gptq_marlin_24,gptq_marlin,gptq,squeezellm,compressed-tensors,bitsandbytes,None}] [--rope-scaling ROPE_SCALING] [--rope-theta ROPE_THETA] [--enforce-eager]
[--max-context-len-to-capture MAX_CONTEXT_LEN_TO_CAPTURE] [--max-seq-len-to-capture MAX_SEQ_LEN_TO_CAPTURE] [--disable-custom-all-reduce] [--tokenizer-pool-size TOKENIZER_POOL_SIZE] [--tokenizer-pool-type TOKENIZER_POOL_TYPE]
[--tokenizer-pool-extra-config TOKENIZER_POOL_EXTRA_CONFIG] [--enable-lora] [--max-loras MAX_LORAS] [--max-lora-rank MAX_LORA_RANK] [--lora-extra-vocab-size LORA_EXTRA_VOCAB_SIZE] [--lora-dtype {auto,float16,bfloat16,float32}]
[--long-lora-scaling-factors LONG_LORA_SCALING_FACTORS] [--max-cpu-loras MAX_CPU_LORAS] [--fully-sharded-loras] [--device {auto,cuda,neuron,cpu,openvino,tpu,xpu}] [--image-input-type {pixel_values,image_features}]
[--image-token-id IMAGE_TOKEN_ID] [--image-input-shape IMAGE_INPUT_SHAPE] [--image-feature-size IMAGE_FEATURE_SIZE] [--image-processor IMAGE_PROCESSOR] [--image-processor-revision IMAGE_PROCESSOR_REVISION]
[--disable-image-processor] [--scheduler-delay-factor SCHEDULER_DELAY_FACTOR] [--enable-chunked-prefill] [--speculative-model SPECULATIVE_MODEL] [--num-speculative-tokens NUM_SPECULATIVE_TOKENS]
[--speculative-draft-tensor-parallel-size SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE] [--speculative-max-model-len SPECULATIVE_MAX_MODEL_LEN] [--speculative-disable-by-batch-size SPECULATIVE_DISABLE_BY_BATCH_SIZE]
[--ngram-prompt-lookup-max NGRAM_PROMPT_LOOKUP_MAX] [--ngram-prompt-lookup-min NGRAM_PROMPT_LOOKUP_MIN] [--model-loader-extra-config MODEL_LOADER_EXTRA_CONFIG] [--preemption-mode PREEMPTION_MODE]
[--served-model-name SERVED_MODEL_NAME [SERVED_MODEL_NAME ...]] [--qlora-adapter-name-or-path QLORA_ADAPTER_NAME_OR_PATH] [--otlp-traces-endpoint OTLP_TRACES_ENDPOINT] [--engine-use-ray] [--disable-log-requests]
[--max-log-len MAX_LOG_LEN]

vLLM RESTful с совместимостью с OpenAI API-сервер.

Дополнительные параметры:
  -h, --help            Показать это справочное сообщение и выйти
  --host HOST           имя хоста
  --port PORT           номер порта
  --uvicorn-log-level {debug,info,warning,error,critical,trace}
                        уровень журнала uvicorn
  --allow-credentials   Разрешить учетные данные
  --allowed-origins ALLOWED_ORIGINS
                        разрешенные источники
  --allowed-methods ALLOWED_METHODS
                        разрешенные методы
  --allowed-headers ALLOWED_HEADERS
                        Разрешенные заголовки
  --api-key API_KEY     Если он предоставлен, сервер запросит этот ключ в заголовке.
  --lora-modules LORA_MODULES [LORA_MODULES ...]
                        Конфигурация модуля LoRA, формат имя=путь. Можно указать несколько модулей.
  --chat-template CHAT_TEMPLATE
                        Путь к файлу шаблона чата или однострочный шаблон для указанной модели.
  --response-role RESPONSE_ROLE
                        Имя роли возвращается, если `request.add_generation_prompt=true`.
  --ssl-keyfile SSL_KEYFILE
                        Путь к файлу ключа SSL
  --ssl-certfile SSL_CERTFILE
                        Путь к файлу сертификата SSL
  --ssl-ca-certs SSL_CA_CERTS
                        Файл сертификата CA
  --ssl-cert-reqs SSL_CERT_REQS
                        Требуется ли сертификат клиента (см. модуль SSL стандартной библиотеки)
  --root-path ROOT_PATH
                        FastAPI, когда приложение находится за прокси-сервером маршрутизации на основе пути root_path
  --middleware MIDDLEWARE
                        Дополнительное промежуточное ПО ASGI, которое можно применить к вашему приложению. Мы принимаем несколько параметров --middleware. Его значение должно быть путем импорта. Если функция предоставлена, vLLM добавит ее на сервер с помощью @app.middleware('http'). Если класс указан, vLLM добавляет его с помощью app.add_middleware().
  --model MODEL         Имя модели Huggingface или путь к использованию.
  --tokenizer TOKENIZER
                        Имя или путь к токенизатору Huggingface, который будет использоваться. Если не указано, используется имя модели или путь.
  --skip-tokenizer-init
                        Пропустить инициализацию токенизатора и антитокенизатора
  --revision REVISION   Конкретная версия модели, которую следует использовать. Это может быть имя ветки, имя тега или идентификатор фиксации. Если не указано, будет использоваться версия по умолчанию.
  --code-revision CODE_REVISION
                        Используется для кода модели в Hugging. Face Конкретная ревизия Хаба. Это может быть имя ветки, имя тега или идентификатор фиксации. Если не указано, будет использоваться версия по умолчанию.
  --tokenizer-revision TOKENIZER_REVISION
                        Пересмотренная версия токенизатора Huggingface. Это может быть имя ветки, имя тега или идентификатор фиксации. Если не указано, будет использоваться версия по умолчанию.
  --tokenizer-mode {auto,slow}
                        Режим токенизатора. * «auto» будет использовать быстрый токенизатор, если он доступен. * «медленный» всегда будет использовать медленный токенизатор.
  --trust-remote-code   Доверяйте удаленному коду от HuggingFace.
  --download-dir DOWNLOAD_DIR
                        Загрузите и загрузите каталог Weight, который по умолчанию соответствует каталогу кэша HuggingFace по умолчанию.
  --load-format {auto,pt,safetensors,npcache,dummy,tensorizer,bitsandbytes}
                        Формат, используемый для загрузки весов модели. * «авто» попытается загрузить веса в формате защитных тензоров и вернуться к pytorch, если формат защитных тензоров недоступен. формат бин. * "pt" будет pytorch Загрузите вес в формате контейнера. * «safetensors» будет загружать веса в формате Safetensors. * «npcache» будет загружать веса в формате pytorch и сохранять кеш numpy для ускорения загрузки. * «dummy» инициализирует веса случайными значениями и в основном используется для анализа производительности. * «тензоризатор» загрузит веса с помощью тензоризатора из CoreWeave. Дополнительную информацию см. в разделе «Тензоризация» в разделе «Примеры». Скрипт модели vLLM. * «bitsandbytes» будет использовать биты и байты для количественной оценки веса нагрузки.
  --dtype {auto,half,float16,bfloat16,float,float32}
                        Веса модели и типы данных активации. * «Авто» будет использовать точность FP16 для моделей FP32 и FP16 и точность BF16 для моделей BF16. * «половина» — для FP16. Рекомендуется для квантования AWQ. * «float16» — то же самое, что «половина». * «bfloat16» используется для балансировки точности и дальности. * «Поплавок» — это сокращение от точности FP32. * «float32» соответствует точности FP32.
  --kv-cache-dtype {auto,fp8,fp8_e5m2,fp8_e4m3}
                        Тип данных, хранящийся в кэше kv. Если «авто», будет использоваться тип данных модели. КУДА 11.8+ поддерживает fp8(=fp8_e4m3) и fp8_e5m2. ROCm (AMD графический процессор) поддерживает fp8(=fp8_e4m3)
  --quantization-param-path QUANTIZATION_PARAM_PATH
                        Путь к файлу JSON, содержащему коэффициенты масштабирования кэша KV. Этот файл обычно следует предоставлять, если тип данных кэша KV — FP8. В противном случае коэффициент масштабирования кэша KV по умолчанию будет равен 1,0, что может вызвать проблемы с точностью. FP8_E5M2 (немасштабированный) поддерживается только в том случае, если версия CUDA выше 11,8. В ROCm (AMD GPU) вместо этого поддерживает FP8_E4M3 для соответствия общим стандартам вывода.
  --max-model-len MAX_MODEL_LEN
                        Длина контекста модели. Если не указано, оно будет автоматически получено из конфигурации модели.
  --guided-decoding-backend {outlines,lm-format-enforcer}
                        Какой механизм будет использоваться по умолчанию для управления декодированием (схема/регулярное выражение JSON и т. д.). В настоящее время поддерживает https://github.com/outlines-dev/outlines. и https://github.com/noamgat/lm-format-enforcer. Может быть переопределено с помощью параметраguide_decoding_backend в запросе.
  --distributed-executor-backend {ray,mp}
                        Бэкэнд для распределенных сервисов. При использовании более 1 графического процессора для параметра «ray» автоматически устанавливается значение «ray», если оно установлено, в противном случае устанавливается значение «mp» (многопроцессный).
  --worker-use-ray    Устарело, используйте --distributed-executor-backend=ray.
  --pipeline-parallel-size PIPELINE_PARALLEL_SIZE, -pp PIPELINE_PARALLEL_SIZE
                        Количество этапов конвейера.
  --tensor-parallel-size TENSOR_PARALLEL_SIZE, -tp TENSOR_PARALLEL_SIZE
                        Количество параллельных копий тензора.
  --max-parallel-loading-workers MAX_PARALLEL_LOADING_WORKERS
                        Загружайте модели последовательно несколькими партиями.,Чтобы избежать использования тензорного параллелизмаи Встречается с большими моделямиRAM OOM。
  --ray-workers-use-nsight
                        Если указано, используйте nsight для анализа рабочих узлов Ray.
  --block-size {8,16,32}
                        Размер блока токенов для последовательных блоков токенов.
  --enable-prefix-caching
                        Включите автоматическое кэширование префиксов.
  --disable-sliding-window
                        Отключить скользящее окно, установить размер скользящего окна.
  --use-v2-block-manager
                        Используйте BlockSpaceMangerV2.
  --num-lookahead-slots NUM_LOOKAHEAD_SLOTS
                        Экспериментальная конфигурация планирования, необходимая для прогнозирования начального декодирования. В будущем это будет заменено спекулятивной конфигурацией; в настоящее время она существует для обеспечения возможности проверки правильности до тех пор.
  --seed SEED           Случайное начальное число для операции.
  --swap-space SWAP_SPACE
                        Размер пространства подкачки ЦП на каждый графический процессор (Ги Б).
  --gpu-memory-utilization GPU_MEMORY_UTILIZATION
                        Доля памяти графического процессора, используемая исполнителем модели, может находиться в диапазоне от 0 до 1. Например, значение 0,5 будет означать использование памяти графического процессора на 50 %. Если не указано, будет использоваться значение по умолчанию 0,9.
  --num-gpu-blocks-override NUM_GPU_BLOCKS_OVERRIDE
                        Если указано, игнорируйте результаты теста производительности графического процессора и используйте это количество блоков графического процессора. Используется для тестирования упреждения.
  --max-num-batched-tokens MAX_NUM_BATCHED_TOKENS
                        Максимальное количество токенов пакетной обработки на итерацию.
  --max-num-seqs MAX_NUM_SEQS
                        Максимальное количество последовательностей на итерацию.
  --max-logprobs MAX_LOGPROBS
                        Возвращает максимальное количество logprobs, если logprobs указаны в SamplingParams.
  --disable-log-stats   Отключить статистику журнала.
  --quantization {aqlm,awq,deepspeedfp,fp8,marlin,gptq_marlin_24,gptq_marlin,gptq,squeezellm,compressed-tensors,bitsandbytes,None}, -q {aqlm,awq,deepspeedfp,fp8,marlin,gptq_marlin_24,gptq_marlin,gptq,squeezellm,compressed-tensors,bitsandbytes,None}
                        Метод, используемый для количественного определения весов. Если нет, мы сначала проверяем атрибут quantization_config в файле конфигурации модели. Если это None, мы предполагаем, что веса модели не квантуются, и используем dtype для определения типа данных весов.
  --rope-scaling ROPE_SCALING
                        Формат JSON конфигурации масштабирования RoPE. Например, {"type":"dynamic","factor":2.0}
  --rope-theta ROPE_THETA
                        RoPE с использованием `rope_scaling` тета. В некоторых случаях смена RoPE тета может улучшить производительность масштабируемых моделей.
  --enforce-eager       всегда используйтеPyTorchнетерпеливый режим。если дляFalse,буду использовать нетерпеливый режимиCUDAСмешивание графиков для максимальной производительностиигибкость。
  --max-context-len-to-capture MAX_CONTEXT_LEN_TO_CAPTURE
                        Максимальная длина контекста, покрываемая графом CUDA. Когда длина контекста последовательности превышает эту длину, мы возвращаемся в режим ожидания. (Устарело. Вместо этого используйте --max-seq-len-to-capture)
  --max-seq-len-to-capture MAX_SEQ_LEN_TO_CAPTURE
                        Максимальная длина последовательности, охватываемая графом CUDA. Когда длина контекста последовательности превышает эту длину, мы возвращаемся в режим ожидания.
  --disable-custom-all-reduce
                        См. параллельную конфигурацию.
  --tokenizer-pool-size TOKENIZER_POOL_SIZE
                        Размер пула токенизатора, используемого для асинхронной токенизации. Если 0, будет использоваться синхронная сегментация слов.
  --tokenizer-pool-type TOKENIZER_POOL_TYPE
                        Тип пула токенизатора, используемого для асинхронной токенизации. Игнорируется, если tokenizer_pool_size равен 0.
  --tokenizer-pool-extra-config TOKENIZER_POOL_EXTRA_CONFIG
                        Дополнительная настройка пула токенизаторов. Это должна быть строка JSON, которая будет проанализирована в словаре. Игнорируется, если tokenizer_pool_size равен 0.
  --enable-lora         Если True, включает обработку адаптеров LoRA.
  --max-loras MAX_LORAS
                        Максимальное количество LoRA в одной партии.
  --max-lora-rank MAX_LORA_RANK
                        Максимальное значение ранга LoRA.
  --lora-extra-vocab-size LORA_EXTRA_VOCAB_SIZE
                        Максимальный размер дополнительного словаря, который может существовать в адаптере LoRA (добавляется к словарю базовой модели).
  --lora-dtype {auto,float16,bfloat16,float32}
                        Тип данных LoRA. Если auto, по умолчанию будет использоваться dtype базовой модели.
  --long-lora-scaling-factors LONG_LORA_SCALING_FACTORS
                        Укажите несколько коэффициентов масштабирования (могут отличаться от коэффициентов масштабирования базовой модели — см., например, Long). LoRA), чтобы обеспечить одновременное использование нескольких адаптеров LoRA, обученных с помощью этих коэффициентов масштабирования. Если не указано, разрешены только адаптеры, обученные с использованием коэффициента масштабирования базовой модели.
  --max-cpu-loras MAX_CPU_LORAS
                        Максимальное количество LoRA, хранящихся в памяти ЦП. Должно быть больше или равно max_num_seqs. По умолчанию — max_num_seqs.
  --fully-sharded-loras
                        По умолчанию только половина вычислений LoRA сегментируется с использованием тензорного параллелизма. Включение этой опции будет использовать полностью сегментированные слои. Это может быть быстрее при больших длинах последовательностей, максимальных рангах или размерах тензорных параллелей.
  --device {auto,cuda,neuron,cpu,openvino,tpu,xpu}
                        Тип устройства, на котором выполняется vLLM.
  --image-input-type {pixel_values,image_features}
                        Тип ввода изображения передается в vLLM.
  --image-token-id IMAGE_TOKEN_ID
                        Входной идентификатор токена изображения.
  --image-input-shape IMAGE_INPUT_SHAPE
                        Самая большая форма ввода изображения для данного типа ввода (наименее удобная для памяти). Profile_run только для vLLM.
  --image-feature-size IMAGE_FEATURE_SIZE
                        Размер элементов изображения по контекстным измерениям.
  --image-processor IMAGE_PROCESSOR
                        Имя или путь к используемому процессору изображений HuggingFace. Если не указано, будет использоваться имя модели или путь.
  --image-processor-revision IMAGE_PROCESSOR_REVISION
                        Используемая версия процессора изображений Huggingface. Это может быть имя ветки, имя тега или идентификатор фиксации. Если не указано, будет использоваться версия по умолчанию.
  --disable-image-processor
                        Отключает использование процессоров изображений, даже если они определены в HuggingFace для модели.
  --scheduler-delay-factor SCHEDULER_DELAY_FACTOR
                        Применяет Задержку (умноженную на коэффициент Задержки предыдущего запроса) перед планированием следующего запроса.
  --enable-chunked-prefill
                        Если установлено, запросы предварительного заполнения могут быть разбиты на блоки на основе max_num_batched_tokens.
  --speculative-model SPECULATIVE_MODEL
                        Название черновой модели, используемой при спекулятивной расшифровке.
  --num-speculative-tokens NUM_SPECULATIVE_TOKENS
                        Количество спекулятивных токенов, выбранных из черновой модели при спекулятивном декодировании.
  --speculative-draft-tensor-parallel-size SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE, -spec-draft-tp SPECULATIVE_DRAFT_TENSOR_PARALLEL_SIZE
                        Количество параллельных копий тензоров черновых моделей при спекулятивном декодировании.
  --speculative-max-model-len SPECULATIVE_MAX_MODEL_LEN
                        Максимальная длина последовательности, поддерживаемая черновой моделью. Последовательности, длиннее этого, пропустят предположения.
  --speculative-disable-by-batch-size SPECULATIVE_DISABLE_BY_BATCH_SIZE
                        Если количество запросов в очереди превышает это значение, спекулятивное декодирование новых входящих запросов отключается.
  --ngram-prompt-lookup-max NGRAM_PROMPT_LOOKUP_MAX
                        Максимальный размер окна для поиска подсказок ngram при спекулятивном декодировании.
  --ngram-prompt-lookup-min NGRAM_PROMPT_LOOKUP_MIN
                        Минимальный размер окна для поиска подсказок ngram при спекулятивном декодировании.
  --model-loader-extra-config MODEL_LOADER_EXTRA_CONFIG
                        Дополнительная конфигурация для загрузчиков моделей. Это будет передано загрузчику модели, соответствующему выбранному load_format. Это должна быть строка JSON, которая будет проанализирована в словаре.
  --preemption-mode PREEMPTION_MODE
                        Если «перевычислить», механизм выполняет вытеснение посредством замены блоков; если «обмен», механизм выполняет вытеснение посредством замены блоков;
  --served-model-name SERVED_MODEL_NAME [SERVED_MODEL_NAME ...]
                        Имя модели, используемое в API. Если указано несколько имен, сервер ответит на любое из предоставленных имен. Имя модели в поле модели в ответе будет первым именем в этом списке. Если не указано, имя модели будет таким же, как аргумент --model. Обратите внимание, что это имя также будет использоваться для содержимого тега model_name в метриках Prometheus. Если указано несколько имен, метка метрики примет первое из них.
  --qlora-adapter-name-or-path QLORA_ADAPTER_NAME

Подвести итог

vLLM показывает, как можно делать удивительные вещи, используя простые концепции, которые мы применяем уже десять лет. Эта платформа обеспечивает огромные улучшения в использовании памяти графического процессора и использует различные преимущества технологии PageAttention. Уменьшая использование кэша KV, система может обрабатывать большие нагрузки и быстрее выполнять логический вывод.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода