KR102672166B1 - 생성형 ai에 대한 프롬프트 정보 최적화 방법 - Google Patents

생성형 ai에 대한 프롬프트 정보 최적화 방법 Download PDF

Info

Publication number
KR102672166B1
KR102672166B1 KR1020230136289A KR20230136289A KR102672166B1 KR 102672166 B1 KR102672166 B1 KR 102672166B1 KR 1020230136289 A KR1020230136289 A KR 1020230136289A KR 20230136289 A KR20230136289 A KR 20230136289A KR 102672166 B1 KR102672166 B1 KR 102672166B1
Authority
KR
South Korea
Prior art keywords
prompt
information
split
prompt information
prompts
Prior art date
Application number
KR1020230136289A
Other languages
English (en)
Inventor
조근석
곽동익
Original Assignee
(주)아스트론시큐리티
Filing date
Publication date
Application filed by (주)아스트론시큐리티 filed Critical (주)아스트론시큐리티
Application granted granted Critical
Publication of KR102672166B1 publication Critical patent/KR102672166B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks

Abstract

본 발명의 생성형 AI에 대한 프롬프트 정보 최적화 방법으로서, 프롬프트 정보를 획득하는, 프롬프트 획득 단계, 미리 저장된 인공지능 모델 중 어느 하나를 선택받고, 선택된 인공지능 모델의 최대 입력 가능 토큰의 개수인 제한 조건을 파악하는, 제한 조건 파악 단계, 상기 프롬프트 정보에 해당하는 입력 토큰 수를 파악하는, 입력 토큰 수 파악 단계, 상기 입력 토큰 수와 상기 제한 조건을 비교 처리하여 상기 입력 토큰 수가 상기 제한 조건을 초과하는지를 파악하는, 비교 처리 단계, 상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 프롬프트 정보를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하는, 프롬프트 분할 단계, 복수의 상기 분할 프롬프트를 기반으로 분할 프롬프트 정보를 생성하는, 프롬프트 재생성 단계, 상기 분할 프롬프트 정보를 상기 선택된 인공지능 모델에 제공하고 상기 선택된 인공지능 모델로부터 답변 정보를 제공받는, 생성형 AI 이용 단계 및 복수의 상기 답변 정보를 기반으로 최종 답변 정보를 생성하는, 최종 답변 생성 단계를 포함하는 것을 특징으로 한다.

Description

생성형 AI에 대한 프롬프트 정보 최적화 방법{Methods for optimizing prompting information for generative AI}
본 발명은 생성형 AI에 대한 프롬프트 정보 최적화 방법에 관한 것으로, 보다 상세하게 설명하면 토큰 수의 제한이 있는 생성형 AI에 입력할 프롬프트를 최적화하여 생성형 AI 모델과의 상호작용 효율성을 높일 수 있도록 한, 신규하고 진보한 프롬프트 최적화 방법에 관한 것이다.
최근 도입된 생성형 인공지능, 줄여서 생성형 AI는 텍스트, 오디오, 이미지 등 기존 콘텐츠를 활용해 유사한 콘텐츠를 새롭게 만들어 내는 인공지능(AI) 기술을 의미하며, 제너레이티브(generative) AI라고도 불린다.
이러한 생성형 AI는 콘텐츠들의 패턴을 학습해 추론 결과로 새로운 콘텐츠를 만들어내는 것으로, 기존 AI가 데이터와 패턴을 학습해 대상을 이해했다면 생성형AI는 기존 데이터와 비교 학습을 통해 새로운 창작물을 탄생시키는 특징을 갖는다.
생성형 AI는 근래 들어 다양한 분야에 적용되어 이용되고 있는데, 일 예로서 이미지 분야에서는 특정 작가의 화풍을 모사한 그림으로 사진을 재생성하거나 가짜 인간 얼굴을 무제한 생성할 수 있다. 음성 분야에서는 특정 장르의 음악을 작곡하거나 특정 노래를 원하는 가수의 음색으로 재생성할 수 있다. 텍스트 분야에서는 특정 소재로 시를 짓거나 소설을 창작할 수 있다.
이러한 생성형 AI를 이용한 선행기술로서, 한국 공개특허 제 10-2022-0037095호에 "생성형 AI 기술을 활용한 디자인 RnD 서비스 제공 시스템"이 개시되어 있는데, 상기 선행기술은 특정 디자이너의 패션 제품 디자인을 딥러닝 알고리즘을 통해 학습하여 임의의 이미지를 입력할 경우 학습된 특정 디자이너의 스타일로 변형해주는 것을 특징으로 한다.
이러한 생성형 AI의 경우 상기 선행기술과 같이 이미지 입력을 수행하는 예시를 제외하고는 대부분 사용자의 프롬프트 입력, 즉 텍스트로 된 질문 입력에 의존하여 답변을 제공하는 것이 일반적이다.
그러나 이와 같은 프롬프트 입력에 있어 종래의 생성형 AI 모델들은 모델의 성능 보장 및 과도한 컴퓨팅 자원 사용을 방지하기 위해 한 번에 처리 가능한 토큰(token) 수에 제한이 있는 것이 일반적인데, 여기서 토큰이라 함은 텍스트의 조각을 의미하며, 이러한 토큰은 단어, 글자, 기호 등이 될 수 있으며 프롬프트가 생성형 AI 모델에 입력되면 여러 토큰으로 분해될 수 있다.
이때 일반 영문 텍스트의 경우 한 토큰에 약 4글자를 포함하고 있으며 언어의 종류에 따라 산정 방식이 달라지는 것을 특징으로 하며, https://platform.openai.com/tokenizer 에서 생성형 AI 모델 별 언어에 따른 토큰 산정 예시를 확인할 수 있다.
따라서 이와 같은 토큰 수의 제한이 있는 생성형 AI를 사용함에 있어 생성형 AI 모델과의 원활한 상호작용을 수행하기 위해, 프롬프트의 토큰 수를 제어하여야 하며, 나아가 답변에 효율적인 프롬프트를 생성할 필요성이 대두되고 있는 실정이다.
한국 공개특허 제 10-2022-0037095호
본 발명은 각 인공지능 모델별로 서로 다른 토큰 수 제한 조건에 부합하도록 사용자의 프롬프트 정보를 분할 및 최적화하여 인터랙션 효율성을 높이는 것에 그 목적이 있다.
본 발명의 생성형 AI에 대한 프롬프트 정보 최적화 방법으로서, 프롬프트 정보를 획득하는, 프롬프트 획득 단계, 미리 저장된 인공지능 모델 중 어느 하나를 선택받고, 선택된 인공지능 모델의 최대 입력 가능 토큰의 개수인 제한 조건을 파악하는, 제한 조건 파악 단계, 상기 프롬프트 정보에 해당하는 입력 토큰 수를 파악하는, 입력 토큰 수 파악 단계, 상기 입력 토큰 수와 상기 제한 조건을 비교 처리하여 상기 입력 토큰 수가 상기 제한 조건을 초과하는지를 파악하는, 비교 처리 단계, 상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 프롬프트 정보를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하는, 프롬프트 분할 단계, 복수의 상기 분할 프롬프트를 기반으로 분할 프롬프트 정보를 생성하는, 프롬프트 재생성 단계, 상기 분할 프롬프트 정보를 상기 선택된 인공지능 모델에 제공하고 상기 선택된 인공지능 모델로부터 답변 정보를 제공받는, 생성형 AI 이용 단계 및 복수의 상기 답변 정보를 기반으로 최종 답변 정보를 생성하는, 최종 답변 생성 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 획득 단계는, 공통 프롬프트 및 가변 프롬프트를 포함하는 프롬프트 정보를 획득하고, 상기 프롬프트 분할 단계는, 상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 가변 프롬프트를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하며, 상기 프롬프트 재생성 단계는, 상기 공통 프롬프트에 상기 분할 프롬프트를 각각 병합하여 복수의 분할 프롬프트 정보를 생성하는 것을 특징으로 할 수 있다
본 발명의 일 실시예에 있어서, 상기 프롬프트 분할 단계는, 상기 프롬프트 정보에 포함된 문단을 파악하고, 상기 프롬프트 정보를 상기 문단 별로 분할하여 복수의 분할 프롬프트를 생성하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 분할 단계는, 상기 프롬프트 정보에 포함된 용어를 파악하고, 파악된 용어를 기반으로 상기 프롬프트 정보를 복수의 상기 분할 프롬프트로 분할하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 분할 단계는, 연관 규칙 탐사 알고리즘을 기반으로 상기 파악된 용어를 연관 집합으로 분류하는, 용어 분류 단계 및 각각의 상기 분할 프롬프트 정보마다 상기 연관 집합 별 용어가 적어도 하나 포함되도록 상기 프롬프트 정보를 복수의 상기 분할 프롬프트로 분할하는, 분할 수행 단계를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 용어 분류 단계는, 워드넷(word-net) 및 코사인 유사도 중 적어도 어느 하나를 더 반영하여 상기 파악된 용어를 연관 집합으로 분류하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 분할 프롬프트 정보는, 제1,2 분할 프롬프트 정보를 포함하며, 상기 방법은, 상기 제1 분할 프롬프트 정보에 대한 답변 정보인 제1 답변 정보를 기반으로 상기 제2 분할 프롬프트 정보를 수정하는, 프롬프트 수정 단계를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 수정 단계는, 상기 제1 답변 정보를 요약한 요약 정보를 생성하는, 요약 단계 및 상기 요약 정보를 반영하도록 상기 제2 분할 프롬프트 정보를 수정하는, 요약 반영 수정 단계를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 수정 단계는, 상기 제1 답변 정보에 포함된 용어를 추출하는, 답변 용어 추출 단계 및 상기 추출된 용어가 포함된 문장을 제거하도록 상기 제2 분할 프롬프트 정보를 수정하는, 중복 제거 단계를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 수정 단계는, 상기 요약 정보에 포함된 용어를 추출하는, 요약 용어 추출 단계를 포함하고, 상기 요약 반영 수정 단계는, 상기 추출된 용어가 포함된 문장을 제거하도록 상기 제2 분할 프롬프트 정보를 수정하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 획득 단계는, HTML, CSS 및 JavaScript 중 적어도 어느 하나를 포함한 웹페이지의 URL을 획득하는, URL 획득 단계, 상기 URL에 대한 크롤링(crawling)을 수행함으로써 크롤링 데이터를 생성하는, 크롤링 단계, 상기 크롤링 데이터를 기반으로 상기 프롬프트 정보를 획득하는, 정보 획득 단계를 포함하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 획득 단계는, 공통 프롬프트를 획득하는, 공통 프롬프트 획득 단계, 상기 크롤링 데이터를 기반으로 가변 프롬프트를 획득하는, 가변 프롬프트 획득 단계를 포함하고, 상기 정보 획득 단계는, 상기 공통 프롬프트와 상기 가변 프롬프트를 기반으로 상기 프롬프트 정보를 획득하며, 상기 프롬프트 분할 단계는, 상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 가변 프롬프트를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하며, 상기 프롬프트 재생성 단계는, 상기 공통 프롬프트에 상기 분할 프롬프트를 각각 병합하여 복수의 분할 프롬프트 정보를 생성하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 획득 단계는, 상기 크롤링 데이터를 기 설정된 필터링 규칙으로 필터 처리하는, 필터링 단계를 포함하며, 상기 정보 획득 단계는, 상기 필터 처리된 크롤링 데이터를 기반으로 상기 프롬프트 정보를 획득하는 것을 특징으로 할 수 있다.
본 발명의 일 실시예에 있어서, 상기 프롬프트 획득 단계는, 상기 크롤링 데이터를 선택된 인공지능 모델에 제공하고, 상기 선택된 인공지능 모델로부터 기 설정된 분절 규칙에 따라 상기 크롤링 데이터를 분절한 복수의 분절 데이터를 획득하는, 데이터 분절 단계를 포함하며, 상기 정보 획득 단계는, 상기 복수의 분절 데이터를 기반으로 상기 프롬프트 정보를 획득하는 것을 특징으로 할 수 있다.
본 발명의 생성형 AI에 대한 프롬프트 정보 최적화 방법은 각 인공지능 모델별로 서로 다른 토큰 수 제한 조건에 부합하도록 사용자의 프롬프트 정보를 분할 및 최적화하여 인공지능 모델과의 인터랙션 효율성을 높일 수 있는 장점이 있다.
도 1은 본 발명의 네트워크 환경을 나타낸 개념도.
도 2는 본 발명의 생성형 AI의 예시를 나타낸 개념도.
도 3은 본 발명의 프롬프트 정보 최적화 방법의 기본 실시예의 순서도.
도 4는 본 발명의 공통 프롬프트 및 가변 프롬프트의 예시를 나타낸 개념도.
도 5는 본 발명의 프롬프트 분할 단계의 일 실시예를 나타낸 순서도.
도 6은 본 발명의 프롬프트 정보 최적화 방법의 추가 실시예의 순서도.
도 7은 본 발명의 프롬프트 수정 단계의 실시예를 나타낸 순서도.
도 8은 본 발명의 프롬프트 수정 단계의 다른 실시예를 나타낸 순서도.
도 9는 본 발명의 프롬프트 획득 단계의 실시예를 나타낸 순서도.
도 10은 본 발명의 필터 처리 대상 실시예를 나타낸 개념도.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, 설명되는 각 단계들은 특별한 인과관계에 의해 나열된 순서에 따라 수행되어야 하는 경우를 제외하고, 나열된 순서와 상관없이 수행될 수 있다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부된 도면들을 참조하여 본 발명에 대해 설명한다.
도 1은 본 발명의 네트워크 환경을 나타낸 개념도이며, 도 2는 본 발명의 생성형 AI의 예시를 나타낸 개념도이다.
도 1,2를 참조하여 설명하면, 본 발명의 생성형 AI에 대한 프롬프트 정보 최적화 시스템은 사용자 단말(10), 생성형 AI 서버(20) 및 메인 서버(30)를 포함할 수 있다.
사용자 단말(10)은 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있는 것으로, 사용자 단말(10)은 바람직하게 통신부(11), 입력부(12), 출력부(13), 메모리(14) 및 프로세서(15)를 포함할 수 있다.
프로세서(15)는 입력부(12), 출력부(13), 메모리(14) 및 통신부(11)의 전반적인 동작을 제어함과 동시에 어플리케이션 또는 인터페이스를 실행할 수 있다.
입력부(12)는 사용자 단말(10)을 소지한 사용자의 조작 및 입력 행위에 의해 다양한 정보를 입력받을 수 있다. 이와 같은 입력부(12)는 터치스크린 모듈, 키보드, 마우스, 버튼, 카메라, 스타일러스 및 마이크로폰 등이 될 수 있다.
사용자 단말(10)은 입력부(12)를 통해 사용자의 인터랙션을 입력받을 수 있다. 인터랙션이란 사용자가 입력부(12)를 조작하여 사용자의 선택 또는 의도 등이 반영된 정보를 사용자 단말(10)에 입력하는 것을 의미한다. 예를 들어, 인터랙션은 터치스크린의 터치, 마우스의 클릭, 키보드의 타이핑, 마이크로폰의 소리입력, 카메라의 이미지 촬영, 동작센서의 동작 인식 등이 될 수 있다.
출력부(13)는 다양한 정보를 출력할 수 있다. 출력부(13)는 디스플레이 장치, 스피커, 진동발생장치 및 촉각발생장치 등이 될 수 있다. 경우에 따라서, 출력부(13)는 다른 기기 또는 단말로부터 유선 또는 무선통신(예를 들어, 블루투스 등의 근거리무선통신)으로 연결되어 신호를 전달받아 출력하는 장치(예를 들어, 블루투스 이어폰)일 수 있다.
메모리(14)는 저장매체로서 기능을 수행하며, 사용자 단말(10)에서 구동되는 다수의 응용 프로그램, 나아가 생성형 AI 모델을 위한 데이터들, 명령어들 및 프롬프트 정보들을 저장할 수 있다.
이러한 메모리(14)는 하드웨어적으로, ROM, RAM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 형태로 구비되거나, 웹스토리지(webstorage) 형태로 구비될 수 있다.
통신부(11)는 네트워크를 통해 생성형 AI 서버(20), 메인 서버(30) 및 다른 장치와 유/무선 방식으로 통신할 수 있다.
생성형 AI 서버(20)는 생성형 인공지능(AI) 엔진을 의미하는 것으로, 종래에 제공되는 다양한 생성형 AI 모델을 의미할 수 있다.
생성형 AI 서버(20)은 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 또한 생성형 AI 서버(20)은 시스템을 구축하는 다른 서버 및 단말들과 네트워크를 통해 통신하여 정보를 송수신할 수 있다.
메인 서버(30)는 사용자 단말(10)에서 입력된 프롬프트 정보를 분할하고 재생성, 수정하여 프롬프트 정보를 최적화하고, 생성형 AI 서버(20)에 최적화된 프롬프트 정보를 제공하고 그에 따른 답변을 제공받아 사용자 단말(10)에 제공하는 기능을 수행한다.
이러한 메인 서버(30)는 명령, 코드, 파일, 콘텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 이와 같은 메인 서버(30)는 시스템을 구축하는 다른 서버 및 단말들과 네트워크를 통해 통신하여 정보를 송수신할 수 있다. 이를 위해 메인 서버(30)는 바람직하게 프로세서(31), 메모리(32) 및 통신부(33)를 포함할 수 있으며, 언급하지 않은 추가적인 구성을 더 포함하는 것도 가능하다.
프로세서(31)는 메모리(32) 및 통신부(33)의 전반적인 동작을 제어하는 기능을 수행할 수 있다.
메모리(32)는 저장매체로서 기능을 수행하며, 메인 서버(30)에서 구동되는 다수의 응용 프로그램의 동작을 위한 데이터들 및 명령어들을 저장할 수 있다.
이러한 메모리(32)는 하드웨어적으로, ROM, RAM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 형태로 구비되거나, 웹스토리지(webstorage) 형태로 구비될 수 있다.
통신부(33)는 네트워크를 통해 사용자 단말(10), 생성형 AI 서버(20) 및 다른 장치와 유/무선 방식으로 통신할 수 있다.
도 3은 본 발명의 프롬프트 정보 최적화 방법의 기본 실시예의 순서도이며, 도 4는 본 발명의 공통 프롬프트 및 가변 프롬프트의 예시를 나타낸 개념도이다.
도 3,4를 참조하여 설명하면, 본 발명의 생성형 AI에 대한 프롬프트 정보 최적화 방법은, 프롬프트 획득 단계(S10), 제한 조건 파악 단계(S20), 입력 토큰 수 파악 단계(S30), 비교 처리 단계(S40), 프롬프트 분할 단계(S50), 프롬프트 재생성 단계(S60), 생성형 AI 이용 단계(S70) 및 최종 답변 생성 단계(S80)를 포함할 수 있다.
프롬프트 획득 단계(S10)에서 메인 서버(30)는 사용자 단말(10)로부터 프롬프트 정보를 획득한다. 이때 프롬프트 정보는 기본적으로 텍스트의 형태로 입력될 수 있으며, 입력되는 프롬프트 정보의 언어나 토큰 수에는 제한을 두지 않는다.
이때 보다 바람직하게 프롬프트 정보는 공통 프롬프트 및 가변 프롬프트를 포함할 수 있는데, 여기서 공통 프롬프트는 프롬프트 정보의 분할에 따라 생성되는 분할 프롬프트 정보에 공통적으로 포함되어야 하는 프롬프트이며, 가변 프롬프트는 모든 분할 프롬프트 정보에 공통적으로 포함되지는 않아도 되는, 다시 말해 각각의 분할 프롬프트 정보마다 달라지는 내용을 포함하는 프롬프트이다.
여기서 공통 프롬프트 및 가변 프롬프트의 구분은 사용자 단말(10)을 통해 수동으로 이루어지거나 메인 서버(30)를 통해 자동으로 이루어질 수 있으므로 공통 프롬프트와 가변 프롬프트를 구분하는 방식에는 별도의 제한을 두지 않는다.
그러나 바람직하게 입력된 프롬프트 정보에서 쉼표에 따라 구분되는, 다시 말해 프롬프트 정보 중 병렬적으로 배치된 일부 내용이 가변 프롬프트가 될 수 있으며, 그 외의 내용은 공통 프롬프트가 될 수 있다.
제한 조건 파악 단계(S20)에서 메인 서버(30)는 사용자 단말(10)로부터 미리 저장된 인공지능 모델(생성형 AI 모델) 중 어느 하나를 선택받고, 선택된 인공지능 모델의 최대 입력 가능 토큰의 개수인 제한 조건을 파악하는 기능을 수행한다.
이때 인공지능 모델마다 최대 입력 가능 토큰의 개수, 즉 제한 조건이 각각 다르므로, 사용자 단말(10)에서 선택된 인공지능 모델 별로 제한 조건을 파악하게 된다.
입력 토큰 수 파악 단계(S30)에서 메인 서버(30)는 상기 프롬프트 정보에 포함된 토큰의 개수인 입력 토큰 수를 파악한다. 상술한 설명에서 토큰은 텍스트의 조각이라 하였으며, 바람직하게 토큰은 적어도 하나의 글자 및 기호를 포함할 수 있는 것으로 텍스트 형태로 입력된 프롬프트는 토큰으로 분해될 수 있다고 하였다.
이때 텍스트를 토큰으로 분할하는 방식, 나아가 토큰에 포함되는 글자 및 기호의 수는 인공지능 모델에 따라 다를 수 있다고 하였으므로, 상기 선택된 인공지능 모델에 따라 미리 설정된 분할 규칙으로 상기 프롬프트 정보에 포함된 텍스트를 토큰으로 분할하여, 상기 프롬프트 정보에 포함된 토큰의 개수인 입력 토큰 수를 파악하게 된다.
즉 인공지능 모델 별로 텍스트를 토큰으로 분할하는 분할 규칙이 다르므로, 인공지능 모델 별로 미리 설정된 분할 규칙에 따라 프롬프트 정보에 포함된 텍스트를 토큰으로 분할하고, 분할된 토큰의 개수인 입력 토큰 수를 파악하게 된다.
비교 처리 단계(S40)에서 메인 서버(30)는 상기 입력 토큰 수와 상기 제한 조건을 비교 처리하여 상기 입력 토큰 수가 상기 제한 조건을 초과하는지를 파악한다. 일 예로 선택된 인공지능 모델의 제한 조건이 토큰 3000개인 경우, 프롬프트 정보의 입력 토큰 수가 3000을 초과하는 지의 여부를 파악할 수 있다.
프롬프트 분할 단계(S50)에서 메인 서버(30)는 상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 프롬프트 정보를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할한다.
여기서 분할 프롬프트로 프롬프트 정보를 분할하는 기준에는 제한을 두지 않으므로, 일 예로서 입력 토큰 수가 제한 조건을 만족하는 선에서 가장 큰 값을 갖도록 프롬프트 정보를 토큰 수에 따라 분할할 수 있다. 만약 인공지능 모델의 제한 조건이 토큰 3000개이고 프롬프트 정보에 토큰 4000개가 포함되는 경우, 토큰 3000개 / 토큰 1000개를 포함하는 2개의 분할 프롬프트가 생성될 수 있다.
다른 예로서 생성된 분할 프롬프트가 동일한 입력 토큰 수를 갖도록 프롬프트 정보를 분할하는 것도 가능하다. 만약 인공지능 모델의 제한 조건이 토큰 3000개이고 프롬프트 정보에 토큰 4000개가 포함되는 경우, 토큰 2000개 / 토큰 2000개를 포함하는 2개의 분할 프롬프트가 생성될 수 있다.
또 다른 실시예로서 상기 프롬프트 분할 단계(S50)에서 메인 서버(30)는, 상기 프롬프트 정보에 포함된 문단을 파악하고, 상기 프롬프트 정보를 상기 문단 별로 분할하여 복수의 분할 프롬프트를 생성하는 것이 가능하다. 즉 프롬프트 정보가 복수 개의 문단을 포함할 수 있으므로, 입력된 프롬프트 정보를 문단 별로 분할하여 복수의 분할 프롬프트를 생성할 수 있다.
추가 실시예로서 상기 프롬프트 분할 단계(S50)에서 메인 서버(30)는, 상기 프롬프트 정보에 포함된 용어를 파악하고, 파악된 용어를 기반으로 상기 프롬프트 정보를 복수의 상기 분할 프롬프트로 분할할 수 있다.
여기서 용어라 함은 텍스트, 즉 프롬프트 정보 내에 포함된 의미를 가진 말인 명사 및 형용사를 의미하는 것이라 할 수 있으며, 추가적으로 한국어에서는 지정사를 포함하는 용언(用言)이 곧 용어일 수 있으나 모든 언어를 통틀어 지정사가 포함될 수 있지 않은 점에 고려하여, 기본적으로 사물의 동작 ·성질 ·상태 ·환언(換言)의 뜻을 나타내면서 활용하며 서술어가 될 수 있는 명사 및 형용사, 추가적으로 지정사를 용어로 나타내기로 한다.
따라서 파악되는 용어의 수는 토큰의 수와는 다를 수 있는 바, 용어를 파악하고, 파악된 용어를 기반으로 프롬프트 정보를 복수의 분할 프롬프트로 분할하는 것이 가능하다. 일 예시로 각각의 분할 프롬프트가 동일한 수의 용어를 갖도록 프롬프트 정보가 분할 프롬프트로 분할될 수 있다.
이러한 용어를 기반으로 프롬프트 정보를 복수의 분할 프롬프트로 분할하는 보다 세부적인 추가 실시예에 대해서는 후술하기로 한다.
이 외에도 프롬프트 정보를 분할하여 분할 프롬프트를 생성하는 기준에는 어떠한 제한도 두지 않으므로, 다양한 방식으로 분할 프롬프트가 생성될 수 있다.
보다 바람직한 실시예로서, 프롬프트 분할 단계(S50)에서 메인 서버(30)는 상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 가변 프롬프트를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할할 수 있다. 다시 말해 프롬프트 정보에 포함된 가변 프롬프트만을 분할 프롬프트로 분할하는 것이라 할 수 있다.
이때 가변 프롬프트를 분할 프롬프트로 분할하는 방식에 있어서는 상술한 실시예를 따를 수 있으며, 가장 기본적인 실시예로서 가변 프롬프트에 포함된 쉼표(,)를 인식하여, 쉼표를 기준으로 분할을 수행하여 가변 프롬프트를 복수의 분할 프롬프트로 분할할 수 있다. 여기서 가변 프롬프트의 분할에 따라 생성되는 분할 프롬프트의 개수에는 제한을 두지 않는다.
프롬프트 재생성 단계(S60)에서 메인 서버(30)는 복수의 상기 분할 프롬프트를 기반으로 분할 프롬프트 정보를 생성할 수 있다. 생성된 분할 프롬프트는 상술한 예시에서와 같이 다양한 기준으로 분할될 수 있으므로, 분할 프롬프트는 완전한 문장 형태를 갖지 못할 수 있다.
따라서 분할 프롬프트에 포함된 텍스트의 내용을 메인 서버(30)를 통해 일부자동 수정하거나 일부 어미나 조사를 자동 수정하는 방식으로 완전한 문장 형태의 분할 프롬프트 정보를 생성할 수 있다.
혹은 분할 프롬프트를 사용자 단말(10)에 제공한 뒤, 사용자 단말(10)에서 제공된 분할 프롬프트를 수정하여 분할 프롬프트 정보를 입력하도록 하고, 입력된 분할 프롬프트 정보를 획득하는 방식으로 분할 프롬프트 정보를 생성하는 것도 가능하다. 이 외에도 분할 프롬프트를 기반으로 생성되는 것이라면 분할 프롬프트 정보를 생성하는 방식에는 어떠한 제한도 두지 않는다.
바람직한 실시예로서 상기 프롬프트 재생성 단계(S60)에서 메인 서버(30)는 상기 공통 프롬프트에 상기 분할 프롬프트를 각각 병합하여 복수의 분할 프롬프트 정보를 생성할 수 있다.
상술한 설명에서 프롬프트 정보는 공통 프롬프트 및 가변 프롬프트를 포함할 수 있다 하였고, 프롬프트 분할 단계(S50)의 바람직한 실시예에서 가변 프롬프트가 복수의 분할 프롬프트로 분할될 수 있다고 하였다.
따라서 프롬프트 재생성 단계(S60)에서 메인 서버(30)는 분할되지 않고 모든 분할 프롬프트에 공통으로 포함되어야 하는 프롬프트인 공통 프롬프트에 분할된 분할 프롬프트를 병합하여 복수개의 분할 프롬프트 정보를 생성할 수 있다.
즉 각각의 분할 프롬프트마다 공통 프롬프트가 병합되는 것이며, 생성되는 분할 프롬프트 정보의 개수는 분할 프롬프트의 개수와 바람직하게는 동일할 수 있다.
나아가 이때 생성된 분할 프롬프트 정보는 각각의 구분을 위해 제1, 제2, 제3 분할 프롬프트 정보 등으로 표현될 수 있다. 따라서 생성된 분할 프롬프트의 개수가 2개인 경우 제1,2 분할 프롬프트 정보가 생성될 수 있고, 생성된 분할 프롬프트의 개수가 3개인 경우 제1,2,3 분할 프롬프트 정보가 생성될 수 있다.
생성형 AI 이용 단계(S70)에서 메인 서버(30)는 상기 분할 프롬프트 정보를 상기 선택된 인공지능 모델의 생성형 AI 서버(20)에 제공하고 상기 선택된 인공지능 모델의 생성형 AI 서버(20)로부터 상기 분할 프롬프트 정보에 대한 답변 정보를 제공받는다.
이때 생성된 분할 프롬프트 정보의 개수만큼의 답변 정보를 제공받게 되며, 선택된 인공지능 모델에 각각의 분할 프롬프트 정보를 제공함에 따라 답변 정보를 각각 제공받을 수 있다.
상술한 예시에서 제1,2 분할 프롬프트 정보가 생성된 경우 제1,2 분할 프롬프트 정보와 각각 대응되는 제1,2 답변정보가 생성될 수 있고, 제1,2,3 분할 프롬프트 정보가 생성된 경우 제1,2,3 분할 프롬프트 정보와 각각 대응되는 제1,2,3 답변정보가 생성될 수 있다.
최종 답변 생성 단계(S80)에서 메인 서버(30)는 복수의 상기 답변 정보를 기반으로 최종 답변 정보를 생성하고 이를 사용자 단말(10)에 제공할 수 있다. 일 예시로 메인 서버(30)는 복수의 답변 정보를 병합하는 방식으로 최종 답변 정보를 생성하고 이를 사용자 단말(10)에 제공할 수 있다. 예를 들어 제1,2 답변 정보, 또는 제1,2,3 답변 정보가 병합되어 최종 답변 정보가 생성될 수 있다. 그 외에도 생성된 답변 정보의 수가 더 많은 경우, 제1,2,3,4??답변 정보가 병합되어 최종 답변 정보가 생성될 수 있다.
혹은 복수의 답변 정보를 병합한 상태에서 중복 문장이 있을 경우 중복 문장을 제거하는 방식으로 최종 답변 정보를 생성할 수 있다.
따라서 최종 답변 정보는 복수의 답변 정보의 내용을 포함하는 것이라면 그 생성 방식에는 제한을 두지 않는다.
요약하자면, 이러한 본 발명의 프롬프트 정보 최적화 방법은 각 인공지능 모델별로 서로 다른 토큰 수 제한 조건에 부합하도록 사용자의 프롬프트 정보를 분할 및 최적화하여 인공지능 모델과의 인터랙션 효율성을 높이는 효과가 있다.
도 5는 본 발명의 프롬프트 분할 단계의 일 실시예를 나타낸 순서도이다.
도 5를 참조하여 설명하면, 상기 프롬프트 분할 단계(S50)에서는 프롬프트 정보에 포함된 용어를 파악하고, 파악된 용어를 기반으로 프롬프트 정보를 복수의 분할 프롬프트로 분할할 수 있다 하였다.
이때 보다 바람직하게는 프롬프트 정보 중에서도 가변 프롬프트에 포함된 용어를 파악하고, 파악된 용어를 기반으로 가변 프롬프트를 복수의 분할 프롬프트로 분할하는 것도 가능하다. 설명의 편의성을 위해 프롬프트 정보의 분할 예시만을 설명하도록 하나, 후술할 모든 분할 과정은 프롬프트 정보에 포함된 가변 프롬프트만을 분할하는 구성에서도 동일하게 적용될 수 있음을 밝혀두도록 한다.
이와 같은 용어 기반 분할을 위해 프롬프트 분할 단계(S50)는 용어 분류 단계(S51) 및 분할 수행 단계(S52)를 포함할 수 있다.
용어 분류 단계(S51)에서 메인 서버(30)는 연관 규칙 탐사 알고리즘을 기반으로 상기 파악된 용어를 적어도 하나의 연관 집합으로 분류할 수 있다. 연관 규칙 탐사 알고리즘은 데이터마이닝 기법 중의 하나로 서로 연관성이 강한 데이터들을 탐색 대상으로 하여 데이터 간의 연관성에 따라 분류하는 것이다.
따라서 파악된 용어를 연관 규칙 탐사 알고리즘을 통해 연관 집합으로 분류하는 것은 다시 말해 서로 연관성이 높은 용어가 같은 연관 집합으로 분류됨을 의미할 수 있다. 여기서 연관성은 의미적 연관성, 다시 말해 의미적 유사도일 수 있다.
여기서 연관 규칙 탐사 알고리즘을 통해 파악된 용어 사이의 연관성을 기반으로 파악된 용어를 적어도 하나의 연관 집합으로 분류하는 방식에 대해서는 제한을 두지 않으므로, 일 예시로 워드넷(word-net)을 이용하여 파악된 용어를 적어도 하나의 연관 집합으로 분류할 수 있다.
또 다른 연관 집합 분류 방식에는 코사인 유사도가 있을 수 있는데, 이때 코사인 유사도는 각각의 용어 별로 특징 벡터를 구성하고, 내적공간에서 두 특징 벡터간 각도의 코사인값을 파악하는 방식으로 특징 벡터 사이의 유사도를 파악하는 방식으로 용어의 유사도(연관도)를 파악하는 것이다. 이는 종래의 코사인 유사도 산출 방식을 참조하면 되므로 보다 상세한 설명은 생략하도록 한다.
이와 같은 연관 규칙 탐사 알고리즘을 통한 용어 분류에 따라 파악된 용어가 적어도 하나의 연관 집합으로 분류될 수 있다.
분할 수행 단계(S52)에서 메인 서버(30)는 각각의 상기 분할 프롬프트 정보마다 상기 연관 집합 별 용어가 적어도 하나 포함되도록 상기 프롬프트 정보를 복수의 상기 분할 프롬프트로 분할할 수 있다.
다시 말해 연관 집합이 총 3개가 생성된 경우, 각각의 분할 프롬프트는 3개의 연관 집합에 포함된 용어를 적어도 하나 이상씩 포함하여 최소 3개의 용어를 포함해야 한다. 즉 모든 분할 프롬프트는 복수의 용어를 포함함은 물론이거니와, 해당 용어는 생성된 모든 연관 집합에 적어도 하나는 대응될 수 있는 것이다.
따라서 모든 분할 프롬프트는 모든 연관 집합과 대응될 수 있는 용어를 적어도 하나씩은 포함하고 있음을 기본으로 하여, 보다 의미적 밀도가 균일한 분할 프롬프트를 생성할 수 있다.
도 6은 본 발명의 프롬프트 정보 최적화 방법의 추가 실시예의 순서도이다.
도 6을 참조하여 설명하면, 본 발명의 프롬프트 정보 최적화 방법은, 프롬프트 수정 단계(S90)을 더 포함할 수 있다.
프롬프트 수정 단계(S90)에서 메인 서버(30)는, 상기 제1 분할 프롬프트 정보에 대한 답변 정보인 제1 답변 정보를 기반으로 상기 제2 분할 프롬프트 정보를 수정할 수 있다.
다시 말해 각각의 분할 프롬프트 정보를 인공지능 모델에 입력하고 얻은 답변 정보가 다른 분할 프롬프트 정보에 연관을 미칠 수 있음을 의미한다.
일 예시로 1,2,3 분할 프롬프트 정보가 생성되었다 할 때, 인공지능 모델을 사용함에 있어 제1,2,3 분할 프롬프트 정보는 순차적으로 입력되며, 이에 따라 제1,2,3 답변 정보도 순차적으로 생성된다.
즉 메인 서버(30)에 의한 제1 분할 프롬프트 정보의 입력, 생성형 AI 서버(20)에 의한 제1 답변 정보의 생성 및 제공, 메인 서버(30)에 의한 제2 분할 프롬프트 정보의 입력, 생성형 AI 서버(20)에 의한 제2 답변 정보의 생성 및 제공, 메인 서버(30)에 의한 제3 분할 프롬프트 정보의 입력, 생성형 AI 서버(20)에 의한 제3 답변 정보의 생성 및 제공이 순차적으로 일어나게 된다.
이때 제1 답변 정보가 제2 분할 프롬프트 정보의 입력보다 먼저 이루어지므로, 제1 답변 정보를 기반으로 제2 분할 프롬프트 정보를 수정할 수 있는 것이다. 여기서 제1 답변 정보를 기반으로 제2 분할 프롬프트 정보를 수정하는 방식에는 제한을 두지 않는다.
일 예시로 제1 답변 정보 및 제2 분할 프롬프트 정보를 사용자 단말(10)에 제공하고 사용자 단말(10)에서 제1 답변 정보를 기반으로 제2 분할 프롬프트 정보를 수정한 뒤 메인 서버(30)에 입력하는 방식으로 제2 분할 프롬프트 정보를 수정하는 것이 가능하다.
도 7은 본 발명의 프롬프트 수정 단계의 일 실시예를 나타낸 순서도이다.
도 7을 참조하여 설명하면, 일 실시예로서 프롬프트 수정 단계(S90)는 요약 단계(S91) 및 요약 반영 수정 단계(S92)를 포함할 수 있다.
요약 단계(S91)에서 상기 제1 답변 정보를 요약한 요약 정보를 생성할 수 있다. 여기서 제1 답변 정보를 요약하는 요약 정보의 생성은 메인 서버(30) 또는 생성형 AI 서버(20)를 통해 이루어질 수 있으나, 바람직한 실시예에서 생성형 AI 서버(20)의 선택된 인공지능 모델을 통해 제1 답변 정보가 요약되어 요약 정보가 생성될 수 있다.
요약 반영 수정 단계(S92)에서, 상기 요약 정보를 반영하도록 상기 제2 분할 프롬프트 정보를 수정할 수 있다. 여기서 제2 분할 프롬프트 정보의 수정은 메인 서버(30) 또는 사용자 단말(10)에 의해 이루어질 수 있으며, 혹은 생성형 AI 서버(20)의 선택된 인공지능 모델에 요약 정보 및 제2 분할 프롬프트 정보를 입력하고, 생성형 AI 서버(20)에서 요약 정보를 반영하도록 제2 분할 프롬프트 정보를 수정하도록 하는 것도 가능하다.
따라서 요약 정보를 반영하여 제2 분할 프롬프트 정보를 수정하는 방식에 대해서는 어떠한 제한도 두지 않는다.
추가 실시예로서 프롬프트 수정 단계(S90)는 요약 단계(S91), 요약 반영 수정 단계(S92)에 더 나아가 요약 용어 추출 단계(S93)를 포함할 수 있다.
요약 용어 추출 단계(S93)에서 메인 서버(30)는, 상기 요약 정보에 포함된 용어를 추출할 수 있다. 여기서 용어는 상술한 설명에서의 용어와 동일한 것으로, 명사, 형용사를 기본적으로 포함함과 동시에 추가적으로 지정사를 포함하는 것일 수 있다.
이와 같이 요약 정보로부터 용어가 추출되는 경우 상기 요약 반영 수정 단계(S92)에서 메인 서버(30), 사용자 단말(10), 생성형 AI 서버(20) 중 어느 하나는 상기 추출된 용어가 포함된 문장을 제거하도록 상기 제2 분할 프롬프트 정보를 수정하는 것이 가능하다.
즉 제1 답변 정보에 포함된 용어를 포함하는 문장을 제2 분할 프롬프트 정보에서 제거하도록 하여, 특정 용어의 중복 사용으로 인한 제1,2 답변 정보 사이의 내용 중복을 회피할 수 있다.
특히 여기서 내용 중복 회피는 요약 정보에 포함된 용어에 대해서만 이루어지므로, 제1 답변 정보 중에서도 핵심 내용인 요약 정보에 포함된 용어를 포함하지 않는 용어로만 새롭게 제2 분할 프롬프트 정보를 생성하여 내용 중복 회피 효과를 높일 수 있다.
도 8은 본 발명의 프롬프트 수정 단계의 다른 실시예를 나타낸 순서도이다.
도 8을 참조하여 설명하면, 다른 실시예로서 프롬프트 수정 단계(S90)는 답변 용어 추출 단계(S94) 및 중복 제거 단계(S95)를 포함할 수 있다.
답변 용어 추출 단계(S94)에서 메인 서버(30)는, 상기 제1 답변 정보에 포함된 용어를 추출할 수 있다. 여기서 용어는 상술한 설명에서의 용어와 동일한 것으로, 명사, 형용사를 기본적으로 포함함과 동시에 추가적으로 지정사를 포함하는 것일 수 있다.
이와 같이 제1 답변 정보로부터 용어가 추출되는 경우 상기 중복 제거 단계 (S95)에서 메인 서버(30), 사용자 단말(10), 생성형 AI 서버(20) 중 어느 하나는 상기 추출된 용어가 포함된 문장을 제거하도록 상기 제2 분할 프롬프트 정보를 수정하는 것이 가능하다.
이는 상술한 요약 반영 수정 단계(S92)에서 요약 정보에 포함된 용어가 포함된 문장을 제거하도록 제2 분할 프롬프트 정보를 수정하는 것에서 더 나아가 제1 답변 정보에 포함된 용어가 포함된 모든 문장을 제거하는 것으로서, 중복 제거 효과를 보다 강화하는 것이라 할 수 있다.
도 9는 본 발명의 프롬프트 획득 단계의 실시예를 나타낸 순서도이며, 도 10은 본 발명의 필터 처리 대상 실시예를 나타낸 개념도이다.
도 9,10을 참조하여 설명하면, 상기 프롬프트 획득 단계(S10)에서 메인 서버(30)는 사용자 단말(10)로부터 프롬프트 정보를 직접 입력받아 획득할 수도 있으나,웹페이지를 크롤링(crawling)하여 프롬프트 정보를 획득하는 것도 가능하다.
이에 대한 실시예로서, 상기 프롬프트 획득 단계(S10)는 URL 획득 단계(S11), 크롤링 단계(S12) 및 정보 획득 단계(S13)를 포함할 수 있다.
URL 획득 단계(S11)에서 메인 서버(30)는, 사용자 단말(10)로부터 HTML, CSS 및 JavaScript 중 적어도 어느 하나를 포함한 웹페이지의 URL을 획득할 수 있다.
일반적으로 웹페이지는 HTML, CSS 및 JavaScript 중 적어도 어느 하나의 언어로 구현되어 있으므로 웹페이지는 로부터 HTML, CSS 및 JavaScript 중 적어도 어느 하나를 포함하며, 이러한 웹페이지의 접속을 위해서는 URL 입력이 필수적이므로 사용자 단말(10)로부터 웹페이지의 URL을 입력받아 획득하게 된다.
여기서 입력되는 웹페이지는 프롬프트 정보에 포함되어야 하는 내용을 포함하는 웹페이지로서, URL과 연결된 웹페이지에 포함된 정보를 기반으로 프롬프트 정보가 생성된다고 할 수 있다.
크롤링 단계(S12)에서 메인 서버(30)는 상기 URL에 대한 크롤링(crawling)을 수행함으로써 크롤링 데이터를 생성할 수 있다.
여기서 크롤링이라 함은 인터넷 주소(URL)에 접근하여 관련된 URL을 찾아내고, 찾아진 URL들 속에서 또 다른 하이퍼링크(hyperlink)들을 찾아 분류하고 저장하는 작업을 반복함으로써 여러 웹페이지를 돌아다니며 어떤 데이터가 어디에 있는지 색인(index)을 만들고 이를 데이터베이스(DB)에 저장하는 종래의 크롤링을 의미한다.
나아가 사전적인 의미의 크롤링과 유사한 것이 데이터 스크래핑(data scrapping)인데, 이는 대상 웹사이트와 같은 데이터 소스에서 데이터 자체를 추출하여 특정 형태로 저장하는 것이며 본 발명에서의 크롤링은 상술한 사전적 의미의 크롤링 및 데이터 스크래핑을 모두 통틀어 일컫는 개념임을 설명해두도록 한다.
따라서 이와 같이 URL에 대한 크롤링을 통해 웹페이지에 포함된 데이터에 대한 분류 및 저장, 그리고 웹페이지에 포함된 데이터 자체에 대한 추출 및 저장이 수행될 수 있다.
따라서 이와 같이 크롤링을 통해 획득되는 데이터가 크롤링 데이터라 할 수 있으며, 이는 메인 서버(30)에 별도로 구비될 수 있는 데이터베이스(미도시)에 저장될 수 있다.
정보 획득 단계(S13)에서 메인 서버(30)는 크롤링 단계(S12)에서 획득된 상기 크롤링 데이터를 기반으로 상기 프롬프트 정보를 획득할 수 있다.
여기서 크롤링 데이터가 그대로 프롬프트 정보로 획득될 수도 있으며, 혹은 크롤링 데이터의 일부만을 편집하여 프롬프트 정보로 획득하는 것도 가능하다. 이때 크롤링 데이터의 편집은 사용자 단말(10), 생성형 AI 서버(12) 및 메인 서버(30) 중 적어도 어느 하나에 이루어질 수 있으며 크롤링 데이터의 편집 방법, 그리고 이를 이용한 프롬프트 정보의 생성 방법에 대해서는 어떠한 제한도 두지 않는다.
따라서 이러한 방식을 통한 프롬프트 정보 획득에 따라 웹사이트에서 크롤링된 데이터를 기반으로 프롬프트 정보를 획득할 수 있어, 별도의 사용자 단말(10)을 통한 프롬프트 정보 입력이 요구되지 않고 웹페이지의 크롤링 데이터를 기반으로 프롬프트 정보가 자동 생성 및 획득될 수 있다.
나아가 상술한 설명에서 프롬프트 정보는 공통 프롬프트와 가변 프롬프트를 포함할 수 있다 하였는데, 이러한 공통 프롬프트와 가변 프롬프트를 포함하는 프롬프트 정보를 획득하기 위해 상기 프롬프트 획득 단계(S10)은 공통 프롬프트 획득 단계(S14) 및 가변 프롬프트 획득 단계(S15)를 포함할 수 있다.
공통 프롬프트 획득 단계(S14)에서 메인 서버(30)는 바람직하게 사용자 단말(10)로부터 공통 프롬프트를 획득할 수 있다. 여기서 공통 프롬프트는 상술한 설명에서와 같이 모든 분할 프롬프트 정보에 공통으로 들어가야 하는, 일종의 템플릿과 같은 프롬프트 정보일 수 있다.
가변 프롬프트 획득 단계(S15)에서 메인 서버(30)는 상기 가변 프롬프트를 획득할 수 있다. 여기서 크롤링 데이터가 그대로 가변 프롬프트로 획득될 수도 있으며, 혹은 크롤링 데이터의 일부만이 편집되어 가변 프롬프트로써 획득되는 것도 가능하다.
이때 크롤링 데이터의 편집은 사용자 단말(10), 생성형 AI 서버(12) 및 메인 서버(30) 중 적어도 어느 하나에 이루어질 수 있으며 크롤링 데이터의 편집 방법, 그리고 이를 이용한 가변 프롬프트의 생성 및 획득 방법에 대해서는 어떠한 제한도 두지 않는다.
이와 같이 공통 프롬프트 획득 단계(S14)와 가변 프롬프트 획득 단계(S15)를 통해 공통 프롬프트 및 가변 프롬프트가 획득되면, 상기 정보 획득 단계(S13)에서 메인 서버(30)는, 상기 공통 프롬프트와 상기 가변 프롬프트를 기반으로 상기 프롬프트 정보를 획득할 수 있다.
이때 공통 프롬프트와 가변 프롬프트가 병합되어 프롬프트 정보로서 획득될 수 있으며, 혹은 프롬프트 정보를 공통 프롬프트와 가변 프롬프트로 분류하여 별도로 저장한 상태에서 상술한 프롬프트 분할 단계(S50)를 수행하여 가변 프롬프트에 대한 분할을 수행할 수도 있음은 물론이다.
나아가 다른 실시예로서 상기 프롬프트 획득 단계(S10)는, 필터링 단계(S16)를 더 포함할 수 있다.
필터링 단계(S16)에서 메인 서버(30)는 상기 크롤링 데이터를 기 설정된 필터링 규칙으로 필터 처리할 수 있다.
여기서 필터 처리라 함은 크롤링 데이터에서 필터링 대상 데이터를 제외한 모든 데이터를 삭제하는 것을 의미하는데, 여기서 도 10에서 나타난 바와 같이 웹페이지에 포함된 데이터 중 일부만이 필터링 대상이 될 수 있다.
이때 필터링 대상의 설정 방법 및 필터링 규칙에 대해서는 어떠한 제한도 두지 않으므로 시스템 관리자 또는 사용자에 의해 필터링 대상이나 필터링 규칙이 설정될 수 있다.
따라서 필터링 단계(S16)를 통해 크롤링 데이터 중 프롬프트 정보 생성에 필요한 일부만이 필터링되어 남고, 불필요한 데이터는 삭제될 수 있다.
이와 같이 필터링 단계(S16)를 통해 크롤링 데이터 중 일부만이 필터링 처리되면, 상기 정보 획득 단계(S13)에서 메인 서버(30)는 상기 필터 처리된 크롤링 데이터를 기반으로 프롬프트 정보를 획득할 수 있다.
따라서 크롤링 데이터 중에서 불필요한 데이터를 제거하고, 프롬프트 정보 생성에 필요한 데이터만을 이용하여 프롬프트 정보를 생성 및 획득하는 것이 가능하다.
또 다른 실시예로서 상기 프롬프트 획득 단계(S10)는, 생성형 AI 서버(20)를이용하여 크롤링 데이터를 분절하도록 하기 위한 데이터 분절 단계(S16)를 포함할 수 있다.
데이터 분절 단계(S17)에서 메인 서버(30)는 상기 크롤링 데이터를 선택된 인공지능 모델의 생성형 AI 서버(20)에 제공하고, 상기 선택된 인공지능 모델로부터 기 설정된 분절 규칙에 따라 상기 크롤링 데이터를 분절한 복수의 분절 데이터를 획득할 수 있다.
크롤링 데이터는 무수히 많은 데이터를 포함할 수 있어 편집에 어려움이 있을 수 있는 바, 크롤링 데이터를 인공지능 모델에 제공하고, 인공지능 모델로 하여금 기 설정된 분절 규칙에 따라 크롤링 데이터를 기계적으로 분절 처리하도록 하여 복수의 분절 데이터를 획득할 수 있다.
여기서 분절은 분할과 동일한 의미이며, 여기서 분절 규칙이라 함은 크롤링 데이터를 항목별로 분절하거나, 문단별로 분절하거나, 글자수에 따라 분절하는 등 다양한 방식이 적용될 수 있으며 분절 규칙에 대해서는 어떠한 제한도 두지 않는다.
또한 분절 시에 인공지능 모델을 통해 크롤링 데이터에 포함된 데이터 중 불필요한 데이터의 제거가 수행될 수 있으며, 이는 상술한 필터링 단계(S16)와 유사하게 이루어질 수 있으나 생성형 AI 서버(20)를 통해 이루어진다는 것이 특징이라 할 수 있다.
따라서 크롤링 데이터의 분절 처리에 따라 복수의 분절 데이터가 획득될 수 있으며, 이 경우 상기 정보 획득 단계(S13)에서 메인 서버(30)는, 상기 복수의 분절 데이터를 기반으로 상기 프롬프트 정보를 획득하도록 하여 하나의 크롤링 데이터를 기반으로 복수의 프롬프트 정보를 획득할 수 있음은 물론이다.
또한 방대한 양의 데이터를 포함할 수 있는 크롤링 데이터를 인공지능 모델을 통해 빠르고 효율적으로 분절하고 이를 통해 프롬프트 정보를 생성함으로써, 프롬프트 정보 생성의 효율성을 극대화할 수 있다.
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.
따라서, 각 실시예에서는 각각의 기술적 특징을 위주로 설명하지만, 각 기술적 특징이 서로 양립 불가능하지 않은 이상, 서로 병합되어 적용될 수 있다.
본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
S10: 프롬프트 획득 단계
S11: URL 획득 단계
S12: 크롤링 단계
S13: 정보 획득 단계
S14: 공통 프롬프트 획득 단계
S15: 가변 프롬프트 획득 단계
S16: 필터링 단계
S17: 데이터 분절 단계
S20: 제한 조건 파악 단계
S30: 입력 토큰 수 파악 단계
S40: 비교 처리 단계
S50: 프롬프트 분할 단계
S51: 용어 분류 단계
S52: 분할 수행 단계
S60: 프롬프트 재생성 단계
S70: 생성형 AI 이용 단계
S80: 최종 답변 생성 단계
S90: 프롬프트 수정 단계
S91: 요약 단계
S92: 요약 반영 수정 단계
S93: 요약 용어 추출 단계
S94: 답변 용어 추출 단계
S95: 중복 제거 단계

Claims (14)

  1. 서버가 생성형 AI에 대한 프롬프트 정보 최적화 방법으로서,
    사용자 단말로부터 프롬프트 정보를 획득하는, 프롬프트 획득 단계;
    미리 저장된 인공지능 모델 중 어느 하나를 선택받고, 선택된 인공지능 모델의 최대 입력 가능 토큰의 개수인 제한 조건을 파악하는, 제한 조건 파악 단계;
    상기 프롬프트 정보에 해당하는
    입력 토큰 수를 파악하는, 입력 토큰 수 파악 단계;
    상기 입력 토큰 수와 상기 제한 조건을 비교 처리하여 상기 입력 토큰 수가 상기 제한 조건을 초과하는지를 파악하는, 비교 처리 단계;
    상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 프롬프트 정보를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하는, 프롬프트 분할 단계;
    복수의 상기 분할 프롬프트를 기반으로 분할 프롬프트 정보를 생성하는, 프롬프트 재생성 단계;
    상기 분할 프롬프트 정보를 상기 선택된 인공지능 모델에 제공하고 상기 선택된 인공지능 모델로부터 답변 정보를 제공받는, 생성형 AI 이용 단계; 및
    복수의 상기 답변 정보를 기반으로 최종 답변 정보를 생성하는, 최종 답변 생성 단계;를 포함하는 것을 특징으로 하는, 방법.
  2. 제 1항에 있어서,
    상기 프롬프트 획득 단계는,
    공통 프롬프트 및 가변 프롬프트를 포함하는 프롬프트 정보를 획득하고,
    상기 프롬프트 분할 단계는,
    상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 가변 프롬프트를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하며,
    상기 프롬프트 재생성 단계는,
    상기 공통 프롬프트에 상기 분할 프롬프트를 각각 병합하여 복수의 분할 프롬프트 정보를 생성하는 것을 특징으로 하는, 방법.
  3. 제 1항에 있어서,
    상기 프롬프트 분할 단계는,
    상기 프롬프트 정보에 포함된 문단을 파악하고, 상기 프롬프트 정보를 상기 문단 별로 분할하여 복수의 분할 프롬프트를 생성하는 것을 특징으로 하는, 방법.
  4. 제 1항에 있어서,
    상기 프롬프트 분할 단계는,
    상기 프롬프트 정보에 포함된 용어를 파악하고, 파악된 용어를 기반으로 상기 프롬프트 정보를 복수의 상기 분할 프롬프트로 분할하는 것을 특징으로 하는, 방법.
  5. 제 4항에 있어서,
    상기 프롬프트 분할 단계는,
    연관 규칙 탐사 알고리즘을 기반으로 상기 파악된 용어를 연관 집합으로 분류하는, 용어 분류 단계; 및
    각각의 상기 분할 프롬프트 정보마다 상기 연관 집합 별 용어가 적어도 하나 포함되도록 상기 프롬프트 정보를 복수의 상기 분할 프롬프트로 분할하는, 분할 수행 단계;를 포함하는 것을 특징으로 하는, 방법.
  6. 제 5항에 있어서,
    상기 용어 분류 단계는,
    워드넷(word-net) 및 코사인 유사도 중 적어도 어느 하나를 더 반영하여 상기 파악된 용어를 연관 집합으로 분류하는 것을 특징으로 하는, 방법,
  7. 제 1항에 있어서,
    상기 분할 프롬프트 정보는,
    제1,2 분할 프롬프트 정보를 포함하며,
    상기 방법은,
    상기 제1 분할 프롬프트 정보에 대한 답변 정보인 제1 답변 정보를 기반으로 상기 제2 분할 프롬프트 정보를 수정하는, 프롬프트 수정 단계;를 포함하는 것을 특징으로 하는, 방법.
  8. 제 7항에 있어서,
    상기 프롬프트 수정 단계는,
    상기 제1 답변 정보를 요약한 요약 정보를 생성하는, 요약 단계; 및
    상기 요약 정보를 반영하도록 상기 제2 분할 프롬프트 정보를 수정하는, 요약 반영 수정 단계;를 포함하는 것을 특징으로 하는, 방법.
  9. 제 7항에 있어서,
    상기 프롬프트 수정 단계는,
    상기 제1 답변 정보에 포함된 용어를 추출하는, 답변 용어 추출 단계; 및
    상기 추출된 용어가 포함된 문장을 제거하도록 상기 제2 분할 프롬프트 정보를 수정하는, 중복 제거 단계;를 포함하는 것을 특징으로 하는, 방법.
  10. 제 8항에 있어서,
    상기 프롬프트 수정 단계는,
    상기 요약 정보에 포함된 용어를 추출하는, 요약 용어 추출 단계;를 포함하고,
    상기 요약 반영 수정 단계는,
    상기 추출된 용어가 포함된 문장을 제거하도록 상기 제2 분할 프롬프트 정보를 수정하는 것을 특징으로 하는, 방법.
  11. 제 1항에 있어서,
    상기 프롬프트 획득 단계는,
    HTML, CSS 및 JavaScript 중 적어도 어느 하나를 포함한 웹페이지의 URL을 획득하는, URL 획득 단계;
    상기 URL에 대한 크롤링(crawling)을 수행함으로써 크롤링 데이터를 생성하는, 크롤링 단계;
    상기 크롤링 데이터를 기반으로 상기 프롬프트 정보를 획득하는, 정보 획득 단계;를 포함하는 것을 특징으로 하는, 방법.
  12. 제 11항에 있어서,
    상기 프롬프트 획득 단계는,
    공통 프롬프트를 획득하는, 공통 프롬프트 획득 단계;
    상기 크롤링 데이터를 기반으로 가변 프롬프트를 획득하는, 가변 프롬프트 획득 단계;를 포함하고,
    상기 정보 획득 단계는,
    상기 공통 프롬프트와 상기 가변 프롬프트를 기반으로 상기 프롬프트 정보를 획득하며,
    상기 프롬프트 분할 단계는,
    상기 입력 토큰 수가 상기 제한 조건을 초과하는 경우, 상기 가변 프롬프트를 미리 설정된 기준에 따라 복수의 분할 프롬프트로 분할하며,
    상기 프롬프트 재생성 단계는,
    상기 공통 프롬프트에 상기 분할 프롬프트를 각각 병합하여 복수의 분할 프롬프트 정보를 생성하는 것을 특징으로 하는, 방법.
  13. 제 11항에 있어서,
    상기 프롬프트 획득 단계는,
    상기 크롤링 데이터를 기 설정된 필터링 규칙으로 필터 처리하는, 필터링 단계;를 포함하며,
    상기 정보 획득 단계는,
    상기 필터 처리된 크롤링 데이터를 기반으로 상기 프롬프트 정보를 획득하는 것을 특징으로 하는, 방법.
  14. 제 11항에 있어서,
    상기 프롬프트 획득 단계는,
    상기 크롤링 데이터를 선택된 인공지능 모델에 제공하고, 상기 선택된 인공지능 모델로부터 기 설정된 분절 규칙에 따라 상기 크롤링 데이터를 분절한 복수의 분절 데이터를 획득하는, 데이터 분절 단계;를 포함하며,
    상기 정보 획득 단계는,
    상기 복수의 분절 데이터를 기반으로 상기 프롬프트 정보를 획득하는 것을 특징으로 하는, 방법.
KR1020230136289A 2023-10-12 생성형 ai에 대한 프롬프트 정보 최적화 방법 KR102672166B1 (ko)

Publications (1)

Publication Number Publication Date
KR102672166B1 true KR102672166B1 (ko) 2024-06-07

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102576320B1 (ko) 2023-04-19 2023-09-11 (주)유알피 딥러닝 기반 생성형 ai 시스템의 학습용 데이터셋 증폭장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102576320B1 (ko) 2023-04-19 2023-09-11 (주)유알피 딥러닝 기반 생성형 ai 시스템의 학습용 데이터셋 증폭장치 및 그 방법

Similar Documents

Publication Publication Date Title
US11514235B2 (en) Information extraction from open-ended schema-less tables
US10977486B2 (en) Blockwise extraction of document metadata
CN109918676B (zh) 一种检测意图正则表达式的方法及装置、终端设备
RU2732850C1 (ru) Классификация документов по уровням конфиденциальности
JP7139728B2 (ja) 分類方法、装置、及びプログラム
AU2017216520A1 (en) Common data repository for improving transactional efficiencies of user interactions with a computing device
CN110297893A (zh) 自然语言问答方法、装置、计算机装置及存储介质
KR20200087977A (ko) 멀티모달 문서 요약 시스템 및 방법
US20220358294A1 (en) Creating and Interacting with Data Records having Semantic Vectors and Natural Language Expressions Produced by a Machine-Trained Model
US20220261545A1 (en) Systems and methods for producing a semantic representation of a document
US11928418B2 (en) Text style and emphasis suggestions
CN115795061B (zh) 一种基于词向量和依存句法的知识图谱构建方法及系统
KR102672166B1 (ko) 생성형 ai에 대한 프롬프트 정보 최적화 방법
JP3787310B2 (ja) キーワード決定方法、装置、プログラム、および記録媒体
CN112100364A (zh) 文本语义理解方法和模型训练方法、装置、设备和介质
CN111506764B (zh) 音频数据筛选方法、计算机设备和存储介质
CN114662496A (zh) 信息识别方法、装置、设备、存储介质及产品
JP3471253B2 (ja) 文書分類方法、文書分類装置、および文書分類プログラムを記録した記録媒体
CN109783820B (zh) 一种语义解析方法及系统
JP4735958B2 (ja) テキストマイニング装置、テキストマイニング方法およびテキストマイニングプログラム
JP7131130B2 (ja) 分類方法、装置、及びプログラム
JP2021117759A (ja) テキスト情報編集装置及びテキスト情報編集方法
JP7227705B2 (ja) 自然言語処理装置、検索装置、自然言語処理方法、検索方法およびプログラム
CN115688771B (zh) 一种文书内容比对性能提升方法及系统
Somogyi et al. The AI-TOOLKIT: Machine Learning Made Simple