A ChatGPT elsajátítása: Hatékony összegzés LLM-ekkel

A ChatGPT elsajátítása: Hatékony összegzés LLM-ekkel

Forrás csomópont: 2763303

Szövegösszefoglaló ChatGPT

A Dall-E AI képgeneráló eszköz által elképzelt összegző ágensek.

Ön is annak a lakosságnak a tagja, aki minden alkalommal véleményt ír a Google térképen, amikor meglátogat egy új éttermet?

Vagy talán Ön az a típus, aki megosztja véleményét az Amazon-vásárlásokról, különösen akkor, ha rossz minőségű termék váltja ki?

Ne aggódj, nem foglak hibáztatni – mindannyiunknak megvannak a maga pillanatai!

A mai adatvilágban mindannyian többféleképpen járulunk hozzá az adatözönhöz. Az egyik olyan adattípus, amelyet sokfélesége és értelmezési nehézségei miatt különösen érdekesnek tartok, a szöveges adatok, például a számtalan vélemény, amelyet naponta tesznek közzé az interneten. Megállt már valaha, hogy fontolóra vegye a szöveges adatok szabványosításának és tömörítésének fontosságát?
Üdvözöljük az összegző ügynökök világában!

Az összegző ügynökök zökkenőmentesen integrálódtak mindennapi életünkbe, összegyűjtve az információkat, és gyors hozzáférést biztosítanak a releváns tartalomhoz számos alkalmazás és platform között.

Ebben a cikkben a ChatGPT hatékony összegző ügynökként való felhasználását vizsgáljuk meg egyéni alkalmazásaink számára. A Large Language Models (LLM) képességének köszönhetően szövegek feldolgozására és megértésére, segíthetnek a szövegek olvasásában, pontos összefoglalók készítésében vagy az információk szabványosításában. Fontos azonban tudni, hogyan aknázzák ki potenciáljukat egy ilyen feladat elvégzése során, valamint ismerjük el korlátaikat.

Az összegzés legnagyobb korlátja?
Az LLM-ek gyakran alulmaradnak bizonyos karakter- vagy szókorlátozások betartásában összefoglalóikban.

Fedezzük fel a ChatGPT-vel összefoglalók készítésének bevált gyakorlatait egyedi alkalmazásunkhoz, valamint annak korlátai mögött meghúzódó okokra és azok leküzdésére!

Ha ez a mélyreható oktatási tartalom hasznos az Ön számára, megteheti iratkozzon fel AI kutatási levelezőlistánkra figyelmeztetni kell, ha új anyagot adunk ki. 

Hatékony összefoglalás a ChatGPT-vel

Az összesítő ágenseket az egész interneten használják. Például a webhelyek összefoglaló ügynököket használnak a cikkek tömör összefoglalására, lehetővé téve a felhasználók számára, hogy gyors áttekintést kapjanak a hírekről anélkül, hogy belemerülnének a teljes tartalomba. A közösségi média platformok és a keresőmotorok is ezt teszik.

A hírgyűjtőktől és a közösségi média platformoktól az e-kereskedelmi webhelyekig az összefoglaló ügynökök digitális környezetünk szerves részévé váltak.. Az LLM-ek számának növekedésével ezen ügynökök egy része ma már mesterséges intelligenciát is használ a hatékonyabb összegzési eredmények érdekében.

A ChatGPT jó szövetséges lehet, amikor összefoglaló ügynököket használó alkalmazásokat készítenek az olvasási feladatok felgyorsítására és a szövegek osztályozására. Tegyük fel például, hogy van egy e-kereskedelmi vállalkozásunk, és érdekeltek vagyunk az összes vásárlói vélemény feldolgozásában. A ChatGPT segíthet nekünk abban, hogy egy adott véleményt néhány mondatban összefoglaljunk, általános formátumra szabványosítsuk, meghatározzuk az áttekintés hangulata és osztályozása ennek megfelelően.

Bár igaz, hogy egyszerűen továbbíthatnánk a véleményt a ChatGPT-nek, van egy lista a bevált módszerekről - és elkerülendő dolgok hogy kihasználja a ChatGPT erejét ebben a konkrét feladatban.

Vizsgáljuk meg a lehetőségeket a példa életre keltésével!

Példa: E-kereskedelmi vélemények

Saját készítésű gif.

Tekintsük a fenti példát, amelyben arra vagyunk kíváncsiak, hogy egy adott termékre vonatkozó összes véleményt feldolgozzuk e-kereskedelmi webhelyünkön. Érdeklődnénk a sztártermékünkről szóló vélemények feldolgozása iránt, mint például az alábbi: az első számítógép gyerekeknek!

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. """

Ebben az esetben azt szeretnénk, ha a ChatGPT:

  • Osztályozza a véleményt pozitív vagy negatív kategóriába.
  • Adja meg 20 szóból álló összefoglalóját.
  • Adja meg a választ konkrét szerkezettel, hogy az összes véleményt egyetlen formátumban egységesítse.

Megvalósítási megjegyzések

Itt van az alapvető kódstruktúra, amellyel a ChatGPT-t kérhetjük egyéni alkalmazásunkból. Adok egy linket is a Jupyter Jegyzetfüzet a cikkben használt összes példával.

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)

A funkció get_completion() megadottal hívja meg a ChatGPT API-t azonnali. Ha a prompt tartalmaz további felhasználói szöveg, mint esetünkben maga az áttekintés, három idézőjelek választják el a kód többi részétől.

Használjuk a get_completion() függvény a ChatGPT!

Itt van egy felszólítás, amely megfelel a fent leírt követelményeknek:

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)

⚠️ Az ebben a példában használt felszólítási irányelvek, mint például a határolók használata a bemeneti szöveg és a prompt többi részétől való elválasztására, valamint a strukturált kimenet kérése a következő helyen található: Amit az OpenAI azonnali tervezésről szóló kurzusából tanultam – Felszólítási irányelvek.

Íme a ChatGPT válasza:

{ "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."
}

Amint azt a kimenetből láthatjuk, az áttekintés pontos és jól felépített, bár hiányzik néhány információ, amelyre az e-kereskedelem tulajdonosaiként érdeklődhetnénk, mint például a termék kiszállításával kapcsolatos információk.

Foglalja össze a fókuszt

Iteratív módon javíthatjuk a ChatGPT-t arra kérve, hogy összpontosítson bizonyos dolgokra az összefoglalóban. Ebben az esetben a szállítással és a kiszállítással kapcsolatos minden részletre kíváncsiak vagyunk:

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)

Ezúttal a ChatGPT válasza a következő:

{ "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."
}

Most az áttekintés sokkal teljesebb. Az eredeti áttekintés fontos fókuszának részletezése kulcsfontosságú annak elkerülése érdekében, hogy a ChatGPT kihagyjon néhány olyan információt, amelyek értékesek lehetnek a használati esetünkben..

Észrevette, hogy bár ez a második próba tartalmaz információkat a szállításról, kihagyta az eredeti vélemény egyetlen negatív aspektusát?

Javítsuk ki!

„Kivonat” az „Összefoglalás” helyett

Az összegzési feladatok vizsgálatával rájöttem arra Az összegzés bonyolult feladat lehet az LLM-ek számára, ha a felhasználói prompt nem elég pontos.

Amikor arra kéri a ChatGPT-t, hogy adjon össze egy adott szöveget, kihagyhatja azokat az információkat, amelyek fontosak lehetnek számunkra – ahogy a közelmúltban tapasztaltuk – vagy ugyanolyan fontosságot tulajdonít a szövegben szereplő összes témának, csak a főbb pontokról nyújt áttekintést.

Az LLM-ek szakértői ezt a kifejezést használják kivonat és ahelyett, hogy további információkat kapjanak a fókuszukról összegez amikor ilyen típusú modellekkel segítik az ilyen feladatokat.

Míg az összefoglalás célja, hogy tömör áttekintést nyújtson a szöveg főbb pontjairól, beleértve a fókusz témához nem kapcsolódó témákat is, az információ kinyerése a konkrét részletek visszakeresésére összpontosít. és pontosan azt adhatja nekünk, amit keresünk. Próbáljuk akkor kivonattal!

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)

Ebben az esetben a kivonat használatával csak a fókusz témánkról kapunk információt: Shipping: Arrived a day earlier than expected.

Automatizálás

Ez a rendszer egyetlen felülvizsgálatra működik. Mindazonáltal, amikor egy konkrét alkalmazásra vonatkozó felszólítást tervezünk, fontos, hogy egy csomó példában teszteljük, hogy észrevehessük a modell esetleges kiugró vagy helytelen viselkedését.

Több vélemény feldolgozása esetén itt van egy példa Python kódszerkezet, amely segíthet.

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}``` """

Íme az értékelések összefoglalása:

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.

⚠️ Ne feledje, hogy bár az összefoglalóink ​​szókorlátozása elég egyértelmű volt a promptokban, könnyen beláthatjuk, hogy ez a szókorlátozás egyik iterációban sem teljesül.

Ez a szószámlálási eltérés azért következik be, mert az LLM-ek nem értik pontosan a szavak vagy karakterek számát. Ennek oka az építészetük egyik fő fontos összetevőjében rejlik: a tokenizátor.

Tokenizátor

Az olyan LLM-eket, mint a ChatGPT, úgy tervezték, hogy szöveget generáljanak a hatalmas mennyiségű nyelvi adatból tanult statisztikai minták alapján. Noha rendkívül hatékonyak a gördülékeny és koherens szöveg létrehozásában, hiányzik belőlük a szószám pontos szabályozása..

A fenti példákban, amikor utasításokat adtunk egy nagyon pontos szószámra vonatkozóan, A ChatGPT nehezen teljesítette ezeket a követelményeket. Ehelyett olyan szöveget hozott létre, amely valójában rövidebb, mint a megadott szószám.

Más esetekben hosszabb szövegeket generálhat, vagy egyszerűen olyan szöveget, amely túlságosan bőbeszédű vagy nem részletezi. Ezenkívül A ChatGPT más tényezőket is előnyben részesíthet, mint például a koherenciát és a relevanciát a szavak számának szigorú betartásával szemben.. Ez olyan szöveget eredményezhet, amely tartalmilag és koherenciáját tekintve jó minőségű, de nem felel meg pontosan a szószám követelményének.

A tokenizátor a ChatGPT architektúrájának kulcseleme, amely egyértelműen befolyásolja a szavak számát a generált kimenetben.

Saját készítésű gif.

Tokenizátor architektúra

A tokenizátor a szöveggenerálási folyamat első lépése. Felelős a ChatGPT-be bevitt szövegrész egyedi elemekre bontásáért - tokenek - , amelyeket aztán a nyelvi modell feldolgozva új szöveget generál.

Amikor a tokenizátor egy szövegrészt tokenekre bont, azt egy olyan szabálykészlet alapján teszi, amelyek célja a célnyelv értelmes egységeinek azonosítása. Ezek a szabályok azonban nem mindig tökéletesek, és előfordulhatnak olyan esetek, amikor a tokenizer felosztja vagy összevonja a tokeneket oly módon, hogy az befolyásolja a szöveg általános szószámát.

Vegyük például a következő mondatot: „Mogyoróvajas szendvicset akarok enni”. Ha a tokenizáló úgy van beállítva, hogy szóközök és írásjelek alapján felosztja a tokeneket, akkor ezt a mondatot a következő tokenekre bonthatja, amelyek teljes szószáma 8, ami megegyezik a tokenek számával.

Saját készítésű kép.

Ha azonban a tokenizátor úgy van beállítva, hogy kezelje "mogyoróvaj" összetett szóként a következő jelzőkre bonthatja a mondatot, összesen 8 szószámmal, de 7 jelzőszámmal.

Így a tokenizátor konfigurálásának módja befolyásolhatja a szöveg általános szószámát, és ez befolyásolhatja az LLM azon képességét, hogy kövesse a pontos szószámmal kapcsolatos utasításokat. Míg egyes tokenizátorok lehetőséget kínálnak a szöveg tokenizálásának testreszabására, ez nem mindig elegendő a szószámra vonatkozó követelmények pontos betartásához. A ChatGPT esetében ebben az esetben nem tudjuk irányítani az architektúrának ezt a részét.

Emiatt a ChatGPT nem olyan jó a karakter- vagy szókorlátozás végrehajtásában, de lehet próbálkozni mondatokkal, mivel a tokenizer nem befolyásolja a mondatok száma, de azok hossza.

Ennek a korlátozásnak a tudatában segíthet az alkalmazásának leginkább megfelelő prompt létrehozásában. Ha megtudjuk, hogyan működik a szószám a ChatGPT-n, végezzünk egy utolsó iterációt az e-kereskedelmi alkalmazás promptjával!

Összefoglalva: E-kereskedelmi vélemények

Foglaljuk össze ebből a cikkből tanultakat egy utolsó felszólításban! Ebben az esetben kérni fogjuk az eredményeket HTML formátum a szebb kimenet érdekében:

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))

És itt van a ChatGPT végső kimenete:

Saját készítésű képernyőkép a Jupyter Jegyzetfüzet a cikkben használt példákkal.

Összegzésként

Ebben a cikkben, megvitattuk a ChatGPT összefoglaló ügynökként való használatának bevált gyakorlatait egyéni alkalmazásunkhoz.

Láttuk, hogy egy alkalmazás elkészítésekor rendkívül nehéz olyan tökéletes promptot találni, amely megfelel az alkalmazás követelményeinek az első próba során. Szerintem egy szép hazavihető üzenet gondoljon a felszólításra mint iteratív folyamatra ahol finomíthatja és modellezheti a promptot, amíg pontosan a kívánt kimenetet meg nem kapja.

Ha iteratív módon finomítja a promptot, és alkalmazza egy csomó példára, mielőtt éles üzembe helyezné, megbizonyosodhat arról, a kimenet több példában is konzisztens, és lefedi a kiugró válaszokat. Példánkban megtörténhet, hogy valaki véletlenszerű szöveget ad meg vélemény helyett. Utasíthatjuk a ChatGPT-t, hogy rendelkezzen egy szabványos kimenettel is, amely kizárja ezeket a kiugró válaszokat.

Ezen túlmenően, ha a ChatGPT-t egy adott feladathoz használja, az is jó gyakorlat, ha megismerjük az LLM-ek célfeladatunkhoz való használatának előnyeit és hátrányait. Így jöttünk rá arra, hogy a kinyerési feladatok hatékonyabbak, mint az összegzés, amikor egy bemeneti szöveg közös, emberszerű összefoglalását szeretnénk. Azt is megtudtuk, hogy az összefoglaló fókuszának megadása lehet a játék-váltó a generált tartalommal kapcsolatban.

Végül, bár az LLM-ek rendkívül hatékonyak lehetnek a szöveg létrehozásában, nem ideálisak a szószámra vagy más speciális formázási követelményekre vonatkozó pontos utasítások követésére. E célok eléréséhez szükség lehet a mondatszámlálásra, vagy más eszközök vagy módszerek használatára, például kézi szerkesztésre vagy speciálisabb szoftverekre.

Ezt a cikket eredetileg közzétették Az adattudomány felé és a szerző engedélyével újra közzétesszük a TOPBOTS-nál.

Tetszett ez a cikk? Iratkozzon fel további AI-kutatási frissítésekért.

Értesíteni fogunk, ha több ehhez hasonló összefoglaló cikket adunk ki.

Időbélyeg:

Még több TOPBOTOK