• 회원가입
  • |
  • 로그인
  • |
  • 장바구니
  • News
    뉴스 신제품 신간 Culture & Life
  • 강좌/특집
    특집 강좌 자료창고 갤러리
  • 리뷰
    리뷰
  • 매거진
    목차 및 부록보기 잡지 세션별 성격 뉴스레터 정기구독안내 정기구독하기 단행본 및 기타 구입
  • 행사/이벤트
    행사 전체보기 캐드앤그래픽스 행사
  • CNG TV
    방송리스트 방송 다시보기 공지사항
  • 커뮤니티
    업체홍보 공지사항 설문조사 자유게시판 Q&A게시판 구인구직/학원소식
  • 디렉토리
    디렉토리 전체보기 소프트웨어 공급업체 하드웨어 공급업체 기계관련 서비스 건축관련 업체 및 서비스 교육기관/학원 관련DB 추천 사이트
  • 회사소개
    회사소개 회사연혁 출판사업부 광고안내 제휴 및 협력제안 회사조직 및 연락처 오시는길
  • 고객지원센터
    고객지원 Q&A 이메일 문의 기사제보 및 기고 개인정보 취급방침 기타 결제 업체등록결제
  • 쇼핑몰
[무료강좌] 전문 BIM 자료를 이해하는 대규모 언어 모델 파인튜닝하기
2025-02-04 2,703 6

BIM 칼럼니스트 강태욱의 이슈 & 토크

 

이번 호에서는 전문적인 BIM 자료를 이해할 수 있는 대규모 언어 모델(LLM, Large Language Model)을 개발하는 방법을 알아본다. BIM 기반 LLM을 개발하는 방법은 여러 가지가 있으나, 여기에서는 그 중 하나인 RAG(Retrieval Augumented Generation, 증강 검색 생성) 시 LLM이 잘 추론할 수 있도록 모델을 파인튜닝(fine-turning)하는 기술을 사용해 본다.

 

■ 강태욱
건설환경 공학을 전공하였고 소프트웨어 공학을 융합하여 세상이 돌아가는 원리를 분석하거나 성찰하기를 좋아한다. 건설과 소프트웨어 공학의 조화로운 융합을 추구하고 있다. 팟캐스트 방송을 통해 이와 관련된 작은 메시지를 만들어 나가고 있다. 현재 한국건설기술연구원에서 BIM/GIS/FM/BEMS/역설계 등과 관련해 연구를 하고 있으며, 연구위원으로 근무하고 있다.
페이스북 | www.facebook.com/laputa999
블로그 | http://daddynkidsmakers.blogspot.com
홈페이지 | https://dxbim.blogspot.com
팟캐스트 | www.facebook.com/groups/digestpodcast

 

LLM 모델 파인튜닝의 개념

파인튜닝이란 사전에 학습된 LLM을 특정 도메인이나 작업에 맞게 최적화하는 과정이다. 기본적으로 LLM은 일반적인 자연어 처리 작업을 수행하도록 설계되어 있지만, 전문적인 특정 지식 도메인(예 : 건설 분야의 BIM 데이터)이나 문제를 다룰 때는 환각 현상이 심해지므로 해당 도메인에 특화된 데이터로 모델을 재학습시켜야 한다. 이를 통해 모델이 특정 영역에서 더 정확하고 유용한 결과를 생성하도록 만든다.

파인튜닝 과정은 다음과 같은 단계로 이루어진다. 

① 사전 학습된 모델 선택 : 이미 대규모 데이터로 학습된 LLM을 선택한다.
② 도메인 특화 데이터 준비 : 대상 분야와 관련된 고품질 데이터를 수집하고, 이를 정제 및 전처리한다.
③ 모델 파라미터 조정 : LoRA(Low-Rank Adaptation)같은 기법을 사용하여 모델 파라미터를 특정 도메인에 맞게 업데이트한다. 
④ 훈련 및 검증 : 준비된 데이터로 모델을 학습시키고, 성능을 검증하며 최적화한다.

여기서, LoRA 기술은 LLM을 파인튜닝하는 데 사용되는 효율적인 기법이다. 이 방법은 모델 전체를 다시 학습시키는 대신, 모델의 일부 파라미터에만 저차원(lowrank) 업데이트를 적용하여 파인튜닝한다. 이를 통해 학습 비용과 메모리 사용량을 대폭 줄이면서도 높은 성능을 유지할 수 있다.

이 글에서 사용된 라마 3(Llama 3)는 메타가 개발한 LLM 제품이다. 모델은 15조 개의 토큰으로 구성된 광범위한 데이터 세트에서 훈련되었다.(라마 2의 경우 2T 토큰과 비교) 700억 개의 파라미터 모델과 더 작은 80억 개의 파라미터 모델의 두 가지 모델 크기가 출시되었다. 70B 모델은 MMLU 벤치마크에서 82점, HumanEval 벤치마크에서 81.7점을 기록하며 이미 인상적인 성능을 보여주었다.

라마 3 모델은 컨텍스트 길이를 최대 8192개 토큰(라마 2의 경우 4096개 토큰)까지 늘렸으며, RoPE를 통해 최대 32k까지 확장할 수 있다. 또한 이 모델은 128K 토큰 어휘가 있는 새로운 토크나이저를 사용하여 텍스트를 인코딩하는 데 필요한 토큰 수를 15% 줄인다.

 

개발 환경 준비

개발 환경은 엔비디아 지포스 RTX 3090 GPU(VRAM 8GB), 인텔 i9 CPU, 32GB RAM으로 구성되었다. 이러한 하드웨어 구성은 대규모 BIM 데이터를 처리하고 모델을 학습시키는 최소한의 환경이다. 이 글에서는 사전 학습모델은 허깅페이스(HF)에서 제공하는 Llama-3-8B 모델을 사용한다.

파인튜닝을 위해서는 다음과 같은 환경이 준비되어 있다고 가정한다. 

허깅페이스에서 제공하는 LLM 모델을 사용할 것이므로, 접속 토큰(access token)을 얻어야 한다. 다음 링크에서 가입하고 토큰을 생성(Create new token)한다. 이 토큰은 다음 소스코드의 해당 부분에 입력해야 동작한다. 

 


그림 1

 

명령 터미널에서 다음을 실행해 라이브러리를 설치한다.

 

pip install langchain pypdf fastembed chardet pandas
pip install -U transformers
pip install -U datasets
pip install -U accelerate
pip install -U peft
pip install -U trl
pip install -U bitsandbytes
pip install -U wandb

 

개발된 BIM LLM 모델 성능이 향상되었는지를 검증할 수 있도록, 기초 모델이 인터넷에서 쉽게 수집 후 학습할 수 있는 BIM 자료를 제외한 데이터를 학습용으로 사용할 필요가 있다. 이런 이유로, 최근 릴리스되어 기존 상용 대규모 언어 모델이 학습하기 어려운 ISO/TS 19166에 대한 기술 논문 내용을 테스트하고, 학습 데이터 소스로 사용한다. 참고로, ISO/TS 19166은 BIM-GIS conceptual mapping 목적을 가진 국제표준으로 기술 사양(TS)을 담고 있다. 학습 데이터로 사용될 파일을 다음 링크에서 PDF 다운로드하여 저장한다. 

 

BIM 기반 LLM 모델 학습 데이터 준비와 파인튜닝 파라미터 설정

학습 데이터를 자동 생성하기 위해, 미리 다운로드한 PDF 파일을 PyPDF 및 라마 3를 이용해 질문-답변 데이터를 자동 생성한 후 JSON 파일로 저장한다. 이를 통해 수 백개 이상의 QA 데이터셋을 자동 생성할 수 있다. 이 중 품질이 낮은 데이터셋은 수작업으로 삭제, 제거한다. 

 


그림 2. 자동화된 BIM 기반 LLM 학습 데이터 생성 절차

 

 

■ 자세한 기사 내용은 PDF로 제공됩니다.

강태욱 laputa99999@gmail.com


출처 : 캐드앤그래픽스 2025년 2월호

포인트 : 1,000P (정기구독자 무료 다운로드)

© 캐드앤그래픽스 무단전재 및 재배포금지, 기사 게재 희망시 당사 문의
  • kakao

댓글 0

로그인 후 댓글을 달수있습니다
등록된 코멘트가 없습니다.