Галоўная / Артыкулы

Практычныя падходы да адпрацоўкі LLM: Ollama, vLLM і TGI

Слою выдачы, які ператвараець файлы модэляў у API LLM: Ollama для працы на локальных прыстроях, vLLM і Hugging Face TGI для GPU, а таксама тое, чаго не хапяць у звычных трансфармэрах.

Выдавец: REACTAPP.TOP5 хв чытання1118 слоў

Крыніцы: Serving LLMs, Hands-On — Ollama, vLLM & TGI

Сервары для апрацоўкі: слой пад “простаў вызваць модэль”

Вы ўжо вызывалі модэлі — часта праз Ollama. У цым кераванні йдзе пра сервар аналізу: ён завантажвае вагі, карыстаецца памяцю GPU, агрупавае заданні і транслюе токены, так што многі кліянты можаць выкарыстоўваць аднойчы той самы API. Трое назв, якія вы будзеце часта чуць: Ollama, vLLM і TGI (Text Generation Inference).

Эксперыменты з Ollama працуюць нормальна на CPU ноутбука. vLLM і TGI выклікаюць патрэбу ў GPU — Colab або Kaggle падойду, калі у вас яго няма. Спрыйміце гэта як практычны курс: запускайце блакі, выкананыя задачы.

Чаму просты transformers не ўважаецца серварам

Завантажэнне мадэлі і вызыв .generate() працюе для аднаго повольнага запіту. Пад высокай навантажэнням ён перастае працаваць: няма стабільнага групавання запітоў, слабкая планаванне выкарыстоўвання памяці, проблемы з мнагакорыстаўчым стрымінгам. Сервісныя двойкі створаны, каб ператварыць “файл мадэлі” у “API”.

Ollama — спачатку локальна

Інсталюйце, запускайце і выкарыстоўвайце HTTP API:

ollama pull llama3.2
ollama serve            # usually already running; serves on http://localhost:11434
from openai import OpenAI   # pip install openai

client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")  # key is ignored locally

resp = client.chat.completions.create(
    model="llama3.2",
    messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)

Ўжывайце яго, каб выучыцца пра фарматы запітоў і стварыць дапрынты без неабходнасці воблаковых ключоў. Знайшоўце яго меры, калі вам патрэбна планавання на рэвэрсе цэлая група машын.

vLLM — сервісаванне на GPU з падтрымкай групавання

Пад час працы на GPU:

pip install vllm
vllm serve meta-llama/Llama-3.1-8B-Instruct       # OpenAI-compatible server on :8000

Ключовыя моменты — гэта канцэнтры, сумесныя з OpenAI, і стабільнае групавання запітоў. Следзіце за выкарыстоўванням памяці GPU і параметрамі максымальнага кантэксту.

TGI — сервісная структура Hugging Face

docker run --runtime nvidia --gpus all \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  -p 8000:8000 --ipc=host \
  vllm/vllm-openai:latest \
  --model meta-llama/Llama-3.1-8B-Instruct

TGI спецыялізуецца на сервісаванні модэляў HF у працоўным рэжыме з падтрымкай стрымінгу і трэйсінгу. Пораўняйце час адпаведзення і складнасьць аперацый з vLLM для вашых модэляў.

Мадэль мышлення парадоксальна

client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy")   # ← base_url changed
resp = client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",                           # ← model changed
    messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
  • Ollama: DX і локальная ітэрацыя
  • vLLM: токены/секунду на NVIDIA пад час канкерэнсы
  • TGI: аптарбатаванне, спрамованае на HF

Ваша чарга

docker run --gpus all --shm-size 1g -p 8080:80 \
  -v ~/.cache/huggingface:/data \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id meta-llama/Llama-3.1-8B-Instruct

Падаюце той самы запрос к кожнаму серверу, зазначаюце TTFT і токены/секунду, а потым пішыце, які механізм падходзіць для вашага наступнага праекту — дэман на ноутбуке, внутранняя GPU-сістэма чы ўніверсальны API.

Зробіце развёртванне простым: наладзіце компонаванне, пераканальвання стану і адзін месца для змены модэляў. Самэ простасць — гэта тое, што дапамагае внутранім інструментам выжыць пад час работы з рэальнымі графікамі выканання задач.

Зробіце развёртванне простым: наладзіце компонаванне, пераканальвання стану і адзін месца для змены модэляў. Самэ простасць — гэта тое, што дапамагае внутранім інструментам выжыць пад час работы з рэальнымі графікамі выканання задач.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўвайце адну пазічку для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: наладжыце складанне, пераконтролюйце стан і выкорыстоўваце адну локацію для замены модэляў. Самэ гэта і дапамагае внутршнім інструментам выжыць пад час вярагання з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: выкорыстоўваюце compose up, перагляд стану і адзін месца для замены модэлей. Самэльва толькі так внутршні інструменты можаць вытрымаць контакт з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: выкорыстоўваюце compose up, перагляд стану і адзін месца для замены модэлей. Самэльва толькі так внутршні інструменты можаць вытрымаць контакт з рэальнымі графікамі работы.

Зробіце працэс развярання нудным: выкорыстоўваюце compose up, перагляд стану і адзін месца для замены модэлей. Самэльва толькі так внутршні інструменты можаць вытрымаць контакт з рэальнымі графікамі работы.