도메인 : SEMES 기업 연계 AI 프로젝트
주제 : AI를 활용한 물류데이터 로그 분석 시스템
개발 기간 : 2024.04.08 ~ 2024.05.20
기업 SEMES 에서는 많은 양의 OHT들이 Wapper를 옮기며 작업을 합니다. OHT들이 작업을 하다보면 다양한 에러들이 발생합니다. 예를 들자면, 설비와의 통신 에러, OHT 자체 에러, 명령 쏠림등이 있습니다.
이렇게 에러가 발생하면 어떻게 될까요? 바로 정체가 발생합니다. 기존 방식에서는 이렇게 에러로 인하여 정체가 발생하게 되면 OHT가 남긴 로그를 분석하여 문제 발생 지점을 찾고 해결하였습니다. 하지만 기존 방식은 전문성이 없는 사람의 경우, 시간이 오래 걸리고 이렇게 시간이 길어지게 되면 생산성이 많이 낮아지는 결과를 초래하였습니다.
따라서, SEMENTO가 로그들을 분석하여 정체 구간을 탐지 하고, 원인을 분석하여 시각화함으로써 전문성이 없는 사람도 문제 및 원인을 빠르게 파악하고 해결을 돕고, 공장들의 생산 라인의 생산 효율 증가에 도움을 드릴 수 있습니다.
시뮬레이터를 실행하면 OHT들이 Wapper를 나르는 것을 실시간을 확인할 수 있습니다. 또한, OHT들이 이동하는 것을 1초 단위로 로그를 생성하고 이를 데이터베이스에 저장하고 있습니다.
하루 10만 8천개 데이터가 생성되는 로그데이터 특성상 일반 RDB 사용시 쿼리성능이 떨어질것을 예상하여 그 해결방안으로 Elasticsearch를 도입하였습니다. 초단위 로그가 Elasticsearch에 저장됩니다. 이때 데이터 insert시점에 일별로 Index가 분리되도록 하여 쿼리성능을 대폭 향상시키는 등 방대한 로그를 효율적으로 처리할 수 있도록 구조화 시켰습니다.
전체적인 시스템의 작업성공률, 에러 비율, 평균 작업 시간, 시간대별 OHT 상태를 확인할 수 있습니다. OHT의 한달 기준으로 전 달과 현재 달의 데이터를 비교하여 보여줍니다. 또한, 생성형 AI를 통해 대시보드를 요약 및 정리하여 보여줍니다. 이를 토대로 AI가 제시하는 해결방안을 확인하실 수 있습니다.
알고리즘과 신경망을 토대로 구축된 AI를 활용하여 데이터를 분석하는 페이지입니다.
시작시간과 종료시간을 입력 후 AI 탐지 요청 시, 정체 일어난 부분과 정체 원인을 분석하여보여줍니다. 또한, 각각의 정체를 상세하게 보여주어 어느 OHT 혹은 설비가 정체의 원인이 되었는지 한눈에 파악할 수 있도록 도와줍니다.
로그를 기반으로 시뮬레이션을 보여주는 페이지입니다.
시뮬레이션을 진행하는 시간을 설정하고 보고 싶은 OHT 선택하면 시뮬레이션을 확인할 수 있습니다. 해당 시뮬레이션에서 보여주는 OHT의 색을 통해 현재의 상황을 파악할 수 있습니다. 또한, 선택한 OHT의 시간별 작업량, 속도들을 파악할 수 있습니다.
SEMENTO는 4가지 모델 테스트 이후 최종적으로 2개의 AI모델을 도입하였습니다. (대략 75개의 모델 테스트)
위 그림은 시뮬레이터를 통해 생성한 로그 데이터입니다. 쏟아지는 데이터 속에서 정체가 발생했는지 판단하는 것은 쉬운 작업이 아니었기에 정체를 탐지하는 AI 모델을 필요로 하게 되었습니다. 로그 자체가 시계열 데이터이기 때문에 시계열 분석 모델인 LSTM
과 이상 탐지에 유용한 Auto-Encoder 모델을 응용한 LSTM-AE
모델을 사용하였습니다.
또한 신입사원이 “왜” 정체가 발생했는지를 파악하는 것 또한 어려우며 원인 파악 정확도도 낮았습니다. 그렇기에 로그를 기반으로 정체 발생 원인 별로 이동 패턴을 분석하기 위해 로그 데이터를 3D로 구성하였습니다. 이후 Convolution Neural Network
모델을 통해 Classificiation을 진행함으로써 원인 분석 모델을 개발하였습니다.
- 머신러닝으로 전체 경로의 OHT 로그 히스토리를 학습하여 정체의 원인을 판단하고자 하였음.
- 정체 발생 이전의 N초동안의 모든 OHT 로그들을 하나의 '정체'로 학습
- 학습한 이상의 것을 유추하지 못하기 때문에 예외사항을 잡아내지 못하는 모습을 보임
- 시계열 딥러닝 모델로 전체 경로의 OHT 로그 히스토리를 학습하여 정체의 원인을 판단하고자 하였음.
- 정체 발생 이전의 N초동안의 모든 OHT 로그들을 하나의 '정체'로 학습
- 딥러닝 모델로 정체 경로의 OHT 로그 히스토리를 학습하여 정체의 원인을 판단하고자 하였음.
- 3가지 에러(설비, OHT, 명령쏠림)을 모두 준수하게 잡아냈으며, 87%라는 높은 정확도를 보였음.
- 에러를 판별하는 기준과 분류에 따라 추가적인 테스트가 필요하지만 유의미한 결론을 도출하였음.
- LSTM AE 모델로 이상이 없는 OHT 로그 히스토리를 학습하여 정체를 판단하고자 하였음.
- 정체 판단 알고리즘과 정체로 탐지해야하는 기준에 대한 테스트가 더 필요함.
AI팀
과시뮬레이션+WEB팀
으로 분리해 진행하였습니다.
@KHJHK | @godjuhyuk | @Ratatou2 |
김희중 | 이주혁 | 최진학 |
- [AI] RandomForest(머신러닝) 담당 - FE의 로그 기반 시뮬레이션 파트 담당 - 인프라 구축 담당 - 시뮬레이션을 통한 데이터 수집 |
- [AI] CNN 담당 - 정체 탐지 로직 구현 - 데이터 전처리 - AI 서버 인프라 구축 - AI 모델 서빙 - 시뮬레이션을 통한 데이터 수집 |
- [AI] ConvLSTM 모델 담당
- 모델 테스트 및 성능 측정 - GPU 서버 담당 - Raw 데이터셋 필터링하여 npy 파일로 변환 - 시뮬레이션을 통한 데이터 수집 |
@miraekwak | @tngur1101 | @cheshireHYUN |
곽미래 | 김수혁 | 최서현 |
- AnyLogic을 통한 반도체 물류 반송 시스템 시뮬레이션 구현 - 시뮬레이션을 통한 데이터 수집 - Docker를 활용한 인프라 환경 및 Jenkins, GitLab을 활용한 CI/CD 구축 - 대용량 데이터 처리를 위한 백엔드 파이프라인 설계 및 구축 - Spring 서버에 Elasticsearch 집계 쿼리 작성 - UI/UX 디자인 및 프론트엔드 Char.js를 활용한 대시보드 컴포넌트 개발 |
- AnyLogic을 통한 반도체 물류 반송 시스템 시뮬레이션 구현 - 프론트엔드 개발 - 데이터 전처리 - 정체 이상탐지 모델 개발 - 시뮬레이션을 통한 데이터 수집 |
- AnyLogic을 통한 반도체 물류 반송 시스템 시뮬레이션 구현 - 시뮬레이션을 통한 데이터 수집 - 대용량 데이터 처리를 위한 백엔드 파이프라인 설계 - Spring 서버에 Elasticsearch 집계 쿼리 작성 - Spring 서버와 AI서버간 연결 API 작성 - Exception 핸들링 및 공통로직 Util 작성 - 프론트엔드 기획(디자인 및 컴포넌트 구조도 작성) - D3.js를 이용한 시뮬레이션(OHT 로그 시각화) 컴포넌트 개발 |