OBJETIVO: revisión de aspectos que rodean el desarrollo de una solución de software
Conocer con qué debemos articular esa sólida base matemática de soluciones a problemas de la vida
diaria.
1
Esto lo dice el presentador … o lo digo yo?
2
Cuando me ví metido incluído en la charla, hice inicialmente un listado preliminar de los proyectos
en los que he participado y que recuerdo que tienen que ver con la temática, y salieron los que están
en el slide…
3
Pero no tenía certeza que fueran relacionados con Inteligencia Artificial, pues los temas concretos
con los que había trabajado eran Machine learning / técnicas estadísticas, Deep Learning o
procesamiento de lenguaje natural, hasta que encontré el gráfico que se muestra en el slide (y no es
el propósito entrar en una discusión filosófica sobre el tamaño de los círculos o la importancia de
cada uno de ellos ).
REFERENCIAS
• http://blog.admanmedia.com/inteligencia-artificial-marketing/
• https://medium.com/@experiencIA18/diferencias-entre-la-inteligencia-artificial-y-el-machine-
learning-f0448c503cd4
Antes se creaban los conceptos o técnicas, pero no se tenía el hardware necesario.
Actualmente existe un potencial a explotar en un mundo de sensores, donde técnicas
estadísticas+DataMining / InteligenciaArtificial+MachineLearning+DeepLearning se aplican en varios
campos, y con infraestructuras tipo cloud se puede realizar el entrenamiento de modelos.
Estas técnicas que tiempo atrás fueron creadas, hoy en día son implementables dado que:
(1) El costo de almacenamiento ha bajado, por lo cual podemos almacenar mayor cantidad de
información
(2) El poder de cómputo ha aumentado
Teniendo estos 2 insumos, no nos queda más que comenzar a enseñarle a este tipo de máquinas a
“aprender de la experiencia”.
4
Cuando aumenta el número de variables del problema y también la cantidad de datos
y no conocemos una fórmula o ecuación que a pueda modelar, podemos usar
técnicas de machine learning como apoyo.
En el negocio muchas veces se inicia con técnicas mediante las cuales el resultado
permita explicar la forma en la cual se obtuvo una respuesta acertada (como por
ejemplo usando árboles de decisión o bayes). Posteriormetne incorporar algunos
modelos más precisos pero que no se pueden explicar de manera intuitiva a un
experto.
ANEXOS:
• SUPERVISED: queremos obtener una variable de salida, mediante n-variables de
entrada. Mediante ejemplos queremos que la máquina haga la predicción.
Podemos poner a clasificar a la máquina (es decir, que la salida esperada debe
pertenecer a m-grupos), o bien, queremos obtener un valor numérico (regression)
• UNSUPERVISED: queremos conocer la estructura innata de los datos, sin conocer
dicha estructura. Mediante algoritmos de clustering se agrupan datos mediante su
similitud, o mediante algoritmos de asociación, se trata de descubrir reglas
frecuentes que aplican para ellos (ejemplo: si lleva leche y cerveza, también llevará
huevos)
Otros tipos de datos más complejos
• Audio (traducción automática)
• Video (tagging, inteerpretación)
• Texto (procesameinto de lenguaje natural / ocr)
Otros tipos de análisis:
• Filtering (collaborative/content-based): mejor experiencia para los clientes
• Outlier detection (detección de intrusos, corrupción)
4
Sin embargo el concepto para el cual fui gratamente postulado para la charla fue la de Arquitectura
de Software.
Entonces el plan para la charla es desde el punto de vista de la empresa, cómo doy soluciones sobre
las cuales pueda usar "inteligencia artificial".
Como cualquier producto, debemos tener una base sólida sobre la cual lo construimos, cumpliendo
los requisitos funcionales del producto (SMART), como los no funcionales: no queremos que a la
primera carga de la aplicación, el sistema se nos desbarate (como les pasó a las primeras casas de
los cerditos), y debemos tener claros los planos de lo que construimos. Comenzamos con un diseño
simple de lo que construímos (sus partes constitutivas y las relaciones entre ellas), pero cuando el
negocio es más grande, se requiere la intervención de lo que se llama Arquitectura Empresarial.
REFERENCIAS
* http://estrategia.gobiernoenlinea.gov.co/623/articles-15094_presentacion.pdf
5
• Cuando el tamaño de los negocios comienza a crecer, un área llamada arquitectura empresarial
es un “truco” interesante para abordar esta realidad. No es lo mismo entender el sistema de
información de la panadería de la esquina, a la forma en la cual una empresa basada en tecnología
como uber, usa sus servicios tecnológicos para despacharnos un auto y cobrar.
• ARQUITECTURA EMPRESARIAL, Es la alineación tecnológica basada en apoyar los objetivos de la
empresa, buscando mayor agilidad. Para ello,
• Entendemos las necesidades y dinámicas de la empresa de hoy en día
• Usamos Tecnología como articulador de las necesidades del negocio actual
• Entendemos características de la solución a lograr tanto en lo funcional (lo que ve el
usuario) como en lo no-funcional (para que el usuario no diga por ejemplo: esta cosa está
muy lenta)
• iniciando con un assestment inicial, definiendo la brecha a atacar para llegar a un estado
deseado, y creando iniciativas/proyectos/productos que le permiten cursar esa transición.
• Los proyectos son el mecanismo normal de división del trabajo en una empresa para
cambiar un estado actual AS-IS en un estado deseable (TO-BE). Mediante un análisis de esa
brecha, identificamos el problema o preocupación de un área de la empresa para poderlo
materializar en un proyecto o producto a realizar. Normalmente se observa no sólo el costo
de hacer el proyecto sino lo que implica el no-hacerlo.
• Usamos 4 EJES FUNDAMENTALES para describir la situación actual y el estado deseado,
pues para poder participar en la organización y permitir que ella evolucione, necesitamos
tener varias vistas o perspectivas de la organización analizada:
• El negocio y sus procesos (i)
• La Información y aplicaciones o sistemas (ii)
• La infraestructura base: redes y hardware (iii)
• La base estratégica sobre la cual el negocio evoluciona (iv)
6
REFERENCIAS
• https://msdn.microsoft.com/en-us/library/ee658098.aspx
6
Pero qué tiene que ver con Inteligencia Artificial?
Porque finalmente construimos Proyectos: o iniciativas que nos permiten transformar el negocio de
hoy, permiten la evolución de la organización que ella evoluciona y para tenemos en cuenta:
El Producto objetivo (1): el resultado que esperamos, el conjunto de componentes que lo conforman
El Proceso (2): la forma en la cual organizamos el trabajo y garantizamos que se entregan
incrementos de valor, iniciando con unos requisitos SMART, y estandarizando la forma en la cual se
elaboran los productos
y sobre todo Las Personas que trabajan allí (3): porque el desarrollo de software sigue siendo una
artesanía.
las Herramientas: que nos permiten lograr mecanismos de automatización en las tareas que
elaboramos.
Plantearlo en forma de Proyecto, permitimos plantear una frontera de tiempo en la cual algún día
vamos a terminar, con determinada inversión de recursos.
Los 5 elementos en conjunto los denominan el 4P+T de la construcción de proyectos de desarrollo de
software. Con ellos “Integramos el conocimiento abstracto matemático y algorítmico a problemas
teóricos y prácticos”, donde enseñamos a las máquinas ciertas tareas que hacen bien los humanos,
para que ellas permitan ejecutar muchas veces esta tarea repetitiva.
RESUMAMOS HASTA AQUI:
• La arquitectura empresarial es la forma que las empresas han encontrado para resolver las
necesidades del negocio con unas capacidades tecnológicas de la empresa:
• Inicia con un assestment, definiendo la brecha a atacar para llegar a un estado deseado, y creando
iniciativas/proyectos/productos que le permiten cursar esa transición.
7
• Dentro del planteamiento de una solución se tienen en cuenta tanto
características funcionales como no funcionales del producto a construir.
• Para que pasen o sucedan estas iniciativas, existen 5 ejes fundamentales que
debemos trabajar:
• - PRODUCTOS: el resultado que esperamos, el conjunto de componentes
que lo conforma
• - PROCESOS: la forma en la cual organizamos el trabajo y garantizamos que
se entregan incrementos de valor, iniciando con unos requisitos SMART
• - PROYECTOS: como aseguramos que algún día vamos a terminar
• - PERSONAS: porque el desarrollo de software sigue siendo una artesanía
• - HERRAMIENTAS: con las cuales se desarrolla el producto
Entonces les voy a hacer un recorrido teniendo en cuenta estos ejes, por 2 proyectos
que tienen que ver algo con ia, y que he seleccionado
7
8
9
10
OTROS SERVICIOS COGNITIVOS
• COGNITIVE-SERVIcES:: https://azure.microsoft.com/en-us/services/cognitive-services/
• TEXT-ANALYTICS: https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/
• (probar con ejemplos: me rasca una nalga)
• FACE-DETECTION: https://azure.microsoft.com/en-us/services/cognitive-services/face/#detection
• (probar con ejemplos:
https://d2yoo3qu6vrk5d.cloudfront.net/images/20181012120143/angela-ponce-1-
900x485.jpg, http://dis.unal.edu.co/~fgonza/face_2017.jpg ,
http://dis.unal.edu.co/~jgomezpe/img/jgomezpe.jpg,
https://www.utadeo.edu.co/sites/tadeo/files/styles/img_perfil_150x180/public/person/of
ficials/field_image/francisco_gomez_jaramillo-2pb.jpg )
• QNA MAKER
• MLStudio
• https://studio.azureml.net/
• EJEMPLO 1: AZURE ML.
• YOUTUBE: https://youtu.be/mfhFeDpDa9E
• https://gallery.azure.ai/
REFERENCIAS ADICIONALES
• LUIS: https://channel9.msdn.com/Blogs/MVP-Azure/Cognitive-Services-Episode-3-Deep-dive-into-
LUIS-and-Chatbots
• https://channel9.msdn.com/Series/Explain/Bots-101-Scenarios-for-bots?
11
12
13
14
TRUCO #2: AGILE PRACTICES:
En esto no me voy a detener, pues existen varias referencias en internet cuando buscan por “scrum”.
Fue el proceso de desarrollo usado para el chatbot.
Básicamente es un tipo de practicas que nos permiten lograr la interacción de personas que
llamamos equipo autoorganizado, con colaboración del cliente, con el fin de crear un producto y
demostrable a lo largo de iteraciones llamadas sprints.
A lo largo del sprint hay que saber qué se debe construir (PLAN), que se organiza en un backlog
Hay que saber ESTIMAR lo que se va a realizar (PLANNING-POKER), y que el equipo quede medio
balanceado
Hay que realizar las actividades, donde cada quien tiene sus TODO’s (KANBAN)
Se construye o ejecuta ese plan, viendo pedazos de producto al final de la iteración.
EJEMPLO 2: JIRA AGILE
• YOUTUBE: https://youtu.be/BF5LzxaM_c4
Inactionsas.atlassian.net (proyecto: 0000_CXT)
15
Para el caso de aplicaciones de analítica, las actividades derivadas de la metodología usada, son las
que constituyen el insumo para dilucidad las actividades del proceso que se debe realizar a cabo.
REFERENCIAS:
- https://docs.microsoft.com/en-us/azure/machine-learning/team-data-science-process/
16
REFERENCIAS
- https://www.pybonacci.org/2015/01/14/introduccion-a-machine-learning-con-python-parte-1/
- https://towardsdatascience.com/a-production-ready-multi-class-text-classifier-96490408757
(ejemplo multiclass classification)
- http://www.venddo.com/clasificacion-de-texto-utilizando-redes-neuronales.html (clasificación
básica por BagOfWords)
- https://www.youtube.com/watch?v=ycaOloYmGw0 (clasificacin de texto con un modelo SVM)
17
Para la creación de DOCU, varios tipos de tecnologías interactúan; dentro de ellas
• Las que permiten realizar procesamiento de los datos no estructurados, como OCR, Extracción de
Texto, creación de thumbnails
• Las que permiten indexar un documento para búsquedas posteriores
• Las que permiten concatenar los procesadores anteriores
• Las que permiten almacenar lo procesado
• Las que permiten aplicar modelos de aprendizaje acorde al texto extraído y acorde a un contexto
dado
• Por ejemplo: clasificando nuevos documentos acorde a los datos aprendidos de
clasificaciones previas
18
Tomado de : https://machinelearningmastery.com/become-data-scientist/
19
Escoger el algoritmo según el caso;
Para NaturalLanguageProcessing, los algoritmos tradicionales requieren que el data-scientist realice
un preprocesamiento antes de aplciar técnicas de clasificación.
Podria ser otro tipo de algoritmo; normalmente lo que tratamos de hacer es modelar una función y=
f(x).
Luego, a partir de unas entradas, queremos predecir lo que hace esta función f, y mediante técnicas
de optimización obtenemos un modelo parametrizado que predice nuestra realidad.
Primero entrenamos un modelo;
Posteriormetne este modelo entrenado nos sierve para predecir un comportamiento, donde los
datos no han sido vistos por el modelo.
20
https://www.knime.com/blog/word-embedding-word2vec-explained
21
22
23
24
REFERENCIAS
- https://medium.com/huggingface/universal-word-sentence-embeddings-ce48ddc8fc3a (universal
Word embeddings)
- https://towardsdatascience.com/elmo-embeddings-in-keras-with-tensorflow-hub-7eb6f0145440
(ELMO keras + tensorflow)
- https://github.com/albahnsen/AppliedDeepLearningClass/blob/master/notebooks/21-
Word2vec.ipynb
- https://www.youtube.com/watch?v=cSKfRcEDGUs (tensorflow basics)
25
Para describir el trabajo con redes neuronales, se comienaza con un modelo mas sencillo,
Por ejemplo de una regresión lineal. En este problema tenemos un dataset, y queremos aproximar
una función que los describa la nube de puntos.
En el casi dibujado, lo que queremos es calcular los w que se ajusten mejor a los datos; lo realizamos
, por ejemplo, usando una función objetivo, en este caso, una que minimize el error (E) de encontrar
la función que predice estos datos. El error de lo que se predice (línea azul) respecto a los datos..
Queremos conocer cómo incrementa el error si cambio w
calculamos una derivada
Vamos en contra de esa derivada
Nos vamos acercando al valor deseado
En el caso de redes neuronales, la función no es tan sencilla; tenemos una función f encima de esa
lineaidad
REFERENCIAS
- https://www.youtube.com/watch?v=UYttzdEc1OI&t=2436s
26
EJEMPLO 2: TENSORFLOW (TEXT CLASSIFICATION)
YOUTUBE: https://www.youtube.com/watch?v=BO4g2DRvL6U (Parte1)
YOUTUBE: https://www.youtube.com/watch?v=vPrSca-YjFg (Parte2)
REFERENCIAS
• aka.ms/data-science-for-beginners
• aka.ms/CortanaIntelligenceGallery
• https://medium.com/louis-dorard/from-data-to-ai-with-the-machine-learning-canvas-part-ii-
b02c71067da8
27
https://www.knime.com/blog/word-embedding-word2vec-explained
REFERENCIAS (RNN,LSTM)
• https://github.com/gaarangoa/sentiment_analysis
• https://stackoverrin.com/es/q/9425025
REFERENCIAS (ELMO)
*
28
29
Esperando que ésta experiencia haya sido de valor.
- - - - - - - - -
Todas las marcas en mención son propiedad de sus respectivos dueños.
30
ARQUITECTURA DE REFERENCIA PARA SOLUCIONES A NIVEL DE EMPRESA
Es un modelo de referencia aplicable de forma transversal a diferentes tipos de industria.
Varios tipos de negocio tienen:
UNA ZONA OPERATIVA (1):
Una plataforma para soportar su operación diaria a través de la cual generan información. Para
algunos negocios, que basan su construcción en servicios digitales, los canales por los cuales
atienden también son netamente digitales. Normalmente puede que no sean un solo sistema, sino
conjuntos de sistemas que mediante integraciones, colaboran entre sí. Integraciones a nivel de front,
a nivel de servicios o a nivel de datos permiten la operatividad del día a día de la empresa.
Desarrollo de aplicaciones web, mobile (SinglePageApplications), con unas tecnologías de backend, y
escribiendo a orígenes de datos Relacionales y NOSQL.
Algunas veces delegamos incluso la existencia de un backend y únicamente exponemos el algoritmo
(serverless computing).
Ejemplos de tecnologías: SPA (single-page-applications) con {front} angular, react y {back} spring
boot, asp.net core nodejs, scala. {storage} orígenes relacionales y nosql (mongo, neo4j),
Ejemplos de conocimientos: desarrollo de aplicaciones, functional programming / object oriented
programming, sistemas distribuidos, blockchain
UNA ZONA DE INGESTIÓN (2)
La Información que en tiempo real o a través de batches de información se transmite o enriquece a
medida que llega…
Ejemplos: Kafka, SSIS
UNA ZONA DE ALMACENAMIENTO (3)
…para algunas veces ser acumulada …
31
Ejemplos: Hadoop, Amazon AWS-S3,
UNA ZONA DE ANALYTICS (4)
…esos datos acumulados o que se obtienen en tiempo real, los podemos usar para
describir+diagnosticar lo que pasa con el negocio (muchas veces visualmente), o bien
para predecir+prescribir lo que puede pasar con él. Sacar los ”insights” o información
de valor que a simple vista puede que no veamos mediante el uso de técnicas
heredadas de InteligenciaArtificial+MachineLearning+DeepLearning para el
procesamiento de información estructurada y no estructurada. Usar esos insights
para mejorar la experiencia del cliente, retroalimentar los procesos del negocio,
entregar información para toma de decisiones basadas en datos.
Ejemplos: Tableau, PowerBI, jupyter, stacks/librerias sobre R o Python como
tensorflow, utilitarios como deeplearn.js o d3.js
LA ZONA DE INFRAESTRUCTURA (5),
… donde se hospedan los desarrollos a realizar o los servicios que se consumen, y que
dependen de lo que hayamos montado: IaaS (Infraestructure as a service), Platform
as a service (PaaS), Software as a service (SaaS).
Ejemplos: Plataformas Tipo Cloud como Microsoft Azure, Google Cloud Platform.
Ejemplos Plataformas basadas en contenedores: Docker + Kubernetes.
Ejemplos SaaS: Plataformas de correo (Google Docs, Gmail)
Ejemplos PaaS: Heroku
31

cia2 charla arquitecturadesoftware ai

  • 1.
    OBJETIVO: revisión deaspectos que rodean el desarrollo de una solución de software Conocer con qué debemos articular esa sólida base matemática de soluciones a problemas de la vida diaria. 1
  • 2.
    Esto lo diceel presentador … o lo digo yo? 2
  • 3.
    Cuando me vímetido incluído en la charla, hice inicialmente un listado preliminar de los proyectos en los que he participado y que recuerdo que tienen que ver con la temática, y salieron los que están en el slide… 3
  • 4.
    Pero no teníacerteza que fueran relacionados con Inteligencia Artificial, pues los temas concretos con los que había trabajado eran Machine learning / técnicas estadísticas, Deep Learning o procesamiento de lenguaje natural, hasta que encontré el gráfico que se muestra en el slide (y no es el propósito entrar en una discusión filosófica sobre el tamaño de los círculos o la importancia de cada uno de ellos ). REFERENCIAS • http://blog.admanmedia.com/inteligencia-artificial-marketing/ • https://medium.com/@experiencIA18/diferencias-entre-la-inteligencia-artificial-y-el-machine- learning-f0448c503cd4 Antes se creaban los conceptos o técnicas, pero no se tenía el hardware necesario. Actualmente existe un potencial a explotar en un mundo de sensores, donde técnicas estadísticas+DataMining / InteligenciaArtificial+MachineLearning+DeepLearning se aplican en varios campos, y con infraestructuras tipo cloud se puede realizar el entrenamiento de modelos. Estas técnicas que tiempo atrás fueron creadas, hoy en día son implementables dado que: (1) El costo de almacenamiento ha bajado, por lo cual podemos almacenar mayor cantidad de información (2) El poder de cómputo ha aumentado Teniendo estos 2 insumos, no nos queda más que comenzar a enseñarle a este tipo de máquinas a “aprender de la experiencia”. 4
  • 5.
    Cuando aumenta elnúmero de variables del problema y también la cantidad de datos y no conocemos una fórmula o ecuación que a pueda modelar, podemos usar técnicas de machine learning como apoyo. En el negocio muchas veces se inicia con técnicas mediante las cuales el resultado permita explicar la forma en la cual se obtuvo una respuesta acertada (como por ejemplo usando árboles de decisión o bayes). Posteriormetne incorporar algunos modelos más precisos pero que no se pueden explicar de manera intuitiva a un experto. ANEXOS: • SUPERVISED: queremos obtener una variable de salida, mediante n-variables de entrada. Mediante ejemplos queremos que la máquina haga la predicción. Podemos poner a clasificar a la máquina (es decir, que la salida esperada debe pertenecer a m-grupos), o bien, queremos obtener un valor numérico (regression) • UNSUPERVISED: queremos conocer la estructura innata de los datos, sin conocer dicha estructura. Mediante algoritmos de clustering se agrupan datos mediante su similitud, o mediante algoritmos de asociación, se trata de descubrir reglas frecuentes que aplican para ellos (ejemplo: si lleva leche y cerveza, también llevará huevos) Otros tipos de datos más complejos • Audio (traducción automática) • Video (tagging, inteerpretación) • Texto (procesameinto de lenguaje natural / ocr) Otros tipos de análisis: • Filtering (collaborative/content-based): mejor experiencia para los clientes • Outlier detection (detección de intrusos, corrupción) 4
  • 6.
    Sin embargo elconcepto para el cual fui gratamente postulado para la charla fue la de Arquitectura de Software. Entonces el plan para la charla es desde el punto de vista de la empresa, cómo doy soluciones sobre las cuales pueda usar "inteligencia artificial". Como cualquier producto, debemos tener una base sólida sobre la cual lo construimos, cumpliendo los requisitos funcionales del producto (SMART), como los no funcionales: no queremos que a la primera carga de la aplicación, el sistema se nos desbarate (como les pasó a las primeras casas de los cerditos), y debemos tener claros los planos de lo que construimos. Comenzamos con un diseño simple de lo que construímos (sus partes constitutivas y las relaciones entre ellas), pero cuando el negocio es más grande, se requiere la intervención de lo que se llama Arquitectura Empresarial. REFERENCIAS * http://estrategia.gobiernoenlinea.gov.co/623/articles-15094_presentacion.pdf 5
  • 7.
    • Cuando eltamaño de los negocios comienza a crecer, un área llamada arquitectura empresarial es un “truco” interesante para abordar esta realidad. No es lo mismo entender el sistema de información de la panadería de la esquina, a la forma en la cual una empresa basada en tecnología como uber, usa sus servicios tecnológicos para despacharnos un auto y cobrar. • ARQUITECTURA EMPRESARIAL, Es la alineación tecnológica basada en apoyar los objetivos de la empresa, buscando mayor agilidad. Para ello, • Entendemos las necesidades y dinámicas de la empresa de hoy en día • Usamos Tecnología como articulador de las necesidades del negocio actual • Entendemos características de la solución a lograr tanto en lo funcional (lo que ve el usuario) como en lo no-funcional (para que el usuario no diga por ejemplo: esta cosa está muy lenta) • iniciando con un assestment inicial, definiendo la brecha a atacar para llegar a un estado deseado, y creando iniciativas/proyectos/productos que le permiten cursar esa transición. • Los proyectos son el mecanismo normal de división del trabajo en una empresa para cambiar un estado actual AS-IS en un estado deseable (TO-BE). Mediante un análisis de esa brecha, identificamos el problema o preocupación de un área de la empresa para poderlo materializar en un proyecto o producto a realizar. Normalmente se observa no sólo el costo de hacer el proyecto sino lo que implica el no-hacerlo. • Usamos 4 EJES FUNDAMENTALES para describir la situación actual y el estado deseado, pues para poder participar en la organización y permitir que ella evolucione, necesitamos tener varias vistas o perspectivas de la organización analizada: • El negocio y sus procesos (i) • La Información y aplicaciones o sistemas (ii) • La infraestructura base: redes y hardware (iii) • La base estratégica sobre la cual el negocio evoluciona (iv) 6
  • 8.
  • 9.
    Pero qué tieneque ver con Inteligencia Artificial? Porque finalmente construimos Proyectos: o iniciativas que nos permiten transformar el negocio de hoy, permiten la evolución de la organización que ella evoluciona y para tenemos en cuenta: El Producto objetivo (1): el resultado que esperamos, el conjunto de componentes que lo conforman El Proceso (2): la forma en la cual organizamos el trabajo y garantizamos que se entregan incrementos de valor, iniciando con unos requisitos SMART, y estandarizando la forma en la cual se elaboran los productos y sobre todo Las Personas que trabajan allí (3): porque el desarrollo de software sigue siendo una artesanía. las Herramientas: que nos permiten lograr mecanismos de automatización en las tareas que elaboramos. Plantearlo en forma de Proyecto, permitimos plantear una frontera de tiempo en la cual algún día vamos a terminar, con determinada inversión de recursos. Los 5 elementos en conjunto los denominan el 4P+T de la construcción de proyectos de desarrollo de software. Con ellos “Integramos el conocimiento abstracto matemático y algorítmico a problemas teóricos y prácticos”, donde enseñamos a las máquinas ciertas tareas que hacen bien los humanos, para que ellas permitan ejecutar muchas veces esta tarea repetitiva. RESUMAMOS HASTA AQUI: • La arquitectura empresarial es la forma que las empresas han encontrado para resolver las necesidades del negocio con unas capacidades tecnológicas de la empresa: • Inicia con un assestment, definiendo la brecha a atacar para llegar a un estado deseado, y creando iniciativas/proyectos/productos que le permiten cursar esa transición. 7
  • 10.
    • Dentro delplanteamiento de una solución se tienen en cuenta tanto características funcionales como no funcionales del producto a construir. • Para que pasen o sucedan estas iniciativas, existen 5 ejes fundamentales que debemos trabajar: • - PRODUCTOS: el resultado que esperamos, el conjunto de componentes que lo conforma • - PROCESOS: la forma en la cual organizamos el trabajo y garantizamos que se entregan incrementos de valor, iniciando con unos requisitos SMART • - PROYECTOS: como aseguramos que algún día vamos a terminar • - PERSONAS: porque el desarrollo de software sigue siendo una artesanía • - HERRAMIENTAS: con las cuales se desarrolla el producto Entonces les voy a hacer un recorrido teniendo en cuenta estos ejes, por 2 proyectos que tienen que ver algo con ia, y que he seleccionado 7
  • 11.
  • 12.
  • 13.
  • 14.
    OTROS SERVICIOS COGNITIVOS •COGNITIVE-SERVIcES:: https://azure.microsoft.com/en-us/services/cognitive-services/ • TEXT-ANALYTICS: https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/ • (probar con ejemplos: me rasca una nalga) • FACE-DETECTION: https://azure.microsoft.com/en-us/services/cognitive-services/face/#detection • (probar con ejemplos: https://d2yoo3qu6vrk5d.cloudfront.net/images/20181012120143/angela-ponce-1- 900x485.jpg, http://dis.unal.edu.co/~fgonza/face_2017.jpg , http://dis.unal.edu.co/~jgomezpe/img/jgomezpe.jpg, https://www.utadeo.edu.co/sites/tadeo/files/styles/img_perfil_150x180/public/person/of ficials/field_image/francisco_gomez_jaramillo-2pb.jpg ) • QNA MAKER • MLStudio • https://studio.azureml.net/ • EJEMPLO 1: AZURE ML. • YOUTUBE: https://youtu.be/mfhFeDpDa9E • https://gallery.azure.ai/ REFERENCIAS ADICIONALES • LUIS: https://channel9.msdn.com/Blogs/MVP-Azure/Cognitive-Services-Episode-3-Deep-dive-into- LUIS-and-Chatbots • https://channel9.msdn.com/Series/Explain/Bots-101-Scenarios-for-bots? 11
  • 15.
  • 16.
  • 17.
  • 18.
    TRUCO #2: AGILEPRACTICES: En esto no me voy a detener, pues existen varias referencias en internet cuando buscan por “scrum”. Fue el proceso de desarrollo usado para el chatbot. Básicamente es un tipo de practicas que nos permiten lograr la interacción de personas que llamamos equipo autoorganizado, con colaboración del cliente, con el fin de crear un producto y demostrable a lo largo de iteraciones llamadas sprints. A lo largo del sprint hay que saber qué se debe construir (PLAN), que se organiza en un backlog Hay que saber ESTIMAR lo que se va a realizar (PLANNING-POKER), y que el equipo quede medio balanceado Hay que realizar las actividades, donde cada quien tiene sus TODO’s (KANBAN) Se construye o ejecuta ese plan, viendo pedazos de producto al final de la iteración. EJEMPLO 2: JIRA AGILE • YOUTUBE: https://youtu.be/BF5LzxaM_c4 Inactionsas.atlassian.net (proyecto: 0000_CXT) 15
  • 19.
    Para el casode aplicaciones de analítica, las actividades derivadas de la metodología usada, son las que constituyen el insumo para dilucidad las actividades del proceso que se debe realizar a cabo. REFERENCIAS: - https://docs.microsoft.com/en-us/azure/machine-learning/team-data-science-process/ 16
  • 20.
    REFERENCIAS - https://www.pybonacci.org/2015/01/14/introduccion-a-machine-learning-con-python-parte-1/ - https://towardsdatascience.com/a-production-ready-multi-class-text-classifier-96490408757 (ejemplomulticlass classification) - http://www.venddo.com/clasificacion-de-texto-utilizando-redes-neuronales.html (clasificación básica por BagOfWords) - https://www.youtube.com/watch?v=ycaOloYmGw0 (clasificacin de texto con un modelo SVM) 17
  • 21.
    Para la creaciónde DOCU, varios tipos de tecnologías interactúan; dentro de ellas • Las que permiten realizar procesamiento de los datos no estructurados, como OCR, Extracción de Texto, creación de thumbnails • Las que permiten indexar un documento para búsquedas posteriores • Las que permiten concatenar los procesadores anteriores • Las que permiten almacenar lo procesado • Las que permiten aplicar modelos de aprendizaje acorde al texto extraído y acorde a un contexto dado • Por ejemplo: clasificando nuevos documentos acorde a los datos aprendidos de clasificaciones previas 18
  • 22.
    Tomado de :https://machinelearningmastery.com/become-data-scientist/ 19
  • 23.
    Escoger el algoritmosegún el caso; Para NaturalLanguageProcessing, los algoritmos tradicionales requieren que el data-scientist realice un preprocesamiento antes de aplciar técnicas de clasificación. Podria ser otro tipo de algoritmo; normalmente lo que tratamos de hacer es modelar una función y= f(x). Luego, a partir de unas entradas, queremos predecir lo que hace esta función f, y mediante técnicas de optimización obtenemos un modelo parametrizado que predice nuestra realidad. Primero entrenamos un modelo; Posteriormetne este modelo entrenado nos sierve para predecir un comportamiento, donde los datos no han sido vistos por el modelo. 20
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    REFERENCIAS - https://medium.com/huggingface/universal-word-sentence-embeddings-ce48ddc8fc3a (universal Wordembeddings) - https://towardsdatascience.com/elmo-embeddings-in-keras-with-tensorflow-hub-7eb6f0145440 (ELMO keras + tensorflow) - https://github.com/albahnsen/AppliedDeepLearningClass/blob/master/notebooks/21- Word2vec.ipynb - https://www.youtube.com/watch?v=cSKfRcEDGUs (tensorflow basics) 25
  • 29.
    Para describir eltrabajo con redes neuronales, se comienaza con un modelo mas sencillo, Por ejemplo de una regresión lineal. En este problema tenemos un dataset, y queremos aproximar una función que los describa la nube de puntos. En el casi dibujado, lo que queremos es calcular los w que se ajusten mejor a los datos; lo realizamos , por ejemplo, usando una función objetivo, en este caso, una que minimize el error (E) de encontrar la función que predice estos datos. El error de lo que se predice (línea azul) respecto a los datos.. Queremos conocer cómo incrementa el error si cambio w calculamos una derivada Vamos en contra de esa derivada Nos vamos acercando al valor deseado En el caso de redes neuronales, la función no es tan sencilla; tenemos una función f encima de esa lineaidad REFERENCIAS - https://www.youtube.com/watch?v=UYttzdEc1OI&t=2436s 26
  • 30.
    EJEMPLO 2: TENSORFLOW(TEXT CLASSIFICATION) YOUTUBE: https://www.youtube.com/watch?v=BO4g2DRvL6U (Parte1) YOUTUBE: https://www.youtube.com/watch?v=vPrSca-YjFg (Parte2) REFERENCIAS • aka.ms/data-science-for-beginners • aka.ms/CortanaIntelligenceGallery • https://medium.com/louis-dorard/from-data-to-ai-with-the-machine-learning-canvas-part-ii- b02c71067da8 27
  • 31.
  • 32.
  • 33.
    Esperando que éstaexperiencia haya sido de valor. - - - - - - - - - Todas las marcas en mención son propiedad de sus respectivos dueños. 30
  • 34.
    ARQUITECTURA DE REFERENCIAPARA SOLUCIONES A NIVEL DE EMPRESA Es un modelo de referencia aplicable de forma transversal a diferentes tipos de industria. Varios tipos de negocio tienen: UNA ZONA OPERATIVA (1): Una plataforma para soportar su operación diaria a través de la cual generan información. Para algunos negocios, que basan su construcción en servicios digitales, los canales por los cuales atienden también son netamente digitales. Normalmente puede que no sean un solo sistema, sino conjuntos de sistemas que mediante integraciones, colaboran entre sí. Integraciones a nivel de front, a nivel de servicios o a nivel de datos permiten la operatividad del día a día de la empresa. Desarrollo de aplicaciones web, mobile (SinglePageApplications), con unas tecnologías de backend, y escribiendo a orígenes de datos Relacionales y NOSQL. Algunas veces delegamos incluso la existencia de un backend y únicamente exponemos el algoritmo (serverless computing). Ejemplos de tecnologías: SPA (single-page-applications) con {front} angular, react y {back} spring boot, asp.net core nodejs, scala. {storage} orígenes relacionales y nosql (mongo, neo4j), Ejemplos de conocimientos: desarrollo de aplicaciones, functional programming / object oriented programming, sistemas distribuidos, blockchain UNA ZONA DE INGESTIÓN (2) La Información que en tiempo real o a través de batches de información se transmite o enriquece a medida que llega… Ejemplos: Kafka, SSIS UNA ZONA DE ALMACENAMIENTO (3) …para algunas veces ser acumulada … 31
  • 35.
    Ejemplos: Hadoop, AmazonAWS-S3, UNA ZONA DE ANALYTICS (4) …esos datos acumulados o que se obtienen en tiempo real, los podemos usar para describir+diagnosticar lo que pasa con el negocio (muchas veces visualmente), o bien para predecir+prescribir lo que puede pasar con él. Sacar los ”insights” o información de valor que a simple vista puede que no veamos mediante el uso de técnicas heredadas de InteligenciaArtificial+MachineLearning+DeepLearning para el procesamiento de información estructurada y no estructurada. Usar esos insights para mejorar la experiencia del cliente, retroalimentar los procesos del negocio, entregar información para toma de decisiones basadas en datos. Ejemplos: Tableau, PowerBI, jupyter, stacks/librerias sobre R o Python como tensorflow, utilitarios como deeplearn.js o d3.js LA ZONA DE INFRAESTRUCTURA (5), … donde se hospedan los desarrollos a realizar o los servicios que se consumen, y que dependen de lo que hayamos montado: IaaS (Infraestructure as a service), Platform as a service (PaaS), Software as a service (SaaS). Ejemplos: Plataformas Tipo Cloud como Microsoft Azure, Google Cloud Platform. Ejemplos Plataformas basadas en contenedores: Docker + Kubernetes. Ejemplos SaaS: Plataformas de correo (Google Docs, Gmail) Ejemplos PaaS: Heroku 31