ChatGPT をマスターする: LLM を使用した効果的な要約

ChatGPT をマスターする: LLM を使用した効果的な要約

ソースノード: 2763303

テキスト要約ChatGPT

AI画像生成ツールDall-Eがイメージする要約エージェント。

新しいレストランを訪れるたびに、Google マップにレビューを残す人はいませんか?

それとも、特に低品質の製品をきっかけに Amazon での購入について意見を共有するタイプですか?

心配しないでください、私はあなたを責めません—私たちにはそれぞれの瞬間があります!

今日のデータの世界では、私たち全員がさまざまな方法でデータの氾濫に貢献しています。 その多様性と解釈の難しさから、私が特に興味深いと思うデータ タイプの XNUMX つは、インターネット上に毎日投稿される無数のレビューなどのテキスト データです。 テキストデータの標準化と圧縮の重要性について立ち止まって考えたことはありますか?
要約エージェントの世界へようこそ!

要約エージェントは私たちの日常生活にシームレスに統合され、情報を凝縮し、多数のアプリケーションやプラットフォームにわたる関連コンテンツへの素早いアクセスを提供します。

この記事では、カスタム アプリケーションの強力な要約エージェントとしての ChatGPT の利用方法を検討します。 大規模言語モデル (LLM) のテキストを処理して理解する機能のおかげで、 テキストを読んだり、正確な要約を生成したり、情報を標準化したりするのに役立ちます。。 ただし、そのようなタスクを実行する際にその可能性を引き出す方法を知ることと、その限界を認識することが重要です。

要約の最大の制限は何でしょうか?
LLM は、特定の文字や単語の制限を遵守するという点で不十分なことがよくあります。 彼らの要約では。

ChatGPT を使用して概要を生成するためのベスト プラクティスを見てみましょう カスタム アプリケーションについて、またその制限の背後にある理由とその制限を克服する方法について説明します。

この詳細な教育コンテンツが役立つ場合は、次のことができます。 AIリサーチメーリングリストに登録する 新しい素材がリリースされたときに警告が表示されます。 

ChatGPT を使用した効果的な要約

要約エージェントはインターネット全体で使用されています。 たとえば、Web サイトは要約エージェントを使用して記事の簡潔な要約を提供し、ユーザーがコンテンツ全体に飛び込むことなくニュースの概要を簡単に把握できるようにします。 ソーシャルメディアプラットフォームや検索エンジンもこれを行います。

ニュースアグリゲーターやソーシャルメディアプラットフォームから電子商取引ウェブサイトに至るまで、要約エージェントは私たちのデジタル環境に不可欠な部分となっています。。 そして、LLM の引き上げにより、これらのエージェントの一部は、より効果的な要約結果を得るために AI を使用しています。

ChatGPT は、要約エージェントを使用してアプリケーションを構築するときに、タスクの読み取りやテキストの分類を高速化するための強力な味方となります。 たとえば、電子商取引ビジネスを運営しており、すべての顧客レビューを処理することに興味があるとします。 ChatGPT は、特定のレビューを数文で要約し、一般的な形式に標準化し、決定するのに役立ちます。 レビューの感情と分類 それに応じて.

確かに、単純にレビューを ChatGPT にフィードすることもできますが、ベスト プラクティスのリストがあります。 —そして避けるべきこと— この具体的なタスクで ChatGPT の機能を活用します。

この例を実際に使ってオプションを検討してみましょう。

例: E コマースのレビュー

自作gif。

電子商取引 Web サイト上の特定の製品のすべてのレビューを処理することに興味がある上記の例を考えてみましょう。 私たちは、当社のスター製品に関する次のようなレビューの処理に興味を持っています。 子どもにとって初めてのパソコン!

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 語のレビューの要約を提供します。
  • すべてのレビューを XNUMX つの形式に標準化するために、具体的な構造を含む応答を出力します。

実装上の注意

以下は、カスタム アプリケーションから ChatGPT を要求するために使用できる基本的なコード構造です。 へのリンクも提供します ジュピターノート この記事で使用されているすべての例を示します。

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)

⚠️ この例で使用されているプロンプトのガイドライン (区切り文字を使用して入力テキストをプロンプトの残りの部分から区切る、構造化された出力を求めるなど) については、次の URL で詳しく説明されています。 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 がユースケースにとって価値のある情報をスキップしないようにするには、元のレビューの重要な焦点について詳細を提供することが重要です。.

この XNUMX 回目のトライアルには配送に関する情報が含まれていますが、元のレビューの唯一のマイナス面が省略されていることにお気づきでしょうか?

それを直しましょう!

「要約」ではなく「抜粋」

要約タスクを調査したところ、次のことがわかりました。 ユーザープロンプトが十分正確でない場合、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.

自動化

このシステムは XNUMX 回のレビューに対して機能します。 それでも、具体的なアプリケーションのプロンプトを設計するときは、 モデル内の異常値や不正な動作を検出できるように、サンプルのバッチでテストすることが重要です。.

複数のレビューを処理する場合に役立つサンプル 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 が単語数または文字数を正確に理解していないために発生します。 この背後にある理由は、アーキテクチャの主要な重要コンポーネントの XNUMX つに依存しています。 トークナイザー.

トークナイザー

ChatGPT のような LLM は、膨大な量の言語データから学習した統計パターンに基づいてテキストを生成するように設計されています。 流暢で一貫性のあるテキストを生成するのには非常に効果的ですが、単語数を正確に制御できません。.

上記の例では、非常に正確な単語数について指示を与えた場合、 ChatGPT はこれらの要件を満たすのに苦労していました。 代わりに、実際には指定された単語数よりも短いテキストが生成されました。

他の場合には、より長いテキスト、または過度に冗長または詳細が欠けている単なるテキストが生成される場合があります。 さらに、 ChatGPT は、単語数の厳密な遵守よりも、一貫性や関連性などの他の要素を優先する場合があります。。 その結果、内容と一貫性の点では高品質のテキストが作成される可能性がありますが、ワード数の要件を正確に満たしていない可能性があります。

トークナイザーは ChatGPT のアーキテクチャにおける重要な要素であり、生成される出力の単語数に明らかに影響します。.

自作gif。

トークナイザーのアーキテクチャ

トークナイザーは、テキスト生成プロセスの最初のステップです。 ChatGPT に入力したテキストを個々の要素に分割する役割を果たします。 — トークン — 、その後、言語モデルによって処理されて、新しいテキストが生成されます。

トークナイザーはテキストの一部をトークンに分解する際、ターゲット言語の意味のある単位を識別するように設計された一連のルールに基づいて分解します。 ただし、これらのルールは常に完璧であるとは限りません。 トークナイザーがテキスト全体の単語数に影響を与える方法でトークンを分割または結合する場合があります。.

たとえば、次の文を考えてみましょう。 「ピーナッツバターサンドイッチが食べたいです。」 トークナイザーがスペースと句読点に基づいてトークンを分割するように構成されている場合、この文はトークン数と同じ合計単語数 8 の次のトークンに分割されることがあります。

自作のイメージ。

ただし、トークナイザーが次のように設定されている場合は、 "ピーナッツバター" 複合語として使用すると、文が次のトークンに分割される場合があります。 合計ワード数は 8 ですが、トークン数は 7 です。.

したがって、トークナイザーの構成方法は、テキスト全体の単語数に影響を与える可能性があります。これは、LLM が正確な単語数に関する指示に従う能力に影響を与える可能性があります。 一部のトークナイザーはテキストのトークン化方法をカスタマイズするオプションを提供していますが、これは語数要件を正確に遵守するには必ずしも十分ではありません。 この場合の ChatGPT の場合、そのアーキテクチャのこの部分を制御することはできません。.

このため、ChatGPT は文字や単語の制限を達成するのがあまり得意ではありませんが、トークナイザーは影響しないため、代わりに文章で試すことができます。 文の数だけでなく、その長さも.

この制限を認識しておくと、アプリケーションに最適なプロンプトを念頭に置いて作成するのに役立ちます。 ChatGPT でのワードカウントの仕組みについての知識があれば、電子商取引アプリケーションのプロンプトで最後の反復を行ってみましょう。

まとめ: E コマースのレビュー

この記事で学んだことを最終的なプロンプトにまとめてみましょう。 この場合、結果を求めることになります。 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 からの最終出力は次のとおりです。

からの自作のスクリーンショット ジュピターノート この記事で使用されている例を参照してください。

まとめ

この記事では、 ChatGPT をカスタム アプリケーションの要約エージェントとして使用するためのベスト プラクティスについて説明しました。.

アプリケーションを構築する場合、最初のトライアルでアプリケーションの要件に一致する完璧なプロンプトを考え出すのは非常に難しいことがわかりました。 良い持ち帰りメッセージは次のとおりだと思います。 プロンプトを反復プロセスとして考える ここで、目的の出力が正確に得られるまで、プロンプトを調整およびモデル化します。

プロンプトを繰り返し調整して、実稼働環境にデプロイする前にサンプルのバッチに適用することで、 出力は複数の例にわたって一貫しており、外れ値の応答をカバーします。 この例では、誰かがレビューの代わりにランダムなテキストを提供する可能性があります。 ChatGPT に、これらの異常値の応答を除外する標準化された出力を持たせるように指示することもできます。.

さらに、特定のタスクに ChatGPT を使用する場合は、ターゲット タスクに LLM を使用することの長所と短所について学ぶこともお勧めします。 このようにして、入力テキストの一般的な人間のような要約が必要な場合は、要約タスクよりも抽出タスクの方が効果的であるという事実に遭遇しました。 また、要約の焦点を提供することで、 ゲームチェンジャー 生成されたコンテンツに関して。

最後に、LLM はテキストの生成に非常に効果的ですが、 単語数やその他の特定の書式要件に関する正確な指示に従うのには理想的ではありません。。 これらの目標を達成するには、文のカウントに固執するか、手動編集やより専門的なソフトウェアなどの他のツールや方法を使用する必要がある場合があります。

この記事は、最初に公開された データサイエンスに向けて 著者の許可を得てTOPBOTSに再公開しました。

この記事をお楽しみください? AIリサーチの最新情報にサインアップしてください。

このような要約記事がさらにリリースされたらお知らせします。

タイムスタンプ:

より多くの トップボット