안녕하세요, 여러분. 함께해 주셔서 감사합니다. 저는 SUMCO 애플리케이션 엔지니어링 팀의 크리스 데니스입니다. SUMCO는 실리콘 웨이퍼 제조 회사입니다. 반도체 공정의 원료로 사용되는 실리콘 웨이퍼를 생산합니다. 오늘은 단기 및 빅데이터 처리와 다양한 기법을 활용하여 관리도의 변화를 찾아내는 실용적인 리믹스 방법에 대해 이야기해 보겠습니다. 개념을 간략하게 설명한 후, 라이브 데모를 통해 관리도 작성 방법과 스크립트를 설정하여 공정 엔지니어에게 유용한 관리도 차트를 만드는 방법을 안내해 드리겠습니다.
오늘날의 제조 공정은 정말 복잡합니다. 모든 것이 매우 빠르게 변하고, 공장에서는 매일 수많은 변화가 일어납니다. 수백 개의 제품과 수십 개의 공구가 작동하는 것은 드문 일이 아닙니다. 기존의 SPC 방식은 각 매개변수, 공구 및 부품 조합에 대해 하나의 차트를 생성합니다. 이러한 차트는 빠르게 수천 개의 차트로 늘어날 수 있습니다. 변경 빈도가 높을수록 제품 생산 중에 차트에 추가되는 데이터 포인트가 거의 없기 때문에 차트가 더욱 복잡해집니다.
이는 저희 공장 프로세스 중 하나에서 수집한 관리도 모음의 예입니다. 부품 변경이 많이 발생하고 각 차트에는 실행 횟수가 몇 회에 불과한 것을 알 수 있습니다. 이상적인 상태 관리도의 가정은 매우 빠르게 실패합니다. 길고 일관된 실행 횟수가 없고 프로세스 조건이 끊임없이 변하기 때문입니다. 이러한 가정은 관리도 작성에 적합하지 않으며, 차트에서 효과를 발휘하지 못할 수 있습니다. 저희 프로세스를 살펴보면 복잡성을 증가시키는 여러 매개변수가 있습니다. 입력은 출력에 영향을 미치고 서로 상관관계를 갖습니다. 이러한 모든 매개변수를 개별적으로 차트화하면 전체적인 그림을 놓칠 수 있습니다. 시스템은 미묘하고 숨겨진 방식으로 변동할 수 있으며, 기존 SPC로는 이를 포착하지 못할 것입니다.
이걸 바꿀 수 있다면 어떨까요? 원시 데이터를 차트로 표시하는 대신, 예상치 못한 것을 차트로 표시하는 겁니다. 각 데이터 포인트에 대한 예측을 설정하는 모델을 구축하고, 예측된 실제 결과와 예측 결과, 그리고 실제 결과의 차이인 잔차를 차트로 표시하는 거죠. 바로 여기에 놀라운 결과가 숨어 있습니다.
기존 SPC(모델 관리도)와 기존 SPC 차트의 장점을 간략하게 비교해 보겠습니다. 기존 차트는 안정적인 프로세스, 단순한 프로세스, 한 번에 한 제품씩 처리하는 데 적합합니다. 모델 기반 차트는 다변량 차트이며, 상관관계를 처리하고, 정상적인 변동을 제거하고 예상치 못한 변동을 표시합니다. 완벽합니다. 프로세스 데이터처럼 복잡한 데이터에 적합합니다.
다양한 모델을 선택할 수 있습니다. 예를 들어 PCA 모델을 사용할 수 있습니다. 주성분 분석은 센서나 스펙트럼 데이터와 같은 자연 구조를 비교하는 데 적합합니다. 부분 최소 제곱 모델은 품질 속성을 예측하는 응답이 있을 때 유용하며, 회귀 모델은 간단하고 알려진 관계에 적합합니다. 중요한 것은 입력하는 데이터에 적합한 모델을 선택하고 모델을 검증하는 것입니다. JMP에서 무엇을 만들고 어떻게 하는지 알아보겠습니다.
첫 번째 단계는, 특히 시그마가 변하고 모든 것이 일치하지 않는 단기 관리도의 경우, 플롯하는 값을 표준화하는 것을 권장합니다. 데이터를 정규화하는 것이 좋습니다. 제 경험상 다변량 관리도에서도 한 매개변수가 신호를 지배하고 다른 매개변수를 압도하지 않도록 하는 것이 도움이 됩니다. 모든 것을 동등하게 배치합니다. 다음은 모형을 적합하는 것입니다. 이 경우, 표준 JMP에서 수행할 수 있는 PCA 모형에 대해 이야기하고 보여드리겠습니다. JMP Pro는 필요하지 않습니다. PCA 모형은 모형 기반 다변량 관리도 플랫폼에서 사용됩니다. 이 모형을 실행하면 각 데이터 포인트에 대한 잔차와 T² 통계량을 플롯합니다. 따라서 이 잔차를 가져와 저장해야 합니다. 이 잔차를 사용하여 단기 관리도를 작성하여 변화 양상을 살펴보고 예상치 못한 사건을 찾을 수 있습니다. 물론 마지막 단계에서는 차트에 한계와 경고를 설정합니다.
이 차트가 정말 유용할 수 있는 이유, 혹은 제 생각에 정말 유용하다고 생각하는 이유에 대해 몇 가지 이야기해 보겠습니다. 먼저, 이 수직 점선들은 제품 변화를 나타냅니다. 모든 제품이 하나의 차트에 표시되어 있어서 무슨 일이 일어나고 있는지, 어디에 큰 변동이 있는지, 또는 통제 불능 상태가 있는지 확인할 수 있습니다. 모델 기반 다변량 관리도의 장점은 이러한 지점들을 자세히 살펴볼 수 있다는 것입니다. 이를 바탕으로 단변량 분석에서 어떤 매개변수가 잘못되었는지 확인할 수 있습니다. 공통점을 찾을 수도 있고요. 그런 다음 단변량 차트를 더 깊이 파고들어 볼 수 있습니다. 잔차를 모니터링하는 힘은 제가 보여드릴 예시를 위해 하나의 차트에 20개의 매개변수를 쌓았다는 점이라고 생각합니다. 10개의 다른 제품이 있고, 그것을 꺼내서 20을 10번 곱한 개별 차트까지 내려갈 수 있습니다. 각 도구를 사용하면 차트를 더 간단하게 볼 수 있습니다.
좋습니다. 왜 이 접근 방식을 사용해야 할까요? 단기 데이터를 사용하는 고믹스 제품군에 효과적인 것 같습니다. 모델 기반이라 노이즈가 적고, 중요한 부분을 파악하는 데 도움이 됩니다. 스크립팅을 통해 확장하기도 매우 쉽습니다. 한 유형의 도구 세트에서 가져온 방법론을 다른 유형의 도구 세트나 다른 시나리오에 쉽게 복사할 수 있습니다. 그리고 프로세스 엔지니어, 즉 직접 확인해야 하는 사용자에게도 유용합니다. JMP의 시각적 도구와 동적 데이터 연결 기능, 차트를 자세히 살펴볼 수 있는 기능 덕분에 문제를 빠르고 투명하게 파악하고 해결하며 데이터의 핵심을 빠르게 파악할 수 있습니다.
이제 실제 예시를 살펴보고 넘어가겠습니다. 이 예시에서는 기본적으로 차트를 작성하는 스크립트를 작성하고, 스크립팅 단계를 거친 후, 스크립팅 단계를 수정하여 차트의 모양과 느낌을 개선하여 프로세스 엔지니어에게 더욱 유용하고, 작업을 더 빠르고 쉽게 수행할 수 있도록 만들 것입니다.
좋습니다. JMP로 가서 라이브 데모를 시청해 보겠습니다.
이 프레젠테이션과 웹사이트에 저널을 포함시켰습니다. 여기에는 데이터 예제가 있습니다. 스크립트 예제와 스크립트를 개발하는 단계가 있습니다. 데이터 테이블부터 시작해 보겠습니다. 데이터 테이블이 있습니다. 이 데이터는 모두 정규화되고 정리되어 있으므로 사용할 수 있습니다. 도구에 대한 입력인 19~20개의 서로 다른 프로세스 매개변수가 있습니다. 부분이 있습니다. 이 데이터는 이미 준비되었으므로 준비 단계에 대해서는 설명하지 않겠습니다. 그것은 완전히 다른 데이터 정리 및 설정 단계입니다. 우리가 이야기할 것은 이 분석을 수행하는 방법입니다. 이 분석을 수동으로 시작하고 수행하는 경우 이것이 기본 흐름입니다. 바로 여기 모델 기반 다변량 관리도 단계에서 시작하여 잔차를 포착한 다음 거기에서 단기 관리도를 작성합니다.
이 부분을 스크립팅하고 싶습니다. 스크립팅을 더 쉽게 하기 위해 제가 사용해 온 방법 중 하나는 (전문 스크립터는 아니지만) 워크플로 빌더를 사용하는 것입니다. 워크플로 빌더를 켜고 창을 여기로 가져오겠습니다. 지금 당장 녹화하도록 설정하고 최소화하겠습니다. 지금 당장 볼 필요가 없으니까요.
기본 스크립트를 만드는 방법에 대해 알아보겠습니다. 먼저 세 단계에 대한 개요를 복사해서 실행해 보겠습니다. 새 스크립트 창을 열고 개요를 설정합니다. 먼저 모형을 만들고, 그다음 잔차를 만들고, 그다음 단기 관리도를 만듭니다. 이렇게 해보겠습니다. 샘플 데이터 분석 품질 프로세스 모형 기반 다변량 관리도로 돌아가 보겠습니다. 플랫폼은 사용하기 매우 쉽습니다. 모든 입력값을 가져와서 프로세스 매개변수에 입력합니다. By 매개변수에 입력하고 확인을 클릭합니다.
여기에 차트가 있습니다. 생성된 차트가 있습니다. 이것이 우리가 이야기했던 차트입니다. 각각의 다른 매개변수를 살펴볼 수 있는 링크가 있습니다. 다음으로 넘어가서... 다음 단계는 잔차를 캡처하는 것입니다. 잔차를 캡처하려면 각 차트로 가서 열 저장 값을 저장하겠습니다. 이 9~10개 부분을 가리키고 클릭하는 것을 보는 것은 약간 지루하므로 사과드립니다. 노래하고 춤을 추고 싶지만 노래하지 않고 아내와만 춤을 추는데, 잘하지 못하기 때문입니다. 몇 개 더 살펴보고 남은 것을 가져오겠습니다. 이렇게 하면 데이터 테이블에 T² by 부분에 대한 새 열이 만들어지고 데이터 테이블의 각 줄에 대한 잔차 값이 채워집니다. 이제 각 지점에 대한 잔차가 있으며 이를 플로팅할 수 있습니다.
다음 단계에서는 품질 프로세스 메뉴로 돌아갈 수 있습니다.제어 차트 작성기를 열 수 있습니다.여러 제품이 있으므로 변경할 것입니다.같은 차트에 넣을 것입니다.단기 관리도에 넣을 것입니다.부분별로 시작하겠습니다.그것을 가져와서 가져갑니다.그런 다음 이러한 개별 지점에 입력을 플로팅하는 대신 잔차를 플로팅합니다.y축으로 드래그합니다.이제 단기 관리도가 있습니다...다른 부분의 변화를 보십시오.관리 중입니다.관리 불능입니다.이 모든 다른 부분에 대한 변경 사항이 있습니다.처음부터 하려고 했던 것이 거의 이것입니다.이것을 닫고 지금 돌아가겠습니다.되돌아가서 워크플로 작성기를 가져와서 기록을 중지합니다.워크플로 작성기에서 이 차트를 작성하는 모든 단계를 캡처했습니다.
지금 하고 싶은 것은 이 단계들을 수행하고 스크립트에 빌드하는 것입니다.모델 잔차 단기 단계가 있습니다.이 단계들은 워크플로 빌더 내에서 우리가 수행한 단계들과는 다른 단계입니다.그냥 이 단계들을 가져와서 여기에서 스크립트를 복사하여 여기에 추가할 수 있습니다.우리가 가진 것을 간략하게 살펴보겠습니다.모델 기반 다중 매개변수 관리도가 있습니다.부품별 정보가 많이 있습니다.이를 일반 스크립트로 만들고 싶기 때문에 해당 정보를 제거하려고 합니다.이렇게 하면 다른 부품 그룹으로 전송할 수 있습니다.덜 구체적으로 만들고 나중에 더 쉽게 전송할 수 있도록 합니다.자, 이 통화 라인이 있습니다.
다음 단계에서는 모델 기반 다변량 관리 차트를 호출하여 살펴보겠습니다. 마지막에는 이를 객체로 저장했고 T² 플롯의 값을 저장했습니다.
잔차를 포착하기 위해 제가 하고 싶은 작업은 다음과 같습니다. 타이핑할 때 실수를 할 가능성이 높기 때문에 약간은 부정행위를 하겠지만, 기본적으로 잔차를 가져오는 루프를 설정하는 줄을 하나 가져오겠습니다. 즉, T², 값 저장 명령과 동일합니다. 유일한 차이점은 여기에 루프를 돌면서 조정하는 객체가 있다는 것입니다. 다변량 차트를 만들 때 해당 객체의 이름을 여기에 입력할 것입니다.
마지막 단계는 지금 여기로 돌아와서 단기 관리도를 만드는 것입니다. 복사해서 여기로 다시 가져오겠습니다. 단기 관리도 섹션에 추가할 것입니다. 여기서 약간의 정리 작업을 하겠습니다. 이 명령문들을 세미콜론으로 끝내야 합니다.
이 줄을 여기서 이어가지 않을 테니 쉼표는 없애겠습니다. 이게 제 기본 스크립트입니다. 워크플로 빌더에서 모든 내용을 캡처해서 스크립트에 넣었습니다. 이제 실행할 준비가 되었습니다. 스크립트를 실행할 수 있습니다. 다변량 차트와 단기 관리도가 여기에 있습니다. 제가 정말 원했던 것이 바로 이거였습니다. 제가 사용자 입장에서 이걸 보고 "이봐, 내가 바로 싫어하는 건 차트 사이를 이동해서 정보를 얻어야 한다는 거야. 그런데 이 기능은 자세히 살펴보고 다양한 상황을 볼 수 있어서 정말 좋아."라고 생각한다면, 이 기능을 바로 이 차트에 추가하고 싶습니다. JMP를 사용하면 꽤 쉽습니다. 여기로 가서 이 차트의 스크립트를 클립보드에 저장하면 됩니다. 그런 다음 이 스크립트를 가져다가 호버 레벨로 붙여넣고 Graphlet에 붙여넣으면 됩니다.
이제 준비가 되었습니다. 꽤 쉽습니다. 스크립트에 추가하고 싶은데 Workflow Builder를 켜는 것을 깜빡했습니다. 처음 이 작업을 했을 때 정말 기분이 나빴고, 작업하면서 "아!"라고 생각했습니다. Workflow Builder는 제가 작업할 때 이 부분을 포착하지 못했지만, 간단한 해결책이 있습니다. 이 차트의 스크립트로 이동하면 됩니다. 스크립트를 저장하고 스크립팅 창에 저장해 보겠습니다. 그걸 가져올 수 있습니다. 확인해 보면 스크립트와 제 스크립트의 차이점을 알 수 있습니다. 단기 관리도 아래쪽에 있습니다. 다른 점이나 차이가 나는 부분은, "제어판 표시" 이후에 보고서로 보낼 모든 정보와 Graphlet을 생성하여 Graphlet을 설정할 수 있다는 것입니다. 이 모든 정보를 가져와서 여기에 붙여넣겠습니다.
다시 한번, 이 모든 부분 정보를 수집했습니다. 이전에 했던 것처럼 줄을 삭제하겠습니다. 간격을 제대로 맞추었는지 확인하세요. 이제 Graphlet으로 차트를 만드는 스크립트가 있어야 합니다. 여기로 돌아가 보겠습니다. 다시 하고 싶지 않으니 닫겠습니다. 닫겠습니다. 볼 필요가 없으니요. 스크립트를 살펴보겠습니다. 스크립트를 실행하여 원하는 것을 얻었는지 보겠습니다. 바로 여기를 보겠습니다. 붐. 얻었습니다. 좋습니다. 이제 Graphlet입니다. 넣었더니... 물론 같은 것을 다시 얻었습니다. 이것을 보세요. 괜찮지만 개인적으로는 클릭했을 때 보고 있는 부분에 대한 그래프만 가져오고 모든 것을 스크롤하여 한곳에 모으지 않아도 되기를 바랍니다.
제가 할 방법은, 다시 말씀드리지만, 자세히 설명하지 않아서 죄송하지만, 시간을 절약하기 위해 클릭 필터를 추가하겠습니다. 이 클릭 필터를 추가하려면 기본적으로 Graphlet 내부의 그림 명령문으로 들어가겠습니다. 다른 명령을 추가하고 클릭을 기준으로 부분을 정의하겠습니다. 그런 다음 차트를 다시 만들고 로컬 데이터 필터를 추가하여 해당 항목에 대한 차트만 표시하도록 하겠습니다. 이렇게 하면 이제 스크립트를 살펴보고 여기서 지점을 선택할 수 있습니다. 이 시점에서 이것을 클릭하면 클릭 한 번으로 관리 차트를 생성할 수 있습니다. 원래 것과 비교해 보겠습니다. 이것은 22번째 부분입니다. 살펴보겠습니다. 이 차트와 이 차트는 달라 보입니다. 여기서 무슨 일이 일어나고 있는지도 모릅니다.
여기에 두 개의 매우 강력한 통제 불능 차트를 보여드립니다. 여기에는 하나만 있습니다. 보시면 큰 차이점은 이 차트의 주성분 수가 5개라는 것입니다. 여기는 8개입니다. 이 필터를 추가했을 때, 각 부분의 주성분을 다른 수준으로 줄이고 축소하던 다변량 차트 내부의 부분을 잃었습니다. 이 중 하나를 살펴보면 이전에는 8개가 아니었던 모든 것이 이제는 모두 8개라는 것을 알 수 있습니다. 이를 수정할 수 있습니다. 다시 말하지만, 시간을 절약하기 위해 여기에 스크립팅을 추가하려고 합니다. 하지만 이는 무차별 대입 방식이고 더 나은 방법이 있을 것이라고 확신합니다. 하지만 원래 스크립트에서 할 일은 잔차(residuals)를 표에 저장한 후 수동으로 잔차를 가져오는 것입니다. 실제로 제가 하는 방법은 독립적인 주성분 값만 실행하는 것입니다.
영어: 나오는 고유값을 기반으로 해당 구성 요소의 값을 가져오려고 하는데, 루틴이 작동하는 방식은 기본적으로 85% 이상의 주성분 수를 사용하는 것입니다. 해당 데이터를 캡처하고 표에 넣을 것입니다. 그런 다음 해당 표를 사용하여 필터링할 수 있습니다. 클릭 필터에서 여기에도 몇 가지 명령을 추가해야 합니다. 제가 할 일은, 제가 가장 먼저 할 일은 이것을 가져오는 것입니다. 설명하겠습니다. 주성분 표에서 부분이 p와 같은 값을 선택할 것입니다. 그것이 관심 있는 값입니다. 그런 다음 다변량 관리도를 만들 때 두 번째로 할 일은 추가하고 구성 요소의 수를 설정하는 것입니다. 부분 수를 쉽게 조정할 수 있도록 하기 위해 다른 모든 시간 동안 부분별로 삭제한 것입니다. 이를 통해 이제 부품의 수가 더 유연해지고 조정이 더 쉬워졌습니다.
이제 이걸로 무엇이든 전환할 수 있어요. 모든 걸 제대로 복사해서 붙여넣었는지 봅시다. 여기서 뭔가가 엉망이 될 것 같지만, 제대로 되는지 봅시다. 아세요? 모르니까 두 번 할 거예요. 화면에 몇 가지가 날아올라 튀어나오는 걸 보여드렸어요. 가장 먼저 보여드리고 싶은 건, 이 부품과 구성 요소 표가 있다는 거예요. 부품 22는 5개의 구성 요소 전에 살펴본 거예요. 몇 번 확인했는데, 다 괜찮아요. 이 표가 있어서 좋네요. 각 부품에 클릭 필터가 들어갈 거예요. 이 값을 가져와서 올바른 차트가 나오는지 확인하세요. 제 차트는 이겁니다. 이제 다시 단기 관리도가 생겼어요. 수직 점선이 갈 때마다 부품을 바꾸고 있어요.
OC가 여러 개 있고, OC가 아닌 것도 몇 가지 있습니다. 이 차트가 무엇을 의미하는지 살펴보겠습니다. 들어가서 하나를 골라 다른 화면에 띄웁니다. 이 차트가 있고, 이 차트를 자세히 살펴볼 수 있습니다. 단변량 관리도에서 관리 범위를 벗어난 몇 가지 사항이 있습니다. 빨간색으로 표시되어 있습니다. 이 막대 중 하나를 클릭하고 해당 차트를 자세히 살펴볼 수 있습니다. 개별 차트를 보고 "좋아, 이게 전부구나. 무슨 뜻인지는 모르겠지만."이라고 말할 수 있습니다. 이 차트는 열어두고, 안으로 들어가 보겠습니다. 여기에는 세 가지가 있습니다. 여기서 무슨 일이 일어나고 있을까요? 이 차트를 클릭하고 열고, 여기에 보이는 세 개의 관리 범위를 벗어난 점을 선택하겠습니다.
이제 들어가서 가리키고 클릭하는 대신 메뉴에서 기여도 플롯을 볼 수 있지만 한 번에 모두 불러올 수 있습니다. 차트를 개별적으로 클릭할 필요가 없습니다. 특히 여러 항목을 볼 때 이 기능이 정말 마음에 듭니다. 각 샘플의 차트를 서로 위에 쌓아 올리기 때문이죠. 공통점이 있다면 무슨 일이 일어나고 있는지 빠르게 알 수 있습니다. 이것은 여기에 뭔가 있습니다. 이것들은 없지만 바로 여기 중간에 이 네 가지가 모두 다릅니다. 저에게는 흥미로운 점입니다. 제가 탐구해 보아야 할 것입니다. 이것을 보았을 때 같은 네 가지 입력이 여기에서 같은 신호를 가지고 있었지만 이것은 달랐습니다. 아마도 체계적인 문제가 있을 것입니다. 더 나아가 물론, 이 차트를 자세히 살펴보고 개별적으로 볼 수 있으며 이것이 모두 다르기 때문에 흥미롭습니다.
모두 OC는 없었지만, 방향이 서로 다른 OC를 가지고 있습니다. 두 개는 높고, 하나는 낮습니다. 흥미롭네요. 이 차트에서 한 지점만 이동하면 빠르게 분석하고 공통점을 찾아 조사할 부분을 찾을 수 있는 도구가 생겼습니다.
마음에 드는데, 몇 가지 통찰력을 드리겠습니다. 이 차트들을 살펴보면 여러 가지 문제점을 발견했습니다. 밸브가 제대로 켜지고 꺼지지 않는 문제도 있었고, 공정 설정에서 필요 이상으로 가스를 흘려보내는 문제도 있었습니다. 불필요한 돈을 낭비하고 있는 것도 문제였습니다. 문제라고 해야 할지 모르겠지만, 입력값을 불안정하게 만드는 문제가 발견되었는데, 이는 제품 자체의 불안정성을 야기할 수 있었고, 어쩌면 다른 곳에서는 측정하지 못했을지도 모릅니다. 아직은 알 수 없습니다.
입력을 살펴보고 입력이 얼마나 잘 수행되는지 확인하고 입력에서 비정상성을 찾아내는 상황에서는 비용을 절감하고 잠재적인 문제를 피하는 데 도움이 될 수 있습니다.
데모는 여기까지입니다. 여러분과 공유하고 싶은 슬라이드가 하나 더 있습니다. 참고 자료는 여러 가지가 있습니다. 먼저 작년 Discovery에서 보고 JMP 온라인에서 Mike Anderson의 단기 관리도 프레젠테이션을 다시 살펴봤습니다. 저에게는 정말 도움이 되었습니다. Don Wheeler의 Short Run SPC 책도 추천합니다. 관심 있으시다면 정말 유용하고 따라 하기 쉽습니다. 좋은 자료가 많습니다. 혁신적인 관리, 차트 작성, 현명하고 공정한 방법론을 제시합니다. 이 책 또한 귀중한 자료의 보고이며, Jump 애플리케이션의 많은 부분과 잘 어울립니다. 추천합니다. JMP 커뮤니티의 다변량 분석법 프레젠테이션도 찾았습니다. 정말 유용했습니다. 마지막으로, 이 아이디어를 추진하도록 격려해 주시고 스크립팅 관련 문제들을 해결하는 데 도움을 주신 Rocky Mountain JMP 팀의 Jed Campbell에게 특별히 감사드립니다. 시간 내주셔서 감사하고, 남은 하루도 잘 보내시길 바랍니다.