З ГПТ-1 да модэляў для разумовых вычынкаў: што кожная паколення зменила для разработчыкаў
Аналізуйце сяброў GPT ад прадзейнаўкі 2018 года да модэляў для разумовых вычынкаў, пазнайце, якія ідэі дадала кожная паколення, а таксама ведаце пра функцыі GPT-4o vision і Structured Outputs з Python.
Крыніцы: The GPT Timeline: How OpenAI Built the Brains of Modern AI
Кожны раз, калі вы здзейснюеце запыт да сучаснага мовнага модэля через API, вы спыяеце на калькі ідэй, якія поступова развіліся з паказу: генератыўнае прадзялёванне, масштабаванне, навчанне ў контэксте, налагоджэнне на адзінакі людзей, натыўная мультимодальнасць і дадатковы вычысловы час пад час аналізу. Розумеўшы, звядзе калі і якая ідея выйшла, стае значна простыяй разумець, што можа робіць модэль, чаму ён не функцыонуе і якія функцыі API трэба выкарыстоўваць. У гэтым апісанні працоўваецца над лініяй GPT ад яе пачаткаў у 2018 годзе да модэляў, заснованых на логічным аналізе, і ў канцы даўаюцца два практычныя прыклады на Python для GPT-4o.
Да GPT: чаму быў важны Transformer
Даўжыню часу, пакуль прыблізна да 2018 года, большасць тэхнікаў обробкі нейтаральных мов паслугвалася рекурентнымі нейроннымі сеткамі і ўсунутымі версіямі LSTM. Што да гэтых модэляў, яны чыталі тэкст ад однаго токена да іншага, што ускладняла паралельную обробку і прыводзіла да таго, што інфармацыя з пачатку дзейнаўкі згасала прыбліжна да ўсходу.
У 2017 году ў даследнай праце Google пад назвой "Attention Is All You Need" была представлена архітектура Transformer. У яй рекурэнцыя была заменена на самаатрыманне, што дазволіла кожнай пазицыі ў последовасці безпосередна атрымляць інфармацыю з усіх іншых пазицый. Компанія OpenAI створыла сваю серію GPT (Generative Pre-trained Transformer) на адной з гэтых архітектураў, а ў чырвені 2018 года опублікавала працу "Improving Language Understanding by Generative Pre-Training", якую тады мало хто спрыяжаў з пачаткам значных змян у вычыслювальной тэхніцы.
2018–2019: прадзейнаўка і выгоды масштабавання
GPT-1: спачатку прадзеньванне, потым дакручка
Першы модель па сённяшныя стандарты была скромная:
- 117 мільйона параметраў
- Transformer з толькі декодерам і 12 шароў
- прадзеньвана на BooksCorpus, прыблізна 5 ГБ тексту
Їё вкладам была дваэтапная схема. Першыя, прадзеньванне без нагляду на неапранутым тексте дазволіла модэлі выучыць граматыку, фактычныя зв’язкі і структуру мовы проста прагнозуючы наступны токен. Другія, невелика кантынета дакручкі пад наглядам для конкрэтнай задачы, такой як аналіз настрою чы класыфікацыя, была дастаточная для досягнення апошніх рэзультатаў, без неабходнасці проектавання спецыяльной архітэктуры для кожнай задачы.
GPT-2: з’яўляецца паведанне без прадзеньвання
Наступны крок стосаваўся галоўная большыні ў размерах:
- 1,5 мільярда параметраў, прыблізна у дзесяць разоў больш за GPT-1
За наявнасцю достатньых масштабаў тонкая наладка стала необавязковай для багато задач. GPT-2 практыкуў навчанне без прыкладаў: запит на кшталт "Пераклаць на французкіяй мове:" мог упрабаваць яго для выканання задачі, над якою ён ніколі не трэнаваўся адкрыта, проста таму, што продажнае продаванне таго тексту значыла б стварэнне перакладу.
GPT-2 таксама запам’няецца тым, як ён быў выданы. OpenAI спачатку стрымвала цэлы модель, адзначаючы прытрымкі, што яго можна было бы выкарыстаць для масовага стварэння фальшывых новын і спаму, і выдала яго паэтапна. Гэтае рашэнне спакоўваў дзяржавныя дыскусія пра безпеку AI і пра тое, чы роўнасці могуць быць публікуемыя адкрыта.
2020–2022: навчанне ў контэксте і супарадненне
GPT-3: прыклады ў самым запыце
GPT-3 перанёс межу з адрыхтаванняў у комерчыя продукты:
- 175 мільярда параметраў, што у паўтароўку больш, чым у GPT-2
- навучаны на сумешанні фільтраванага веб-тэксту, кніг і Вікіпедыі, адбранага з прыблізна 45 ТБ сыроўых дадзенняяў прычым фільтрацыі
Яго галоўной спроможнасцю было навчанне на канкрэтных прыкладах у вялікых масштабах. Як толькі ў запите было два-тры прыклады, якія вучыліся правільна, модель продовжвала той жа патэрн — будзь то напісанне коду, вершаў або выкарыстоўванне інформацыі з неупорядкованых дадзенняў. Гэта і є навчанне в межах контексту: модель прыстосоўваецца толькі на адной парадзе запиту, без будзь-якіх змян у параметрах.
Аднак у базовай версіі GPT-3 была серьёзная прыгроза — ён навучаны быў толькі на продовжэнне тэксту, а не на выпалення ролі падтрымлюючага асистента, таму часта выдумваў факты, збігаўся з тэмай або ігнараваў запитання. Ніжэйшыя схемы падсумоўваюць варыянты адлагоджэння: выкарыстоўванне падказак ад людзей ператварае простага прогнозавальніка тэксту на модель, якая следуе інструкцыям.
[Raw Pre-training] --> Predicts likely text continuations (often rambling or toxic)
│
▼ + RLHF (Human Feedback Alignment)
[InstructGPT Engine] --> Follows instructions safely and concisely
InstructGPT і ChatGPT: навчанне на адаптаванні да людскім прагпатам
Рашынакам было адаптаванне за допамогай учэння з падкрэпленнем на адзінакія людзей (RLHF). Люди оцэнівалі рэзультаты работы моделей, модель наград заўважвала гэтыя прагпаты, і пасля мовная модель была оптымізавана так, каб выдавала адказы, якія людзі волелі. Рэзультатам былі моделі InstructGPT, якія значна адносова і корыстнейша выпалнялі інструкцыі.
30 лістапада 2022 года OpenAI запусціла ChatGPT, створаны ў базе серіі GPT-3.5. Спалучэнне багатоэтапных дыялогаў з падлагай RLHF-оптымізаванага поведэнняя зробіла яго адной з найшырэйша распрацоўваных спожывчыкаўскіх аплікацый таго часу; за прыблізна два месцы ў яго было адчувана 100 мільйонаў корыстнікаў.
2023–2024: прафесійная логіка і мультимодальнасць
GPT-4: сильнейшая логіка, адпрацоўкі з адпрыемнікамі і інструментамі
GPT-4, які быў выпусцан у марце 2023 года, перакрыў акцэнт з вольнае пісьмо на спроможнасць рашэння акадэмічных і прафесыянальных задач. OpenAI апавешчыла пра такія рэзультаты, як балы на адпаведнасць 90-му перцэнтылю на сімуляванай екзаменацыйной працэ і высокія балы на багатых экзаменах AP. Ён таксама дастаў можлівасць розумеўця зображэнняў, а сям’я GPT-4 практычна атрымала функцыі, якія разработчыкі выкарыстоўваюць ўжо кожны дзень: выход даных у формате JSON, вызыв функцый і выкарыстоўванне інструментаў, такіх як выконанне коду і пошук у Інтэрнете.
Есць два моманты, якія часта некалькі іншымі словамі пераказваюцца. OpenAI не публікавала офіцыйная архітэктуру GPT-4; распространеная тверджэнне, што ён яўляецца моделлю типу Mixture of Experts, выходзіць з непадтверджаных дапаведак. А вікна контэксту на 128k-токенав прыйшло з GPT-4 Turbo пазней у 2023 году, а не з первым выпускам у марце, які oferаваў значна меншыя вікна.
GPT-4o: адна сетка для тексту, візуальных дадзеных і аудыю
Ранейшыя тэхналогіі перакладу голасу складаліся з розных элементаў: адзін модель перакладала мовленне, іншы — ствараў тэкст, а ўсё гэта синтазаваў окремы прыстрой для аудыя. GPT-4o, дзе „o“ пазначае „omni“, обрабоцвае тэкст, зображанні і аудыя ў адной едынай сетцы. Змена такой структуры зменіла час адклікання голасу да прыблізна 200 мс і дазволіла модэлю спрыягчы тон голасу, а не толькі словы.
Моделі для логічных вырахункаў: выкорыстоўванне вычысловых ресурсаў пад час аналізу
Калі адзынкі з усё большых трэнінгавых практык сталаяць важкадаўжлівымі, а высакачасовыя трэнінгавыя даны — глыбокай прычынай абмежэнняў, увага перакрылася на вычысленні пад час тэставання: модель можа спачатку прымусіцца да раздумаў перш чым даваць адпаведзь. Разлік просты: класычная адпаведзь GPT пачынае выдаўаць токены як толькі прыходзіць запит, тады как модель, якая выконвае логічныя раздумы, спачатку працуе з внутрашняя ланцюгом мыслей, а толькі пасля таго даўае сваю фінальную адпаведзь.
Traditional GPT Response: Prompt ──> Immediate Word-by-Word Streaming
o-Series Response: Prompt ──> Internal Chain-of-Thought (Deliberation) ──> Final Answer
Серыі o1 і o3 ад OpenAI практыкуюцься самэ так. Уместо таго, каб негайна адпавядаць наступным словам, модель выкорыстоўвае дадатковыя вычысленні для аналізу крайняіх сцэнарыяў, перагляду промежуточных крокаў і адлучэння бяга свайго коду, што ў большай меры дапамагае у матэматыцы, конкурентнай програмаванні і багатакроковай логіцы. Цена за гэта — вышэйшая затрымка і вартасць, таму іх трэба выкорыстоўваць толькі для задач, якія выкалікаюць патрэбу ў раздумах.
Работа з GPT-4o ў Python
Історыя пацелуе разуменне таго, чаму GPT-4o змяніў падход да ўздоўжнага развіцця: уместа таго, каб сумаваць модель візуальнага розпазнавання, мовную модель і дваргун голасу, адна вызова API можа прыміць сумешаныя данні. Два прыклады паказваюць найпрыдатнейшыя функцыі, прызначаныя для разработчыкаў.
Адправка зображэння і тексту ў адной запытцы
За дапамогою GPT-4o можна разместіць текст і зображэння па боку адна другога ў масі content адной паведамлення ўпарацоўкі. Зображэнне можна перадаць як публічны URL або як данні у формате base64. У прыкладзе нижэй викорыстоўваецца офіцыйны Python SDK, ключ API чытаецца з зменнай сераўіса, ад моделі прасягаецца пераглянуць фота бетану на наявнасць трас і ацэніць ўжоўважнасць гэтых трас, адпаведны адказ обмежваецца значэнням max_tokens, а пасля выдрукоўваецца тэкст першага выбору.
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
# Sending a visual inspection query directly to GPT-4o
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Analyze this image for architectural structural damage. Identify any cracks and rate severity."
},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/e/e1/Concrete_crack_example.jpg"
},
},
],
}
],
max_tokens=500,
)
print(response.choices[0].message.content)
Контэнт — это спіс атрыбутаваных элементаў (text і image_url), што дазволяе адразу выкарыстоўваць калькі зображэнняў і інструкцыяў. Расследжвайце выходны тэкст як матэрыял для аналізу; усе, што стосуецца безпекі, все ўсё ж трэба пераказаць эксперту.
Атрыбутаванне JSON, якое паспелае да схемы, за дапамою структураваных выходаў
Надзеянае выкарыстоўванне JSON з моделі раней апыякалася астаткавым формулюванням запитоў і захістным парсаваннем з абычнымі выразамі. Структураваныя выходы рашаюць гэтыя проблемы на стадії декодавання: процес выбору даных моделі контролюецца так, каб выходны тэкст паспелаў да схемы JSON, яку вы задаеце. За дапамою строгіх схем OpenAI адзначае, што гэта гарантуе ўсуненне несаўпаданняў з схемай, што є моцнейшым падходам у пораўнанні з старэйшым „режымам JSON“, які гарантаваў толькі сынтаксычна правільны JSON.
У Python найзручнейшым спосабам ёсць Pydantic. У прыкладзе задаёмацца модэль Entity і модэль ArticleAnalysis, яка складаецца з заглавля, апূরкі, значэння настрою з дыяпазону -1.0 да 1.0 і спіса аб’ектаў, пасля чаго клас перадаецца як response_format да функцыі-памочнік parse з SDK. Штатна функцыя перакладае клас у схему JSON, адправляе яе разам з запытам і вяртае об’ект у формате message.parsed.
from openai import OpenAI
from pydantic import BaseModel, Field
from typing import List
client = OpenAI()
# Define the exact JSON schema required by your database
class Entity(BaseModel):
name: str
category: str = Field(description="Person, Organization, Location, or Date")
class ArticleAnalysis(BaseModel):
title: str
summary: str
sentiment_score: float = Field(description="Score between -1.0 and 1.0")
key_entities: List[Entity]
# Pass the schema directly into the completion request
completion = client.beta.chat.completions.parse(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are an automated intelligence parser."},
{"role": "user", "content": "OpenAI CEO Sam Altman announced new developer tooling in San Francisco today."}
],
response_format=ArticleAnalysis,
)
# Extract type-safe output directly as a Python object
result: ArticleAnalysis = completion.choices[0].message.parsed
print(f"Summary: {result.summary}")
print(f"Entities: {result.key_entities}")
Два практычныя прытакі. Калі была запускана гэта функцыя, дапаможны код знаходзіўся пад client.beta, а новейшыя версіі SDK таксама выкладзяюць яго паza межы іменавання beta, таму пераканайцеся, якая версія SDK викорыстоўваецца у вашам проекте. Хоча структура гарантаваная, значэнні — нягарантаваныя: бал настрою будзе цэлым числам, але чы ён є разумным — застаецца на рашэнне моделі. Керуйце адмовамі та пераканайце правіла бізнесу, як і з будзь-якім зовнішнім вхідным дадзенням.
Сяродзінь семейы GPT
- GPT-1 (2018): 117 мільйонаў параметраў; паказаў, што генератыўнае прадзялёванне плюс лёгкае налаштавання працююць.
- GPT-2 (2019): 1,5 мільярда параметраў; эфектываасць у задачах без прадзялёвання та поступовы выпуск з урахоўваннем безпекі.
- GPT-3 (2020): 175 мільярдаў параметраў; навчанне ў контексте з мінімумам прадзялёванняў у великых масштабах.
Што гэтае развіцце значыць для вашай тэхналогічной структуры
- Толькі масштабаванне больш не было ключовым факторам. Пачатковыя прыросты адбываліся за рахунак колькасці параметраў (117 млн, потым 1,5 мільярда, а пасля 175 мільярда); пазнейшы прогрэс часта стаў можлівым завялік тэхнікаў адпаведнасці, такіх як RLHF, мультимодальная уніфікацыя і аналіз пад час тэставання.
- Модэлі, які былі перанесены з функцыі автадаптавання на функцыю выконання задаў. Чырвоныя модэлі плануюць, вызываюць функцыі і координуюць багатыяэтапныя процесы работы з інструментамі, таму дизайн агентаў зараз ёсць важлівым аспектам інжынернай працы.
- Прыведамасць — гэта функцыя, якую можна выкарыстоўваць. Функцыя Structured Outputs дазволяе падключаць выходны данні модэлі да коду з апранаваным схематызам уместо парсінгу вольнага тексту.
- Эфектыўнасць тепер конкуруець з аб’ёмам дадзеных. Меньшыя варіанты, такія як GPT-4o mini і спецыялізаваныя модэлі для логічных вырахункаў, часта перамагаюць найбольшыя модэлі за ценой і часам адпаведнага выканання задачы, таму выбірайце ў залежнасці ад конкрэтных задач, а не толькі за загальнымі характэрыстыкамі.
Стварэнне праектаў з аднойчыны стала значна больш сустрэчаюцца з складаннем систем з модэляў, інструментаў і схематызамоў, чым з адправкай адной просьбы.