1 puntos por GN⁺ 2024-04-19 | 1 comentarios | Compartir por WhatsApp

¿Qué es el effort?

  • El effort se refiere a la energía, el tiempo y los recursos que se invierten para lograr una tarea o alcanzar una meta
  • Significa el trabajo y la dedicación necesarios para superar obstáculos o conseguir el resultado deseado
  • El effort puede ser físico o mental
    • esfuerzo físico, como la energía usada para levantar objetos pesados o correr un maratón
    • esfuerzo mental, como la concentración y la fortaleza mental necesarias para resolver problemas complejos o aprender nuevas habilidades
  • Es un elemento clave para lograr el éxito en distintas áreas de la vida, como el crecimiento personal, el trabajo y la educación

Opinión de GN⁺

  • El effort no es solo la cantidad de tiempo o energía que se invierte, sino un concepto en el que también intervienen de forma compleja factores como la constancia, la concentración y la motivación. Por eso, esforzarse mucho no garantiza necesariamente el éxito
  • Especialmente en trabajos que requieren effort mental, hay que tener cuidado de no caer en burnout. Es importante encontrar formas de sostener el effort mediante descansos y recompensas adecuadas
  • La forma de aplicar effort puede variar según la persona. Algunas pueden concentrarlo intensamente en periodos cortos, mientras que otras pueden mantenerlo de manera constante a largo plazo. Lo más efectivo es encontrar el método que mejor se adapte a uno mismo

1 comentarios

 
GN⁺ 2024-04-19
Opiniones de Hacker News
  • El algoritmo poda parámetros en tiempo real y vuelve dispersa la matriz de pesos al poner en 0 los pesos con menor valor absoluto dentro de cada grupo
  • Al buscar sobre poda de modelos, aparecen muchos artículos que usan como línea base la "poda basada en magnitud"
    • Pero esos artículos implementan pésimo la línea base para exagerar su propio método, y usan muchos términos matemáticos para explicarlo
    • En cambio, la publicación original del blog explica el método de forma que hasta gente con muy poco conocimiento previo pueda entenderlo
  • Una línea de la sección de implementación en GPU fue especialmente llamativa
    • "Un principiante en programación de GPU preguntará '¿cómo funciona?', y alguien con experiencia preguntará '¿pero cómo demonios funciona esto?'"
  • A eso de voltear la matriz, ordenar los elementos por fila y luego volver a mirar la multiplicación desde esa dirección lo llaman formato "compressed sparse row (CSR)"
    • Para hacer la multiplicación, se toma un 1 del vector, se multiplica por 256 y luego se suma a la tercera fila del vector de salida, y así sucesivamente
    • La propuesta es ver qué pasa si se recorta la última columna, la de los valores más pequeños
  • Propuesta de nombre para la idea: "lobotomize"
  • Esto se parece a la dispersión semiestructurada (2:4), así que valdría la pena compararlo explícitamente
    • Esta técnica está optimizada para Apple Silicon, es ~2x más rápida con 75% de dispersión, es dinámica y depende de la entrada, se aplica en tiempo de ejecución, y permite elegir el grado de dispersión
    • En cambio, la dispersión semiestructurada 2:4 está optimizada para GPUs con sparse tensor cores, es ~2x más rápida con 50% de dispersión, es estática y se aplica cuando el modelo está inactivo, y parece dar peores resultados que esta técnica con 50% de dispersión
    • Sería interesante comparar los resultados de la dispersión semiestructurada con 50% de dispersión (2x de mejora de velocidad) con los de esta técnica con 75% de dispersión (2x de mejora de velocidad)
  • Por mi experiencia usando CSR, esto no sorprende, y algunos formatos más nuevos como block ELL, aunque hacen el código más complicado, pueden tener más afinidad con el hardware al evitar lecturas/recolecciones desordenadas
  • Una latencia de 15 ms se ve parecida al vsync de 60 Hz (16.7 ms), así que si la pantalla se actualiza una vez por token podría haber sincronización de alguna forma
  • Gracias por esta contribución tan genial y abierta. Voy a seguir de cerca su implementación en llama.cpp. Había estado buscando una forma de acelerar la inferencia en CPU y me gusta esta idea de "effort"
  • ¡Gran publicación! Tengo mucha curiosidad por el rendimiento por VRAM en comparación con la cuantización. ¿Hay planes de implementar una versión multiplataforma?
  • Esto parece estar relacionado con https://arxiv.org/abs/2312.12456 y https://github.com/SJTU-IPADS/PowerInfer