En una operación de fabricación de semiconductores, es fundamental mantener el rendimiento, la duración del ciclo y la calidad del producto debido a sus costosos y complejos procesos. El aumento de la pérdida de componentes en la sonda unitaria (UP) de un dispositivo calificado generó inquietudes sobre la entrega y requirió la mitigación de riesgos. La gerencia solicita con frecuencia una estimación del riesgo potencial de desperdicio por rendimientos inferiores al mínimo o por exceder los límites estadísticos de la sonda. Los grupos de planificación necesitan saber si se necesitan nuevos lotes de obleas para cubrir la escasez de matrices, mientras que los grupos de producto están interesados en conocer el impacto en el rendimiento en la sonda unitaria. Como propietario del dispositivo, utilicé técnicas de minería de datos para identificar los cambios en los parámetros de la sonda paramétrica que corresponden a la pérdida de componentes en la UP y tomé decisiones avanzadas basadas en modelos predictivos.
En esta demostración, se extrajeron y depuraron datos de sondas unitarias y de clase de la base de datos de producción. Los datos recopilados se dividieron en conjuntos de datos de entrenamiento, validación y prueba. Se evaluaron y analizaron cuatro modelos a nivel de oblea. Se seleccionaron modelos de árboles de decisión de clasificación y modelos de clasificación de bosque bootstrap para el análisis de respuesta categórica (desecho o no), mientras que se compararon modelos de regresión lineal y modelos de regresión de bosque bootstrap para el análisis de respuesta continua (% de caída de bin UP). La selección de modelos ayudó a reducir los parámetros de cientos a unos pocos. La decisión final resultante sobre la disposición de las obleas se tomó con base en el modelo predictivo construido.
Cuando la respuesta UP estuvo disponible en el conjunto de datos de prueba, se comparó la precisión de los dos modelos de predicción entre las caídas de bin predichas y probadas.
Me llamo Su-Heng Lin. Trabajo en NXP Semiconductors. Como propietario de un dispositivo en una planta de fabricación de semiconductores, es fundamental mantener el rendimiento, la duración del ciclo y la calidad del producto debido a sus costosos y complejos procesos. Cualquier problema de rendimiento puede poner en riesgo la entrega y requiere medidas de mitigación. En este caso práctico, demostraré cómo usar JMP, una plataforma de modelado predictivo, para tomar decisiones avanzadas en la fabricación de semiconductores.
Este es un ejemplo del flujo del proceso de fabricación de obleas de semiconductores. Comenzamos con 25 obleas de silicio en el lote de obleas. Las 25 obleas se someterán a diversos procesos para desarrollar dieléctricos o un material conductor. Posteriormente, se patentarán para convertirlas en circuitos integrados* dentro de una matriz. En este caso práctico, la tecnología implicó más de 300 pasos de proceso. El ciclo de fabricación de la oblea toma aproximadamente 9 semanas, y se patentará para que podamos continuar y enviarla.
Antes de que la oblea se envíe al extranjero para las pruebas de circuitos, debe pasar la prueba de aceptación de oblea, también conocida como "Sonda de Clase". Estas sondas de clase prueban cada dispositivo para garantizar el estado de cada oblea. Si la oblea está en buen estado y se envía al extranjero, en este caso, se somete a la prueba de sonda unitaria. En este momento, se realiza la prueba en cada uno de los dados. Se prueba todo el circuito integrado.
Todos los dados se prueban y se clasifican en una categoría de aprobados o en una de las categorías de fallas. El blanco representa un buen aprobado, y aquí pueden ver un color diferente para la categoría de fallas. Además de monitorear el rendimiento de mi pieza (la parte A), también monitoreamos el rendimiento de la categoría. En este caso, les mostraré la categoría n.° 6. Es una de las categorías con las que tuvimos problemas recientemente.
Este es el gráfico de entrenamiento para el BIN#6 normalizado para todos. Pueden ver que este límite estadístico se calculó con base en datos históricos. Esta línea representa si alguna oblea (cada uno de los datos en este gráfico) excede estos seis criterios abiertos, será desechada. Esto no significa que su rendimiento sea cero para ser desechada. Se desechará. Pueden ver que recientemente, en la zona amarilla, tenemos muchas obleas desechadas debido al elevado problema del BIN#6.
Hay otro lote; parece estar bien, no excedió el límite, pero también está elevado. La gerencia viene y pregunta: "¿Estamos bien? ¿Conocemos el estado de nuestra oblea para la parte A?". Para responder a la pregunta, debo tomar algunas decisiones. Primero, tengo 150 obleas de seis lotes diferentes. Están en la sonda de clase de final de línea. Tienen los datos de la sonda de clase, pero ¿queremos enviar el lote a la sonda de unidad para su supervisión? ¿Sufrirán el descarte del BIN#6? Eso es lo primero que necesito saber y debo tomar una decisión. ¿Debería enviarlo? ¿Corren un alto riesgo?
En segundo lugar, si han sufrido una pérdida de rendimiento, pero no a nivel de script, ¿cuántas obleas se verán afectadas? ¿Cuántos dados perderemos? ¿Haré que el cliente se quede sin trabajo por no poder entregar los dados y las fluctuaciones a tiempo? Por último, como propietario del dispositivo, necesito saber qué puede estar causando un cambio en la línea. Si bien no falló la sonda de clase, quizás se deba a la interacción entre sus parámetros. Estos son los responsables del elevado error de BIN#6. Necesito saberlo. Puedo recomendar a los ingenieros de procesos en línea cualquier cosa que podamos hacer para mantener la buena calidad del colorante de las obleas.
Lo que necesito aquí es un modelo predictivo que me ayude con la evaluación de riesgos en esta situación. El primer paso para construir un modelo predictivo es definir mis respuestas y predictores. Voy a usar el parámetro de la sonda de clase que recopilamos de cada oblea. Dado que recopilamos más de un sitio, usaré la mediana de la oblea para esas sondas de clase. Tenemos un total de 173 factores continuos. Existe cierta autocorrelación entre estos 173 factores debido a que, en un transistor, extraemos el voltaje umbral y establezco la corriente de excitación. Existe cierta autocorrelación entre estos 173 parámetros.
Para la respuesta, obviamente, usaremos la respuesta de BIN#6. Tenemos más de 2000 datos de obleas en mi base de datos. Los usaré todos. La respuesta de BIN#6 normalizada es la respuesta continua que usaré. Pueden ver que este es el histograma de mi patrón de respuesta de BIN#6 normalizada. Este es el límite estadístico del bin. Cualquier valor superior lo descarté.
Pero quiero tener criterios más estrictos durante este proceso de minería de datos. Los limito al 90 % de la distribución BIN#6, que en este caso equivale a 0,187. Cualquier valor que falle o sea inferior a 0,187 se define como obleas en buen estado. Si es superior, es una oblea en mal estado, aunque no se descarte. Así es como defino la respuesta categórica en estos modelos predictivos. De esta manera, obtengo unos 200 parámetros. Estos son mis parámetros en buen estado, y tengo 1800, que son mis obleas en buen estado.
Definimos los parámetros, la respuesta y los predictores en la diapositiva anterior. Les presentaré cuatro técnicas de modelado sencillas en JMP, la plataforma de modelado predictivo, que pueden ayudarme a realizar predicciones rápidas y precisas para tomar una buena decisión. Para la respuesta categórica (buena o mala en seis casos), usaré el árbol de decisión y el bosque Bootstrap. El bosque Bootstrap se usará nuevamente para predecir la respuesta de regresión, que es mi resultado normalizado de BIN#6. Lo compararé con un modelo de ajuste: la regresión lineal escalonada.
Después de la demostración de cuatro de estos modelos, les mostraré cómo elegir cuál usar. Compararé el R² para decidir qué modelo usaré. Además, la ventaja de usar el modelo predictivo es que espero que me proporcione los parámetros clave de la clase responsables de mi problema con BIN#6.
El primer paso para realizar la minería de datos en el modelado de predictores es: tengo 2000 conjuntos de datos. Los dividiré en conjuntos de datos de entrenamiento y de validación. Podemos hacerlo con el modelado de predictores de JMP. Debemos seguir la recomendación de evaluación honesta. Es bueno que el JMP esté predeterminado, como les mostraré. Sí, podemos ir a Analizar, Modelado de Predicciones y a la columna de validación.
Algo que quiero asegurar es que, dado que tengo 25 obleas por lote, ahora pasan por el proceso juntas. Quiero asegurarme de tener un representante para cada lote que se va al conjunto de datos de entrenamiento y al de validación. Obtuve la certificación usando el lote de origen, que es el ID de mi lote de obleas, y luego diré "Aceptar". Como pueden ver, el valor predeterminado en JMP ya sigue la recomendación de evaluación honesta: 75 % para el conjunto de datos de entrenamiento y 25 % para el de validación. No voy a ejecutar esto aquí porque ya creé la columna de validación. Así es como se puede generar la columna de validación, y la usaremos para el modelo que vamos a demostrar.
Regresemos aquí. Recuerden que mencioné que tengo 150 obleas en la Sonda de Clase, pero no tengo la retroalimentación de la Sonda de Unidad. Desconozco la repercusión de BIN#6 y quiero saberlo. Incluso con las 150 obleas en mi conjunto de datos de prueba en la Sonda de Clase, siguen el grupo de evaluación honesta, así que estoy listo. Primero, les mostraré la respuesta de clasificación usando el Árbol de Decisión. Regresemos a JMP. Este es mi conjunto de datos. Está en "Analizar Modelado Predictivo". Estaremos aquí un par de veces hoy, y está en la petición. Hagan clic en la petición; podrán ver que sí, tengo el Árbol de Decisión.
Este es el método que voy a usar para mi modelo predictivo. Puse la columna de validación que creé aquí. Uso la clase BIN#6, que es buena versus mala. Puedes ver aquí, esta es mi clase BIN#6. Tengo mis datos de sonda de clase 173 aquí. Los oculté en esta tabla de datos, pero puedes ver que son 173 aquí. Vamos a hacer clic en Aceptar. Sí, este es mi árbol de decisión. Ya coloreé previamente lo malo en rojo y lo bueno en azul. Puedo mostrarte manualmente cómo hacer la división primero. El JMP hará la división en función de lo que haga la diferencia más significativa entre lo bueno y lo malo. Aquí, muestra la resistencia de RSP+. Si es superior a 148, tengo esta oblea mucho más mala que cuando tenemos una resistencia menor a 148. Esta es la primera división. Fondo JMP.
Puedo continuar con el segundo. Encontró el ToxP; si es menor de 145, ¡vaya! Tengo una oblea mucho más mala de lo que se puede lograr con una alta y normalizada caída de BIN#6, con una combinación de mayor resistencia y menor malestar. Puedo seguir con eso principalmente, o puedo ir, y luego podemos pedirle al JMP que me ayude a hacer la división. Se detuvo después de la sexta división.
Veamos el R². El R² para el entrenamiento es de aproximadamente el 67% y para la validación, de aproximadamente el 60%, lo cual no está mal. Hay algo aquí en el triángulo rojo junto a la petición para la clase BIN#6. Me gustaría ver la contribución de la columna. Esto me ayudará a comprender cuáles son los parámetros que JMP resumió. Además de los dos, ISP+ y ToxP, JMP también encontró otros dos parámetros, pero con la última contribución a la repercusión de BIN#6. Cerraremos esta ventana, minimizaremos JMP y volveremos aquí. Estos son los dos datos que registré: el R² para este modelo y la contribución de la columna.
Pasemos al siguiente modelo. Les mostraré la misma respuesta de clasificación, pero usaré otro modelo de partición llamado Bosque Bootstrap. Vayamos a mi JMP. Sí. Vayamos a Analizar, Predecir Modelado, y el Bosque Bootstrap está justo debajo de la posición aquí. Validación, volveremos a la validación. Voy a realizar la respuesta categórica, bueno versus malo. Mi predictor en Class Probe está en los factores X.
Digamos, OK. JMP por defecto, lo simplificaré. Seguimos la recomendación de JMP. Construiremos 100 árboles en el bosque. Veamos. Resumirá el promedio de la variabilidad. Es más estable que el árbol de decisión, que solo tiene un árbol. Ahora, tenemos el promedio de 100 árboles y podemos encontrar el R². Generalizando el R², me dice: "Mi R² puede ser de hasta el 90% para mi conjunto de datos de entrenamiento y del 80% para mi validación". Pueden ver que, dentro del bosque Bootstrap, mejoró el R² tanto para el conjunto de datos de entrenamiento como para el de validación.
También podemos revisar la contribución de la columna. Tenemos resaltados de nuevo los resistores y el espesor del óxido. Además de los cuatro parámetros, el Bosque Bootstrap, al ejecutar 100 árboles, nos proporciona muchos más parámetros, pero con un impacto mínimo en el BIN#6 normalizado, tanto bueno como malo. Mantendré este modelo porque funcionó mejor que el Árbol de Decisión. Lo minimizaré por ahora y volvamos a mi presentación. Tenemos un R² muy bueno y tenemos los dos parámetros resaltados.
Pasemos a la respuesta continua. Este es el modelo de regresión que voy a demostrar. Usaremos la regresión lineal de ajuste escalonado. Esta es mi tabla de datos. Vaya a "Analizar modelo de ajuste". En lugar de predecir el modelado, usaré el modelo de ajuste. Es otra forma de construir un modelo. No tengo espacio para la validación porque usaré los más de 2000 datos para crear la correlación. Supongamos que queremos crear el modelo de regresión. Usaré el resultado continuo normalizado de BIN#6 en mi Y, y elegiré el parámetro Class Probe 173 como el efecto principal del efecto de mi modelo.
Puedes realizar la macro para graduar dos. Ahora verás la interacción entre cualquiera de los dos factores. Pero tomará mucho tiempo, así que no la ejecutaré aquí. Solo usaré el primer orden. Dado que tengo tantos predictores, prefiero usar el modelo escalonado. Es más robusto. Ejecuta los modelos. De nuevo, seguiré la recomendación de JMP. Usaré el BIC mínimo como regla de parada, y la dirección escalonada será hacia adelante. Seguiremos introduciendo parámetros hasta que tengamos un buen modelo.
Ejecutarás el modelo. Tómate unos segundos. Sí. Una vez terminado, puedes ver que obtuve R² y R² ajustado. Está alrededor del 74%, bastante bien. Esos dos números son muy cercanos. Analicemos nuestro modelo. Este es mi modelo para la regresión lineal. Me dio el ISP+. Ahora, resáltalo, pero el espesor de óxido, el otro, es un poco bajo. Muchos otros parámetros muestran una fuerte correlación con mi BIN#6 que contribuyó a la caída normalizada de BIN#6. Esto se debe a que tengo un gran conjunto de datos, más de 2000 obleas, por lo que es fácil encontrar la correlación. Nos detendremos aquí y luego volveremos a mi PowerPoint.
Este es el R² y este es el efecto del resumen de qué parámetros son importantes en este modelo de regresión lineal de ajuste escalonado. El siguiente modelo que voy a demostrar es el Bosque Bootstrap. Este es un modelo de muy buena precisión, ya que también maneja la regresión con bastante eficacia. Regresemos a mi archivo JMP. Analizar el modelo predictivo y el Bosque Bootstrap.
Si ya has usado JMP, sabes que podemos recuperar la configuración. Pero voy a reemplazar el resultado categórico del BIN#6 con mi resultado normalizado del BIN#6, que consiste en factores continuos. De nuevo, seguiré la recomendación de JMP de usar 100 árboles en mi bosque. Tardará unos segundos, pero no demasiado. Veamos. El bosque Bootstrap para el BIN#6 normalizado me da... ¡Guau! Mi R² ronda el 0,977, un 98 % para mi conjunto de datos de entrenamiento. Para el conjunto de datos de validación, obtuve un 91 %. Todo esto se basa en el otro modelo que acabo de mostrar: la regresión lineal. Voy a conservar este y lo revisaremos antes de continuar.
Contribuyentes de columna. Tenemos las mismas dos resistencias y el mismo espesor de óxido, resaltados. Tenemos otras dos con valores altos, pero muchos otros parámetros contribuyen poco al modelo. En este caso, si desea crear un modelo reducido, puede resaltar los dos parámetros aquí y acceder a "Analizar", "Ajustar modelo" y luego a "Macro". Me gusta usar el servicio de respuesta. ¿Por qué? Porque capturo el efecto principal, la interacción y el efecto cuadrático.
Puedo asignar mi BIN#6 normalizado a Y y, como no tengo muchos predictores, usaré un mínimo cuadrado estandarizado y lo ejecutaré. Este es el modelo que se puede obtener y, a partir de aquí, se puede reducir. Este es un modelo reducido que solo me da el 65 % del R². Es bueno, pero puede ser más estable al no involucrar tantos predictores. Es más fácil explicar el modelo, pero el sesgo será mayor porque no tiene todos los demás parámetros que resalta el modelo de Bosque Bootstrap.
Volvamos a mi presentación. Ahora que hemos terminado los cuatro modelos, veamos la comparación de R². No es justo comparar la regresión lineal por pasos, ya que no utiliza la misma plataforma y no se trata del entrenamiento frente a la validación, sino del R² frente al ajuste de R². Sin embargo, pueden observar que mi Bosque Bootstrap, tanto para los datos de clasificación como para los de regresión, tiene una respuesta muy alta, superior al 90 % para el entrenamiento. También es la más alta para el conjunto de datos de validación. Decidí usar ambos para mi predicción correcta frente a la incorrecta, así como para mi estimación de las consecuencias de BIN#6.
Entonces, veamos, ¿cómo lo estimo? Vuelvo aquí y recuerdo que este es el de mi Bosque Bootstrap para los datos de clase: bueno versus malo. Para usar el modelo predictivo, voy al triángulo rojo y guardo las columnas. Guardaré la fórmula de predicción. Pueden ver que rápidamente el JMP me da la probabilidad de malo versus bueno. Entonces dirán: "Probablemente, clase BIN#6".
Si van al final de mi conjunto de datos, pueden ver que tengo esas 150 obleas que oculté al crear un modelo. Pero la ecuación generada por el modelo se aplica a esas 150 obleas y predice: "Bien, tendré una oblea defectuosa de este lote, el lote D, la oblea uno y las demás. El lote C tiene muchas obleas defectuosas, y tenemos el lote A con algunas obleas defectuosas". Es una forma muy rápida de saber cuántas obleas están en riesgo. Pero este solo me da buenas y malas. Voy a comprobarlo si conozco...
¿Cuál es la probabilidad estimada de BIN#6? Si puedo obtener ese número, sería aún mejor para ayudarme a tomar la decisión correcta. Este no es el que quiero. Es este. Quiero este. Ese es el bosque Bootstrap para la probabilidad normalizada de BIN#6, el modelo de regresión. De forma muy similar, les mostraré un triángulo rojo y guardaré la fórmula de predicción. Me dará el predictor normalizado. Permítanme minimizarlo. Para cada una de las 150 obleas bajo prueba en la columna de validación, obtuve un número predictivo para la probabilidad de BIN#6. Así es como se usa el modelado predictivo en JMP para obtener el número estimado para evaluar el riesgo de esas 150 obleas.
Al final, sabemos que aproximadamente 47 obleas estarán defectuosas, lo que implica una alta tasa de desecho de BIN#6. Sin embargo, ninguna de ellas activará el límite de desecho. Decidimos: "Bien, enviaremos esas 150 obleas a Uniprobe. Cuatro semanas después, recibiremos los datos de Uniprobe y revisaremos la calidad de nuestro modelo". La decisión es enviar la oblea porque no la necesitamos... Ahora bien, la oblea representará un riesgo de desecho. Además, no necesitamos comenzar un nuevo lote porque el impacto general en la matriz de la tasa de desecho de BIN#6 estimada no es suficiente para justificar el inicio de una nueva pieza como una gran mejora.
También aprendí cuáles dos parámetros son clave para la falla de BIN#6. Tras hablar con nuestro experto en la materia, el equipo decidió trabajar con la resistencia alta. Podemos realizar un análisis de ventana del proceso para ver si podemos reducir la resistencia y mantener el rendimiento de la pieza A. El otro parámetro, ToxP, es un proceso por lotes. Se pueden procesar diferentes piezas con la misma tecnología. No es adecuado para realizar cambios en el proceso. El equipo decidió ajustar el límite de control en línea para garantizar un rendimiento estable para este ToxP.
Cuatro semanas después, recibimos la retroalimentación de Uniprobe de estas 150 obleas. Pueden ver que, sí, tenemos dos lotes que son mayores que cuatro para el porcentaje principal de BIN#6. Este es el porcentaje previsto de la falla de BIN#6. La correlación es de aproximadamente el 71%. No es mala. Me ayuda a tomar la decisión correcta. Ahora, he superado el criterio de 0.187, sin un alto riesgo. Pero pueden ver, obviamente, que un lote, el lote C, se comporta de manera extraña. Revisamos el historial de procesamiento del laboratorio y nos dimos cuenta de que el lote C no es un producto estándar. Se utilizó para una evaluación de cambio de proceso. Tenemos que excluirlo del modelado. Con eso, podemos mejorar nuestro R² hasta un 80%.
En resumen, busco un modelo predictivo que me ayude a tomar decisiones acertadas rápidamente, sin usar el DOE, que tarda meses en obtener el lote. Este modelo debe gestionar la autocorrelación sin mucha manipulación de datos ni estar limitado por la memoria del ordenador. Hablamos de la prepartición y el Bosque Bootstrap para datos categóricos; son útiles para gestionar predictores grandes y numerosos. Además, no se preocupa por los predictores autocorrelacionados.
Hablamos del Bosque Bootstrap, que también supera a la regresión lineal. Permite gestionar tanto los datos de clasificación como los de regresión, y es muy eficaz con predictores grandes y autocorrelacionados. Espero que esto les haya sido útil y les ayude a probar su primer modelado predictivo con el software JMP, para que puedan tomar decisiones fundamentadas basadas en los datos. Con esto termina mi presentación. Gracias por su atención.