Project list
01 Jan 2022 | NLP
2024년 07월 이후 프로젝트는 portfolio page에 연결된 notion에서 확인 가능합니다.
본 포스트에 기재된 프로젝트들 모두 위 페이지에서도 확인 가능합니다.
Duration
Project (click for details)
Dev log
2024-06 - 2024-07 (1개월)
[개인 porj.] ReAct Multi Agent search system 개발
프로젝트 정의
ReAct 기반 Multi Agent 검색 시스템 개발
Agents: law, ai(blog post), realtime, websearch, image generation
개발 단계
1) agent 선정, agent별 pipeline 설계
2) agent별 데이터 필요 분야 데이터 수집 (law, ai, realtime)
3) agent별 ReAct 필요 분야 선정 및 ReAct 방법 설계
4) 각 agent별 개발 후 전체 코드 구조화
5) api 개발
사용 기술
1) ReAct
2) Human in the loop
3) Image generation
4) Fastapi, Streamlit
5) data collect, data processing
개발 언어: python
ReAct Multi Agent search system 개발 일지
2024-06 - 2024-07 (1개월)
[개인 proj.] OCR+RAG : End-to-End 시스템 개발
프로젝트 정의
한국어 PDF OCR 시스템 + RAG 기반 검색 시스템 결합
개발 단계
1) PDF 입력- parsing - vectorDB 저장 - RAG 전체 pipeline 설계
2) vectorDB 구조, PDF parsing 결과 처리 방식, 저장된 pdf 식별 등 DB 구조 전체 설계 및 개발
3) RAG pipeline 설계 및 개발
사용 기술
1) PP-YOLOE (PDF layer detection model)
2) PyMuPDF (text extraction)
3) Fastapi, Streamlit
4) RAG
5) vector DB
개발 언어: python
PDF parser + RAG 개발 일지
2024-04 - 2024-06 (2개월)
[개인 proj.] 한국어 PDF OCR 시스템 개발
-> LLM-RAG 기반 검색/대화 시스템 개발 시 PDF 처리 단계에 사용
프로젝트 정의
한국어 PDF OCR 시스템 개발
개발 단계
1) PDF detection layout model 실험 및 최종 모델 선정
2) 이미지 / pdf 내 text extraction 모델 및 라이브러리 실험 및 선정
3) 선정된 detection layout model, text extraction model 병합
4) 한국어 PDF Parser demo 페이지 개발
사용 기술
1) PP-YOLOE (PDF layer detection model)
2) PyMuPDF (text extraction)
3) gradio (demo page)
개발 언어: python
개발 과정 요약
- PP-YOLOE, microsoft/Florence-2-large, Detectron2, PDF to XML 등 PDF layer detection 모델 실험 + 최종 모델 선정
- microsoft/Phi-3, PdfReader, ocrmypdf, PyMuPDF 등PDF text extraction 모델 실험 + 최종 모델 선정 (한국어 추출 성능이 선정 기준)
- 선정된 모델을 병합하여 최종 개발물 완성
- PDF OCR 시각 데모 페이지 구축
PDF parser 개발 일지
2023-11 - 2024-03 (4개월)
검색 엔진 개발 (LLM(tuning model)-RAG)
-> 국방 연구원 보고서 검색 시스템(폐쇄망) 검색 엔진으로 내장
프로젝트 정의
보안 문제로 폐쇄망만 가능한 환경에서 사용할 보고서 검색 시스템 개발
팀 구성
인공지능 개발자 2명, 백엔드 개발자 1명, 프론트 개발자 1명, 기획자 1명, 과제 총괄 1명
담당 업무
1) LLM 기반 검색 챗봇 개발
사용 기술
1) sLLM instruction tuning 기술 (Mistral, Solar DPO+Qlora tuning/ 7.24B,10.7B 모델 Merge)
2) pdf로부터 instruction data 추출
3) Model Merge(mergekit)
4) Model Quantization (AWQ)
5) Retrieval Augmented Generation 기반 검색 시스템 개발 기술
6) RAG에 사용될 vectorstore 구축 기술
7) vLLM
8) Flask
개발 언어: python (rag pipeline 구축에 사용된 library: Langchain / vectorstore: FAISS)
수행 업무 요약
- DPO+Qlora를 통해 개발한 자체 sLLM instruction tuning model과 huggingface에 공개된 7.24B급 모델들의 merge 실험을 통해 해당 과제에 사용될 모델을 개발.
- PDF형식의 각종 연구 자료에서 dpo data(instruction, context, response, rejected)를 추출하여 DPO+Qlora 학습 데이터 수집.
- 연구자료 분석 및 분류 결과로 metadata생성, 이를 기준으로 RAG pipeline 구축
- vLLM 적용을 통해 추론 속도 향상
협업 기여도(인공지능 엔진 부분 기여도)
50%(LLM tuning, RAG pipeline 구축)
DPO tuning 기록
RAG pipeline 구축 기록
2023-08 - 2023-12 (4개월)
검색 엔진 개발 (LLM(openai)-RAG)
-> 행정연구원 보고서 검색 플랫폼 검색 엔진으로 내장
프로젝트 정의
연구/개발 기관에서 사용할 보고서 검색 시스템 개발
팀 구성
인공지능 개발자 1명, 백엔드 개발자 1명, 프론트 개발자 1명, 기획자 3명, 과제 총괄 1명
담당 업무
1) LLM 기반 검색 시스템 개발
사용 기술
1) Retrieval Augmented Generation 기반 검색 시스템 개발 기술
- metadata filtering
- hierarchical similarity search -> 3단계
(1. query <-> document summary similarity search
2. vectorstore내에서 1번에서 검색된 document를 기반으로 similarity search (속도 향상을 위한 filtering)
3. retriever 정의 시 2번에서 검색된 document를 기반으로 similarity search)
- translate(en->ko)
- binary vectorstore(document type)
- diverse Prompts(query type)
- data summary for metadata
- similarity-based reordering
- return source file
- 좋아요 싫어요 버튼 추가
- [답변 일시, 소요 시간, 질문, 답변, 사용자 ip] 저장 기능 추가
2) RAG에 사용될 vectorstore 구축
3) Flask
개발 언어: python (rag pipeline 구축에 사용된 library: Langchain / vectorstore: FAISS)
수행 업무 요약
- openai 에서 공개한 GPT-4-turbo 모델을 사용하여 LLM 기반 검색 시스템 개발
- RAG pipeline의 정교화
- retrieval 결과의 정확도 향상을 위해 hierarchical similarity search 적용.
- retrieval data, 사용자 예상 질문 리스트 분석을 통해 retrieval data 카테고리 분류. 분류한 카테고리를 기준으로 retrieval data에 metadata 추. 이를 통해 retrieval에 소요되 시간 감축.
- gpt-4-turbo의 영어 답변 반환 문제를 해결하기 위해 영-한 번역 플로우를 추가
협업 기여도(인공지능 엔진 부분 기여도)
100%
RAG pipeline 구축 기록
2022-11 - 2023-11 (1년)
대화 엔진 개발 (LLM(tuning model)-RAG)
-> 역사 인물 복원 사업에 사용 중(김구, 윤봉길, 안중근 기념관 키오스크 전시)
프로젝트 정의
환각현상을 완화시킨 대규모 언어모델 기반 대화 시스템 개발
팀 구성
인공지능 개발자 2명, 백엔드 개발자 2명, 프론트 개발자 3명, 언리얼 1명, 기획자 4명, 과제 총괄 2명
담당 업무
1) LLM 기반 멀티턴 대화 모델 개발
2) LLM instruction data 수집 및 전처리
3) 윤리 검증 모델 개발
4) 윤리 검증 모델 학습 데이터 수집
5) 감성 분석 모델 제공
사용 기술
1) LLM instruction tuning 기술 (LLaMa 2 13B Qlora tuning)
2) Data 전처리 (vicuna + dolly + alpaca + korquad1.0 + korquad2.0 각 데이터별 특성 분석 후 동일한 instruction data로 변형)
3) Retrieval Augmented Generation 기반 챗봇 개발 기술
4) RAG에 사용될 vectorstore 구축
5) NLP-classifiacation model 개발 기술
6) Flask
개발 언어
python (framework: pytorch/ rag pipeline 구축에 사용된 library: Langchain / vectorstore: FAISS)
수행 업무 요약
LLLM 기반 멀티턴 대화 모델 개발과 윤리 검증 모델, 감성 분석 모델 개발을 담당. 대화 모델의 경우 LLM의 환각현상을 줄이기 위해 RAG 기술을 적용, Retriever 정확도를 높이기 위해 vectorstore 저장 시 metadata에 데이터 출처와 소제목을 함께 저장.
네 가지 데이터를 수집하여 윤리 검증 모델 개발(f1-score 90.6)
사용자 감성 분석에 사용할 감성 분석 모델 개발
협업 기여도(인공지능 엔진 부분 기여도)
대화 모델 50%(2인 협동 개발), 윤리 검증 모델 100%, 감성 분석 모델 100%
model tuning 기록
RAG pipeline 구축 기록
2022-08 - 2022-11 (3개월)
Adapted Pretrained 모델 개발
프로젝트 정의
특수 도메인 데이터를 추가 학습시켜 도메인에 특화된 Pretrained model 개발
팀 구성
인공지능 개발자 1명, 기획자 1명
담당 업무
1) 특수 도메인에 사용될 Pretrained model 추가 학습 모델 개발(BERT, Electra, Roberta)
사용 기술
1) MLM task 수행 모델 구현 기술 (BERT, Electra, Roberta 적용)
개발 언어: python (framework: pytorch)
수행 업무 요약
헬스케어, 법률 등 일상적으로 사용되는 문어 혹은 구어와 상이한 어휘가 다수 분포된 도메인에 사용될 사전학습 모델 개발
협업 기여도(인공지능 엔진 부분 기여도)
100%
2022-06 - 2022-10 (4개월)
개체명 인식 모델 개발(범용 42종, 의료 5종)
-> 각종 정부 과제 검색 시스템 내부에 내장
프로젝트 정의
각종 검색 시스템에 활용될 범용 NER 모델 개발 및 헬스케어 산업에서의 NER 모델 활용 가능성 확인을 위한 bio NER 모델 개발
팀 구성
인공지능 개발자 1명, 기획자 1명
담당 업무
1) 범용/의료 개체명 인식 모델 개발
사용 기술
1) NLP-classifiacation model 개발 기술(최종 모델: Koelectra_bilstm_CRF (3 bilstm layer))
2) Flask
개발 언어
python (framework: pytorch)
수행 업무 요약
- class 감축
범용 NER의 경우, class의 과도한 세분화가 모델 성능에 부정적인 영향을 미치고 있다고 판단되어 약 100개 가량 되는 ner class에 대해 합일 및 제거를 통한 class 감축 작업 수행
의료 NER은 NCBI에서 정의한 개체 class 그대로 사용
(class 정보는 하단 개발 로그에서 확인 가능)
- 범용 및 의료 NER 모델 개발
- 기존 사내 NER 모델의 경우 모델 변경이 어려운 구조로 개발되어 있어 다양한 모델들이 공개되는 가운데 여러 비교 실험이 용이하지 않아 모델 전체 최신화 진행
- 범용 NER 모델은 각종 검색 시스템에 활용하기 위해 개발
- bio NER 모델은 헬스케어 산업에서의 NER 모델 활용 가능성 확인을 위해 개발
- CRF layer 추가 → BERT 계열의 모델의 경우, sequence tag 추론 시 token간의 관계를 독립적으로 예측하는 경향이 있어 label간의 종속성을 명시적으로 모델링하기 위해 CRF layer 추가. 즉, label 간의 의존성을 고려한 결과를 반환 받기 위해 CRF layer를 추가.
- BiLSTM layer 추가 → BERT 계열의 모델이 문맥 파악에 강점을 가지고 있지만 BiLSTM layer를 추가함으로써 문장 길이가 길어지거나 문장 구조의 복잡도가 증가했을 때 문맥 정보 파악 능력을 강화할 수 있다.
- 결과:
bio NER(5 class)
general NER(42class)
f1-score
0.83
0.94
협업 기여도(인공지능 엔진 부분 기여도)
100%
개체명 인식 모델 개발 기록
2022-01 - 2022-05 (4개월)
감성 분석 모델 개발(34종, 8종 분류)
-> 우울증 판별 사업, 아동 돌보미 봇 사업, 역사 인물 복원 사업 등에 활용
프로젝트 정의
우울증 징후 판별을 위한 감성 분석 모델 개발
팀 구성
인공지능 개발자 1명, 기획자 1명
담당 업무
1) 한국어 감성 class 선정
2) 데이터 수집
3) 감성 분류 모델 개발
사용 기술
1) 한국어 감성 분석 및 감정 표현 분류와 관련된 언어학 지식
2) NLP-classifiacation model 개발 기술(최종 모델: Koelectra)
3) Flask
개발 언어
python (framework: pytorch)
수행 업무 요약
- class 정의
한국어 감성 분석 및 감정 표현 분류와 관련된 언어학 지식을 활용하여 34종, 8종의 한국어 감성 분류(class 정보는 개발 로그에서 확인 가능)
- 데이터 수집
출처
수량
data labeling 업체 수집 데이터(raw data: web crawling data)
302,028문장
data labeling 업체 수집 데이터(raw data: aihub 한국어 SNS, 자유대화 데이터)
184,585문장
aihub data (한국어 단발성 대화 데이터셋: 기쁨, 슬픔, 놀람, 분노, 공포, 혐오, 중립)
37,000문장
aihub data (감성 대화 말뭉치: 기쁨, 당황, 분노, 불안, 상처, 슬픔)
28,000문장
총 수량
551,613문장
- 모델 개발
Electra 기반의 감성 분류 모델 개발. (BERT 버전도 개발하였지만 Electra 성능이 더 좋아 Electra로 최종 선택)
34종, 8종 감성 분류 모델 성능 평가 결과 각각 f1-score 78, 84로 측정
협업 기여도(인공지능 엔진 부분 기여도)
100%
감성 분석 모델 개발 기록
Co.
Duration
Project (click for details)
NC Soft
2020-10 - 2020-12 (2개월)
감정요인주석작업 보조연구원 (연세대학교 국어국문학과 연계 과제)
담당 업무:
1) 텍스트 감성 요인 라벨링
사용 기술:
1) 한국어 감성 분석 및 감정 표현과 관련된 언어학 지식
수행 업무 요약:
문장 감성과 해당 감성을 결정하는 동사, 형용사에 대한 정보를 태깅하는 업무를 맡았습니다.
국립국어원
2021-08 - 2022-01 (2개월)
일상대화 말뭉치 전사 작업 (연세대학교 국어국문학과 연계 과제)
담당 업무:
1) 텍스트 감성 요인 라벨링
사용 기술:
1) 한국어 감성 분석 및 감정 표현과 관련된 언어학 지식
수행 업무 요약:
녹음된 일상 대화를 전사하는 업무를 맡았습니다. 대화분석론을 공부하며 경험한 대화 전사 경험을 통해 빠르고 정확한 전사 결과를 전달하였습니다.
Co.
Duration
Project (click for details)
연세대학교
2018-09 - 2020-08 (1년 11개월)
조교 및 조교장
담당 업무:
1) 학과 행사 관리
2) 학과 전공 수업 관리 (과제 관리, 시험 감독 등)
3) 학과 교수님 보조 업무
4) (조교장 업무)학기별 수업 개설
5) (조교장 업무) 학과 행정 업무
6) (조교장 업무) 일반 조교 근무 관리
2024년 07월 이후 프로젝트는 portfolio page에 연결된 notion에서 확인 가능합니다.
본 포스트에 기재된 프로젝트들 모두 위 페이지에서도 확인 가능합니다.
Duration | Project (click for details) | Dev log | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2024-06 - 2024-07 (1개월) |
[개인 porj.] ReAct Multi Agent search system 개발Agents: law, ai(blog post), realtime, websearch, image generation 2) agent별 데이터 필요 분야 데이터 수집 (law, ai, realtime) 3) agent별 ReAct 필요 분야 선정 및 ReAct 방법 설계 4) 각 agent별 개발 후 전체 코드 구조화 5) api 개발 2) Human in the loop 3) Image generation 4) Fastapi, Streamlit 5) data collect, data processing |
ReAct Multi Agent search system 개발 일지 | ||||||||||||
2024-06 - 2024-07 (1개월) |
[개인 proj.] OCR+RAG : End-to-End 시스템 개발2) vectorDB 구조, PDF parsing 결과 처리 방식, 저장된 pdf 식별 등 DB 구조 전체 설계 및 개발 3) RAG pipeline 설계 및 개발 2) PyMuPDF (text extraction) 3) Fastapi, Streamlit 4) RAG 5) vector DB |
PDF parser + RAG 개발 일지 | ||||||||||||
2024-04 - 2024-06 (2개월) |
[개인 proj.] 한국어 PDF OCR 시스템 개발-> LLM-RAG 기반 검색/대화 시스템 개발 시 PDF 처리 단계에 사용 2) 이미지 / pdf 내 text extraction 모델 및 라이브러리 실험 및 선정 3) 선정된 detection layout model, text extraction model 병합 4) 한국어 PDF Parser demo 페이지 개발 2) PyMuPDF (text extraction) 3) gradio (demo page) - microsoft/Phi-3, PdfReader, ocrmypdf, PyMuPDF 등PDF text extraction 모델 실험 + 최종 모델 선정 (한국어 추출 성능이 선정 기준) - 선정된 모델을 병합하여 최종 개발물 완성 - PDF OCR 시각 데모 페이지 구축 |
PDF parser 개발 일지 | ||||||||||||
2023-11 - 2024-03 (4개월) |
검색 엔진 개발 (LLM(tuning model)-RAG)-> 국방 연구원 보고서 검색 시스템(폐쇄망) 검색 엔진으로 내장 2) pdf로부터 instruction data 추출 3) Model Merge(mergekit) 4) Model Quantization (AWQ) 5) Retrieval Augmented Generation 기반 검색 시스템 개발 기술 6) RAG에 사용될 vectorstore 구축 기술 7) vLLM 8) Flask - PDF형식의 각종 연구 자료에서 dpo data(instruction, context, response, rejected)를 추출하여 DPO+Qlora 학습 데이터 수집. - 연구자료 분석 및 분류 결과로 metadata생성, 이를 기준으로 RAG pipeline 구축 - vLLM 적용을 통해 추론 속도 향상 |
DPO tuning 기록
RAG pipeline 구축 기록 |
||||||||||||
2023-08 - 2023-12 (4개월) |
검색 엔진 개발 (LLM(openai)-RAG)-> 행정연구원 보고서 검색 플랫폼 검색 엔진으로 내장 - metadata filtering - hierarchical similarity search -> 3단계 (1. query <-> document summary similarity search 2. vectorstore내에서 1번에서 검색된 document를 기반으로 similarity search (속도 향상을 위한 filtering) 3. retriever 정의 시 2번에서 검색된 document를 기반으로 similarity search) - translate(en->ko) - binary vectorstore(document type) - diverse Prompts(query type) - data summary for metadata - similarity-based reordering - return source file - 좋아요 싫어요 버튼 추가 - [답변 일시, 소요 시간, 질문, 답변, 사용자 ip] 저장 기능 추가 2) RAG에 사용될 vectorstore 구축 3) Flask - RAG pipeline의 정교화 - retrieval 결과의 정확도 향상을 위해 hierarchical similarity search 적용. - retrieval data, 사용자 예상 질문 리스트 분석을 통해 retrieval data 카테고리 분류. 분류한 카테고리를 기준으로 retrieval data에 metadata 추. 이를 통해 retrieval에 소요되 시간 감축. - gpt-4-turbo의 영어 답변 반환 문제를 해결하기 위해 영-한 번역 플로우를 추가 |
RAG pipeline 구축 기록 | ||||||||||||
2022-11 - 2023-11 (1년) |
대화 엔진 개발 (LLM(tuning model)-RAG)-> 역사 인물 복원 사업에 사용 중(김구, 윤봉길, 안중근 기념관 키오스크 전시) 2) LLM instruction data 수집 및 전처리 3) 윤리 검증 모델 개발 4) 윤리 검증 모델 학습 데이터 수집 5) 감성 분석 모델 제공 2) Data 전처리 (vicuna + dolly + alpaca + korquad1.0 + korquad2.0 각 데이터별 특성 분석 후 동일한 instruction data로 변형) 3) Retrieval Augmented Generation 기반 챗봇 개발 기술 4) RAG에 사용될 vectorstore 구축 5) NLP-classifiacation model 개발 기술 6) Flask 네 가지 데이터를 수집하여 윤리 검증 모델 개발(f1-score 90.6) 사용자 감성 분석에 사용할 감성 분석 모델 개발 |
model tuning 기록
RAG pipeline 구축 기록 |
||||||||||||
2022-08 - 2022-11 (3개월) |
Adapted Pretrained 모델 개발 |
|||||||||||||
2022-06 - 2022-10 (4개월) |
개체명 인식 모델 개발(범용 42종, 의료 5종)-> 각종 정부 과제 검색 시스템 내부에 내장 2) Flask 범용 NER의 경우, class의 과도한 세분화가 모델 성능에 부정적인 영향을 미치고 있다고 판단되어 약 100개 가량 되는 ner class에 대해 합일 및 제거를 통한 class 감축 작업 수행 의료 NER은 NCBI에서 정의한 개체 class 그대로 사용 (class 정보는 하단 개발 로그에서 확인 가능) - 범용 및 의료 NER 모델 개발 - 기존 사내 NER 모델의 경우 모델 변경이 어려운 구조로 개발되어 있어 다양한 모델들이 공개되는 가운데 여러 비교 실험이 용이하지 않아 모델 전체 최신화 진행 - 범용 NER 모델은 각종 검색 시스템에 활용하기 위해 개발 - bio NER 모델은 헬스케어 산업에서의 NER 모델 활용 가능성 확인을 위해 개발 - CRF layer 추가 → BERT 계열의 모델의 경우, sequence tag 추론 시 token간의 관계를 독립적으로 예측하는 경향이 있어 label간의 종속성을 명시적으로 모델링하기 위해 CRF layer 추가. 즉, label 간의 의존성을 고려한 결과를 반환 받기 위해 CRF layer를 추가. - BiLSTM layer 추가 → BERT 계열의 모델이 문맥 파악에 강점을 가지고 있지만 BiLSTM layer를 추가함으로써 문장 길이가 길어지거나 문장 구조의 복잡도가 증가했을 때 문맥 정보 파악 능력을 강화할 수 있다. - 결과:
|
개체명 인식 모델 개발 기록 | ||||||||||||
2022-01 - 2022-05 (4개월) |
감성 분석 모델 개발(34종, 8종 분류)-> 우울증 판별 사업, 아동 돌보미 봇 사업, 역사 인물 복원 사업 등에 활용 2) 데이터 수집 3) 감성 분류 모델 개발 2) NLP-classifiacation model 개발 기술(최종 모델: Koelectra) 3) Flask 한국어 감성 분석 및 감정 표현 분류와 관련된 언어학 지식을 활용하여 34종, 8종의 한국어 감성 분류(class 정보는 개발 로그에서 확인 가능) - 데이터 수집
- 모델 개발 Electra 기반의 감성 분류 모델 개발. (BERT 버전도 개발하였지만 Electra 성능이 더 좋아 Electra로 최종 선택) 34종, 8종 감성 분류 모델 성능 평가 결과 각각 f1-score 78, 84로 측정 |
감성 분석 모델 개발 기록 |
Co. | Duration | Project (click for details) |
---|---|---|
NC Soft | 2020-10 - 2020-12 (2개월) |
감정요인주석작업 보조연구원 (연세대학교 국어국문학과 연계 과제) |
국립국어원 | 2021-08 - 2022-01 (2개월) |
일상대화 말뭉치 전사 작업 (연세대학교 국어국문학과 연계 과제) |
Co. | Duration | Project (click for details) |
---|---|---|
연세대학교 | 2018-09 - 2020-08 (1년 11개월) |
조교 및 조교장2) 학과 전공 수업 관리 (과제 관리, 시험 감독 등) 3) 학과 교수님 보조 업무 4) (조교장 업무)학기별 수업 개설 5) (조교장 업무) 학과 행정 업무 6) (조교장 업무) 일반 조교 근무 관리 |