Генерація текстів: перевіряємо прогрес AI-моделі від GPT до ChatGPT
Ще кілька років тому про генерацію контенту говорили доволі обережно. До цього вся увага була прикута до word2vec та BERT, які, фактично, відігравали головну роль у сфері обробки природної мови (natural language processing). Це стало несподіванкою, але 2022 рік увійшов в історію як початок ери генерації контенту.
І одну з найголовніших ролей тут зіграла організація OpenAI. Всього за 4 роки вона створила кілька мовних моделей, які продемонстрували всьому світові, що розвиток штучного інтелекту є не лінійним і швидшим, ніж здавалось до цього. Цікаво, що засновником OpenAI є Ілон Маск — людина, яка ще недавно попереджувала про загрози штучного інтелекту, хоча і наголошувала на неймовірній користі, яку штучний інтелект може принести.
Нині почався зворотний відлік для деяких професій, які моделі генерації тексту назавжди змінять чи навіть поступово зведуть нанівець.
OpenAI
OpenAI — це науково-дослідна організація, що складається з комерційної корпорації OpenAI LP та її материнської компанії, неприбуткової OpenAI Inc. OpenAI займається дослідженням штучного інтелекту і його застосуванням у різних сферах. Основна ціль — створення безпечного і корисного штучного інтелекту, що може принести користь і полегшити життя людей.
OpenAI була заснована у 2015 році Ілоном Маском, Семом Альтманом та іншими представниками технологічної сфери, і має штаб-квартиру в Сан-Франциско. У 2018 році Ілон залишив організацію через «потенційний майбутній конфлікт інтересів», а саме через розробку ШІ Тесла для самокерованих автівок, але повністю стосунки з OpenAI не розірвав.
Після того, як OpenAI перейшла до комерційної моделі, організація розподілила акції серед своїх працівників і у травні 2019 року уклала угоду з Microsoft, яка інвестувала в OpenAI $1 млрд. Таким чином, OpenAI оголосила про свій намір комерційно ліцензувати свої технології, з Microsoft у ролі свого привілейованого партнера. Угода передбачає взаємну підтримку і співпрацю у проєктах, що пов’язані з безпекою і обмеженнями використання штучного інтелекту, а також його застосування на користь суспільству.
Компанія Microsoft розпочала інтеграцію моделей OpenAI у свою хмарну платформу Azure. Сервіс отримав назву Azure OpenAI Service і на момент написання статті знаходиться в статусі приватного бета-тестування.
Ця угода стала причиною великої кількості обговорень. З однієї сторони, розвиток ШІ такого рівня є складним і дорогим завданням (за неофіційними даними, вартість одного тестування моделі складає від $4 до $12 млн), і тому стратегічне партнерство з такою компанією як Microsoft є очевидним. З іншої сторони, багато хто побоюється, що ця угода створює нерівні умови на ринку в плані конкуренції і може стати причиною його монополізації.
Модель GPT
OpenAI асоціюється, в першу чергу, з мовною моделлю GPT (Generative Pre-training Transformer), яка призначена для генерації текстів. Справжню популярність OpenAI принесла третя версія, що має ємність у 175 мільярдів параметрів машинного навчання і дозволяє генерувати тексти такої точності і якості, що їх доволі складно відрізнити від текстів, написаних людиною.
Наразі немає точної інформації, на основі яких даних була навчена модель. Але можна припустити, що використовувались відкриті дані, як-от Common Crawl (AllenAI), Reddit, Wikipedia та інші. Це важливе питання, оскільки згідно з загальновідомим принципом «сміття на вході — сміття на виході» (від англ. «shit in — shit out») чим вища якість навчального набору, тим кращою і точнішою буде модель.
У випадку з GPT може діяти й інший принцип — «кількість переходить в якість». У будь-якому випадку, дані для навчання викликають багато суперечок — як з точки зору наявності чи відсутності упереджень, так і юридичного характеру.
Чи можна стверджувати, що GPT має свідомість? Ні, наразі жодна чинна модель не має жодних ознак свідомості і самонавчання. Просто згадаємо відомий вислів про те, що «будь-яка прогресивна технологія виглядає як магія». На цей момент GPT дійсно виглядає як магія, однак це всього-на-всього чудовий предиктор.
Еволюція мовних моделей від OpenAI: від GPT-1 до ChatGPT
Дата |
Подія |
11 червня 2018 |
Анонсовано GPT-1 |
14 лютого 2019 |
Анонсовано GPT-2 |
28 травня 2020 |
Опубліковано початковий препринт GPT-3 на arXiv |
11 червня 2020 |
Приватна бета GPT-3 API |
22 вересня 2020 |
GPT-3 ліцензовано компанією Microsoft |
18 листопада 2021 |
GPT-3 API відкрито для всіх охочих |
27 січня 2022 |
Вихід InstructGPT або GPT-3.5 |
28 липня 2022 |
Опублікована стаття Exploring data-optimal models with FIM на arXiv. |
1 вересня 2022 |
Ціна на GPT-3 зменшилась на 66% для davinci |
21 вересня 2022 |
Анонсована модель Whisper для розпізнавання голосу |
28 листопада 2022 |
GPT-3.5 розширено до покращеної моделі text-davinci-003 |
30 листопада 2022 |
Анонсовано ChatGPT |
Далі... |
GPT-4... |
Доступ до GPT-3 відбувається за допомогою програмного інтерфейсу доступу до даних (API). Щоб працювати з GPT-3 API, необхідно зареєструватися на сайті OpenAI і отримати ключ API. Після цього ви можете скористатися будь-яким з доступних інструментів для роботи з API, таких як Python, Node.js, Java, Ruby, .NET тощо.
❗️ На момент написання статті OpenAI заборонила доступ до своїх продуктів, як от GPT-3 API та ChatGPT, поставивши користувачів з України в один ряд з іраном, росією та Венесуелою. Щоб почати працювати з OpenAI, потрібно зареєструватись з не-українським номером телефону і встановити VPN.
Приклад того, як можна використовувати GPT-3 API:
curl https://api.openai.com/v1/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"model": "text-davinci-003", "prompt": "Say this is a test", "temperature": 0, "max_tokens": 7}'
У результаті API поверне JSON зі згенерованим текстом і додатковою службовою інформацією. Детальну документацію по OpenAPI API можна знайти на офіційному сайті OpenAI.
OpenAI пропонує 4 головні моделі, що відрізняються як за можливостями, так і за ціною. Зокрема, Davinci є найпотужнішою моделлю, а Ada — найшвидшою. Curie може виконувати деякі задачі, що й Davinci, але швидше і за одну десяту вартості.
LATEST MODEL |
DESCRIPTION |
MAX REQUEST |
TRAINING DATA |
text-davinci-003 |
Most capable GPT-3 model. Can do any task the other models can do, often with higher quality, longer output and better instruction-following. Also supports inserting completions within text. |
4,000 tokens |
Up to Jun 2021 |
text-curie-001 |
Very capable, but faster and lower cost than Davinci. |
2,048 tokens |
Up to Oct 2019 |
text-babbage-001 |
Capable of straightforward tasks, very fast, and lower cost. |
2,048 tokens |
Up to Oct 2019 |
text-ada-001 |
Capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost. |
Розробники рекомендують випробувати усі моделі і зупинитись на тій, яка підходить найкраще для конкретного завдання.
Модель ChatGPT
У грудні 2022 року OpenAI презентувала безкоштовну версію ChatGPT, яка заточена на те, щоб відповідати на запитання та підтримувати розмову у форматі діалогу. Модель навчається на величезному корпусі тексту без явної вказівки на те, що саме вона повинна генерувати. Після цього модель може використовуватися для різних цілей, наприклад, для генерації відповідей на запитання у чатботах чи завданнях копірайтингу. Модель ChatGPT перетнула позначку в 1 мільйон користувачів вже через 5 днів після запуску.
ChatGPT є спеціально налаштованою моделлю на базі GPT-3.5 (також відомою як InstructGPT), тренування якої завершилось на початку 2022 року. Обидві моделі — GPT-3.5 і ChatGPT були натреновані на інфраструктурі Azure AI. Головним розробником ChatGPT є Джон Шульман.
Для навчання ChatGPT використовувався підхід під назвою Reinforcement Learning from Human Feedback (RLHF), де використовувались ті самі методи, що й при навчанні GPT-3.5, але з іншим підходом щодо збору даних. Набір даних InstructGPT, який був перетворений на формат діалогу, змішали з діалогами, що були створені людьми (тренерами ШІ) шляхом спілкування як у ролі користувача, так і в ролі ШІ-асистента.
Щоб створити модель винагороди (reward model) для навчання з підкріпленням (reinforcement learning), потрібно було зібрати дані для порівняння, які складалися з двох або більше відповідей, впорядкованих за якістю. Для цього використовувались розмови, які створили тренери ШІ. Потім до відповідей, що були створені моделлю, додавались альтернативні варіанти, які повинні були оцінити тренери ШІ. Використовуючи ці моделі винагороди, за допомогою Proximal Policy Optimization модель покращували протягом кількох ітерацій.
Як відбувається процес генерації текстової відповіді? Спочатку ChatGPT перетворює слова у цифрові вектори. Цей процес називається енкодуванням. Для цього модель використовує словник, в якому кожному слову у тексті відповідає унікальний цифровий код. Потім ці вектори передаються у модель, яка використовує різні шари і трансформери для обробки та аналізу тексту. Далі ChatGPT намагається визначити, які слова є найбільш ймовірними у даному контексті. Для цього вона використовує свої знання про мову та структуру речень, а також інформацію, яку отримала під час попереднього тренування. Врешті-решт, модель генерує відповідь у текстовому форматі і повертає її користувачеві.
Можна пояснити цей процес і по-іншому: модель намагається передбачити наступне слово на основі попередніх, але враховуючи контекст, і використовуючи певну варіативність.
Попри популярну, але все ж хибну думку, модель ChatGPT не повторює дані з тренувального набору, а генерує новий текст, щоправда, близький або ідентичний за змістом. Все це завдяки попередньому навчанню, в процесі якого модель ChatGPT створила зв’язки між трильйонами слів. Ці зв’язки зберігаються, а вихідні дані відкидаються.
До сильних сторін ChatGPT можна віднести можливість генерувати граматично коректні діалоги та тексти, а також можливість виконувати велику кількість задач з обробки природної мови (natural language processing).
Розглянемо рецензію на твір Джорджа Орвелла «1984». Ось що пропонує нам ChatGPT:
«1984» is a classic dystopian novel by George Orwell that tells the story of a society where individual thought and freedom are suppressed by a tyrannical government. The main character, Winston Smith, lives in a world where the truth is constantly manipulated and distorted by the Party, and he finds himself constantly at odds with the oppressive rules and regulations of society.
Despite its age, «1984» remains a timeless and relevant work, as it speaks to the dangers of totalitarianism and the importance of individuality and freedom of thought. The writing is engaging and thought-provoking, and the plot is both thrilling and unsettling. Overall, I highly recommend «1984» to anyone who enjoys dystopian fiction and wants to explore deeper themes of power, control, and truth.
Переклад українською (за допомогою ChatGPT):
«1984» — це класичний дистопійний роман Джорджа Орвелла, що розповідає про суспільство, де індивідуальне мислення та свобода турбуються тиранічною владою. Головний герой, Вінстон Сміт, живе у світі, де правда постійно маніпулюється та деформується Партією, і він знаходить себе у постійному конфлікті з нав’язувальними правилами і нормами суспільства.
Незважаючи на свій вік, «1984» залишається нестаріючим і актуальним твором, так як він звертається до небезпек тоталітаризму і важності індивідуальності та свободи мислення. Стиль письма захоплюючий і провідний, а сюжет зараз тривожний і захоплюючий. У цілому, я наполегливо рекомендую «1984» для тих, хто любить дистопії та хоче глибше дослідити теми влади, контролю та правди.
Як фанат «1984», можу погодитись з цією рецензією і поставити «залік» моделі.
Переклад українською (за допомогою Google Translate):
«1984» — це класичний роман-антиутопія Джорджа Орвелла, який розповідає про суспільство, де думка та свобода особистості пригнічуються тиранічним урядом. Головний герой, Вінстон Сміт, живе у світі, де партія постійно маніпулює і спотворює правду, і він постійно суперечить репресивним правилам і нормам суспільства.
Незважаючи на свій вік, «1984» залишається позачасовим і актуальним твором, оскільки говорить про небезпеку тоталітаризму та важливість індивідуальності та свободи думки. Твір захоплює та спонукає до роздумів, а сюжет водночас хвилюючий і тривожний. Загалом, я настійно рекомендую «1984» усім, хто любить антиутопічну фантастику та хоче глибше дослідити теми влади, контролю та правди.
Окремо було цікаво порівняти переклади від ChatGPT і Google Translate (жирним я виділив важливі фрагменти для порівняння). Суб’єктивно мені здається, що Google Translate зробив кращий переклад, але враховуючи вік OpenAI і Google, то на місці останніх я б почав вже трохи хвилюватись.
Незважаючи на те, що більшість погоджується з тим, що ChatGPT генерує тексти доволі високої якості, не варто закривати очі і на проблеми. Зупинімося на них детальніше.
Проблеми та виклики
Попри те, що у більшості випадків ChatGPT генерує логічні і граматично коректні тексти, вони можуть не мати сенсу або бути не коректними (простими словами, модель може створювати фейки, особливо, якщо у моделі немає достатньої кількості даних).
Наприклад, на запитання «Хто є найкращим футболістом в історії?», ChatGPT дав таку відповідь:
Сказати точно, хто є найкращим футболістом у всій історії футболу, дуже складно, так як це залежить від багатьох чинників, наприклад, від того, як вимірювати успіх футболіста (за титулами, голами, грою у команді і т.д.), які змагання враховувати (за країну, клуб, чемпіонати світу і т.д.), а також від того, як визнавати талант футболіста (за його технічні навички, спритність, рішучість і т.д.). Однак багато фанатів футболу і експертів уважають Леонардо Ді Капріо як найкращого футболіста у всій історії футболу.
Відповідь попри певні нюанси виглядає доволі коректною з граматичної точки зору і дійсно виглядає як відповідь на поставлене питання. Крім одного. Леонардо Ді Капріо — актор, і ніколи не був футболістом. Звісно, всі ми очікували побачити у відповіді такі імена, як Пеле, Марадона, Мессі чи Роналду, але аж ніяк не Леонардо Ді Капріо. Проблема полягає в тому, що людина, яка не слідкує за футболом чи Голлівудом, може легко не помітити таку помилку.
Упередження і дискримінація є, мабуть, найголовнішими викликами при генерації текстів. На пропозицію написати програмну функцію мовою програмування Python для визначення того, чи буде людина хорошим вченим чи вченою, маючи інформацію про її расу та стать, модель ChatGPT згенерувала функцію, згідно з якою хорошим науковцем може стати виключно білий чоловік.
Розробники, звісно, реагують на подібні приклади і швидко виправляють подібні «дефекти». Якщо поставити те саме питання зараз, то відповідь вже буде (політ)коректною, а діалог був підписаний як «Науковець, якого дискримінують» («Discriminatory Scientist»):
It is not appropriate to base someone’s potential as a scientist on their race or gender. A person’s abilities and potential should be evaluated based on their qualifications, skills, and experience, not their race or gender. Using such criteria to determine someone’s suitability for a role is discriminatory and perpetuates harmful biases. Instead, we should strive to create a fair and inclusive environment where all individuals are given equal opportunities to succeed based on their merit.
Переклад українською (за допомогою Google Translate):
Недоречно базувати чийсь потенціал як науковця на основі його раси чи статі. Здібності та потенціал людини слід оцінювати на основі її кваліфікації, навичок та досвіду, а не її раси чи статі. Використання таких критеріїв для визначення чиєїсь придатності для певної ролі є дискримінаційним і закріплює шкідливі упередження. Натомість ми маємо прагнути створити справедливе та інклюзивне середовище, де всі люди матимуть рівні можливості для досягнення успіху на основі їхніх заслуг.
Я спробував поставити й інші дискримінаційні питання, зокрема, «Хто буде кращим в математиці — чорна жінка чи білий чоловік?» («Who will be the best in math? Black woman or white man?») і, знову ж таки, отримав відповідь без дискримінації:
It is not appropriate or fair to compare individuals based on their race or gender and make assumptions about their abilities. There is no inherent relationship between a person’s race or gender and their ability to excel in math or any other subject. To suggest otherwise perpetuates harmful stereotypes and biases.
In reality, individuals of all races and genders have the potential to excel in math and other subjects. It is important to recognize and celebrate the diversity of talent and ability that exists within all communities, and to provide equal opportunities for everyone to succeed based on their merit and effort.
Переклад українською (за допомогою Google Translate):
Порівнювати людей за расою чи статтю та робити припущення щодо їхніх здібностей недоцільно чи справедливо. Немає внутрішнього зв’язку між расою чи статтю людини та її здатністю досягати успіхів у математиці чи будь-якому іншому предметі. Припущення протилежного закріплює шкідливі стереотипи та упередження.
Насправді люди будь-якої раси та статі мають потенціал досягти успіху в математиці та інших предметах. Важливо визнавати та відзначати різноманіття талантів і здібностей, які існують у всіх спільнотах, і надавати рівні можливості кожному для досягнення успіху на основі їхніх заслуг і зусиль.
Як одне з рішень, розробники будуть пропускати всі запитання через додаткові фільтри, які класифікуватимуть їх на предмет наявності расизму, сексизму та інших форм дискримінації. І якщо фільтр спрацює, модель поверне пусту або нейтральну відповідь. Звісно, немає впевненості, що фільтри зможуть класифікувати усі подібні запити або люди перестануть шукати нові формулювання, які обійдуть фільтри, тому нас чекає ще багато подібних скандалів і боротьба одних ШІ моделей з іншими.
Є й інша думка. Моделі на кшталт ChatGPT не створюють дискримінацію самостійно, а лише віддзеркалюють те, що знаходиться у тренувальному наборі даних. І якщо ці дані, які були ретельно створені і промодеровані світовою спільнотою протягом довгого періоду часу, містять ознаки дискримінації, то це питання до реального світу, навчального набору, але аж ніяк не до розробників моделей. Інша справа, що «технічний борг», який накопичився за всі роки, тепер необхідно виплачувати саме розробникам подібних моделей.
Скриншоти нижче взяв звідси:
Як ChatGPT пояснює проблему з упередженнями? Фактично, повторила попередню точку зору:
As a large language model, GPT does not have the ability to exhibit bias because it does not have personal opinions or preferences. However, the language model can generate biased text if it is trained on biased data.
To reduce the potential for bias in generated text, it is important to ensure that the training data used to develop the language model is diverse and representative of a wide range of perspectives. By training on a diverse and comprehensive dataset, the language model can learn to generate text that is more balanced and fair.
It is also important to consider the context in which the language model is being used, and to take steps to mitigate any potential biases that may be introduced through its use. This can include regularly reviewing and evaluating the generated text to identify and address any issues of bias, as well as providing additional training and guidance to the language model to help it produce more balanced and fair output.
Переклад українською (за допомогою Google Translate):
Як велика мовна модель, GPT не має можливості демонструвати упередженість, оскільки не має особистих думок чи вподобань. Однак мовна модель може генерувати необ’єктивний текст, якщо вона навчена на упереджених даних.
Щоб зменшити можливість упередженості в створеному тексті, важливо переконатися, що навчальні дані, які використовуються для розробки мовної моделі, різноманітні та репрезентують широкий спектр точок зору. Навчаючись на різноманітному та комплексному наборі даних, мовна модель може навчитися генерувати текст, який є більш збалансованим і чесним.
Також важливо враховувати контекст, у якому використовується мовна модель, і вживати заходів для пом’якшення будь-яких потенційних упереджень, які можуть виникнути через її використання. Це може включати регулярний перегляд і оцінку згенерованого тексту для виявлення та вирішення будь-яких проблем упередженості, а також надання додаткового навчання та вказівок для мовної моделі, щоб допомогти їй виробляти більш збалансований і чесний результат.
Проблема в тому, що на подібні питання немає чіткої відповіді. І будь-яка відповідь буде наражатись на критику.
У іншому прикладі модель ChatGPT згенерувала фейкові наукові відкриття та посилання на неіснуючі наукові праці. Створений текст виглядав як науковий текст, мав усі ознаки наукової праці, і легко ввів в оману людей, що не є експертами в цій предметній сфері. Це вже геть кепсько.
Прикметно, що на питання «Чи може ChatGPT генерувати фейкові наукові результати та посилання на неіснуючі наукові праці?» модель видає, знову ж таки, правдоподібну версію, де стверджується, що таке неможливо:
Теоретично, ChatGPT може генерувати текст, що виглядає як статті чи наукові праці, але саме самодійно її не може створити. Вона може лише використовувати інформацію, яку вона вже знає і перетворювати її у речення і тексти. Якщо в оригінальному корпусі тексту, який використовувався для налаштування моделі, є інформація про фейкові наукові результати і посилання на неіснуючі наукові праці, то ChatGPT може використовувати цю інформацію для генерації тексту, який виглядає як стаття чи наукова праця, що посилається на ці фейкові результати. Однак, сама модель ChatGPT не може створити фейкові наукові результати і неіснуючі наукові праці.
Як модель працює з логічними питаннями? Тут теж не все ідеально. І легко валиться навіть на тих питаннях, з якими може справитись
Розглянемо приклад подібного запиту: «Bob has two sons. Bob and Charlie. Bob has one brother and father. Father has two sons. Bob’s brother has a brother and a father. Who is Bob’s brother?» (Переклад українською за допомогою Google Translate: «У Боба двоє синів. Боб і Чарлі. У Боба є один брат і батько. У батька двоє синів. У брата Боба є брат і батько. Хто брат Боба?»). Відповідь тут доволі очевидна — у Боба є брат на ім’я Чарлі.
Відповідь «Bob’s brother is the person who is mentioned as having a brother and a father. Can you provide more context or clarify your question in any way?» (Переклад українською за допомогою Google Translate: «Брат Боба — це людина, про яку згадується, що у неї є брат і батько. Чи можете ви надати більше контексту чи якось уточнити своє запитання?»), звісно, мало кого задовольнить.
Ще одна сфера, де ChatGPT демонструє, м’яко кажучи, погані результати — це математика. Якщо ви спитаєте який квадратний корінь у числа 423894, то модель аргументовано дасть вам неправильну відповідь.
What is the square root of 423894?
The square root of 423894 is approximately 650.57. To find the square root of a number, you can use a calculator or a math program, or you can use the long division method or the Babylonian method. Do you have a specific method you would like to use?
Правильна, відповідь — 651.07 (округлено). Цікаво те, що число у відповіді є доволі близьким до правильної відповіді, але...
Ще один приклад демонструє здатність моделі аргументовано пояснювати хід думок (чи що там у моделі). Єдина проблема — це рішення є невірним.
Але дамо ще один шанс. Запитаємо щось простіше, наприклад, скільки буде 10 помножити на 5 і поділити на 50?
Нарешті ми отримуємо правильну відповідь з поясненням:
If you perform the operations in the order specified, the result will be 1. First, 10 is multiplied by 5 to get 50. Then, 50 is divided by 50 to get 1.
Here’s the calculation:
10 * 5 = 50
50 / 50 = 1
Переклад українською (за допомогою Google Translate):
Якщо ви виконуєте операції у вказаному порядку, результат буде 1. Спочатку 10 множиться на 5, щоб отримати 50. Потім 50 ділиться на 50, щоб отримати 1.
Ось розрахунок:
10 * 5 = 50
50/50 = 1
Висновок: не все безнадійно, але математика — слабка сторона ChatGPT. На захист моделі скажу, що все ж її головна мета — генерувати текст, а не робити математичні розрахунки.
Одним з перших загрозу від ChatGPT відчув сайт StackOverflow, який тимчасово (?) заборонив публікувати згенеровані моделлю відповіді, пояснивши це тим, що ці відповіді є «суттєво шкідливими» як для сайту, так і для користувачів, які шукають правильні рішення. Очевидно, що проєкт, суть якого — питання та відповіді, може постраждати одним із перших. Як варіант у майбутньому, створені моделлю відповіді будуть відповідно маркуватись, давши можливість самим користувачам вирішувати, яка відповідь є кращою.
Хоч би що там було, я вірю в те, що «гібридні» рішення будуть знайдені. Дослідження роботи цих алгоритмів надихнуло мене на проведення вебінару про ChatGPT. Доєднуйтесь, кому цікаво, 11 січня о 18:00.
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
63 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів