Що відбувається всередині ChatGPT і Perplexity, коли ви ставите питання

Що відбувається всередині ChatGPT і Perplexity
AI & Tech

Генеративний пошук: як він працює

У статті “Що таке GEO” ми показали механіку в чотири кроки — для загального розуміння цього достатньо. Тут копаємо глибше: чому одна система шукає в реальному часі, інша відповідає з памʼяті, а третя робить і те, і те одночасно. І прослідкуємо конкретний запит від початку до кінця.

Три архітектури генеративного пошуку

“Генеративний пошук” — узагальнена назва для систем, які влаштовані принципово по-різному.

RAG

Retrieval-Augmented Generation

Система спершу шукає актуальні джерела в інтернеті чи власному індексі, а потім генерує відповідь на їх основі. Дані завжди свіжі.

Google SGE, Perplexity
LLM

Відповідь із “замороженої” памʼяті

Модель відповідає на основі того, що завчила під час навчання — без живого пошуку. Дані обмежені датою навчального зрізу.

Базовий ChatGPT без пошуку
Гібрид

Памʼять + живий пошук за потреби

Модель вирішує сама: якщо запит вимагає свіжих даних — вмикає пошук, якщо ні — відповідає з памʼяті.

ChatGPT з увімкненим пошуком

Це пояснює, чому та сама модель може дати різні відповіді на схожі запити: один спрацював за памʼяттю, інший запустив живий пошук в інтернеті.

Що таке embeddings простими словами

В основі пошуку джерел у RAG-системах лежить не звичний пошук за ключовими словами, а векторний пошук за змістом. Кожен фрагмент тексту перетворюється на набір чисел — embedding, — який відображає його зміст у багатовимірному просторі.

Аналогія

Уявіть величезну кімнату, де тексти зі схожим змістом стоять близько одне до одного, а зовсім різні за темою — далеко. Коли ви ставите запит, система теж перетворює його на точку в цій кімнаті й шукає найближчих “сусідів” — фрагменти тексту з найближчим змістом, навіть якщо в них немає жодного спільного слова із запитом.

Саме тому текст може потрапити у відповідь, навіть якщо в ньому немає точного ключового слова із запиту, — має значення змістова близькість, а не збіг слів. І навпаки: текст із правильними ключовими словами, але розмитим змістом, може програти чіткішому за формулюванням конкуренту.

Простежимо один запит

Візьмемо реалістичний приклад: користувач питає в Perplexity, який безкоштовний інструмент перевірити зворотні посилання власного сайту.

[запит]“який безкоштовний інструмент перевірити backlinks сайту”
[крок 1]Запит перетворюється на embedding — числове представлення змісту
[крок 2]Система виконує живий пошук в інтернеті та знаходить 20–30 потенційно релевantних сторінок
[крок 3]Кожна сторінка оцінюється за змістовою близькістю, свіжістю й авторитетністю джерела
[крок 4]Топ-5–8 фрагментів потрапляють у контекст моделі — решта відкидається
[крок 5]Модель генерує зв’язну відповідь на основі відібраних фрагментів
[результат]Користувач бачить готову відповідь із 2–4 видимими джерелами з тих 5–8, що потрапили в контекст

Чому не кожне джерело потрапляє у відповідь

З прикладу вище видно вузьке місце: із 20–30 знайдених сторінок у фінальну відповідь потрапляють одиниці. Причин відсіву кілька:

  • Обмежений контекст. Модель фізично не може “прочитати” всі 30 сторінок одразу — є ліміт на обсяг тексту, який вона обробляє за раз.
  • Дублювання інформації. Якщо пʼять сторінок кажуть те саме, система обирає одну-дві найавторитетніші, а решту відкидає як надлишкові.
  • Розмитість фрагмента. Сторінка може бути релевантною загалом, але якщо потрібна відповідь “розмазана” по всьому тексту без чіткого фрагмента — її важче витягнути й процитувати.

Що це означає для власників сайтів

Розуміння механіки прямо підказує практичні кроки. По-перше, тексти варто ділити на самодостатні фрагменти — кожен підрозділ повинен мати сенс навіть вирваний з контексту, бо саме так система його й “вириває”. По-друге, не варто розмазувати одну відповідь по всій статті: якщо є пряме питання, дайте на нього пряму відповідь в одному місці, а не частинами в різних абзацах. По-третє, змістова точність важливіша за формальний збіг ключових слів — векторний пошук працює зі смислом, а не з буквальним текстом.

Часті запитання

Чи можна дізнатись, скільки джерел система розглянула перед відповіддю?+

Ні, це внутрішній процес, недоступний користувачеві напряму. Perplexity показує список використаних джерел у відповіді, але не тих, що були розглянуті й відкинуті.

Чому ChatGPT іноді відповідає застарілими даними?+

Якщо модель відповідає з “замороженої” памʼяті без увімкненого пошуку, вона не знає нічого, що сталося після дати навчального зрізу. Для свіжих даних потрібно явно ввімкнути режим пошуку.

Чи впливає довжина статті на шанс потрапити у відповідь?+

Напряму — ні. Важливіша чіткість конкретного фрагмента, а не загальний обсяг тексту. Коротка стаття з точною прямою відповіддю має не менше шансів, ніж довгий матеріал із розмитими формулюваннями.