Розробка рішень на базі LLM та генеративного AI

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 30 з 204Усі 1566 послуг
Дообчання (Fine-Tuning) мовної моделі GPT-4 / GPT-4o
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Claude (Anthropic)
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Gemini (Google)
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Llama (Meta)
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Mistral
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Qwen (Alibaba)
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі YandexGPT
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі GigaChat (Сбер)
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі DeepSeek
Складний
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Phi (Microsoft)
Середній
від 1 тижня до 3 місяців
Дообчання (Fine-Tuning) мовної моделі Command R (Cohere)
Складний
від 1 тижня до 3 місяців
Дообчання LLM методом Full Fine-Tuning
Складний
від 1 тижня до 3 місяців
Дообчання LLM методом LoRA (Low-Rank Adaptation)
Середній
від 1 тижня до 3 місяців
Дообчання LLM методом QLoRA
Середній
від 1 тижня до 3 місяців
Дообчання LLM методом PEFT (Parameter-Efficient Fine-Tuning)
Середній
від 1 тижня до 3 місяців
Дообчання LLM методом DPO (Direct Preference Optimization)
Складний
від 1 тижня до 3 місяців
Дообчання LLM методом Instruction Tuning
Середній
від 1 тижня до 3 місяців
Дообчання LLM методом ORPO
Складний
від 1 тижня до 3 місяців
A/B-тестування дообчених моделей
Середній
від 1 дня до 3 днів
Розробка RAG-системи (Retrieval-Augmented Generation)
Середній
від 1 тижня до 3 місяців
Розробка RAG з векторною базою даних Pinecone
Середній
від 1 тижня до 3 місяців
Розробка RAG з векторною базою даних Weaviate
Середній
від 1 тижня до 3 місяців
Розробка RAG з векторною базою даних ChromaDB
Простий
від 1 тижня до 3 місяців
Розробка RAG з векторною базою даних Milvus
Середній
від 1 тижня до 3 місяців
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1279
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1194
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

LLM: Fine-tuning, RAG, Агенти та Production Розгортання

GPT-4 або Claude 3.5 Sonnet через API — це не рішення задачі, це інструмент. Коли приходить вимога "зробити ChatGPT-подібну систему на наших даних", за цим скривається спектр реальних задач: від настройки промптів до навчання моделі з 70B параметрів. Де саме розташована ваша задача — залежить від даних, вимог latency, бюджету та того, наскільки критична конфіденційність.

Розберемо кожен шар стеку окремо.

RAG: Де Найчастіше Ламається та Чому

RAG (Retrieval-Augmented Generation) — архітектурно простий: знайти релевантні документи, покласти в контекст, модель відповідає. На практиці ламається в кількох місцях.

Chunking без перекриття. Класична помилка: chunk_size=512, overlap=0. Якщо відповідь лежить на межі двох chunk'ів, retrieval не знайде жоден з них з достатньою впевненістю. Рішення: overlap 15-25%, розглянути sentence-aware splitting через spaCy або NLTK замість наївного розбиття за символами.

Погана embedding-модель. text-embedding-ada-002 — гарний загальний embedder, але програє спеціалізованим моделям на юридичних або медичних текстах. E5-large-v2, BGE-M3 або fine-tuned sentence-transformers на доменних даних дають значно краще Recall@k. Різниця може бути 15-25% по Recall@5.

Відсутність re-ranking. Векторний пошук оптимізований по швидкості, не по релевантності. Cross-encoder re-ranking (ms-marco-MiniLM-L-6-v2, bge-reranker-large) після первинного retrieval істотно покращує точність топ-3 результатів при прийнятній latency (+50-150ms). Часто важливіше за поліпшення embedding-моделі.

Гібридний пошук. Тільки dense vectors погано працюють на точних запитах: імена, артикули, коди. BM25 (sparse) добре знаходить точні совпадження, погано розуміє семантику. Гібрид через RRF (Reciprocal Rank Fusion) — оптимальний компромісс. Qdrant, Weaviate та pgvector 0.7+ підтримують гібридний пошук нативно.

Типова production-архітектура RAG-системи для корпоративної knowledge base: документи → preprocessing (PyMuPDF, Unstructured) → chunking → embedding (BGE-M3) → Qdrant → гібридний пошук → cross-encoder re-ranking → контекст → LLM (vLLM або OpenAI API) → відповідь з джерелами.

Fine-tuning: Коли Prompt Engineering Вже Не Допомагає

Prompt engineering розв'язує 70% задач адаптації LLM під домен. Решта 30% потребують fine-tuning. Ознаки того, що без нього не обійтись: модель ігнорує специфічний формат виводу навіть при детальному описі в промпті; задача потребує глибокого знання спеціалізованої лексики (медицина, право, техніка); потрібно значно знизити витрати на токени, замінивши велику модель меншою спеціалізованою.

LoRA та QLoRA — стандарт для supervised fine-tuning. LoRA додає trainable low-rank матриці до attention-шарів, не змінюючи основні ваги. Типова конфігурація для Llama-3 8B: r=64, lora_alpha=128, target_modules=["q_proj", "v_proj", "k_proj", "o_proj"]. Trainable параметрів ~0.8% від 8B — навчання укладається на одну A100 40GB.

QLoRA додає 4-бітну квантизацію базової моделі: завантажуємо в NF4 через bitsandbytes, учимо тільки LoRA-адаптери в bf16. Це дозволяє fine-tune 70B моделі на двох A100 40GB, хоча швидкість навчання падає приблизно вдвічі порівняно з повним bf16.

DPO замість RLHF. Direct Preference Optimization — більш проста альтернатива RLHF для alignment під стиль або переваги. Потребує пар (chosen, rejected) замість скалярних reward-сигналів. trl (Transformer Reinforcement Learning) від Hugging Face має готовий DPOTrainer — реалізація займає десятки рядків коду.

Типова помилка при fine-tuning. Датасет з 500 прикладів, навчання 5 епох, validation loss 0.8 — здається норм. Але на тесті модель деградувала на загальних інструкціях. Причина: catastrophic forgetting. Рішення — додати в навчальну вибірку 10-20% загальних instruction-following прикладів (наприклад, з Alpaca або FLAN), щоб не знищити оригінальні можливості моделі.

Prompt Engineering та Structured Outputs

Prompt engineering — це не "напиши хороший промпт". Це систематична робота з форматом, few-shot прикладами, chain-of-thought та управлінням контекстом.

Для задач, що потребують структурованого виводу (JSON, видобування сутностей, класифікація), використовуємо function calling / tool use (OpenAI, Claude, Mistral) або constrained generation через Outlines або Guidance. Це дає гарантований формат виводу без postprocessing regex.

Structured outputs через response_format={"type": "json_schema", ...} в OpenAI API — найнадійніший спосіб для production, де downstream-система очікує конкретну схему.

Оцінка промптів — окрема задача. Будуємо eval-датасети з 50-200 реальних прикладів з ground truth, прогоняємо автоматичні метрики (ROUGE, BERTScore для відкритих відповідей; accuracy для класифікації) плюс LLM-as-judge для якісної оцінки.

Мультиагентні Системи

Агенти — LLM з доступом до інструментів: пошук в інтернеті, виконання коду, запити до API, робота з базами даних. Ключові паттерни:

ReAct (Reason + Act). Модель рассуджує → вибирає інструмент → спостерігає результат → рассуджує знову. LangChain та LlamaIndex реалізують цей паттерн з коробки. Для production рекомендуємо додавати timeout на інструменти та максимальну кількість кроків.

Multi-agent orchestration. Кілька спеціалізованих агентів з coordinator-агентом зверху. Наприклад: coordinator → researcher (пошук + summarization) + coder (генерація та виконання коду) + critic (перевірка). AutoGen (Microsoft), CrewAI або кастомна реалізація на LangGraph.

Практична замітка. Агентні системи недетерміновані. У production це означає: обов'язкові guardrails (валідація виводу, ліміти на кроки та вартість), логування кожного кроку, можливість human-in-the-loop для критичних дій.

vLLM та Production Розгортання LLM

Якщо задача — serving власної або open-source моделі під навантаженням, vLLM — перший вибір.

PagedAttention. Ключова інновація vLLM: KV-cache управляється як virtual memory в ОС, без фрагментації. Це дозволяє обробляти паралельні запити з різною довжиною контексту без зайвих копіювань пам'яті. Результат: throughput у 2-4x вище порівняно з наївним HuggingFace Transformers inference.

Continuous batching. Запити додаються в батч по мірі надходження, а не чекають формування повного батча. Знижує latency при нерівномірній навантаженості.

Типові числа на A100 80GB для Llama-3 8B (bf16): 400-600 req/s (output tokens/s), P50 latency 200-400ms, P99 latency 600-900ms при concurrency 64. Для 70B на двох A100 80GB з tensor parallelism: 80-120 req/s, P99 latency 1.5-2.5s.

Квантизація через AWQ або GPTQ знижує потребу в пам'яті в 2x при деградації якості в межах 1-3% на більшості benchmarks. На A10G (24GB) це дозволяє запустити 13B модель там, де без квантизації помішається тільки 7B.

Моніторинг розгортання. Логуємо: latency (P50/P95/P99), throughput (tokens/s), queue depth, cache hit rate. Grafana + Prometheus — стандарт. vLLM експортує метрики нативно у форматі Prometheus.

Вибір Базової Моделі

Модель Параметри Сильні сторони Контекст
Llama-3.1 8B 8B Баланс якість/швидкість 128k
Llama-3.1 70B 70B Складні рассуджень 128k
Mistral 7B / Mixtral 8x7B 7B / 47B Ефективність на розмір 32k
Qwen2.5 72B 72B Код, мультимовность 128k
Gemma 2 27B 27B Відкрита ліцензія 8k

Для більшості задач fine-tuning 8B моделі достатньо. 70B потрібен коли задача потребує глибокого рассуджень або baseline 8B не досягає потрібної якості навіть після дообучення.

Етапи Роботи над LLM-Проектом

Аудит задачі. Формалізуємо що саме модель повинна робити, збираємо eval-датасет з 100+ реальних прикладів. Без eval неможливо виміряти прогрес.

Baseline через prompt engineering. Тестуємо OpenAI/Anthropic API з хорошо налаштованим системним промптом. Часто цього достатньо. Якщо ні — бачимо конкретний gap та розуміємо, що потрібно менять.

RAG або fine-tuning. Якщо проблема в знаннях про конкретні документи — RAG. Якщо проблема в стилі, форматі, специфічній лексиці — fine-tuning. Часто потрібне й те, й інше.

Навчання та валідація. Готуємо датасет, запускаємо навчання з трекингом у W&B, оцінюємо на holdout-сеті та на реальних користувацьких запитах.

Розгортання та моніторинг. vLLM на власній інфраструктурі або managed inference (Together, Replicate, Modal). Налаштування alert'ів на latency та якість.

Терміни: базовий RAG-прототип — 1-2 тижні. Fine-tuning з даними замовника — 3-6 тижнів (з урахуванням підготовки даних). Production-система з моніторингом та переученням — 2-4 місяці.