KR102618219B1 - 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치 - Google Patents

사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치 Download PDF

Info

Publication number
KR102618219B1
KR102618219B1 KR1020230086097A KR20230086097A KR102618219B1 KR 102618219 B1 KR102618219 B1 KR 102618219B1 KR 1020230086097 A KR1020230086097 A KR 1020230086097A KR 20230086097 A KR20230086097 A KR 20230086097A KR 102618219 B1 KR102618219 B1 KR 102618219B1
Authority
KR
South Korea
Prior art keywords
vocabulary
dictionary learning
subword
downstream data
domain
Prior art date
Application number
KR1020230086097A
Other languages
English (en)
Inventor
김태희
Original Assignee
주식회사 렛서
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 렛서 filed Critical 주식회사 렛서
Priority to KR1020230086097A priority Critical patent/KR102618219B1/ko
Application granted granted Critical
Publication of KR102618219B1 publication Critical patent/KR102618219B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)

Abstract

사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치가 개시된다. 이러한 방법은: 제 1 도메인에 대한 다운스트림 데이터를 획득하는 단계; 다운스트림 데이터에 기초하여 제 1 도메인에 대한 도메인-특정 단어장을 생성하는 단계; 도메인-특정 단어장에 기초하여, 사전 학습 단어장을 업데이트하는 단계; 및 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여 사전 학습된 언어 모델의 파라미터를 업데이트하는 단계를 포함할 수 있다.

Description

사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치 {METHOD OF FINE-TUNING PARAMETERS AND PRE-TRAINED VOCABULARY OF PRE-TRAINED LANGUAGE MODEL AND ELECTRONIC DEVICE FOR FINE-TUNING PARAMETERS AND PRE-TRAINED VOCABULARY OF PRE-TRAINED LANGUAGE MODEL}
본 개시는 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치에 관한 것이다.
자연어 처리(Natural Language Processing)는 인간의 언어 현상을 컴퓨터를 이용하여 모사할 수 있도록 연구하고 구현하는 인공지능의 주요 분야이다. 자연어 처리를 위한 언어 모델은 기본적으로 언어를 이해하기 위해 형태소 분석, 개체명 인식, 어휘 의미 분별, 구문 분석, 의미 역 인식, 상호 참조 해결, 생략어 복원 등의 기술을 이용하여 구축될 수 있다. 자연어 처리 언어 모델은 정보 검색, 질의응답 (Question Answering), 문서 자동 분류, 신문기사 클러스터링, 인공지능 스피커 등 다양한 분야에 적용될 수 있다.
한편, 언어 모델은 미리 수집된 방대한 양의 학습 데이터로 사전 학습되고, 이후, 현실에서 적용되기 전에, 적용될 분야에 기초하여 전이 학습(transfer training)될 수 있다. 예를 들어, 언어 모델은 해당 분야에서 국소적으로 수집된 학습 데이터로 미세 조정(fine-tuning)될 수 있다. 그런데, 해당 분야의 학습 데이터와 사전 학습에 사용된 학습 데이터가 서로 현저하게 차이가 나는 경우, 미세 조정의 성능이 떨어지는 문제가 있다.
특허문헌 1: 한국공개특허공보 제 10-2021-0157342호(2023.03.16. 공개)
상술한 문제점을 해결하기 위해, 본 개시는 미세 조정의 비용의 큰 상승 없이, 해당 분야의 학습 데이터와 사전 학습에 사용된 학습 데이터가 서로 현저하게 차이가 나는 경우에도 미세 조정의 성능을 개선하는 것에 그 목적이 있다.
본 개시가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일 실시 예에 따른 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하는 방법은: 제 1 도메인에 대한 다운스트림 데이터를 획득하는 단계; 상기 다운스트림 데이터에 기초하여 상기 제 1 도메인에 대한 도메인-특정 단어장을 생성하는 단계; 상기 도메인-특정 단어장에 기초하여, 상기 사전 학습 단어장을 업데이트하는 단계; 및 상기 업데이트된 사전 학습 단어장 및 상기 다운스트림 데이터에 기초하여 상기 사전 학습된 언어 모델의 상기 파라미터를 업데이트하는 단계를 포함할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치는 프로세서 및 상기 프로세서에 결합된 메모리를 포함할 수 있다. 상기 메모리는 코드를 저장하고, 상기 코드는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금: 제 1 도메인에 대한 다운스트림 데이터를 획득하게 하고; 상기 다운스트림 데이터에 기초하여 상기 제 1 도메인에 대한 도메인-특정 단어장을 생성하게 하고; 상기 도메인-특정 단어장에 기초하여, 상기 사전 학습 단어장을 업데이트하게 하고; 상기 업데이트된 사전 학습 단어장 및 상기 다운스트림 데이터에 기초하여 상기 사전 학습된 언어 모델의 상기 파라미터를 업데이트하게 할 수 있다.
본 개시의 일 실시예에 따른 언어 모델을 미세 조정하는 방법에 따르면, 사전 학습된 단어장이, 사전 학습에 사용된 학습 데이터 대신에, 상대적으로 크기가 현저히 작은 특정 도메인의 다운스트림 데이터를 사용하여 업데이트될 수 있다. 이에 따라서, 상대적으로 적은 비용으로 사전 학습 단어장이 특정 도메인에 적합하게 업데이트될 수 있다.
본 개시의 일 실시예에 따른 언어 모델을 미세 조정하는 방법에 따르면, 다운스트림 데이터 내에서 상대적으로 중요성이 큰 서브단어들이 언어 모델의 미세 조정을 위해 사전 학습된 단어장에 추가되고, 다운스트림 데이터 내에서 상대적으로 중요하지 않은 서브단어들이 사전 학습된 단어장으로부터 삭제될 수 있다. 이에 따라, 미세 조정 시 사용되는 단어장이 특정 도메인에 적합하게 업데이트될 수 있고, 결과적으로 미세 조정의 성능이 개선될 수 있다.
도 1은 본 개시의 몇몇 실시 예들에 따라, 전자 장치의 블록도를 예시적으로 도시한다.
도 2는 본 개시의 몇몇 실시 예들에 따라 전자 장치에 의해 수행되는 언어 모델을 미세 조정하는 방법의 흐름도를 예시적으로 도시한다.
도 3은 본 개시의 몇몇 실시 예들에 따라 전자 장치에 의해 수행되는 사전 학습 단어장을 업데이트하는 방법의 흐름도를 예시적으로 도시한다.
도 4는 본 개시의 몇몇 실시 예들에 따라 전자 장치에 의해 수행되는 언어 모델의 미세 조정을 설명하기 위한 블록도를 예시적으로 도시한다.
도 5는 본 발명의 몇몇 실시 예들에 따라 사전 학습된 단어장 및 업데이트된 단어장의 단어들의 토큰화 결과를 예시적으로 도시한다.
이하에서는 본 개시의 다양한 실시예들을 설명할 것이나, 본 개시의 기술적 사상은 이에 한정되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다. 또한, 본 명세서에서 사용한 용어는 본 개시의 개념 및 그에 따른 실시예들을 설명하기 위해 사용된 것으로, 본 개시를 해당 용어의 사전적 또는 어구적 의미만으로 한정하려는 의도가 아니다. 예를 들어, 본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 또한, 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 어느 구성, 단계, 동작, 처리 또는 이들을 조합한 것의 존재를 의미하며, 문맥상 명백하게 다르게 뜻하지 않는 한 다른 구성, 단계, 동작, 처리의 존재 또는 부가 가능성을 배제하지 않는다.
제 1, 제 2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. “및/또는” 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 달리 언급되지 않는다면, "접속되는" 또는 "연결되는" 은 하나의 엘리먼트/특징이 다른 엘리먼트/특징과 직접적으로 접속 또는 연결되는 것 또는 타 엘리먼트/특징을 개재하여 간접적으로 접속 또는 연결되는 것을 포함할 수 있고, 반드시 기계적으로 바로 접속 또는 연결되는 것만을 의미하는 것은 아니다. 따라서, 도면들에 도시된 다양한 모식도들은 엘리먼트들과 컴포넌트들의 예시적인 배열들을 도시하지만, 추가의 중재 엘리먼트들, 디바이스들, 특징들 또는 컴포넌트들이(도시된 엘리먼트들의 기능이 악영향을 받지 않는다고 가정할 때)실제 실시형태에서 존재할 수도 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 개시의 몇몇 실시 예들에 따라, 전자 장치(100)의 블록도를 예시적으로 도시한다. 도 1을 참조하면, 전자 장치(100)는 프로세서(110), 메모리(120), 스토리지 장치(130), 통신 장치(140), 및 입출력 장치(150)를 포함할 수 있다. 프로세서(110), 메모리(120), 스토리지 장치(130), 통신 장치(140), 및 입출력 장치(150)는 내부 버스를 통하여 서로 통신할 수 있다.
프로세서(110)는 전자 장치(100)의 중앙 청리 장치로서의 기능을 수행할 수 있다. 프로세서(110)는 메모리(120)로 로드된 소프트웨어, 펌웨어, 프로그램 코드들, 또는 명령어들을 실행함으로써, 전자 장치(100)의 동작을 제어할 수 있다. 프로세서(110)는 메모리(120)로 로드된 언어 모델(Language Model, LM) 사전 학습(pre-training) 코드(121) 및 언어 모델 미세 조정(fine-tuning) 코드(122)를 실행함으로써, 언어 모델을 사전 학습시키고 그리고 특정 도메인(domain)에 대한 다운스트림(downstream) 데이터에 기초하여, 사전 학습된 언어 모델을 미세 조정할 수 있다. 프로세서(110)는 메모리(120)로 로드된 단어장(또는 사전, vocabulary) 업데이트 코드(122a) 및 파라미터 업데이트 코드(122b)를 실행함으로써, 사전 학습 단어장을 업데이트하고 그리고 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여, 언어 모델 사전 학습 코드(121)를 실행함으로써 사전 학습된 언어 모델의 파라미터를 업데이트할 수 있다. 프로세서(110)의 언어 모델 사전 학습 코드(121) 및 언어 모델 미세 조정 코드(122)의 실행에 따른 동작은 구체적으로 후술된다.
메모리(120)는 프로세서(110)에 의해 처리되거나 처리될 예정인 데이터, 소프트웨어, 펌웨어, 프로그램 코드들, 또는 명령어들을 저장할 수 있다. 예를 들어, 프로세서(110)에 의해 전자 장치(100)를 제어하기 위한 소프트웨어, 펌웨어, 프로그램 코드들, 또는 명령어들은 메모리(120)로 로드될 수 있다. 프로세서(110)의 제어 하에, 스토리지 장치(130)에 저장된 데이터는 메모리(120)로 로드될 수 있다. 예를 들어, 메모리(120)는 전자 장치(100)의 외부 장치로부터 통신 장치(140)를 통해 제공되거나 또는 스토리지 장치(130)에 저장된 학습 데이터, 언어 모델 사전 학습 코드(121), 언어 모델 미세 조정 코드(122), 단어장 업데이트 코드(122a), 파라미터 업데이트 코드(122b), 언어 모델이 적용되는 텍스트 데이터, 또는 언어 모델을 미세조정하기 위한 다운스트림 데이터를 저장할 수 있다 메모리(120)는 전자 장치의 주 기억 장치일 수 있다. 몇몇 실시 예들에 있어서, 메모리(120)는 DRAM(Dynamic Random Access Memory)또는 SRAM(Static RAM)등을 포함할 수 있다.
몇몇 실시예들에 있어서, 메모리(120)는 프로세서(110)에 의해 실행 가능한 프로그램 코드인 언어 모델 사전 학습 코드(121), 언어 모델 미세 조정 코드(122), 단어장 업데이트 코드(122a), 및 파라미터 업데이트 코드(122b)를 저장하는 컴퓨터 판독가능 저장 매체일 수 있다. 메모리(120)의 개수는 하나 이상일 수 있다.
스토리지 장치(130)는 프로세서(110)에 의해 장기적인 저장을 목적으로 생성되는 데이터, 프로세서(110)에 의해 구동되기 위한 파일, 또는 프로세서(110)에 의해 실행될 수 있는 다양한 코드들을 저장할 수 있다. 예를 들어, 스토리지 장치(130)는 프로세서(110)에 의해 객체가 검출되기 위한 영상의 데이터 또는 프로세서(110)에 의해 언어 모델을 사전 학습시키고 그리고 미세 조정하기 위한 코드, 예를 들어, 언어 모델 사전 학습 코드(121), 언어 모델 미세 조정 코드(122), 단어장 업데이트 코드(122a), 및 파라미터 업데이트 코드(122b) 또는 명령어들을 저장할 수 있다. 스토리지 장치(130)는 전자 장치(100)의 보조 기억 장치로서의 기능을 수행할 수 있다. 스토리지 장치(130)는 플래시 메모리 등을 포함할 수 있다. 도시된 바와 달리, 스토리지 장치(130)는 전자 장치(100)의 외부 장치로서 구현될 수도 있다.
통신 장치(140)는 전자 장치(100)의 외부 장치와 통신할 수 있다. 예를 들어, 프로세서(110)의 제어 하에, 통신 장치(140)는 다양한 유선 또는 무선 프로토콜들에 기초하여, 외부 장치로 데이터를 전송하고, 그리고 외부 장치로부터 데이터를 수신(또는 획득)할 수 있다.
입출력 장치(150)는 전자 장치(100)의 외부로부터 다양한 요소들을 입력받고, 그리고 전자 장치(100)의 외부로 전자 장치(100)에 의해 생성된 데이터를 출력할 수 있다. 예를 들어, 입출력 장치(150)는 마우스, 키보드, 또는 마이크와 같은 입력 장치 또는 디스플레이 장치 또는 스피커와 같은 출력 장치를 포함할 수 있다. 입출력 장치(150)를 통해, 전자 장치(100)는 사용자로부터 언어 모델을 학습시키거나 또는 미세 조정하기 위한 데이터 또는 신호를 수신(또는 획득)할 수 있다. 입출력 장치(150)를 통해, 전자 장치(100)는 언어 모델의 학습 결과 또는 언어 모델의 분류 결과를 사용자로 제공할 수 있다.
언어 모델의 미세 조정을 위해 사용되는 학습 데이터, 즉 다운스트림 데이터의 도메인이 언어 모델의 사전 학습을 위해 사용되는 학습 데이터의 도메인과 큰 차이를 가질 때, 미세 조정의 성능이 저하될 수 있다. 예를 들어, 언어 모델의 사전 학습에 사용된 학습 데이터는 넓고 다양한 분야에서 랜덤하게 수집된 말뭉치들을 포함하는 반면에, 다운스트림 데이터는 법률, 의료와 같이 특화되거나 전문적인 분야에서 수집된 말뭉치들을 포함하는 경우, 다운스트림 데이터는 사전 학습 모델을 기준으로 노이즈가 많은(noisy) 데이터일 수 있다. 다운스트림 데이터가 사전 학습에 사용된 학습 데이터에 비해 노이즈가 많을수록, 다운스트림 데이터에 기초한 미세 조정의 성능이 저하될 수 있다.
노이즈가 많은 다운스트림 데이터에 빠르게 적응하기 위해, 전자 장치(100)는 언어 모델의 미세 조정 시 단어 임베딩을 추가할 수 있다. 일반적으로 미세 조정 시에는 사전 학습에서 생성된(또는 사용된) 단어 임베딩이 사용되는 반면에, 전자 장치(100)는 추가된 단어 임베딩에 기초하여 언어 모델의 파라미터들을 재학습시킬 수 있다. 예를 들어, 전자 장치(100)는 다운스트림 데이터에 기초하여 사전 학습 단어장을 업데이트하고, 그리고 업데이트된 단어장을 사용하여 언어 모델의 파라미터들을 조정할 수 있다.
몇몇 실시 예들에 있어서, 전자 장치(100)는 사전 학습 시 사용한 단어장 생성 전략을 사용하여 다운스트림 데이터에 대한 도메인-특정 단어장을 생성할 수 있다. 전자 장치(100)는 사전 학습 단어장에 없는 도메인-특정 단어장에 추가된 서브단어들 중 일부를 기존의 사전 학습 단어장에 추가(또는 병합)할 수 있다. 전자 장치(100)는 도메인-특정 단어장에 없는 사전 학습 단어장 내 서브단어들 중 일부를 사전 학습 단어장으로부터 삭제할 수 있다. 서브단어들의 추가 또는 삭제 후, 전자 장치(100)는 (일부 서브단어들이 추가된) 사전 학습 단어장으로 노이즈가 많은 다운스트림 데이터에 대해 유의미한 단위로 토큰화되는지 확인할 수 있다. 예를 들어, 전자 장치(100)는 유의미한 단위로 토근화되는지를 확인하기 위한 정량적인 점수를 계산할 수 있다. 계산된 점수가 임계값을 초과하면, 전자 장치(100)는 사전 학습 단어장으로의 서브단어의 추가를 종료하고, 업데이트된 사전 학습 단어장 및 다운스트림 데이터를 사용하여 언어 모델의 파라미터를 조정할 수 있다.
전자 장치(100)는 미세 조정 시 다운스트림 데이터에 기초하여 단어장을 함께 업데이트할 수 있고, 이에 따라 사전 학습에 사용된 학습 데이터와 다운스트림 데이터의 도메인이 서로 상이한 경우의 미세 조정의 성능이 개선될 수 있다.
도 2는 본 개시의 몇몇 실시 예들에 따라 전자 장치(100)에 의해 수행되는 언어 모델을 미세 조정하는 방법의 흐름도를 예시적으로 도시한다. 예를 들어, 단계들(S201 내지 S205)은 전자 장치(100)의 프로세서에 의해 수행될 수 있다.
프로세서(110)는 사전 학습 단어장에 기초하여 언어 모델을 사전 학습시킬 수 있다(S201). 예를 들어, 프로세서(110)는 언어 모델을 학습시키기 위한 학습 데이터에 기초하여 사전 학습 단어장을 생성하고, 생성된 사전 학습 단어장 및 학습 데이터에 기초하여 언어 모델을 사전 학습시킬 수 있다.
언어 모델을 사전 학습시키는데 사용되는 학습 데이터는 일반적인 도메인에 대한 말뭉치(corpus) 또는 문장를 포함할 수 있다. 예를 들어, 일반적인 도메인에 대한 말뭉치 또는 문장은 일상 생활에서 수집된 텍스트를 포함할 수 있으나, 의료 또는 법률과 같은 특정 전문 분야에서 수집된 텍스트는 포함하지 않을 수 있다.
프로세서(110)는 학습 데이터에 포함된 모든 말뭉치 또는 문장을 음절 (또는 철자) 단위로 분절하고, 분절된 텍스트들의 모든 조합 가능한 쌍 (pair) 들을 학습 데이터 상에서의 출현 빈도에 기초하여 그룹화하고, 가장 출현 빈도가 높은 쌍을 사전 학습 단어장에 추가하고, 추가된 사전 학습 단어장으로부터의 모든 조합 가능한 쌍을 출현 빈도에 기초하여 그룹화하는 것을 반복함으로써, 사전 학습 단어장을 생성할 수 있다. 최종적으로 생성된 사전 학습 단어장은 학습 데이터로부터 추출된 서브단어들(subwords)의 집합일 수 있다. 몇몇 실시 예들에 있어서, 프로세서(110)는 BPE(Byte Pair Encoding) 알고리즘에 기초하여 사전 학습 단어장을 생성할 수 있다.
프로세서(110)는 사전 학습 단어장의 토큰들을 기준으로 학습 데이터를 입력으로 하여 언어 모델을 사전 학습시킴으로써, 프로세서(110)는 언어 모델의 파라미터를 획득할 수 있다. 예를 들어, 언어 모델의 파라미터는 언어 모델의 각 층(layer)의 가중치(weight)를 포함할 수 있다.
프로세서(110)는 제 1 도메인에 대한 다운스트림 데이터를 획득할 수 있다(S202). 예를 들어, 프로세서(110)는 통신 장치(140)를 통해 전자 장치(100)의 외부로부터 또는 입출력 장치(150)를 통해 전자 장치(100)의 사용자로부터 제 1 도메인에 대한 다운스트림 데이터를 획득할 수 있다.
제 1 도메인은 특정 분야와 관련되거나, 또는 특정 객체와 관련될 수 있다. 예를 들어, 제 1 도메인은 법률, 의료, 과학, 공학, 문학, 철학, 또는 경제와 같은 전문적이고 세부적인 분야일 수 있다. 이러한 경우, 제 1 도메인에 대한 다운스트림 데이터는 제 1 도메인에서 공지된 디지털 또는 아날로그 형태의 논문, 서적, 학술지, 또는 기고문으로부터 수집된 텍스트를 포함할 수 있다. 다른 예를 들어, 제 1 도메인은 전자상거래 웹사이트 또는 인터넷 뉴스 웹사이트와 같은 특정 웹서비스 분야일 수 있다. 이러한 경우, 제 1 도메인에 대한 다운스트림 데이터는 제 1 도메인의 웹사이트에 게시된 글(예를 들어, 물품의 소개글, 광고, 구매자의 리뷰, 뉴스 본문, 또는 사설 기고문) 및 댓글(또는 코멘트) 등으로부터 수집된 텍스트를 포함할 수 있다. 또 다른 예를 들어, 제 1 도메인은 특정 분야의 물품만이 거래되는 전자상거래 웹사이트 또는 특정 분야의 인터넷 뉴스와 같이 보다 상세하고 전문적인 웹서비스 분야일 수도 있다. 그러나, 제 1 도메인의 종류는 이에 한정되지 않으며, 제 1 도메인은 일반적이고 범용적인 분야가 아닌 세부적인 특정 분야에 해당하면 족하다.
프로세서(110)는 획득된 다운스트림 데이터에 기초하여 제 1 도메인에 대한 도메인-특정 단어장을 생성할 수 있다(S203). 프로세서(110)는 사전 학습 단어장이 생성된 알고리즘과 동일한 알고리즘에 기초하여 그리고 획득된 다운스트림 데이터를 사용하여 도메인-특정 단어장을 생성할 수 있다. 예를 들어, 프로세서(110)는 다운스트림 데이터에 포함된 모든 텍스트를 음절 (또는 철자) 단위로 분리(또는 분절)할 수 있다. 프로세서(110)는, 분리된 텍스트 부분들의 모든 조합 가능한 쌍 (pair) 들을 각각의 다운스트림 데이터 상에서의 출현 빈도에 기초하여 그룹화하고, 가장 출현 빈도가 높은 쌍을 도메인-특정 단어장에 추가하고, 그리고 추가된 도메인-특정 단어장으로부터의 모든 조합 가능한 쌍을 출현 빈도에 기초하여 그룹화하는 것을 반복함으로써, 도메인-특정 단어장을 생성할 수 있다. 최종적으로 생성된 도메인-특정 단어장은 제 1 도메인에 대한 다운스트림 데이터로부터 추출된 서브단어들의 집합일 수 있다. 몇몇 실시 예들에 있어서, 프로세서(110)는 BPE 알고리즘에 기초하여 도메인-특정 단어장을 생성할 수 있다.
프로세서(110)는 도메인-특정 단어장에 기초하여 사전 학습 단어장을 업데이트할 수 있다(S204). 프로세서(110)는 통계적 기법을 사용하여 도메인-특정 단어장의 서브단어들 중 일부를 사전 학습 단어장에 추가하거나, 또는 도메인-특정 단어장에 없는 서브단어들 중 일부를 사전 학습 단어장으로부터 삭제할 수 있다. 예를 들어, 프로세서(110)는 도메인-특정 단어장의 서브단어들 각각의 다운스트림 데이터 상의 출현 빈도의 통계를 계산하고, 계산된 통계에 기초하여 도메인-특정 단어장의 서브단어들 중 일부를 사전 학습 단어장에 추가할 수 있다. 다른 예를 들어, 프로세서(110)는 사전 학습 단어장의 서브단어들 각각의 다운스트림 데이터 상의 출현 빈도의 통계를 계산하고, 계산된 통계에 기초하여 사전 학습 단어장의 서브단어들 중 일부를 사전 학습 단어장으로부터 삭제할 수 있다. 프로세서가 사전 학습 단어장을 업데이트하는 방법은 도 3을 참조하여 보다 구체적으로 후술된다.
프로세서(110)는 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여, 언어 모델의 파라미터를 업데이트할 수 있다(S205). 다운스트림 데이터의 크기는 학습 데이터의 크기에 비해 상대적으로 작기 때문에, 오버피팅(overfitting)을 방지하기 위해, 프로세서(110)는 언어 모델의 파라미터를 업데이트할 때 일반화(Regularization; 정규화)를 적용할 수 있다.
몇몇 실시 예들에 있어서, 프로세서(110)는 대조 학습 (contrastive learning) 기법을 일반화를 위해 적용할 수 있다. 다운스트림 데이터 내 미니 배치에 포함된 문장들의 각각에 대해, 업데이트된 사전 학습 단어장 및 업데이트 전의(즉, 사전 학습 당시 생성된) 사전 학습 단어장으로 두 번 토큰화할 수 있다. 프로세서(110)는 하나의 동일한 문장에 대해 두 개의 토큰화된 페어(즉, 업데이트된 사전 학습 단어장으로 토큰화된 결과 및 업데이트 전의 사전 학습 단어장으로 토큰화된 결과의 페어) 사이의 유사도에 기초하여, 페어가 서로 가까워지도록 언어 모델을 학습시킬 수 있다. 예를 들어, 프로세서(110)는 페어 간의 유사도에 기초한 로스 함수(loss function)를 계산하고, 계산된 로스 함수를 사용하여 언어 모델을 재학습시킬 수 있다.
도 3은 본 개시의 몇몇 실시 예들에 따라 전자 장치(100)에 의해 수행되는 사전 학습 단어장을 업데이트하는 방법의 흐름도를 예시적으로 도시한다. 예를 들어, 전자 장치(100)의 프로세서(110)는 단계들(S301 내지 S207)을 수행할 수 있다.
프로세서(110)는 도메인-특정 단어장의 서브단어들을 다운스트림 데이터 상에서의 출현 빈도 순으로 정렬할 수 있다(S301). 프로세서(110)는 도메인-특정 단어장의 서브단어들 각각에 대해 다운스트림 데이터 내 말뭉치에서 각 서브단어가 출현하는 횟수를 카운트할 수 있다. 카운트 결과에 기초하여, 프로세서(110)는 도메인-특정 단어장의 서브단어들을 다운스트림 데이터 상에서의 출현 빈도 순으로 정렬할 수 있다.
프로세서(110)는 서브단어들 중 출현 빈도가 가장 높은 서브단어를 선택할 수 있다(S302). 프로세서(110)는 사전 학습 단어장에 선택된 서브단어가 포함되는지를 판단할 수 있다(S303). 사전 학습 단어장에 선택된 서브단어가 포함되는 것에 기초하여, 프로세서(110)는 서브단어들 중 출현 빈도가 상기 선택된 서브단어 다음으로 높은 서브단어를 재선택하고(S304), 재선택된 서브단어가 사전 학습 단어장에 포함되는지를 다시 판단할 수 있다. 사전 학습 단어장에 재선택된 서브단어가 포함되어 있다고 판단하는 것에 기초하여, 프로세서(110)는 그 출현 빈도가 상기 재선택된 서브단어 다음으로 높은 서브단어를 다시 재선택하고, 다시 재선택된 서브단어가 사전 학습 단어장에 포함되는지를 다시 판단할 수 있다.
사전 학습 단어장에 선택된 서브단어(또는 재선택된 서브단어)가 포함되지 않는 것에 기초하여, 프로세서(110)는 선택된 서브단어를 사전 학습 단어장에 추가할 수 있다(S305).
선택된 서브단어가 추가된 사전 학습 단어장에 기초하여, 프로세서(110)는 사전 학습 단어장의 서브단어들로 다운스트림 데이터를 토큰화할 수 있다(S306). 예를 들어, 프로세서(110)는 다운스트림 데이터의 말뭉치 내 각 단어를, 선택된 서브단어가 추가된 사전 학습 단어장의 서브단어들로 토큰화할 수 있다.
프로세서(110)는 사전 학습 단어장의 서브단어들로 다운스트림 데이터의 각 단어가 평균적으로 분절되는 횟수가 미리 결정된 임계값을 초과하는지를 판단할 수 있다(S307). 예를 들어, 프로세서(110)는 도메인-특정 단어장의 서브단어들 중 일부가 추가된 사전 학습 단어장에 기초하여 다운스트림 데이터의 말뭉치 내 단어들이 유의미한 단위로 분절되는지를 확인할 수 있다. 예를 들어, 프로세서(110)는 도메인-특정 단어장의 서브단어들 중 일부가 추가된 사전 학습 단어장으로 다운스트림 데이터의 말뭉치 내 단어들이 유의미한 단위로 분절되는지를 정량적으로 파악하기 위한 분절 점수(score)를 계산할 수 있다. 분절 점수는 다운스트림 데이터 내 단어들이 평균적으로 분절되는 횟수에 대응할 수 있다. 분절 점수는 다운스트림 내 말뭉치의 하나의 단어가, 도메인-특정 단어장의 서브단어들 중 일부가 추가된 사전 학습 단어장으로 토큰화된 서브워드들의 상대적 개수에 대응할 수 있다. 예를 들어, 분절 점수는 {(사전 학습 단어장에 의해 토큰화된 다운스트림 데이터 내 서브단어들의 수)/(다운스트림 데이터의 말뭉치 내 단어들의 수)} 로서 계산될 수 있다.
평균 분절 횟수가 미리 결정된 임계값을 초과한다는 판단에 기초하여, 프로세서(110)는 사전 학습 단어장의 업데이트를 종료하고, 현재의 사전 학습 단어장을 업데이트된 사전 학습 단어장으로서 반환할 수 있다. 평균 분절 횟수가 미리 결정된 임계값을 초과하지 않는다는 판단에 기초하여, 프로세서(110)는 단계(S304)를 수행함으로써, 사전 학습 단어장을 계속 업데이트할 수 있다.
임계값은 프로세서(110)에 의해 미리 설정된(또는 미리 결정된) 자연수일 수 있다. 임계값은 평균 분절 횟수의 하한일 수 있다. 업데이트된 사전 학습 단어장으로 다운스트림 데이터의 단어들을 토큰화한 결과 단어들이 하한값 이하로 분절되면, 프로세서(110)는 업데이트된 사전 학습 단어장에 기초하여 다운스트림 데이터의 말뭉치 내 단어들이 제 1 도메인 내에서 유의미한 단위로(예를 들어, 제 1 도메인의 단어들에서 널리 사용되는 형태소, 접두사, 접미사, 또는 어근 단위로) 분절된다고 판단할 수 있다. 예를 들어, 임계값은 3일 수 있다.
단계(S307)를 통해, 프로세서(110)는 도메인-특정 단어장의 서브단어들 중 일부가 추가된 사전 학습 단어장에 기초하여 다운스트림 데이터의 말뭉치 내 단어들이 유의미한 단위로 분절되는지를 확인하고, 확인 결과에 기초하여 사전 학습 단어장의 업데이트를 계속 수행하거나 또는 종료할 수 있다. 예를 들어, 사전 학습 단어장에 기초하여 다운스트림 데이터의 말뭉치 내 단어들이 유의미한 단위로 분절되지 않는다고 판단되면, 프로세서(110)는 사전 학습 단어장의 업데이트를 계속할 수 있다. 사전 학습 단어장에 기초하여 다운스트림 데이터의 말뭉치 내 단어들이 유의미한 단위로 분절된다고 판단되면, 프로세서(110)는 사전 학습 단어장의 업데이트를 종료할 수 있다. 예를 들어, 프로세서(110)는 분절 점수가 임계값을 초과하면 업데이트를 종료하고, 분절 점수가 임계값을 초과하지 않으면 업데이트를 계속할 수 있다.
몇몇 실시 예들에 있어서, 프로세서(110)는 사전 학습 단어장의 서브단어들 각각의 다운스트림 데이터 상의 출현 빈도의 통계를 계산하고, 계산된 통계에 기초하여 사전 학습 단어장의 서브단어들 중 일부를 사전 학습 단어장으로부터 삭제할 수도 있다. 예를 들어, 프로세서(110)는 사전 학습 단어장의 서브단어들 각각에 대해, 다운스트림 데이터 상의 출현 빈도를 계산할 수 있다. 프로세서(110)는 사전 학습 단어장의 서브단어들을 출현 빈도의 역순으로 정렬할 수 있다. 프로세서(110)는 다운스트림 데이터 상에서 출현하지 않는 서브단어들을 적어도 일부 삭제할 수 있다. 프로세서(110)는 사전 학습 단어장의 서브단어들 중 도메인-특정 단어장에 포함되지 않은 서브단어들을 적어도 일부 삭제할 수 있다. 프로세서(110)는 다운스트림 데이터 상에서의 출현 빈도가 미리 설정된 값 이하인 서브단어들을 적어도 일부 삭제할 수 있다. 프로세서(110)에 의해 삭제되는 서브단어들의 개수는 미리 설정된 임계값보다 작을 수 있다. 프로세서(110)에 의해 삭제되는 서브단어들의 개수는 사전 학습 단어장의 업데이트 중 사전 학습 단어장에 새롭게 추가된 서브단어들(예를 들어, 단계 S301 내지 S307 을 수행함으로써 사전 학습 단어장에 추가된 서브단어들의 개수)의 개수와 같을 수 있다. 이에 따라, 사전 학습 단어장으로부터 제 1 도메인과 상대적으로 관련이 적은 서브단어들이 적어도 일부 삭제될 수 있다. 따라서, 업데이트된 사전 학습 단어장의 크기가 감축됨에 따라, 이후 업데이트된 사전 학습 단어장에 기초한 미세 조정에 소요되는 시간 및 비용이 감소될 수 있다. 또한, 업데이트된 사전 학습 단어장에 포함된 제 1 도메인과 상대적으로 관련이 적은 서브단어들의 개수가 감소함에 따라, 업데이트된 사전 학습 단어장에 기초한 미세 조정의 성능이 개선될 수 있다.
몇몇 실시 예들에 있어서, 둘 이상의 서브단어들이 같은 출현 빈도를 가질 수 있다. 이러한 경우, 프로세서(110)는 이 복수의 서브단어들을 알파벳 순서와 같은 임의의 순서로 또는 랜덤하게 정렬할 수 있다. 이후, 프로세서(110)는 단계(S302) 또는 단계(S304)의 선택 시에 정렬된 서브단어들을 순차적으로 선택할 수 있다. 예를 들어, 최대 출현 빈도를 갖는 두 개의 서브단어들이 제 1 서브단어 및 제 2 서브단어의 순서로 정렬된 경우, 프로세서(110)는 단계(S203)에서 우선 제 1 서브단어를 선택할 수 있다. 만약 제 1 서브단어가 이미 사전 학습 단어장에 포함되어 있다면, 단계(S304)에서, 프로세서(110)는 제 1 및 제 2 서브단어들 다음으로 자주 출현하는 서브단어를 선택하기 전에, 제 2 서브단어를 먼저 재선택할 수 있다.
도 4는 본 개시의 몇몇 실시 예들에 따라 전자 장치(100)에 의해 수행되는 언어 모델의 미세 조정을 설명하기 위한 블록도를 예시적으로 도시한다. 블록들(410, 420, 430, 및 440)은 도 2 및 도 3을 참조하여 설명한 프로세서(110)의 동작에 따라 수행될 수 있다.
먼저, 프로세서(110)는 학습 데이터에 기초하여 언어 모델을 사전 학습시키고, 그 결과, 언어 모델의 파라미터와 사전 학습 단어장을 획득할 수 있다(410). 다음으로, 프로세서(110)는 다운스트림 데이터(421)를 획득하고, 그리고 획득된 다운스트림 데이터(421)를 사용하여 언어 모델을 미세 조정할 수 있다(420). 결과적으로, 프로세서(110)는 미세 조정의 결과로서, 업데이트된 파라미터뿐만 아니라, 업데이트된 단어장도 획득할 수 있다(430).
이후, 프로세서(110)는 해당 도메인에 미세 조정된 언어 모델을 적용할 수 있다(440). 예를 들어, 프로세서(110)는 다운스트림 데이터(421)가 연관된 제 1 도메인에, 업데이트된 파라미터 및 업데이트된 단어장을 갖는 미세 조정된 언어 모델을 적용할 수 있다. 미세 조정된 언어 모델은 질의응답, 개체명 인식, 주어진 자연어 텍스트의 분석 등과 같은 다양한 분야에 적용될 수 있다.
도 5는 본 발명의 몇몇 실시 예들에 따라 사전 학습된 단어장 및 업데이트된 단어장의 단어들의 토큰화 결과를 예시적으로 도시한다. 표(500)에는 다운스트림 데이터의 특정 도메인 단어와, 사전 학습 단어장(예를 들어, 도 4의 블록(410)의 사전 학습 단어장 또는 업데이트 전의 사전 학습 단어장)으로 해당 단어를 토큰화한 결과 및 전자 장치(100)에 의해 업데이트된 단어장(예를 들어, 도 4의 블록(430)의 업데이트된 단어장 또는 도 3에서 최종적으로 반환되는 업데이트된 사전 학습 단어장)으로 해당 단어를 토큰화한 결과가 기재되어 있다.
쇼핑몰 웹사이트 도메인의 단어 'bluetooth(블루투스)'는, 범용의 학습 데이터로부터 생성된 사전 학습 단어장으로, 'blue' 및 '__tooth' 로 토큰화될 수 있다. 예를 들어, 사전 학습 단어장에 기초하여, 'bluetooth'라는 단어는, 'blue' 및 'tooth'로 토큰화될 수 있고, 이후 토큰에서 단어로 변환될 때, '__tooth'는 'blue' 뒤에 삽입될 수 있다. 반면에, 단어 'bluetooth'는 해당 도메인의 다운스트림 데이터로 업데이트된 단어장으로, 쇼핑몰 웹사이트에서 판매될 수 있는 전자 물품에서 사용되는 무선 통신 프로토콜인 블루투스를 의미하는 'bluetooth'로 토큰화될 수 있다.
생명과학 도메인의 단어 'corticosterone(코티코스테론)'은, 범용의 학습 데이터로부터 생성된 사전 학습 단어장으로, 'co', '__rti', '__cos', '__ter', 및 '__one' 로 토큰화될 수 있다. 반면에, 단어 'corticosterone'는 해당 도메인의 다운스트림 데이터로 업데이트된 단어장으로, 'cor', '__tic', 및 __'osterone'으로 토큰화될 수 있다. 따라서, 사전 학습 단어장으로는 단어 'corticosterone'가 스테로이드계 호르몬이라는 유의미한 정보가 도출되기 어려운 반면에, 업데이트된 단어장으로는 토큰 '__osterone'을 통해 단어 'corticosterone'가 스테로이드계 호르몬인 것이라는 의미가 용이하게 도출될 수 있다.
뉴스 도메인의 단어 'disrespectful(무례한)'은, 범용의 학습 데이터로부터 생성된 사전 학습 단어장으로, 'di, '__sr', '__es', '__pe', '__ct' 및 '__ful' 로 토큰화될 수 있다. 반면에, 단어 'disrespectful'는 해당 도메인의 다운스트림 데이터로 업데이트된 단어장으로, 'disrespect', 및 '__ful'로 토큰화될 수 있다. 따라서, 사전 학습 단어장으로는, 토큰 '__ful'로부터 단어 'disrespectful'가 형용사일 수 있다는 유의미한 정보만이 도출되는 반면에, 업데이트된 단어장으로는 토큰 'disrespect(무례, 경멸하다)'을 통해 단어 'disrespectful'가 무례한 것 또는 경멸하는 것과 관련된 형용사일 수 있다는 보다 구체적이고 정확한 정보가 도출될 수 있다.
도 1 내지 도 5 에서 설명된 바와 같이, 본 개시의 실시 예들에 따른 전자 장치는 언어 모델의 미세 조정 시에, 사전 학습된 언어 모델의 파라미터뿐만 아니라 사전 학습된 단어장도 조정할 수 있다. 전자 장치는 사전 학습된 단어장을 업데이트하기 위해, 사전 학습에 사용된 학습 데이터 대신에, 상대적으로 크기가 현저히 작은 특정 도메인의 다운스트림 데이터를 사용할 수 있다. 따라서, 전자 장치는 상대적으로 적은 비용으로 사전 학습 단어장을 업데이트할 수 있다.
전자 장치는 특정 도메인의 다운스트림 데이터로부터 단어들의 상대적 중요성을 고려하여 서브단어들을 추출하고, 추출된 서브단어들 중 적어도 일부를 사전 학습 단어장에 추가할 수 있다. 전자 장치는 추출된 서브단어들에 포함되지 않는 서브단어들 중 적어도 일부를 사전 학습 단어장으로부터 삭제할 수 있다. 이에 따라, 다운스트림 데이터 내에서 상대적으로 중요성이 큰 서브단어들이 언어 모델의 미세 조정을 위해 사용될 수 있고, 결과적으로 미세 조정의 성능이, 비용의 큰 상승 없이, 개선될 수 있다.
본 개시의 일 실시 예에 따른 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하는 방법은: 제 1 도메인에 대한 다운스트림 데이터를 획득하는 단계; 다운스트림 데이터에 기초하여 제 1 도메인에 대한 도메인-특정 단어장을 생성하는 단계; 도메인-특정 단어장에 기초하여, 사전 학습 단어장을 업데이트하는 단계; 및 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여 사전 학습된 언어 모델의 파라미터를 업데이트하는 단계를 포함할 수 있다.
일 실시예에 있어서, 도메인-특정 단어장은 사전 학습 단어장이 생성된 알고리즘과 동일한 알고리즘에 기초하여 그리고 다운스트림 데이터를 사용하여 생성될 수 있다. 일 실시 예에 있어서, 도메인-특정 단어장 및 사전 학습 단어장은 BPE(Byte Pair Encoding) 알고리즘에 기초하여 생성될 수 있다.
일 실시 예에 있어서, 사전 학습 단어장을 업데이트하는 단계는: 도메인-특정 단어장의 서브단어들을 다운스트림 데이터 상에서의 출현 빈도 순으로 정렬하는 단계; 도메인-특정 단어장의 서브단어들 중 다운스트림 데이터 상에서의 출현 빈도가 가장 높은 서브단어를 선택하는 단계; 사전 학습 단어장에 선택된 서브단어가 포함되어 있는지를 판단하는 단계; 및 이러한 판단에 기초하여, 선택된 서브단어를 사전 학습 단어장에 추가하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상술한 판단에 기초하여, 선택된 서브단어를 사전 학습 단어장에 추가하는 단계는 사전 학습 단어장에 선택된 서브단어가 포함되어 있지 않다고 판단하는 것에 기초하여, 선택된 서브단어를 사전 학습 단어장에 추가하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상술한 판단에 기초하여, 선택된 서브단어를 사전 학습 단어장에 추가하는 단계는: (a) 사전 학습 단어장에 선택된 서브단어가 포함되어 있다고 판단하는 것에 기초하여, 서브단어들 중 다운스트림 데이터 상에서의 출현 빈도가 선택된 서브단어 다음으로 높은 서브단어를 재선택하는 단계, (b) 사전 학습 단어장에 재선택된 서브단어가 포함되어 있는지를 판단하는 단계; (c) 사전 학습 단어장에 재선택된 서브단어가 포함되어 있지 않다고 판단하는 것에 기초하여, 재선택된 서브단어를 사전 학습 단어장에 추가하는 단계; 및 (d) 사전 학습 단어장에 재선택된 서브단어가 포함되어 있다고 판단하는 것에 기초하여, 출현 빈도가 재선택된 서브단어 다음으로 높은 서브단어를 다시 재선택하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 사전 학습 단어장을 업데이트하는 단계는: 사전 학습 단어장의 서브단어들로 다운스트림 데이터의 각 단어를 토큰화하는 단계; 및 사전 학습 단어장의 서브단어들로 다운스트림 데이터의 각 단어가 평균적으로 분절되는 횟수가 미리 정해진 임계값을 초과하는지를 판단하는 단계를 더 포함할 수 있다.
일 실시 예에 있어서, 사전 학습 단어장을 업데이트하는 단계는: 다운스트림 데이터의 각 단어가 평균적으로 분절되는 횟수가 미리 정해진 임계값을 초과하는 것에 기초하여, 사전 학습 단어장을 업데이트된 사전 학습 단어장으로 반환하는 단계를 더 포함할 수 있다.
일 실시 예에 있어서, 사전 학습 단어장을 업데이트하는 단계는, 다운스트림 데이터의 각 단어가 평균적으로 분절되는 횟수가 미리 정해진 임계값을 초과하지 않는 것에 기초하여: 서브단어들 중 다운스트림 데이터 상에서의 출현 빈도가 선택된 서브단어 다음으로 높은 서브단어를 재선택하는 단계; 상기 사전 학습 단어장에 재선택된 서브단어가 포함되어 있는지를 판단하는 단계; 및 재선택된 서브단어가 포함되어 있는지의 판단에 기초하여, 재선택된 서브단어를 사전 학습 단어장에 추가하는 단계를 더 포함할 수 있다.
일 실시 예에 있어서, 사전 학습 단어장을 업데이트하는 단계는: 사전 학습 단어장의 서브단어들 중 도메인-특정 단어장에 포함되지 않은 서브단어들을, 상기 사전 학습 단어장의 업데이트 중 상기 사전 학습 단어장에 추가된 서브단어들의 개수만큼 삭제하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 사전 학습 단어장을 업데이트하는 단계는: 사전 학습 단어장의 서브단어들 각각에 대해, 다운스트림 데이터 상의 출현 빈도를 계산하는 단계; 계산된 출현 빈도에 기초하여, 사전 학습 단어장의 서브단어들을 출현 빈도의 역순으로 정렬하는 단계; 및 역순으로 정렬된 사전 학습 단어장의 서브단어들 중 적어도 일부를 순차적으로 삭제하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여 사전 학습된 언어 모델의 파라미터를 업데이트하는 단계는, 다운스트림 데이터를 입력으로 하고, 다운스트림 데이터 내 각 문장에 대한 업데이트 전의 사전 학습 단어장에 의한 토큰화 결과와 업데이트된 사전 학습 단어장에 의한 토큰화 결과 사이의 유사도에 기초하여, 사전 학습된 언어 모델을 재학습시키는 단계를 포함할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치는, 프로세서 및 프로세서에 결합된 메모리를 포함하는 전자 장치일 수 있다. 메모리는 코드를 저장하고, 코드는 프로세서에 의해 실행될 때 프로세서로 하여금: 제 1 도메인에 대한 다운스트림 데이터를 획득하게 하고; 다운스트림 데이터에 기초하여 제 1 도메인에 대한 도메인-특정 단어장을 생성하게 하고; 도메인-특정 단어장에 기초하여, 사전 학습 단어장을 업데이트하게 하고; 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여 사전 학습된 언어 모델의 파라미터를 업데이트하게 할 수 있다.
본 개시의 일 실시 예에 따른 컴퓨터 판독 가능 저장 매체에 저장된 컴퓨터 프로그램은: 제 1 도메인에 대한 다운스트림 데이터를 획득하고; 다운스트림 데이터에 기초하여 제 1 도메인에 대한 도메인-특정 단어장을 생성하고; 도메인-특정 단어장에 기초하여, 사전 학습 단어장을 업데이트하고; 업데이트된 사전 학습 단어장 및 다운스트림 데이터에 기초하여 사전 학습된 언어 모델의 파라미터를 업데이트하기 위한 코드를 포함할 수 있다.
본 명세서에서 개시된 방법 또는 프로세스에서 설명된 처리의 순서는 일 예로서 설명된 것이다. 따라서 필요에 따라 각 단계들의 순서는 본 개시의 사상 내에서 조정될 수 있다. 또한 본 명세서에서 개시된 디바이스 및 시스템은 본 명세서에서 설명된 기능들을 수행할 수 있는 수단들을 포함할 수 있고, 필요에 따라 독립된 디바이스 또는 시스템으로 구현되거나 또는 다른 시스템과 연동되거나 통합된 형태로 존재할 수도 있다.
본 명세서에서 설명된 기술들은 적어도 부분적으로 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 이들은 예를 들어 하나 이상의 프로세서들, DSP, ASIC, FPGA, 또는 등가의 집적 또는 이산 로직 회로, 또는 이들 중 적어도 하나 이상의 임의의 조합으로 구현될 수도 있다. 이러한 하드웨어, 소프트웨어 및 펌웨어는 본 명세서에 개시된 처리들 및 기능들을 지원하기 위해 하나의 또는 복수개의 시스템이나 디바이스 내에서 구현될 수 있고, 또는 다른 시스템이나 디바이스와 연동되거나 통합된 형태로 구현될 수도 있다. 또한, 본 명세서에서 설명된 컴포넌트들은 별개이지만 상호 운용 가능한 로직 디바이스들과 함께 또는 별개로 구현될 수도 있다. 본 명세서에서 구분되어 설명된 각 기능 및 처리들은 각각의 기능을 강조하기 위하여 그와 같이 설명된 것일 뿐, 그러한 기능들이 각각 별개의 하드웨어, 펌웨어 또는 소프트웨어 컴포넌트들에 실현되어야 하는 것은 아니며, 공통의 또는 별개의 하드웨어 및/또는 소프트웨어의 조합 내에 통합될 수도 있다. 용어 "프로세서" 또는 "프로세싱 회로"는 일반적으로 임의의 전술된 로직 회로 단독 또는 다른 로직 회로와 결합된 것, 또는 임의의 다른 등가 회로를 지칭할 수도 있다. 하드웨어를 포함하는 제어 유닛은 본 개시물의 기술들 중 하나 이상을 수행할 수도 있다.
또한, 본 명세서에서 설명된 기술들은 또한 명령들을 포함하는 컴퓨터 판독가능 저장 매체에서 구현되거나 저장될 수도 있다. 그리고 컴퓨터 판독가능 매체에 저장된 명령들은 각 장치에서 프로세서에 의해 그 명령과 관련된 방법 및 처리가 수행되게 할 수 있다. 컴퓨터 판독가능 저장 매체는 메모리, ROM, PROM, EPROM, EEPROM, 플래시 메모리, 하드 디스크, CD-ROM, 자기 매체, 광학 매체, 또는 기타 저장 매체들을 포함할 수도 있다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 전자 장치 110: 프로세서
120: 메모리 130: 스토리지 장치
140: 통신 장치 150: 입출력 장치

Claims (10)

  1. 프로세서에 의해, 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하는 방법으로서,
    제 1 도메인에 대한 다운스트림 데이터를 획득하는 단계;
    상기 다운스트림 데이터에 기초하여 상기 제 1 도메인에 대한 도메인-특정 단어장을 생성하는 단계;
    상기 도메인-특정 단어장에 기초하여, 상기 사전 학습 단어장을 업데이트하는 단계; 및
    상기 업데이트된 사전 학습 단어장 및 상기 다운스트림 데이터에 기초하여 상기 사전 학습된 언어 모델의 상기 파라미터를 업데이트하는 단계를 포함하고,
    상기 사전 학습 단어장을 업데이트하는 단계는:
    상기 도메인-특정 단어장의 서브단어들을 상기 다운스트림 데이터 상에서의 출현 빈도 순으로 정렬하는 단계;
    상기 도메인-특정 단어장의 서브단어들 중 상기 다운스트림 데이터 상에서의 출현 빈도가 가장 높은 서브단어를 선택하는 단계;
    상기 사전 학습 단어장에 상기 선택된 서브단어가 포함되어 있는지를 판단하는 단계;
    상기 판단에 기초하여, 상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하는 단계;
    상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하는 것에 기초하여, 상기 사전 학습 단어장의 서브단어들 중 상기 도메인-특정 단어장에 포함되지 않은 제 1 서브단어를 상기 사전 학습 단어장으로부터 삭제하는 단계;
    상기 사전 학습 단어장의 서브단어들로 상기 다운스트림 데이터의 각 단어를 토큰화하는 단계;
    상기 토큰화의 결과에 기초하여, 상기 사전 학습 단어장의 서브단어들로 상기 다운스트림 데이터의 각 단어가 평균적으로 분절되는 횟수에 기초하는 분절 점수를 계산하는 단계;
    상기 분절 점수가 미리 정해진 임계값을 초과하는지를 판단하는 단계;
    상기 분절 점수가 미리 정해진 임계값을 초과하는 것에 기초하여, 상기 사전 학습 단어장을 상기 업데이트된 사전 학습 단어장으로 반환하는 단계;
    상기 분절 점수가 미리 정해진 임계값을 초과하지 않는 것에 기초하여:
    상기 서브단어들 중 상기 다운스트림 데이터 상에서의 출현 빈도가 상기 선택된 서브단어 다음으로 높은 서브단어를 재선택하는 단계;
    상기 사전 학습 단어장에 상기 재선택된 서브단어가 포함되어 있는지를 판단하는 단계; 및
    상기 재선택된 서브단어가 포함되어 있는지의 판단에 기초하여, 상기 재선택된 서브단어를 상기 사전 학습 단어장에 추가하는 단계; 및
    상기 재선택된 서브단어를 상기 사전 학습 단어장에 추가하는 것에 기초하여, 상기 사전 학습 단어장의 서브단어들 중 상기 도메인-특정 단어장에 포함되지 않은 제 2 서브단어를 상기 사전 학습 단어장으로부터 삭제하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 도메인-특정 단어장은 상기 사전 학습 단어장이 생성된 알고리즘과 동일한 알고리즘에 기초하여 그리고 상기 다운스트림 데이터를 사용하여 생성되는, 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 판단에 기초하여, 상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하는 단계는 상기 사전 학습 단어장에 상기 선택된 서브단어가 포함되어 있지 않다고 판단하는 것에 기초하여, 상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하는 단계를 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 판단에 기초하여, 상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하는 단계는:
    상기 사전 학습 단어장에 상기 선택된 서브단어가 포함되어 있다고 판단하는 것에 기초하여, 상기 서브단어들 중 상기 다운스트림 데이터 상에서의 출현 빈도가 상기 선택된 서브단어 다음으로 높은 서브단어를 재선택하는 단계;
    상기 사전 학습 단어장에 상기 재선택된 서브단어가 포함되어 있는지를 판단하는 단계;
    상기 사전 학습 단어장에 상기 재선택된 서브단어가 포함되어 있지 않다고 판단하는 것에 기초하여, 상기 재선택된 서브단어를 상기 사전 학습 단어장에 추가하는 단계; 및
    상기 사전 학습 단어장에 상기 재선택된 서브단어가 포함되어 있다고 판단하는 것에 기초하여, 출현 빈도가 상기 재선택된 서브단어 다음으로 높은 서브단어를 다시 재선택하는 단계를 포함하는, 방법.
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    상기 사전 학습 단어장을 업데이트하는 단계는:
    상기 사전 학습 단어장의 서브단어들 각각에 대해, 상기 다운스트림 데이터 상의 출현 빈도를 계산하는 단계;
    상기 계산된 출현 빈도에 기초하여, 상기 사전 학습 단어장의 서브단어들을 출현 빈도의 역순으로 정렬하는 단계; 및
    역순으로 정렬된 상기 사전 학습 단어장의 서브단어들 중 적어도 일부를 순차적으로 삭제하는 단계를 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 업데이트된 사전 학습 단어장 및 상기 다운스트림 데이터에 기초하여 상기 사전 학습된 언어 모델의 상기 파라미터를 업데이트하는 단계는, 상기 다운스트림 데이터를 입력으로 하고, 상기 다운스트림 데이터 내 각 문장에 대한 업데이트 전의 상기 사전 학습 단어장에 의한 토큰화 결과와 상기 업데이트된 사전 학습 단어장에 의한 토큰화 결과 사이의 유사도에 기초하여, 상기 사전 학습된 언어 모델을 재학습시키는 단계를 포함하는, 방법.
  10. 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치로서, 상기 전자 장치는 프로세서 및 상기 프로세서에 결합된 메모리를 포함하고, 상기 메모리는 코드를 저장하고, 상기 코드는 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    제 1 도메인에 대한 다운스트림 데이터를 획득하게 하고;
    상기 다운스트림 데이터에 기초하여 상기 제 1 도메인에 대한 도메인-특정 단어장을 생성하게 하고;
    상기 도메인-특정 단어장에 기초하여, 상기 사전 학습 단어장을 업데이트하게 하고;
    상기 업데이트된 사전 학습 단어장 및 상기 다운스트림 데이터에 기초하여 상기 사전 학습된 언어 모델의 상기 파라미터를 업데이트하게 하고,
    상기 사전 학습 단어장을 업데이트하는 것은:
    상기 도메인-특정 단어장의 서브단어들을 상기 다운스트림 데이터 상에서의 출현 빈도 순으로 정렬하고;
    상기 도메인-특정 단어장의 서브단어들 중 상기 다운스트림 데이터 상에서의 출현 빈도가 가장 높은 서브단어를 선택하고;
    상기 사전 학습 단어장에 상기 선택된 서브단어가 포함되어 있는지를 판단하고;
    상기 판단에 기초하여, 상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하고;
    상기 선택된 서브단어를 상기 사전 학습 단어장에 추가하는 것에 기초하여, 상기 사전 학습 단어장의 서브단어들 중 상기 도메인-특정 단어장에 포함되지 않은 제 1 서브단어를 상기 사전 학습 단어장으로부터 삭제하고;
    상기 사전 학습 단어장의 서브단어들로 상기 다운스트림 데이터의 각 단어를 토큰화하고;
    상기 토큰화의 결과에 기초하여, 상기 사전 학습 단어장의 서브단어들로 상기 다운스트림 데이터의 각 단어가 평균적으로 분절되는 횟수에 기초하는 분절 점수를 계산하고;
    상기 분절 점수가 미리 정해진 임계값을 초과하는지를 판단하고;
    상기 분절 점수가 미리 정해진 임계값을 초과하는 것에 기초하여, 상기 사전 학습 단어장을 상기 업데이트된 사전 학습 단어장으로 반환하고;
    상기 분절 점수가 미리 정해진 임계값을 초과하지 않는 것에 기초하여:
    상기 서브단어들 중 상기 다운스트림 데이터 상에서의 출현 빈도가 상기 선택된 서브단어 다음으로 높은 서브단어를 재선택하고;
    상기 사전 학습 단어장에 상기 재선택된 서브단어가 포함되어 있는지를 판단하고; 및
    상기 재선택된 서브단어가 포함되어 있는지의 판단에 기초하여, 상기 재선택된 서브단어를 상기 사전 학습 단어장에 추가하고; 및
    상기 재선택된 서브단어를 상기 사전 학습 단어장에 추가하는 것에 기초하여, 상기 사전 학습 단어장의 서브단어들 중 상기 도메인-특정 단어장에 포함되지 않은 제 2 서브단어를 상기 사전 학습 단어장으로부터 삭제하는 것을 포함하는, 전자 장치.
KR1020230086097A 2023-07-03 2023-07-03 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치 KR102618219B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230086097A KR102618219B1 (ko) 2023-07-03 2023-07-03 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230086097A KR102618219B1 (ko) 2023-07-03 2023-07-03 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치

Publications (1)

Publication Number Publication Date
KR102618219B1 true KR102618219B1 (ko) 2023-12-27

Family

ID=89377537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230086097A KR102618219B1 (ko) 2023-07-03 2023-07-03 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치

Country Status (1)

Country Link
KR (1) KR102618219B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157983A1 (en) * 2019-11-27 2021-05-27 Oracle International Corporation Hybrid in-domain and out-of-domain document processing for non-vocabulary tokens of electronic documents
KR20210121922A (ko) * 2020-03-31 2021-10-08 주식회사 케이티 음성인식 서비스를 위한 언어모델 생성 방법 및 프로그램
KR20210157342A (ko) 2020-06-19 2021-12-28 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 언어 모델의 훈련 방법, 장치, 전자 기기 및 판독 가능 기록 매체
KR20220044406A (ko) * 2020-10-01 2022-04-08 네이버 주식회사 텍스트 생성을 위한 언어 모델들에서 속성들의 분포들을 제어하기 위한 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210157983A1 (en) * 2019-11-27 2021-05-27 Oracle International Corporation Hybrid in-domain and out-of-domain document processing for non-vocabulary tokens of electronic documents
KR20210121922A (ko) * 2020-03-31 2021-10-08 주식회사 케이티 음성인식 서비스를 위한 언어모델 생성 방법 및 프로그램
KR20210157342A (ko) 2020-06-19 2021-12-28 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 언어 모델의 훈련 방법, 장치, 전자 기기 및 판독 가능 기록 매체
KR20220044406A (ko) * 2020-10-01 2022-04-08 네이버 주식회사 텍스트 생성을 위한 언어 모델들에서 속성들의 분포들을 제어하기 위한 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
허희순 등. "MIL-BERT: 군사 도메인 특화 한국어 사전학습 언어모델". 한국해군과학기술학회지* *

Similar Documents

Publication Publication Date Title
US10642939B2 (en) Systems and methods for generating jokes
US10176804B2 (en) Analyzing textual data
CN112214593B (zh) 问答处理方法、装置、电子设备及存储介质
US10878817B2 (en) Systems and methods for generating comedy
US9704480B2 (en) Information processing apparatus, method for processing information, and program
KR101715118B1 (ko) 문서 감정 분류용 딥러닝 인코딩 장치 및 방법.
CN104573099B (zh) 题目的搜索方法及装置
JP6902945B2 (ja) テキスト要約システム
CN111104803B (zh) 语义理解处理方法、装置、设备及可读存储介质
JP7337770B2 (ja) 文書レベルの自然言語処理モデルを訓練させる方法およびシステム
Alghamdi et al. Automatic restoration of arabic diacritics: a simple, purely statistical approach
TW201822190A (zh) 語音辨識系統及其方法、詞彙建立方法與電腦程式產品
JP2019082931A (ja) 検索装置、類似度算出方法、およびプログラム
KR20070119076A (ko) 이름을 생성하고 선택하기 위한 시스템
CN115114919A (zh) 呈现提示信息的方法和装置以及存储介质
CN110750642A (zh) 一种基于cnn的中文关系分类方法及系统
Weerasinghe et al. Feature Vector Difference based Authorship Verification for Open-World Settings.
CN117709355B (zh) 一种提高大语言模型训练效果的方法、装置及介质
KR100542757B1 (ko) 음운변이 규칙을 이용한 외래어 음차표기 자동 확장 방법및 그 장치
KR102618219B1 (ko) 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을미세 조정하는 방법 및 사전 학습된 언어 모델의 파라미터 및 사전 학습 단어장을 미세 조정하기 위한 전자 장치
KR101663038B1 (ko) 개체의 표면형 문자열 용례학습기반에 의한 텍스트에서의 개체 범위 인식 장치 및 그 방법
JPWO2003025787A1 (ja) 文章生成装置及び生成方法
JP6805927B2 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
JP7297721B2 (ja) キャラクタ属性に応じた動詞に置換した対話シナリオを作成するプログラム、装置及び方法
Ahmed et al. Discovering lexical similarity using articulatory feature-based phonetic edit distance

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant