Головна / Статті

Практичне використання 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 зосереджений на ефективному обслуговуванні моделей Hugging Face у продакшені з використанням функцій стрімінгу та відстеження. Порівняйте час відгуку та складність операцій з 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

Надішліть однаковий запит кожному серверу, зафіксуйте час виконання та кількість токенів/секунду, а потім вкажіть, який двигун підходить для вашого наступного проекту — демо-версія на ноутбуці, внутрішня система з GPU чи API для кількох користувачів.

Зробіть процес розгортання простим: скомпонуйте все разом, додайте перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати реальні графіки роботи.

Зробіть процес розгортання простим: скомпонуйте все разом, додайте перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати реальні графіки роботи.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.

Зробіть процес розгортання простим: використовуйте compose up, перевірки стану та єдине місце для заміни моделей. Саме простота допомагає внутрішнім інструментам витримувати роботу з реальними графіками чергування.