| 항목 | 값 |
|---|---|
| O/S | ubuntu 20.04 |
| python | 3.11.9 |
| transformers | 4.44.2 |
| mlflow | 2.17.0 |
| 데이터 DB | PostgreSQL 16.2 |
학습 최적화 (H100) 서버 ~/workspace/env/dev-projects-000/Datasets/entity-extraction-dataset
스테이징 (A100 40G) 서버
/data1/env/dev-projects-000/Datasets/entity-extraction-dataset
초기 프롬프트 에서는 문단을 입력으로 받아 문단을 쪼개고, entity를 생성해 달라고 함.
→ 전문적인 문서 (법령, 시행령 등)에서 문장을 분할할 때, entity가 누락되는 경우가 발생.
→ entity가 제대로 생성되지 못해 이후 triple 생성 과정에서도 제대로 만들어 지지 않음.
❓ e.g.)
- 입력 문장
1. “폐기물”이란 쓰레기, 연소재, 오니, 폐유, 폐산,
폐알칼리 및 동물의 사체 등으로서 사람의 생활이나 사업활동에 필요하지
아니하게 된 물질을 말한다.
2. “생활폐기물”이란 사업장폐기물 외의 폐기물을 말한다.
... (생략) ...
- 분할된 문장
1) "폐기물"이란 사람의 생활이나 사업활동에 필요하지 아니하게 된 물질을 말한다.
2) "생활폐기물"이란 사업장폐기물 외의 폐기물을 말한다.
... (생략) ...
- entity 결과
{
"entities" :
[
{"id" : 1, "주어" : ["폐기물", "Waste"], "목적어" : ["물질", "Material"]},
{"id" : 2, "주어" : ["생활폐기물", "Waste"], "목적어" : ["폐기물", "Waste"]},
... (생략) ...
]
}
이후 프롬프트 에서는 문단을 문장으로 분할하지 않고, entity만 생성하도록 프롬프트 수정.
- 입력 문장
1. “폐기물”이란 쓰레기, 연소재, 오니, 폐유, 폐산,
폐알칼리 및 동물의 사체 등으로서 사람의 생활이나 사업활동에 필요하지
아니하게 된 물질을 말한다.
2. “생활폐기물”이란 사업장폐기물 외의 폐기물을 말한다.
... (생략) ...
- entity 결과
{
"entities" :
[
{"id": 1, "주어": ["폐기물", "Object"], "목적어": ["쓰레기", "Object"]},
{"id": 2, "주어": ["폐기물", "Object"], "목적어": ["연소재", "Object"]},
{"id": 3, "주어": ["폐기물", "Object"], "목적어": ["오니", "Object"]},
{"id": 4, "주어": ["폐기물", "Object"], "목적어": ["폐유", "Object"]},
{"id": 5, "주어": ["폐기물", "Object"], "목적어": ["폐산", "Object"]},
{"id": 6, "주어": ["폐기물", "Object"], "목적어": ["폐알칼리", "Object"]},
{"id": 7, "주어": ["폐기물", "Object"], "목적어": ["동물의 사체", "Object"]},
{"id": 8, "주어": ["생활폐기물", "Object"], "목적어": ["사업장폐기물", "Object"]},
... (생략) ...
]
}
데이터 저장 서버의 PostgreSQL 컨테이너의 genai DB에 테이블 구성하여 데이터 저장
Utterances 테이블 (입력 문장이 저장되어 있는 테이블)
| 자료형 | 제약 조건 | 설명 | |
|---|---|---|---|
| u_id | Serial | Primary key, Auto Increment | 입력 데이터 고유 id |
| task | varchar(20) | Not Null | merge, match, k2t, entity, … |
| text | text | Not Null | 학습에 사용되는 입력 문장 데이터 |
| dtype | varchar(10) | Not Null | 학습 데이터 종류 (train, test, eval) |
데이터 예시
| u_id | task | text | dtype |
|---|---|---|---|
| 101976 | entity | 이 법은 폐기물의 발생을 최대한 억제하고 발생한 … (생략) | train |
| 101977 | entity | 이 법에서 사용하는 용어의 뜻은 다음과 같다. … (생략) | train |
| 101978 | entity | 이 법은 다음 각 호의 어느 하나에 해당하는 … (생략) | train |
entity 테이블 (ChatGPT 출력 결과물이 저장되어 있는 테이블)
| 자료형 | 제약 조건 | 설명 | |
|---|---|---|---|
| id | Serial | Primary key, Auto Increment | 데이터 고유 id |
| u_id | integer | Foreign Key, Not Null | utterances 테이블에서 참조하는 외래 키 |
| entities | json | Not Null | 모델에서 출력되는 결과 데이터 |
| dtype | varchar(20) | Not Null | 학습 데이터 종류 (train, test, eval) |
데이터 예시
| id | u_id | entities | dtype |
|---|---|---|---|
| 1 | 101976 | [ | |
| {"id" : 1, | |||
| "주어" : | |||
| ["법", "Law"], | |||
| "목적어" : | |||
| ["폐기물", "Waste"] | |||
| }, … (생략) | |||
| train | |||
| 2 | 101976 | … | … |
현재 서 지수 대리, 이 재혁 사원이 공동으로 데이터 관련 작업 진행 중.
작업 완료 전까지, csv 파일로 생성된 임시 데이터 셋을 이용하여 학습 진행 중.
33개의 문서를 이용하여 총 1,645 건의 데이터 확보되어 있음.