← 기술 목록으로

라이선스 원문을 보존하는 LLM 분류 파이프라인

라이선스 원문을 먼저 저장하고 LLM API의 type·권한 분류 결과를 단일 데이터 흐름에서 대조할 수 있게 바꾼 작업

기간2025
소속래브라도랩스(LabradorLabs)
역할데이터 엔지니어 · 파이프라인 재설계 주도
Data PipelineLLM APIPrompt EngineeringETLData Modeling

0원문을 먼저 저장한 이유

AI는 복잡한 조인과 기존 라이선스 분석 서비스 의존을 줄이는 분류 단계로 사용했습니다. 라이선스 원문을 먼저 저장한 뒤 ChatGPT API가 type과 주요 권한을 분류하게 했습니다.

SPDX 라이선스 원문과 분류 결과를 같은 데이터 흐름에 두어 입력과 결과를 다시 대조할 수 있게 했습니다.

1배경

오픈소스 라이선스 데이터를 제공하기 위한 기존 수집 체계는 여러 테이블을 복잡하게 조인해야 결과를 얻을 수 있었고 분석의 상당 부분을 외부 서비스에 의존했습니다.

2접근

여러 출처의 라이선스 원문(full_text)을 하나의 원문 통합 저장소에 모으고 이를 AI(LLM)가 분석해 정제된 최종 데이터를 단일 테이블로 만들어내는 파이프라인으로 재설계했습니다.

여러 출처의 라이선스 원문을 통합 저장하고 LLM 분석과 프롬프트 세분화를 거쳐 단일 최종 테이블로 만드는 파이프라인
원문을 먼저 보존한 뒤 LLM이 type과 권한을 분류하고 protective 계열을 Weak·Strong으로 다시 나눴습니다.

3결과

구조 단순화 — 복잡한 다중 테이블 조인을 걷어내고 정제 데이터를 단일 테이블로 통합
의존성 경계 정리 — 기존 분석 서비스는 제거하고 ChatGPT API 호출을 파이프라인의 명시적인 모델 단계로 격리
입력·결과 대조 — 라이선스 원문과 분류 결과를 함께 저장하고, protective는 Weak/Strong으로 세분화

원문과 분류 결과를 다시 추적할 수 있는 구조를 확인한 결과입니다. 별도 정답셋으로 분류 정확도를 측정한 수치는 없습니다.

4역할

원문을 한곳에 모으는 데이터 모델과 처리 파이프라인을 직접 만들었습니다. 기존 분석 서비스 대신 ChatGPT API를 별도 단계로 붙였고, 라이선스 type과 권한을 분류하며 protective를 Weak/Strong로 나누도록 프롬프트를 작성했습니다. 원문과 분류 결과는 같은 데이터 흐름에서 읽게 했습니다.

📜 라이선스 데이터 시리즈 ③① 라이선스 DB화 · ② 양립성 DB