Опанування ChatGPT: ефективне підсумовування з LLM

Опанування ChatGPT: ефективне підсумовування з LLM

Вихідний вузол: 2763303

Узагальнення тексту ChatGPT

Агенти підсумовування створені інструментом створення зображень AI Dall-E.

Ви належите до тих, хто залишає відгуки на картах Google кожного разу, коли відвідує новий ресторан?

Або, можливо, ви з тих, хто ділиться своєю думкою щодо покупок на Amazon, особливо коли вас спонукає неякісний продукт?

Не хвилюйтеся, я не буду вас звинувачувати — у кожного з нас бувають моменти!

У сучасному світі даних ми всі робимо внесок у потік даних різними способами. Одним із типів даних, який я вважаю особливо цікавим через його різноманітність і складність інтерпретації, є текстові дані, такі як незліченна кількість оглядів, які щодня публікуються в Інтернеті. Ви коли-небудь замислювалися про важливість стандартизації та конденсації текстових даних?
Ласкаво просимо у світ агентів узагальнення!

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

У цій статті ми розглянемо використання ChatGPT як потужного агента підсумовування для наших спеціальних програм. Завдяки здатності великих мовних моделей (LLM) обробляти та розуміти тексти, вони можуть допомогти в читанні текстів і створенні точних підсумків або стандартизації інформації. Однак важливо знати, як використати їхній потенціал у виконанні такого завдання, а також визнати їхні обмеження.

Найбільше обмеження для узагальнення?
LLM часто не вистачає, коли йдеться про дотримання певних обмежень на символи чи слова у своїх резюме.

Давайте розглянемо найкращі методи створення підсумків за допомогою ChatGPT для нашої спеціальної програми, а також причини її обмежень і способи їх подолання!

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

Ефективне підсумовування за допомогою ChatGPT

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

Від агрегаторів новин і платформ соціальних мереж до веб-сайтів електронної комерції агенти підсумовування стали невід’ємною частиною нашого цифрового ландшафту. І з підвищенням LLM деякі з цих агентів тепер використовують штучний інтелект для ефективнішого узагальнення результатів.

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

Хоча це правда, що ми могли б просто надіслати відгук ChatGPT, існує список найкращих практик — і чого слід уникати — щоб використати потужність ChatGPT у цьому конкретному завданні.

Давайте розглянемо варіанти, втіливши цей приклад у життя!

Приклад: огляди електронної комерції

Саморобна гифка.

Розглянемо наведений вище приклад, у якому ми зацікавлені в обробці всіх відгуків про певний продукт на нашому веб-сайті електронної комерції. Ми були б зацікавлені в обробці таких відгуків про наш зірковий продукт, як наведений нижче: перший комп'ютер для дітей!

prod_review = """
I purchased this children's computer for my son, and he absolutely adores it. He spends hours exploring its various features and engaging with the educational games. The colorful design and intuitive interface make it easy for him to navigate. The computer is durable and built to withstand rough handling, which is perfect for active kids. My only minor gripe is that the volume could be a bit louder. Overall, it's an excellent educational toy that provides hours of fun and learning for my son. It arrived a day earlier
than expected, so I got to play with it myself before I gave it to him. """

У цьому випадку ми хотіли б, щоб ChatGPT:

  • Класифікуйте відгук на позитивний чи негативний.
  • Надайте короткий виклад рецензії з 20 слів.
  • Виведіть відповідь із конкретною структурою, щоб стандартизувати всі відгуки в одному форматі.

Примітки щодо впровадження

Ось базова структура коду, яку ми можемо використати для підказки ChatGPT із нашої спеціальної програми. Я також надаю посилання на a Jupyter Notebook з усіма прикладами, використаними в цій статті.

import openai
import os openai.api_key_path = "/path/to/key" def get_completion(prompt, model="gpt-3.5-turbo"): """
This function calls ChatGPT API with a given prompt
and returns the response back. """ messages = [{"role": "user", "content": prompt}] response = openai.ChatCompletion.create( model=model, messages=messages, temperature=0 ) return response.choices[0].message["content"] user_text = f"""
<Any given text> """ prompt = f"""
<Any prompt with additional text> """{user_text}""" """ # A simple call to ChatGPT
response = get_completion(prompt)

Функція get_completion() викликає ChatGPT API із заданим підказка. Якщо підказка містить додаткові текст користувача, наприклад сам огляд у нашому випадку, він відокремлений від решти коду потрійними лапками.

Давайте скористаємося get_completion() функція підказки ChatGPT!

Ось підказка, що відповідає описаним вище вимогам:

prompt = f"""
Your task is to generate a short summary of a product review from an e-commerce site. Summarize the review below, delimited by triple backticks, in exactly 20 words. Output a json with the sentiment of the review, the summary and original review as keys. Review: ```{prod_review}``` """
response = get_completion(prompt)
print(response)

⚠️ Вказівки щодо підказок, які використовуються в цьому прикладі, як-от використання роздільників для відокремлення вхідного тексту від решти підказки та запит на структурований вихід, повністю пояснено на Чого я навчився з курсу OpenAI із оперативного проектування — рекомендації щодо підказок.

Ось відповідь ChatGPT:

{ "sentiment": "positive", "summary": "Durable and engaging children's computer with intuitive interface and educational games. Volume could be louder.", "review": "I purchased this children's computer for my son, and he absolutely adores it. He spends hours exploring its various features and engaging with the educational games. The colorful design and intuitive interface make it easy for him to navigate. The computer is durable and built to withstand rough handling, which is perfect for active kids. My only minor gripe is that the volume could be a bit louder. Overall, it's an excellent educational toy that provides hours of fun and learning for my son. It arrived a day earlierthan expected, so I got to play with it myself before I gave it to him."
}

Як ми бачимо з результатів, огляд точний і добре структурований, хоча він пропускає деяку інформацію, яка може бути нам цікава як власникам електронної комерції, наприклад інформація про доставку товару.

Підведіть підсумки з акцентом на

Ми можемо неодноразово вдосконалювати наше підказка, просячи ChatGPT зосередитися на певних речах у резюме. У цьому випадку нас цікавить будь-яка інформація про доставку та доставку:

prompt = f"""
Your task is to generate a short summary of a product review from an ecommerce site. Summarize the review below, delimited by triple backticks, in exactly 20 words and focusing on any aspects that mention shipping and delivery of the product. Output a json with the sentiment of the review, the summary and original review as keys. Review: ```{prod_review}``` """ response = get_completion(prompt)
print(response)

Цього разу відповідь ChatGPT така:

{ "sentiment": "positive", "summary": "Durable and engaging children's computer with intuitive interface. Arrived a day earlier than expected.", "review": "I purchased this children's computer for my son, and he absolutely adores it. He spends hours exploring its various features and engaging with the educational games. The colorful design and intuitive interface make it easy for him to navigate. The computer is durable and built to withstand rough handling, which is perfect for active kids. My only minor gripe is that the volume could be a bit louder. Overall, it's an excellent educational toy that provides hours of fun and learning for my son. It arrived a day earlierthan expected, so I got to play with it myself before I gave it to him."
}

Тепер огляд набагато повніший. Надання деталей щодо важливого фокусу оригінального огляду має вирішальне значення, щоб уникнути пропуску ChatGPT деякої інформації, яка може бути цінною для нашого випадку використання.

Чи помітили ви, що хоча це друге випробування містить інформацію про доставку, воно пропустило єдиний негативний аспект оригінального огляду?

Давайте виправимо це!

«Витягти» замість «Підсумувати»

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

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

Експерти в LLM використовують цей термін витяг а також додаткову інформацію про їхні напрямки підсумовувати при виконанні таких завдань допомагають ці типи моделей.

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

prompt = f"""
Your task is to extract relevant information from a product review from an ecommerce site to give feedback to the Shipping department. From the review below, delimited by triple quotes extract the information relevant to shipping and delivery. Use 100 characters. Review: ```{prod_review}``` """ response = get_completion(prompt)
print(response)

У цьому випадку, використовуючи вилучення, ми отримуємо лише інформацію про нашу тему: Shipping: Arrived a day earlier than expected.

Автоматизація

Ця система працює для одного огляду. Тим не менш, розробляючи підказку для конкретної програми, важливо перевірити це на групі прикладів, щоб ми могли вловити будь-які викиди або неправильну поведінку в моделі.

У разі обробки кількох відгуків, ось зразок структури коду Python, який може допомогти.

reviews = [ "The children's computer I bought for my daughter is absolutely fantastic! She loves it and can't get enough of the educational games. The delivery was fast and arrived right on time. Highly recommend!", "I was really disappointed with the children's computer I received. It didn't live up to my expectations, and the educational games were not engaging at all. The delivery was delayed, which added to my frustration.", "The children's computer is a great educational toy. My son enjoys playing with it and learning new things. However, the delivery took longer than expected, which was a bit disappointing.", "I am extremely happy with the children's computer I purchased. It's highly interactive and keeps my kids entertained for hours. The delivery was swift and hassle-free.", "The children's computer I ordered arrived damaged, and some of the features didn't work properly. It was a huge letdown, and the delivery was also delayed. Not a good experience overall."
] prompt = f""" Your task is to generate a short summary of each product review from an e-commerce site. Extract positive and negative information from each of the given reviews below, delimited by triple backticks in at most 20 words each. Extract information about the delivery, if included. Review: ```{reviews}``` """

Ось підсумок нашої серії оглядів:

1. Positive: Fantastic children's computer, fast delivery. Highly recommend.
2. Negative: Disappointing children's computer, unengaging games, delayed delivery.
3. Positive: Great educational toy, son enjoys it. Delivery took longer than expected.
4. Positive: Highly interactive children's computer, swift and hassle-free delivery.
5. Negative: Damaged children's computer, some features didn't work, delayed delivery.

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

Ця невідповідність у підрахунку слів виникає через те, що магістри LLM не мають точного розуміння підрахунку слів або символів. Причина цього полягає в одному з основних важливих компонентів їхньої архітектури: токенізатор.

Токенізатор

LLM, такі як ChatGPT, розроблені для створення тексту на основі статистичних шаблонів, отриманих із величезної кількості мовних даних. Хоча вони дуже ефективні у створенні плавного та зв’язного тексту, їм бракує точного контролю над кількістю слів.

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

В інших випадках він може генерувати довші тексти або просто надто багатослівний або недеталізований текст. Крім того, ChatGPT може надавати перевагу іншим факторам, таким як узгодженість і релевантність, аніж чітке дотримання кількості слів. Це може призвести до високоякісного тексту з точки зору його змісту та зв’язності, але який точно не відповідає вимогам щодо кількості слів.

Токенізатор є ключовим елементом в архітектурі ChatGPT, який чітко впливає на кількість слів у згенерованому виведенні..

Саморобна гифка.

Архітектура Tokenizer

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

Коли токенізер розбиває фрагмент тексту на лексеми, він робить це на основі набору правил, призначених для ідентифікації значущих одиниць цільової мови. Однак ці правила не завжди ідеальні, і можуть бути випадки, коли токенізер розділяє або об’єднує лексеми таким чином, що впливає на загальну кількість слів у тексті.

Наприклад, розглянемо таке речення: «Я хочу з’їсти сендвіч з арахісовим маслом». Якщо токенізер налаштовано на розділення токенів на основі пробілів і знаків пунктуації, він може розбити це речення на наступні лексеми із загальною кількістю слів 8, що дорівнює кількості токенів.

Саморобний образ.

Однак, якщо токенізер налаштовано на лікування "арахісове масло" як складне слово, воно може розбити речення на такі лексеми, із загальною кількістю слів 8, але кількістю токенів 7.

Таким чином, спосіб налаштування токенізера може вплинути на загальну кількість слів у тексті, і це може вплинути на здатність LLM виконувати інструкції щодо точної кількості слів. Незважаючи на те, що деякі токенізери пропонують варіанти налаштування способу токенізації тексту, цього не завжди достатньо для забезпечення точного дотримання вимог щодо кількості слів. У цьому випадку для ChatGPT ми не можемо контролювати цю частину його архітектури.

Через це ChatGPT не надто добре виконує обмеження символів або слів, але замість цього можна спробувати з реченнями, оскільки токенізер не впливає кількість речень, але їх довжина.

Усвідомлення цього обмеження може допомогти вам створити найкраще підказку для вашої програми. Маючи знання про те, як працює підрахунок слів у ChatGPT, давайте зробимо останню ітерацію з нашим запитом для програми електронної комерції!

Підсумок: огляди електронної комерції

Давайте об’єднаємо наші знання з цієї статті в заключну підказку! У цьому випадку ми будемо запитувати результати в HTML формат для кращого результату:

from IPython.display import display, HTML prompt = f"""
Your task is to extract relevant information from a product review from an ecommerce site to give feedback to the Shipping department and generic feedback from the product. From the review below, delimited by triple quotes construct an HTML table with the sentiment of the review, general feedback from
the product in two sentences and information relevant to shipping and delivery. Review: ```{prod_review}``` """ response = get_completion(prompt)
display(HTML(response))

І ось остаточний результат ChatGPT:

Саморобний скріншот з Jupyter Notebook з прикладами, використаними в цій статті.

Підсумки

У цій статті, ми обговорили найкращі практики використання ChatGPT як агента підсумовування для нашої спеціальної програми.

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

Ітеративно вдосконалюючи підказку та застосовуючи її до групи прикладів перед розгортанням у виробництві, ви можете переконатися, що результат узгоджується в кількох прикладах і охоплює викидні відповіді. У нашому прикладі може статися, що хтось надає випадковий текст замість огляду. Ми можемо наказати ChatGPT мати стандартизований вихід, щоб виключити ці викидні відповіді.

Крім того, використовуючи ChatGPT для певного завдання, також корисно дізнатися про плюси та мінуси використання LLM для нашого цільового завдання. Ось як ми натрапили на той факт, що завдання вилучення ефективніші, ніж резюмування, коли ми хочемо звичайний людський підсумок вхідного тексту. Ми також дізналися, що надання фокусу резюме може бути a змінювач гри щодо створеного контенту.

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

Ця стаття була спочатку опублікована на Назустріч науці про дані та повторно опубліковано в TOPBOTS з дозволу автора.

Вам подобається ця стаття? Підпишіться на отримання нових оновлень щодо досліджень ШІ.

Ми повідомимо вас, коли випустимо більше таких підсумкових статей, як ця.

Часова мітка:

Більше від ТОПБОТИ