제퍼넷 로고

ChatGPT 마스터하기: LLM을 사용한 효과적인 요약

시간

텍스트 요약 ChatGPT

AI 이미지 생성 도구 Dall-E가 상상한 요약 에이전트.

새로운 음식점을 방문할 때마다 Google 지도에 리뷰를 남기는 인구에 속하십니까?

아니면 특히 품질이 낮은 제품에 의해 유발될 때 Amazon 구매에 대한 의견을 공유하는 유형입니까?

걱정하지 마세요. 당신을 비난하지 않을 것입니다. 우리 모두에게는 순간이 있습니다!

오늘날의 데이터 세계에서 우리 모두는 다양한 방식으로 데이터 홍수에 기여하고 있습니다. 다양성과 해석의 어려움으로 인해 특히 흥미로운 데이터 유형 중 하나는 매일 인터넷에 게시되는 수많은 리뷰와 같은 텍스트 데이터입니다. 텍스트 데이터를 표준화하고 압축하는 것의 중요성을 생각해 본 적이 있습니까?
요약 에이전트의 세계에 오신 것을 환영합니다!

요약 에이전트는 일상 생활에 원활하게 통합되어 정보를 압축하고 다양한 애플리케이션 및 플랫폼에서 관련 콘텐츠에 빠르게 액세스할 수 있도록 합니다.

이 기사에서는 맞춤형 애플리케이션을 위한 강력한 요약 에이전트로서 ChatGPT를 활용하는 방법을 살펴봅니다. 텍스트를 처리하고 이해하는 LLM(Large Language Models) 기능 덕분에 그들은 텍스트를 읽고 정확한 요약을 생성하거나 정보를 표준화하는 데 도움을 줄 수 있습니다.. 그러나 이러한 작업을 수행하는 데 있어 잠재력을 끌어내는 방법을 알고 자신의 한계를 인정하는 것이 중요합니다.

요약의 가장 큰 한계는?
LLM은 특정 문자 또는 단어 제한을 준수할 때 부족한 경우가 많습니다. 그들의 요약에서.

ChatGPT로 요약을 생성하는 모범 사례를 살펴보겠습니다. 우리의 맞춤형 애플리케이션에 대해, 그리고 그 한계 뒤에 숨은 이유와 그것을 극복하는 방법!

이 심층 교육 콘텐츠가 유용하다면 AI 연구 메일 링리스트 구독 새로운 자료를 공개 할 때 경고를받습니다. 

ChatGPT로 효과적인 요약

요약 에이전트는 인터넷 전체에서 사용됩니다. 예를 들어, 웹사이트는 요약 에이전트를 사용하여 기사의 간결한 요약을 제공하므로 사용자가 전체 콘텐츠를 자세히 살펴보지 않고도 뉴스에 대한 빠른 개요를 얻을 수 있습니다. 소셜 미디어 플랫폼과 검색 엔진도 이 작업을 수행합니다.

뉴스 애그리게이터 및 소셜 미디어 플랫폼에서 전자 상거래 웹사이트에 이르기까지 요약 에이전트는 디지털 환경의 필수적인 부분이 되었습니다.. 그리고 LLM이 증가함에 따라 이러한 에이전트 중 일부는 이제 보다 효과적인 요약 결과를 위해 AI를 사용하고 있습니다.

ChatGPT는 읽기 작업 속도를 높이고 텍스트를 분류하기 위해 요약 에이전트를 사용하여 애플리케이션을 구축할 때 좋은 동맹이 될 수 있습니다. 예를 들어 전자 상거래 사업을 하고 있고 모든 고객 리뷰를 처리하는 데 관심이 있다고 가정합니다. ChatGPT는 주어진 리뷰를 몇 문장으로 요약하고 일반 형식으로 표준화하고 결정하는 데 도움이 될 수 있습니다. 리뷰의 정서 및 분류 그에 따라.

리뷰를 ChatGPT에 간단히 제공할 수 있는 것은 사실이지만 모범 사례 목록이 있습니다. — 그리고 피해야 할 것들 — 이 구체적인 작업에서 ChatGPT의 힘을 활용합니다.

이 예제에 생명을 불어넣어 옵션을 살펴보겠습니다!

예: 전자상거래 리뷰

직접 만든 gif.

전자 상거래 웹 사이트에서 특정 제품에 대한 모든 리뷰를 처리하는 데 관심이 있는 위의 예를 고려하십시오. 스타 제품에 대한 다음과 같은 리뷰를 처리하는 데 관심이 있습니다. 어린이를 위한 최초의 컴퓨터!

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에 대한 링크를 제공합니다 주피터 수첩 이 문서에서 사용된 모든 예제와 함께.

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의 Prompt Engineering 과정에서 배운 것 — Prompting Guidelines.

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이 단어 또는 문자 수를 정확하게 이해하지 못하기 때문에 발생합니다. 그 이유는 아키텍처의 주요 중요 구성 요소 중 하나에 의존합니다. 토크나이저.

토크 나이저

ChatGPT와 같은 LLM은 방대한 양의 언어 데이터에서 학습한 통계 패턴을 기반으로 텍스트를 생성하도록 설계되었습니다. 유창하고 일관된 텍스트를 생성하는 데 매우 효과적이지만 단어 수에 대한 정확한 제어가 부족합니다..

위의 예에서 매우 정확한 단어 수에 대한 지침을 제공했을 때 ChatGPT는 이러한 요구 사항을 충족하는 데 어려움을 겪고 있었습니다.. 대신 지정된 단어 수보다 실제로 짧은 텍스트를 생성했습니다.

다른 경우에는 더 긴 텍스트 또는 지나치게 장황하거나 세부 정보가 부족한 단순한 텍스트를 생성할 수 있습니다. 추가적으로, ChatGPT는 단어 수를 엄격하게 준수하는 것보다 일관성 및 관련성과 같은 다른 요소를 우선시할 수 있습니다.. 이로 인해 콘텐츠 및 일관성 측면에서 고품질의 텍스트가 생성될 수 있지만 단어 수 요구 사항과 정확하게 일치하지 않습니다.

토크나이저는 생성된 출력의 단어 수에 분명히 영향을 미치는 ChatGPT 아키텍처의 핵심 요소입니다..

직접 만든 gif.

토크나이저 아키텍처

토크나이저는 텍스트 생성 프로세스의 첫 번째 단계입니다. 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의 최종 출력은 다음과 같습니다.

에서 직접 만든 스크린샷 주피터 수첩 이 문서에서 사용된 예제와 함께.

요약

이 글에서, 맞춤형 애플리케이션의 요약 에이전트로 ChatGPT를 사용하는 모범 사례에 대해 논의했습니다..

우리는 응용 프로그램을 구축할 때 첫 번째 시도에서 응용 프로그램 요구 사항과 일치하는 완벽한 프롬프트를 제시하는 것이 매우 어렵다는 것을 확인했습니다. 좋은 테이크 홈 메시지는 프롬프트를 반복 프로세스로 생각하십시오. 정확히 원하는 결과를 얻을 때까지 프롬프트를 구체화하고 모델링합니다.

프롬프트를 반복적으로 수정하고 프로덕션에 배포하기 전에 여러 예제에 적용하면 출력은 여러 예에서 일관되며 이상값 응답을 포함합니다.. 이 예에서 누군가 리뷰 대신 임의의 텍스트를 제공하는 일이 발생할 수 있습니다. ChatGPT에 표준화된 출력을 제공하여 이러한 이상값 응답을 제외하도록 지시할 수 있습니다..

또한 특정 작업에 ChatGPT를 사용할 때 대상 작업에 LLM을 사용할 때의 장단점에 대해 알아보는 것도 좋은 방법입니다. 이것이 우리가 입력 텍스트에 대해 인간과 같은 일반적인 요약을 원할 때 추출 작업이 요약보다 더 효과적이라는 사실을 알게 된 방법입니다. 우리는 또한 요약의 초점을 제공하는 것이 게임 체인저 생성된 콘텐츠에 대해.

마지막으로 LLM은 텍스트 생성에 매우 효과적일 수 있지만 단어 수 또는 기타 특정 서식 요구 사항에 대한 정확한 지침을 따르기에 적합하지 않습니다.. 이러한 목표를 달성하려면 문장 계산을 고수하거나 수동 편집 또는 보다 전문적인 소프트웨어와 같은 다른 도구나 방법을 사용해야 할 수 있습니다.

이 기사는 원래에 게시되었습니다. 데이터 과학을 향해 저자의 허락을 받아 TOPBOTS에 다시 게시했습니다.

이 기사를 즐기십니까? 더 많은 AI 연구 업데이트에 가입하십시오.

이와 같은 더 많은 요약 기사를 발표하면 알려 드리겠습니다.

spot_img

최신 인텔리전스

spot_img