Mostrando entradas con la etiqueta AI. Mostrar todas las entradas
Mostrando entradas con la etiqueta AI. Mostrar todas las entradas

miércoles, 22 de enero de 2025

Herramientas y Frameworks de ML

Herramientas permiten su implementación on-premise, con requisitos mínimos de hardware: 

  • Scikit-learn: Herramienta de machine learning en Python que proporciona algoritmos para clasificación, regresión, clustering y reducción de dimensionalidad.

  • FastAPI: Framework web en Python que permite crear APIs rápidas y eficientes, con soporte para validación automática de datos usando modelos Pydantic y OpenAPI.

  • Apache MXNet: Framework de deep learning altamente escalable con soporte para múltiples lenguajes como Python, R, Scala y Julia.

  • Microsoft ML.NET: Framework de aprendizaje automático para desarrolladores .NET, que permite construir modelos de machine learning sin necesidad de cambiar de ecosistema.

  • RapidMiner: Plataforma de ciencia de datos que permite el desarrollo rápido de modelos de aprendizaje automático mediante interfaces visuales.

  • H2O.ai: Automatizan tareas de machine learning como selección de modelos, ajuste de hiperparámetros y evaluación.

  • Jupyter Notebook: Entorno interactivo para escribir y ejecutar código en Python, ideal para experimentación con modelos de IA y visualización de resultados.


Herramientas permiten su implementación on-premise y requieren una GPU NVIDIA con soporte para CUDA (opcional para aceleración de cálculo) : 

  • TensorFlow: Framework de código abierto desarrollado por Google para construir y entrenar modelos de aprendizaje automático y redes neuronales.

  • PyTorch: Biblioteca de machine learning de código abierto desarrollada por Facebook, conocida por su flexibilidad y soporte para investigación en IA.

  • Keras: API de alto nivel para redes neuronales construida sobre TensorFlow, enfocada en facilitar el desarrollo de modelos de aprendizaje profundo.

  • Hugging Face Transformers: Biblioteca para el uso de modelos de lenguaje preentrenados (como GPT, BERT, T5) con compatibilidad para PyTorch y TensorFlow.

  • OpenAI Codex: IA de OpenAI diseñada para comprender y generar código en varios lenguajes de programación, incluida la integración con GitHub Copilot.

  • Caffe: Framework de deep learning diseñado para aplicaciones de reconocimiento visual y procesamiento de imágenes, conocido por su eficiencia.


Herramientas dependientes de la nube o con opciones limitadas para on-premise:
  • Google Vertex AI: Plataforma que permite entrenar, desplegar y gestionar modelos de IA en la nube de Google con herramientas avanzadas para análisis y optimización.

  • IBM Watson Studio: Herramienta de IA que ofrece capacidades de machine learning, deep learning y análisis avanzado para resolver problemas de negocio complejos.

  • Tableau: Herramienta para visualización de datos con soporte para integraciones de modelos de machine learning y predicciones basadas en IA.

  • DataRobot: Plataforma que automatiza el proceso de construcción, entrenamiento y despliegue de modelos de machine learning y deep learning.

  • Google AutoML: Herramienta que automatizan tareas de machine learning como selección de modelos, ajuste de hiperparámetros y evaluación.


jueves, 9 de enero de 2025

Análisis de Textos

Las siguientes son herramientas y frameworks que estamos analizando, orientados al anlálisis de textos y extracción de entidades.

On Premise

SpaCy

Una de las bibliotecas más populares para procesamiento de lenguaje natural. Tiene soporte para modelos preentrenados en español.

  • Reconocimiento de entidades nombradas (NER).
  • Posibilidad de entrenar modelos para textos legales.
Se puede integrar en C# utilizando el servicio Python REST API con Flask o FastAPI y realizando llamadas HTTP desde la aplicación.


Hugging Face Transformers

Plataforma para utilizar modelos como BERT y RoBERTa, con soporte en español y entrenados para tareas como NER.

  • Modelos como BETO o mBERT entrenados para textos en español.
  • Alta precisión para dominios especializados (como demandas legales).

Se puede crear un servicio REST API en Python o Node.js y luego llamarlo desde C#.


Stanford NLP

Biblioteca potente para análisis sintáctico y semántico, con soporte multilenguaje (incluido español).
  • Reconocimiento de entidades nombradas (NER).
  • Compatibilidad con textos largos y complejos.
Se puede implementar el servidor CoreNLP y realizar solicitudes HTTP desde una aplicación C#.



Servicios en la nube

Google Cloud Natural Language API

  • Extracción de entidades.
  • Análisis de sintaxis y sentimientos.

AWS Comprehend

  • Reconocimiento de entidades personalizadas (Custom Entity Recognition).
  • Entrenamiento con conjuntos de datos legales.

Azure Cognitive Services - Text Analytics

  • Reconocimiento de entidades estándar y personalizadas.
  • Escalabilidad e integración nativa con el ecosistema Azure.


Frameworks Open Source con Modelos Personalizables

NERD (Named Entity Recognition Dashboard)

Framework para desarrollar modelos personalizados de extracción de entidades.
  • Basado en herramientas como SpaCy o Hugging Face.
  • Útil para etiquetar textos y entrenar modelos adaptados.

Doccano

Herramienta de etiquetado para entrenar modelos personalizados de NLP.
  • Útil para generar datasets y entrenar herramientas como SpaCy o Transformers.

Prodigy

Herramienta de etiquetado para entrenar modelos personalizados de NLP.
  • Útil para generar datasets y entrenar herramientas como SpaCy.
  • Costo $390 lifetime x site (Personal).

Herramientas Especializadas en el Dominio Legal

Soluciones preconstruidas de LegalTech.

ROSS Intelligence

Plataforma diseñada para documentos legales, incluyendo análisis de contratos y demandas.

Legal Robot

Ofrece soluciones para procesar documentos legales y extraer datos clave.


jueves, 2 de enero de 2025

Retrieval Augmented Generation (RAG)

RAG es un enfoque en el campo de la inteligencia artificial que combina modelos de recuperación de información con modelos generativos de lenguaje para mejorar la precisión y la relevancia de las respuestas generadas. Este enfoque permite que los modelos generativos accedan a información externa en tiempo real, lo que es útil para manejar tareas que requieren datos actualizados o específicos, como responder preguntas basadas en documentos o ejecutar búsquedas dinámicas.





¿Cómo funciona RAG?

  1. Componente de Recuperación (Retriever):

    • Identifica información relevante a partir de una base de datos, corpus de texto, o fuente externa.
    • Métodos comunes:
      • Sistemas tradicionales: TF-IDF, BM25.
      • Modelos de embeddings: Dense retrievers como DPR (Dense Passage Retrieval) que utilizan vectores para comparar similitudes semánticas.
  2. Componente Generativo (Generator):

    • Toma los documentos recuperados y genera una respuesta basada en la información contenida en ellos.
    • Modelos típicos: GPT, T5, o BART.
  3. Pipeline completo:

    • Dado un input (como una pregunta), el retriever busca información relevante, y el generator usa esta información para crear una respuesta natural y contextual.


Ejemplos de uso de RAG

  1. Chatbots empresariales:

    • Responden preguntas específicas sobre documentos de política interna, bases de conocimiento o contratos legales.
    • Ejemplo: Un chatbot que accede a manuales de empleados para responder preguntas sobre beneficios.
  2. Sistemas de búsqueda mejorados:

    • Motores de búsqueda que combinan la recuperación con respuestas explicativas.
    • Ejemplo: Un motor de búsqueda académico que genera un resumen de los papers relevantes.
  3. Asistentes de soporte técnico:

    • Generan instrucciones personalizadas basadas en guías técnicas.
    • Ejemplo: Un asistente que ayuda a resolver problemas técnicos con base en manuales de productos.
  4. Generación de contenido personalizado:

    • Utilizado para redactar informes o resúmenes basados en datos recopilados.
    • Ejemplo: Herramientas que generan reportes financieros combinando datos recientes.


Ejemplos de modelos RAG existentes

  1. Dense Passage Retrieval (DPR):

    • Combina embeddings densos con modelos generativos.
    • Ejemplo de uso: Enriquecer respuestas en asistentes virtuales.
  2. Google Bard y OpenAI ChatGPT con Plugins:

    • Usan fuentes externas en tiempo real para recuperar información y generar respuestas.
  3. RAG Framework (Meta AI):

    • Combina retrieval y generación utilizando modelos como BART para respuestas basadas en contexto.
  4. Haystack (de deepset):

    • Framework modular de código abierto para implementar sistemas de preguntas y respuestas basados en RAG.


Recursos para desarrollar un sistema RAG

    1. Bibliotecas y herramientas
  • Haystack: Framework que soporta RAG con múltiples backend retrievers y generadores.
    GitHub
  • LangChain: Facilita la integración de RAG para aplicaciones conversacionales.
    GitHub
  • Pinecone: Base de datos vectorial para indexar y buscar embeddings.
  • Weaviate: Base de datos para búsquedas semánticas.
    2. Modelos preentrenados
  • DPR (Dense Passage Retrieval): Implementación de Facebook AI.
  • T5 y BART: Modelos generativos efectivos para tareas de generación de texto.
  • OpenAI GPT API: Compatible con integración RAG mediante plugins.
    3. Datasets
  • Natural Questions (NQ): Preguntas reales de usuarios con respuestas basadas en documentos.
    Google Dataset
  • SQuAD (Stanford Question Answering Dataset): Dataset clásico para preguntas y respuestas.
  • MS MARCO: Dataset para recuperación y generación de respuestas a partir de texto.
    4. Infraestructura
  • Bases de datos vectoriales:
    • Pinecone, Milvus, Weaviate.
  • Frameworks de aprendizaje profundo:
    • PyTorch, TensorFlow.
  • API de acceso a modelos:
    • OpenAI API, Hugging Face Transformers.
    5. Recursos educativos



Large Action Models (LAMs)

Los Large Action Models (LAMs) son un concepto emergente relacionado con la inteligencia artificial, que amplía las capacidades de los modelos de lenguaje (como GPT) hacia la toma de decisiones y la ejecución de acciones en entornos dinámicos y complejos. Mientras que los modelos de lenguaje generan texto, los LAMs están diseñados para realizar acciones concretas, interactuar con sistemas o ejecutar tareas en el mundo real. Esto los hace ideales para aplicaciones en robótica, sistemas autónomos, juegos, y otras áreas donde la toma de decisiones automatizada es clave.


Características principales de los LAMs

  1. Generación de Acciones: En lugar de producir solo texto, generan comandos o secuencias de acciones ejecutables.
  2. Entrenamiento basado en interacción: Se entrenan en entornos simulados o reales donde pueden experimentar las consecuencias de sus decisiones.
  3. Adaptabilidad: Son capaces de aprender y ajustarse a dinámicas cambiantes en su entorno.
  4. Integración multimodal: Pueden combinar texto, visión, movimiento, y otros datos para realizar tareas complejas.

Ejemplos de LAMs

  1. AlphaGo (DeepMind):
    • Desarrollado para jugar al juego de Go.
    • Combina aprendizaje profundo y aprendizaje por refuerzo para decidir movimientos en el tablero.
  2. Tesla FSD (Full Self Driving):
    • Utiliza modelos para tomar decisiones de manejo en tiempo real, como frenar, girar o cambiar de carril.
  3. Codex (OpenAI):
    • Aunque no es un LAM puro, puede considerarse precursor en tareas programáticas, ya que genera código para ejecutar funciones específicas.
  4. ControlNet (para robótica):
    • Utiliza instrucciones textuales para controlar robots físicos o simulados.

Recursos disponibles para desarrollar LAMs

Desarrollar un LAM requiere herramientas avanzadas y acceso a datos especializados. Aquí tienes una lista de recursos clave:

1. Plataformas de desarrollo
  • OpenAI Gym / PettingZoo: Entornos para aprendizaje por refuerzo.
  • Unity ML-Agents: Simulador de entornos 3D interactivos.
  • MuJoCo: Simulador físico utilizado para entrenar modelos en tareas motoras.
2. Modelos base
  • Transformers: Modelos como GPT, BERT, y variantes para usar como base.
  • Reinforcement Learning Algorithms: Algoritmos como DQN, PPO, o A3C.
3. Datasets
  • D4RL (Datasets for Reinforcement Learning): Conjunto de datos para aprendizaje por refuerzo offline.
  • Meta-World: Conjunto de entornos simulados para tareas de robótica.
  • OpenAI CLIP datasets: Para modelos que integran lenguaje y visión.
4. Infraestructura
  • GPUs y TPUs: Para entrenar modelos grandes.
  • Frameworks como PyTorch y TensorFlow: Implementación de modelos y entrenamiento.
  • Cloud Services (AWS, Azure, Google Cloud): Escalabilidad para entrenar modelos.
5. Bibliografía y recursos educativos
  • Libros:
    • "Reinforcement Learning: An Introduction" de Sutton y Barto.
    • "Deep Reinforcement Learning Hands-On" de Maxim Lapan.
  • Cursos:
    • "Deep Learning Specialization" en Coursera.
    • "CS294: Deep Reinforcement Learning" de UC Berkeley (disponible en YouTube).
  • Blogs y Papers:
6. Comunidades y foros
  • Reddit: Subreddits como r/MachineLearning y r/ControlTheory.
  • GitHub: Repositorios de código abierto para aprendizaje por refuerzo.
  • Discord y Slack: Comunidades como ML Collective.

lunes, 16 de diciembre de 2024

Computer Vision

 Azure AI Vision

El servicio Face de Azure AI ofrece algoritmos de IA que detectan, reconocen y analizan caras humanas en las imágenes. El software de reconocimiento facial es importante en muchos escenarios, como la identificación, el control de acceso sin contacto y el desenfoque automático facial para la privacidad.

Existen varios servicios de rostros:

  • Detect faces in an image: Detecta la ubicación de uno o más rostros humanos en imágenes, junto con atributos como pose, máscara facial y puntos de referencia faciales.
  • Face liveness detection: Detecta si el rostro de una imagen es una persona real o una fotografía. Esto resulta útil para evitar ataques de suplantación de identidad.
  • Portrait processing: Detecta la ubicación de uno o más rostros humanos en imágenes, junto con atributos como pose, máscara facial y puntos de referencia faciales.
  • Photo ID matching: Haga coincidir la foto de una persona con un documento de identidad con fotografía para verificar su identidad.
Para el reconocimiento de texto:
  • Extract text from images: Utilice la API Read para extraer texto impreso y escrito a mano en los idiomas admitidos de imágenes, archivos PDF y TIFF. La función de reconocimiento óptico de caracteres (OCR) admite imágenes y documentos con idiomas combinados y no requiere especificar el idioma.

Amazon Rekognition

Amazon Rekognition proporciona API que puede detectar y analizar rostros en imágenes y vídeos. Estas operaciones incluyen funcionalidades como la detección de puntos de referencia faciales, el análisis de emociones y la comparación de rostros.

Amazon Rekognition puede detectar texto en imágenes y vídeos. A continuación, puede convertir el texto detectado en texto legible por una máquina.

jueves, 5 de diciembre de 2024

Procesar textos con TRANSFORMERS


Para procesar textos con el objetivo de extraer información sobre personas y datos asociados utilizando un modelo transformer, como los de la familia BERT o GPT, se puede seguir los siguientes pasos:

1. Definir el objetivo

Decidir qué tipo de información extraer del texto. Por ejemplo:

  • Entidades nombradas: nombres de personas, lugares, fechas, números de teléfono.
  • Relaciones entre entidades: por ejemplo, quién trabaja para quién.
  • Características de personas: edad, dirección, profesión.

2. Elegir un modelo adecuado

Elegir un modelo dependiendo de las necesidades:

  • NER (Reconocimiento de Entidades Nombradas): Usa un modelo preentrenado como BERT o RoBERTa y ajustado para NER.
  • QA (Question Answering): Para plantear preguntas al modelo sobre el texto.
  • Clasificación/Segmentación de texto: Para extraer datos específicos, se puede entrenar un modelo para identificar las entidades que nos interesan.
Modelos recomendados:
  • SpaCy: Una biblioteca práctica con modelos NER listos para usar.
  • Hugging Face Transformers: Ofrece modelos preentrenados y ajustes para tareas específicas.

3. Preparar el texto

Antes de procesar el texto, es necesario limpiarlo y preprocesarlo:

  • Limpieza básica:
    • Elimina caracteres no deseados (por ejemplo, emojis, HTML).
    • Estándariza el formato (como mayúsculas/minúsculas).
  • Tokenización: Utiliza una tokenización adecuada al transformer (como WordPiece para BERT).

4. Configurar el pipeline de procesamiento

Con Hugging Face se puede usar un pipeline para extraer información con modelos preentrenados.

Ejemplo: Reconocimiento de entidades nombradas (NER)

python

from transformers import pipeline # Carga un modelo preentrenado para NER ner_pipeline = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english") text = "John Doe lives in New York and works at OpenAI." entities = ner_pipeline(text) # Muestra las entidades detectadas for entity in entities: print(f"Texto: {entity['word']}, Tipo: {entity['entity']}, Confianza: {entity['score']}")


Ejemplo: Extracción de información mediante QA

Si tienes una pregunta específica, usa un pipeline de QA:

python

from transformers import pipeline # Carga un modelo de preguntas y respuestas qa_pipeline = pipeline("question-answering", model="deepset/roberta-base-squad2") context = "John Doe, a software engineer, works at OpenAI. He lives in New York." question = "¿Dónde vive John Doe?" result = qa_pipeline(question=question, context=context) print(f"Respuesta: {result['answer']}")



5. Opcional: Entrenamiento adicional

Si los modelos preentrenados no detectan entidades o datos específicos que nos interesan:

  1. Recopilar datos etiquetados: Usar herramientas como Prodigy o Label Studio.
  2. Entrenar un modelo:
    • Se puede afinar un transformer con Hugging Face y un dataset etiquetado como CoNLL-2003 o uno propio.
Código básico para ajustar un modelo NER:
python

from transformers import AutoModelForTokenClassification, TrainingArguments, Trainer
from datasets import load_dataset
# Carga el dataset
dataset = load_dataset("conll2003")
# Carga el modelo preentrenado
model = AutoModelForTokenClassification.from_pretrained("bert-base-cased", num_labels=len(label_list))
# Configura el entrenamiento
training_args = TrainingArguments(
output_dir="./results",
evaluation_strategy="epoch",
learning_rate=2e-5,
per_device_train_batch_size=16,
num_train_epochs=3,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=dataset["train"],
eval_dataset=dataset["validation"],
)
# Entrena
trainer.train()

6. Postprocesamiento

Una vez extraída la información:

  • Normalizar los datos (por ejemplo, conviertir fechas a un formato estándar).
  • Validar las entidades encontradas (por ejemplo, contra bases de datos externas).
  • Almacenar los resultados en un formato estructurado (JSON, CSV, etc.).



viernes, 29 de noviembre de 2024

Reconocimiento de placas de automobiles

¿Qué es el reconocimiento de placas de licencia?

ANPR (Automatic number plate recognition) o Automatic license plate recognition (ALPR) son las siglas en ingles del reconocimiento automático de patentes, que básicamente consiste en la extracción de información de la patente del vehículo a partir de una imagen o una secuencia de imágenes. 

El reconocimiento de placas de licencia, también conocido como reconocimiento automático de placas de licencia (RALP), es una tecnología que utiliza algoritmos de procesamiento de imágenes y aprendizaje automático para identificar y reconocer automáticamente los números de las placas de licencia de los vehículos. Esta tecnología se basa en la captura de imágenes de las placas de licencia a través de cámaras y el análisis de estas imágenes para extraer los caracteres alfanuméricos que componen los números de las placas.

Palabras claves

ANPR (Automatic number plate recognition) o Automatic license plate recognition (ALPR) son las siglas en ingles del reconocimiento aut omático de patentes, que básicamente consiste en la extracción de información de la patente del vehículo a partir de una imagen o una secuencia de imágenes. 

Tecnología utilizada en el reconocimiento de placas de licencia

Procesamiento de imágenes

Para llevar a cabo el reconocimiento de placas de licencia, se utiliza el procesamiento de imágenes. Este proceso implica la captura de imágenes de Alta resolución de las placas de licencia a través de cámaras especializadas. A continuación, se aplican algoritmos de procesamiento de imágenes para mejorar la calidad de las imágenes, corregir distorsiones y extraer los caracteres alfanuméricos de las placas.

Aprendizaje automático y redes neuronales

Además del procesamiento de imágenes, el reconocimiento de placas de licencia también hace uso de técnicas de aprendizaje automático y redes neuronales. Estas técnicas permiten entrenar algoritmos para reconocer y clasificar los caracteres de las placas de licencia, mejorando así la precisión y la capacidad de adaptación del sistema a diferentes situaciones y condiciones de captura de imágenes.

Principales modelos

YOLO (You Only Look Once)
  • Características: YOLO es un modelo de detección de objetos en tiempo real. Es muy eficiente para detectar y delimitar objetos como patentes en imágenes o videos.
  • Preentrenado: Está entrenado con el dataset COCO (Common Objects in Context), que incluye automóviles y otros objetos, pero puedes entrenarlo específicamente para detectar placas.
  • Implementación:
    Necesitarás crear un dataset anotado con las placas de autos.
    Puedes usar herramientas como LabelImg para etiquetar placas en imágenes.
Faster R-CNN
  • Características: Modelo robusto para detección de objetos con precisión alta, aunque no es tan rápido como YOLO.
  • Preentrenado: Utiliza datasets genéricos como COCO o Pascal VOC.
  • Ventaja: Fácil de ajustar a la tarea específica de detección de placas.
Detectron2 (de Facebook AI)
  • Características: Plataforma de detección de objetos de última generación basada en Faster R-CNN, Mask R-CNN y otros modelos avanzados.
  • Preentrenado: Puedes comenzar con un modelo base y realizar transfer learning con tu dataset de patentes.
EAST (Efficient and Accurate Scene Text Detector)
  • Características: Especializado en la detección de texto en imágenes.
  • Preentrenado: Muy utilizado como paso previo al OCR. Puedes usarlo para identificar áreas de texto (como placas) y luego aplicar un modelo OCR.
CRNN (Convolutional Recurrent Neural Network)
  • Características: Ideal para tareas OCR después de detectar la región de interés (ROI) de las placas con un detector de objetos.
  • Preentrenado: Hay modelos disponibles entrenados en texto en ambientes diversos.

¿Cómo funciona el reconocimiento de placas de licencia?

El funcionamiento del reconocimiento de placas de licencia consta de varios pasos principales. En primer lugar, las cámaras capturan imágenes de las placas de licencia de los vehículos. Luego, estas imágenes son procesadas mediante algoritmos de extracción de características para identificar y aislar los caracteres alfanuméricos de las placas. A continuación, se utilizan algoritmos de reconocimiento de patrones y aprendizaje automático para clasificar y reconocer los caracteres y formar las secuencias de números y letras que componen los números de las placas. Finalmente, se realiza la verificación y validación de los resultados obtenidos, y se generan informes o se toman acciones dependiendo de la aplicación específica del sistema de reconocimiento.

Repositorios y proyectos

Como referencia sabemos que la solución implementada en autopistas y CNSI tiene una efectividad del 96% (sobre 56 casos tomados).

License Plate Recognizer (Argentina)

Modelo basado en Python + OCR. Utiliza OpenCV para preprocesar imágenes y detectar regiones donde se encuentran las matrículas mediante técnicas como la binarización y la detección de bordes y Tesseract OCR, una herramienta de código abierto, para extraer el texto de las matrículas una vez que son segmentadas de las imágenes

Resultado: localizar patentes: 8%  Efectividad total 0%. Sólo funciona bien con las imágenes propias del proyecto.

Automatic Number Plate Recognition Proof of Concept with Azure Cognitive Services

Utiliza Azure Cognitive Services para reconocimiento de patentes.
Resultado: no se pudo probar todavía x falta de permisos de acceso a los servicios.

Reconocimientos Automático de Matrículas ANPR

TP de un alumno de  Ingeniería en Electrónica. Están muy bien aplicados los conceptos básicos sobre acondicionamiento y transformaciones de imágenes (smoothing, averaging, median blurring, erode y dilate).


SimpleLPR - .NET

Componente publicado en Nuget. En la página de Warelogic se publica un costo por única vez de $450.
Resultado: localizar patentes: 98%. Efectividad total 82%.

License plate recognition using CNN

Jupiter Notebook (Python) que utiliza deep learning (CNN - Convolucional Neural Network) para la detección de patentes. Utiliza OpenCV, TensorFlow, Keras y bibliotecas de Python (Sklearn).
Está optimizado para patentes de la India.
La ventaja de este proyecto es que se puede reentrenar.
Resultado: localizar patentes: 53%. Efectividad total 0%.

OpenALPR es una biblioteca de código abierto para el reconocimiento automático de matrículas escrita en C++ con enlaces en C#, Java, Node.js, Go y Python. La biblioteca analiza imágenes y secuencias de vídeo para identificar matrículas. El resultado es la representación de texto de cualquier carácter de la matrícula.
Actualmente no cuenta con reconocimientos de patentes de Argentina. Se hicieron pruebas con varioas regiones.
Resultado: localizar patentes: 63%. Efectividad total 25%.

Conclusiones

Metricas de los 3 proyectos (sobre un total de 100 casos)

Más allá del tratamiento de imágenes para reconocer las patentes está el desarrollo de la solución que toma las imágens de la cámara de video, que debe permitir definir regiones y generar la salida para el tratamiento de cada imagen y luego guardar el resultado de las capturas realizadas.
Esta solución debería dar la posibilidad de obtener la última patente registrada en un puesto de control a un momento determinado.

viernes, 18 de octubre de 2024

Ejemplo de personalización de Modelos de Lenguaje (LM) con RAG

 El siguiente es un ejemplo de modelo de lenguaje personalizado con RAG (Retrieval Aumented Generation)

Proyecto: eShopSupport

Video: https://reactor.microsoft.com/es-es/reactor/events/23333/ 

Soporta los siguientes casos de uso: 

  • Text classification, applying labels based on content
  • Sentiment analysis based on message content
  • Summarization of large sets of text
  • Synthetic data generation, creating test content for the sample
  • Chat bot interactions with chat history and suggested responses

De este proyecto se desprenden las siguientes herramientas y técnicas:

.Net Aspire: es una herramienta completa para el diagnóstico y la supervisión de aplicaciones. El panel permite realizar un seguimiento estrecho de varios aspectos de la aplicación, incluidos registros, seguimientos y configuraciones de entorno, en tiempo real.

Redis: plataforma de bases de datos en tiempo real. Redis es un motor de base de datos en memoria, basado en el almacenamiento en tablas de hashes pero que opcionalmente puede ser usada como una base de datos durable o persistente.


martes, 12 de mayo de 2020

Explainable AI


8 Explainable AI Frameworks

Explainable AI te ayuda a comprender los resultados que genera el modelo de aprendizaje automático predictivo para las tareas de clasificación y regresión definiendo cómo cada atributo de una fila de datos contribuyó al resultado previsto. A menudo, esta información se conoce como atribución de atributos.

Entre los frameworks mencionados se destacan:

What-if Tool: TensorFlow team announced the What-If Tool, an interactive visual interface designed to help visualize datasets and better understand the output of TensorFlow models.

LIME: Local Interpretable Model-Agnostic Explanations LIME is an actual method developed by researchers at the University Of Washington to gain greater transparency on what’s happening inside an algorithm.

DeepLIFT: DeepLIFT is a method that compares the activation of each neuron to its ‘reference activation’ and assigns contribution scores according to the difference.

AIX360: The AI Explainability 360 toolkit is an open-source library developed by IBM in support of interpretability and explainability of datasets and machine learning models.

Activation Atlases: Google in collaboration with OpenAI, came up with Activation Atlases, which was a novel technique aimed at visualising how neural networks interact with each other and how they mature with information along with the depth of layers.


44 Repositorios en github sobre explainable ai

Incluye: DALEX, AIX360, LIME, xai, DiCE, cxplain.


An overview of model explainability in modern machine learning

Towards a better understanding of why machine learning models make the decisions they do, and why it matters

lunes, 16 de marzo de 2020

Data Science Resources


Kaggle, una subsidiaria de Google LLC, es una comunidad en línea de científicos de datos y profesionales del aprendizaje automático.
Inside Kaggle you’ll find all the code & data you need to do your data science work. Use over 19,000 public datasets and 200,000 public notebooks to conquer any analysis in no time.





miércoles, 12 de febrero de 2020

Record Linkage and String Marching

Técnicas y herramientas para poder realizar matching de registros, limpieza y normalización de información, muchas de ellas utilizando Levenshtein Distance.

SQL Server:

Beyond SoundEx - Functions for Fuzzy Searching in MS SQL Server
Librería escrita en C# para ser definir funciones de comparación de textos en SQL Server.

Roll Your Own Fuzzy Match / Grouping (Jaro Winkler) - T-SQL  -->
JaroWinklerStringSimilarity.sql (GitHub)

Cleaning Messy Data in SQL, Part 1: Fuzzy Matching Names


Master Data Services
Qué es?
Master Data Services Overview (MDS)

Data Quality Services
Data Quality Services Overview (DQS)


.Net:

SimMetrics (Java)
Similarity Metric Library, from edit distance's (Levenshtein, Gotoh, Jaro etc) to other metrics, (Soundex, Chapman). Work provided by UK Sheffield University funded by (AKT) an IRC sponsored by EPSRC, grant number GR/N15764/01.


StringSimilarity.NET
A library implementing different string similarity and distance measures. A dozen of algorithms (including Levenshtein edit distance and sibblings, Jaro-Winkler, Longest Common Subsequence, cosine similarity etc.) are currently implemented. Based upon F23.StringSimilarity.
Ver en StringSimilarity.NET en GitHub

fuzzystring: Approximate String Comparision in C#

fuzzystring-standard: Approximate String Comparision in C#

TFIDF: term frequency–inverse document frequency, is a numerical statistic that is intended to reflect how important a word is to a document in a collection or corpus. Ver TFIDF en wikipedia.

Data Matching software: a list of (Fuzzy) Data Matching software. The software in this list is open source and/or freely available.

OpenRefine: (previously Google Refine) is a powerful tool for working with messy data: cleaning it; transforming it from one format into another; and extending it with web services and external data.



Python Record Linkage Toolkit
Library to link records in or between data sources

Overview of Record Linkage Methods


viernes, 7 de junio de 2019

Inteligencia Artificial y Big Data aplicados al negocio bancario

Las APIs especializadas en tecnologías como el aprendizaje profundo y el aprendizaje automático sirven a las entidades financieras para la definición de productos y segmentación de clientes, la gestión eficaz del riesgo o la detección del fraude.

Ver artículo completo: BBVA API_Market

BBVA Productos API