2025년 1월 9일 목요일

LLM 기반 BIM 지식 모델 학습 데이터셋 자동 생성 및 LLM 파인튜닝 도구 소개

이 글은 LLM(대형언어모델) 기반 BIM(Building Information Modeling) 지식 모델을 개발하기 위한 BIM 학습 데이터셋 생성 및 LLM 파인튜닝 도구를 소개한다. 
ChatGPT와 같이 일반적인 지식만 학습한 LLM은 환각현상이 심할 수 있으며, 온라인으로 연결된 LLM을 사용해야해 보안문제도 있을 수 있다. 이 글은 이런 문제를 해결하기 위한 도구를 소개한다. 

로컬 LLM 기반 BIM 모델 개발을 위해서는 BIM 데이터셋을 개발해야 하며, LLM(대규모 언어 모델)을 파인튜닝해야 한다. 이 글은 이를 위한 두 개의 프로그램을 소개하고, 각각의 기능과 사용 방법을 설명한다. 소스코드는 다음 github 링크를 참고한다.
BIM 지식 LLM 모델 학습 프로세스 및 결과

본 프로그램의 동작 방식의 상세한 설명은 레퍼런스를 참고하길 바란다. 이 레퍼런스에는 LLM 파인튜닝, RAG 등의 한계점을 함께 설명하고 있다.   

프로그램 소개
BIM AutoGen Dataset
BIM AutoGen Dataset은 PDF 문서로부터 LLM 파인튜닝을 위한 QA(질문-답변) 데이터셋을 자동으로 생성하는 도구이다. 이 도구는 OpenAI API를 활용해 텍스트를 분석하고, 질문과 답변을 JSON 형식으로 구조화하며, 답변의 모호성을 평가하여 데이터 품질을 높인다.
  • PDF 파일에서 QA 데이터셋을 자동으로 생성한다.
  • 생성된 데이터셋은 JSON 형식으로 저장되며, LLM 파인튜닝에 적합하다.

LLM Fine-Tuning with PEFT
LLM Fine-Tuning with PEFT는 PEFT(파라미터 효율적 파인튜닝) 기술을 활용해 BIM 도메인에 특화된 LLM(SLM)을 8GB GPU에서도 효율적으로 파인튜닝할 수 있게 한다.  이 도구는 Hugging Face와 W&B(Weights & Biases)와 같은 툴과 통합되어 모델 성능 모니터링 및 결과 공유가 가능하다.
  • LLM(Llama-3-8B 등)을 PEFT 기술로 경량화하여 파인튜닝한다.
  • 8GB GPU에서도 실행 가능하며, 저비용 환경에서도 모델 학습을 지원한다.
  • Hugging Face와 W&B 통합으로 학습 상태를 실시간으로 추적하고 공유할 수 있다.
사용방법
BIM AutoGen Dataset
1. 필수 라이브러리 설치:
   pip install os json PyPDF2 argparse re camelot fitz pdfminer.six openai tqdm

2. PDF 파일 준비:
   - `input` 폴더에 처리할 PDF 문서를 추가한다.

3. 다음 명령어를 사용해 스크립트를 실행한다:
   python BIM_autogen_dataset.py --input ./input --output ./output

4. 결과:
   - 생성된 QA 데이터셋은 `output` 폴더에 JSON 형식으로 저장된다.


LLM Fine-Tuning with PEFT
1. 필수 라이브러리 설치:
   pip install pandas torch wandb transformers huggingface_hub trl datasets peft PyPDF2 camelot-py pymupdf pdfminer.six openai tqdm

2. API Key 설정:
   - Hugging Face API Key: Hugging Face 계정을 통해 API 키를 발급받는다.
   - Weights & Biases API Key: W&B 계정을 통해 API 키를 발급받는다.

3. 데이터셋 준비:
   - BIM AutoGen Dataset으로 생성된 QA JSON 파일을 `dataset` 폴더에 저장한다.

4. 다음 명령어를 사용해 스크립트를 실행한다:
   python BIM_LLM_finetuning.py

5. 결과:
   - 파인튜닝된 모델은 `output_finetuning_model` 디렉토리에 저장된다.
   - 학습 로그는 `finetuning.log` 파일에 저장된다.

마무리
이 글은 BIM AutoGen Dataset과 LLM Fine-Tuning with PEFT를 통해 BIM 도메인에서 머신러닝 및 LLM 활용을 간소화하고자 하는 목적을 담고 있다. 모든 코드는 MIT 라이선스 하에 제공된다. 이 도구는 일반화된 프로세스로 개발되어 있으므로, BIM 이외 다른 분야에도 사용자화하여 활용할 수 있다.

레퍼런스
이 레퍼런스에는 LLM 파인튜닝, RAG 등의 한계점을 함께 설명하고 있다. 실제 해보면 알겠지만, 모든 문제를 해결하는 만병 통치약은 없다. 특정 영역에서 효과적인 솔류션도, 다른 영역에는 효과가 없는 경우가 많다는 것을 고려하고, 이러한 기술을 활용할 필요가 있다. LLM 생성모델에 대한 좀 더 깊은 이해가 필요하다면 이 블로그의 '스테이블 디퓨전', '트랜스포머스' 관련글을 참고하길 바란다. 

댓글 없음:

댓글 쓰기