앱 기반 머신러닝으로 의약품 제조 분석 가속화
작성자: Ram Kumar, Akshay Hatewar, and Vaidehi Soman, Manufacturing Science and Technology Group, Cipla
의약품 기업에서는 생산하는 약품의 중요 품질 특성을 측정하기 위해 엄격한 시험을 수행합니다. 특정 배치에 문제가 발견되면 제조 팀은 최대한 빨리 근본 원인을 식별하여 중요한 의약품의 공급 지연과 부족을 막아야 합니다.
의약품 제조에는 다양한 원재료, 기계와 다수의 공정 단계가 수반되기 때문에 정확하고 빠른 근본 원인 분석이 어렵습니다. 과거에 팀에서는 원재료 레이블과 기계 인쇄물의 데이터를 수작업으로 스프레드시트에 입력하여 분석했지만 그런 방법은 느리고 실수가 자주 발생했습니다. 더구나 그런 거대한 데이터셋을 한 번에 분석하기 위한 도구나 방법론이 없었습니다.
Cipla에서는 이제 고급 공정 분석을 위해 웹 앱을 사용합니다. MATLAB®에서 개발된 이 앱은 데이터 수집을 자동화하고 머신러닝 모델을 사용해 데이터를 분석하여 결과를 표시합니다(그림 1). 이 앱을 사용하면 과거에 몇 주나 걸리던 근본 원인 식별이 며칠이면 끝납니다. 또한 과거에는 완성된 제품의 품질 관리 시험 결과가 나올 때까지 최장 14일 동안 기다려야 했지만 이제는 특정 배치의 잠재적인 문제를 예측하고 즉시 시정 조치를 취할 수 있습니다.
데이터 수집 및 전처리
의약품 제조 팀에서 분석해야 하는 데이터는 매우 이질적이고 다양한 출처에서 나오지만 크게 CMA(중요 원료 특성)와 CPP(중요 공정 파라미터)라는 두 가지 범주로 구분할 수 있습니다. CMA에는 재료의 밀도 및 입도 분포 외에도 공급업체, 수명, 유통기한 등 제조에 사용되는 원재료의 속성이 포함됩니다. 일반적인 제품은 약 20가지의 원재료로 만들어지며 각 원재료에는 수십 개의 CMA가 있습니다. CPP에는 제조 공정 내 여러 단위 조작 중에 수집된 시계열 측정값이 포함됩니다. 예를 들면 유동층 과립화 등의 단일 단위 조작에 2~3시간 또는 그 이상이 소요될 수 있습니다. 그 시간 중에 온도, 습도, 기계를 통과하는 공기의 속도, 필터 앞뒤의 압력 차 등의 공정 파라미터가 매분 기록됩니다. 동결 건조 같은 또 다른 단위 조작은 보통 48시간 이상이 걸립니다.
우리는 그러한 데이터를 수집하고 구조화하는 응용 프로그램을 개발하기 위해 MathWorks Consulting에 문의했습니다. Database Toolbox™를 사용하여 CMA를 불러오고 Microsoft® Azure® 데이터 웨어하우스나 기타 데이터베이스에서 나온 데이터를 일괄 처리했습니다. Industrial Communication Toolbox™를 사용하여 우리 시설에 있는 OPC 서버에서 직접 추가 CPP 데이터에 액세스할 수 있었습니다. 다양한 Cipla 데이터베이스에 연결하고 데이터를 시각적으로 탐색할 때 Database Explorer 앱이 특히 유용했습니다.
우리가 액세스한 CMA 데이터는 비교적 깨끗하고 전처리가 거의 필요하지 않았습니다. CPP 데이터, 특히 압력 차 측정값은 훨씬 더 잡음이 많았습니다. 우리는 Signal Processing Toolbox™의 필터를 적용하여 잡음을 줄이고 데이터의 추세를 확인했습니다.
머신러닝 모델 구축
CMA 및 CPP 데이터를 잘 구조화하여 표현한 다음에는 머신러닝 모델을 구축해야 했습니다. 머신러닝 모델을 통해 수백 개의 재료 속성과 공정 파라미터 중에 어떤 것이 특정 특성에 가장 큰 영향을 미치는지 파악할 수 있었습니다. 수학적으로 말하자면, 함수
우리는 PCA(주성분 분석), PLS(부분 최소제곱), 랜덤 포레스트 등 세 가지 머신러닝 기법을 연속으로 적용하는 알고리즘을 구현했습니다. x-공간(PCA 플롯)을 보면 원재료 속성에 차이가 있거나 다르게 가공된 배치가 드러납니다(그림 2). 또한 온 타겟 및 오프 타겟 배치는 다양한 방법으로 가공되었지만 항상 오프 타겟 제품만 생산되었습니다. 우리는 x-y 공간(PLS 플롯)을 사용하여 이를 확인했습니다. 이 x-y 공간 플롯에서 모든 오프 타겟 군집이 모여 하나의 거대한 오프 타겟 영역을 형성합니다. 우리는 모델이 얼마나 정확히 배치를 온 타겟과 오프 타겟으로 분류하는지 이해하기 위해 우리는 PLS에 추가적으로 랜덤 포레스트를 적용했습니다. 잠재 변수에 변수 가중치를 사용하여 배치가 온 타겟이나 오프 타겟인 이유를 더욱 자세히 이해할 수 있습니다.
우리는 분석의 주요 요구사항인 해석 가능성을 충족하기 위해 딥러닝이 아닌 머신러닝을 선택했습니다. 우리는 문제를 종합적으로 해결하고 향후에 발생하지 않도록 하기 위해 식별한 제조 문제를 완벽히 이해해야 합니다. 기존의 머신러닝으로는 이러한 수준의 이해가 가능하지만, 딥러닝은 일반적으로 그렇지 않습니다.
웹 앱 패키징 및 배포
우리의 주된 목표 중에 하나는 분석의 민주화였습니다. 즉 작은 전문가 집단만이 아니라 많은 사용자들이 Cipla 전체에서 사용할 수 있는 솔루션을 개발하길 원했습니다. 이러한 목표를 달성하기 위해 우리는 앱 디자이너로 간단한 인터페이스를 만들었습니다. 우리는 이를 머신러닝 알고리즘과 함께 패키징하고 그 패키지를 MATLAB Web App Server™를 사용하여 웹 앱으로 배포했습니다.
이 앱에서 사용자들은 분석하려는 제품을 선택하는 것으로 시작합니다. 앱은 그 특정한 제품에 대한 CMA 데이터를 불러오고 PCA, PLS, 랜덤 포레스트 모델을 구축합니다. 앱은 중요 품질 특성에 대한 각 변수들의 상대적인 기여도 등 모델에서 나온 결과를 표시하고 중요한 요인을 강조 표시합니다(그림 3). 결과를 검토한 후에 사용자는 모델 정확도를 개선하기 위해 그러한 요인이 강조된 축소 모델을 구축할지 결정할 수 있습니다. 예를 들어, 만일 초기 반복에 500개의 변수가 포함되었지만 그중 300개의 변수는 결과에 거의 영향을 미치지 않는 것으로 나타나면 사용자는 해당하는 부분 집합을 생략하고 모델을 단순화하여 분석을 다시 실행할 수 있습니다.
앱의 실시간 버전 시범 사용
우리 팀은 올해 시범 사용할 응용 프로그램의 실시간 버전을 개발하고 있습니다. 이 버전은 단위 조작에서 나온 OPC 서버 데이터를 실시간으로 수집하고 머신러닝 모델에 공급하여 해당 공정이 규정된 제어 파라미터 이내에서 진행되는지 파악할 것입니다.
왜 MATLAB일까요?
우리는 제조 분석에 MATLAB을 사용하기로 결정하기 전에 많은 대안을 검토했습니다. 검토한 옵션 중 한 가지는 상용 소프트웨어 패키지였습니다. 제약 산업을 위해 만든 전문 제품이었기 때문에 소프트웨어 가격이 비쌌고 우리 요구에 맞춰 완벽하게 맞춤화할 수도 없었습니다.
또 다른 옵션은 Python® 또는 그와 유사한 언어로 된 오픈 소스 라이브러리를 사용하여 자체 솔루션을 개발하는 것이었습니다. 앱을 개발하기 위해 사용한 알고리즘이 철저한 검증과 시험을 거쳤는지 확인해야 했기 때문에 이 옵션은 실현 불가능했습니다. 다양한 데이터 저장소에서 데이터에 액세스하려면 기술적 지원도 필요했습니다. MATLAB과 MathWorks Consulting Services의 도움을 통해 우리는 완벽히 맞춤화된 저비용 응용 프로그램을 개발하고 전사에 공유할 수 있었습니다.
2022년 기고