Skip to main content

Unidad 4.4. Programación para incautos.

 

"La inteligencia general artificial no es simplemente una nueva herramienta que está siendo añadida al conjunto humano de herramientas tecnológicas; es la herramienta que va a rehacer y rediseñar todas las demás herramientas."

Esta cita de Ben Goertzel refleja su visión sobre el potencial transformador de la inteligencia general artificial (AGI), sugiriendo que su desarrollo no solo aportará una nueva tecnología, sino que también cambiará fundamentalmente la forma en que interactuamos y mejoramos todas las tecnologías existentes.

image.png

Introducción

Esta sección ofrece una introducción para quién quiera introducirse en el mundo de la programación y hacer uso de la misma para el trabajo con modelo sd edatos aprovechando la ingente cantidad de recursos y su facilidad de uso

No se trata de un manual de programación en sí mismo, sino más bien de un conjunto de ideas y referencias que permimtirán al alumno iniciarse en este mundo.

No se requiere ningún conocimiento previo aunque es deseable ser usuario informático con cierta experiencia

Dada la limitaicón en el tiempo, nos ceñiremos a mostrar algunos ejemplos sencillos, pero a la vez potentes, de uso del lenguaje python en aplicaciones de IA.

Son ejemplos que fáciles de entender pero requieren ciertos rudimentos programáticos

Antes de comenzar, algunas referencias para poder iniciarse

Introducción a python

Para iniciarse en Python, hay una amplia gama de recursos y tutoriales disponibles en línea que pueden ayudar a aprender este lenguaje de programación de manera efectiva. Aquí hay algunas recomendaciones:

Python.org

El sitio web oficial de Python ofrece una sección para principiantes donde puedes encontrar una lista de editores de texto e IDEs recomendados para trabajar con Python, así como libros introductorios y ejemplos de código【27†(Python.org)】.

W3Schools

W3Schools proporciona un tutorial interactivo donde puedes aprender Python a través de ejemplos. Este sitio permite editar el código y ver los resultados en tiempo real, lo cual es una forma práctica de aprender.

DigitalOcean

Ofrece una serie de tutoriales para principiantes en Python. Estos tutoriales exploran el mundo de Python, lo que puede ser una forma útil de obtener una comprensión práctica del lenguaje

FreeCodeCamp

En FreeCodeCamp, hay una lista de 15 cursos gratuitos de Python para principiantes. Entre estos, se incluye un curso completo para principiantes, así como otros recursos como el "Python Handbook" por Flavio Copes【30†(freeCodeCamp)】.Copes.

Microsoft Learn

Microsoft también ofrece un tutorial en español para principiantes en Python, donde podrás descubrir los conceptos básicos de Python, incluyendo el uso de Jupyter Notebook, creación de programas y proyectos, y trabajar con diferentes tipos de datos y estructuras de control en Python.

Estos recursos cubren una variedad de aspectos de Python, incluyendo la sintaxis básica, estructuras de datos, y aplicaciones prácticas del lenguaje. Se proporcionan tanto explicaciones textuales como ejemplos de código interactivos para ayudar a solidificar tu comprensión del material. También es recomendable explorar diferentes plataformas y seleccionar la que mejor se adapte a tu estilo de aprendizaje y necesidades.

Entornos de desarrollo y plataformas

Para la programación y manipulación de modelos de datos, existen varios entornos y herramientas que pueden ser adecuadas dependiendo de tus necesidades y preferencias. A continuación se presentan algunas opciones populares:

Jupyter Notebook
Este es un entorno interactivo que permite la ejecución de código, visualización de datos y documentación todo en uno. Es ampliamente utilizado por científicos de datos y analistas.

RStudio
Es un entorno de desarrollo integrado (IDE) para el lenguaje de programación R, que es muy utilizado para la estadística y la visualización de datos.

PyCharm
Este es un IDE para Python, que es un lenguaje de programación muy popular en el ámbito de la ciencia de datos. PyCharm proporciona muchas herramientas y características que facilitan la programación de modelos de datos.

Visual Studio Code (VS Code)
Este es un editor de código fuente gratuito y de código abierto que es extensible y personalizable. Con las extensiones adecuadas, puede ser una herramienta poderosa para trabajar con datos.

SQL Server Management Studio (SSMS)
Si estás trabajando con bases de datos SQL Server, SSMS es un entorno robusto para la gestión y programación de modelos de datos.

DataGrip
Es un IDE de JetBrains para bases de datos y SQL. Permite la conexión a múltiples bases de datos, exploración de datos, y muchas otras funciones útiles para trabajar con modelos de datos.

Google Colab
Es un entorno de notebook en la nube que permite la ejecución de código en servidores de Google, lo cual puede ser útil para la manipulación y análisis de grandes conjuntos de datos.

Databricks
Plataforma basada en la nube que integra un entorno de notebook con capacidades de ejecución distribuida, lo cual es útil para trabajar con grandes conjuntos de datos y modelos complejos.

Tableau
Si bien no es un entorno de programación per se, Tableau es una herramienta poderosa para la visualización y exploración de datos.

MATLAB
Es un entorno para la programación matemática y la manipulación de datos, especialmente útil en el ámbito académico y de investigación.

La elección entre estos entornos dependerá de tus necesidades específicas, la complejidad de tus modelos de datos, y tu familiaridad con los lenguajes de programación y las herramientas mencionadas. También puede ser útil considerar la comunidad y el soporte disponible para cada entorno, así como su integración con otras herramientas y plataformas que puedas estar utilizando.

Creación aplicaciones de IA

A continuación presentamos las herramientas y entornos más importantes relacionadas con la creación y desarrollo de aplicaciones basadas en IA.

HuggingFace

Hugging Face es una empresa conocida por su trabajo en el campo del procesamiento del lenguaje natural (PLN) y el aprendizaje profundo. A continuación, se presentan algunas áreas clave en las que Hugging Face es relevante en el contexto de la programación y gestión de modelos de datos:

1. Biblioteca Transformers:
   - Hugging Face es famoso por su biblioteca Transformers, que proporciona implementaciones de muchos modelos de lenguaje populares como BERT, GPT-2, T5, y otros. Esta biblioteca facilita el entrenamiento, la evaluación y el uso de estos modelos para diversas tareas de PLN.

2. Model Hub:
   - Hugging Face también ofrece una plataforma conocida como Model Hub, donde los investigadores y desarrolladores pueden compartir y acceder a modelos preentrenados. Esto facilita la reutilización de modelos y acelera el desarrollo de aplicaciones de PLN.

3. Datasets Library:
   - Además, Hugging Face proporciona una biblioteca de conjuntos de datos que facilita el acceso a una amplia variedad de conjuntos de datos para entrenamiento y evaluación de modelos.

4. Tokenizers Library:
   - La biblioteca de tokenizadores de Hugging Face proporciona herramientas para convertir texto en tokens, un paso esencial en el procesamiento del lenguaje natural.

5. Servicios en la Nube:
   - Hugging Face también ofrece servicios en la nube para entrenar y alojar modelos de lenguaje, proporcionando una plataforma para gestionar el ciclo de vida de los modelos de PLN.

6. Colaboraciones y Comunidad:
   - Hugging Face colabora con muchas otras organizaciones y comunidades en el campo del aprendizaje profundo y PLN, contribuyendo a la innovación y el avance en estas áreas.

En resumen, Hugging Face proporciona herramientas y plataformas que facilitan la gestión y programación de modelos de datos, especialmente en el ámbito del procesamiento del lenguaje natural. Su biblioteca Transformers, junto con el Model Hub y otras herramientas, proporcionan un ecosistema robusto para trabajar con modelos de lenguaje y datos relacionados con el texto.

Langchain

LangChain es una plataforma diseñada para facilitar la interacción con modelos de lenguaje grandes (Large Language Models o LLMs) y la integración de estos modelos en aplicaciones y pipelines de datos. A continuación se presentan algunas características clave y capacidades de LangChain:

Integración con LLMs
  LangChain (https://www.langchain.com/) proporciona una interfaz estándar que facilita la interacción con una variedad de LLMs de diferentes proveedores como OpenAI, Cohere, Bloom, Huggingface, entre otros.

LangChain ofrece una manera estructurada y modular de trabajar con LLMs y aprovechar sus capacidades en una variedad de aplicaciones y escenarios. Esto lo convierte en una herramienta valiosa para los ingenieros de datos y desarrolladores que buscan integrar modelos de lenguaje en sus proyectos.

Documentación

https://docs.langchain.com/docs/

Construcción de Prompts y Gestión de Conversaciones:
Ofrece herramientas para simplificar la creación y gestión de prompts, así como módulos de memoria para gestionar y alterar conversaciones pasadas, lo que es crucial para chatbots【13†(DEV Community)】.

Chaining o Encadenamiento de Modelos:
Una característica única de LangChain es su capacidad para crear Chains (cadenas) que son enlaces lógicos entre uno o más LLMs, permitiendo crear aplicaciones más complejas al encadenar diferentes componentes【6†(EcoAGI)】【8†(Pinecone)】.

Agentes Inteligentes e Indexación:
Equipa a los agentes con un conjunto de herramientas integral y proporciona métodos para organizar documentos de manera que faciliten la interacción efectiva con los LLMs【13†(DEV Community)】.

Aplicaciones Variadas:
LangChain se puede utilizar para una amplia gama de aplicaciones como chatbots, sistemas de preguntas y respuestas generativas, resumen de texto y mucho más, proporcionando un marco para incluir IA de LLMs en pipelines de datos y aplicaciones.

Procesamiento de Datos:
Descompone grandes cantidades de datos en trozos o chunks más manejables, los cuales pueden ser fácilmente incrustados en un vector store. Al recibir un prompt, LangChain consulta el Vector Store para obtener información relevante y luego alimenta esta información al LLM para generar o completar la respuesta.

Generación interfaces 

streamlit: Creación de aplicaciones basado en python, se suele usar en entornos de LangChain para generar aplicaciones.

https://streamlit.io/

Aplicaciones sin código

Construir aplicaciones con inteligencia artificial (IA) ha sido históricamente una tarea compleja que requiere un conocimiento profundo de algoritmos, estadísticas, y programación. Sin embargo, la aparición de plataformas y herramientas "low-code" o "no-code" ha simplificado significativamente este proceso, permitiendo incluso a los usuarios sin experiencia técnica integrar capacidades de IA en sus aplicaciones. Aquí hay algunas herramientas y plataformas que facilitan la construcción de apps con IA:

Microsoft Power Apps

Con la integración de Microsoft AI Builder, los usuarios pueden añadir inteligencia artificial a sus aplicaciones sin escribir código. Esto incluye capacidades como procesamiento de formularios, predicción, clasificación de objetos en imágenes, y más.

Google AppSheet

AppSheet permite a los usuarios crear aplicaciones móviles y web con funciones de IA como reconocimiento de imágenes, procesamiento del lenguaje natural y modelado predictivo, todo sin necesidad de programar.

OutSystems

Ofrece una plataforma de desarrollo low-code con capacidades de IA, permitiendo a los usuarios integrar servicios de IA y machine learning en sus aplicaciones.

Mendix

Esta plataforma low-code proporciona herramientas para construir aplicaciones inteligentes, integrando servicios de IA y machine learning para mejorar la experiencia del usuario y la eficiencia operativa.

Adalo

Aunque Adalo se centra principalmente en la creación de aplicaciones móviles sin código, los usuarios pueden integrar funcionalidades de IA a través de APIs externas para añadir capacidades avanzadas a sus aplicaciones.

Bubble

Bubble permite a los usuarios construir aplicaciones web sin código y puede integrarse con herramientas de IA mediante el uso de APIs, proporcionando funcionalidades como chatbots, análisis de texto, y más.

Thunkable

Thunkable ofrece la capacidad de crear aplicaciones móviles sin código y permite integrar funciones de IA como reconocimiento de texto, imagen y voz.

Glide

Glide transforma hojas de cálculo de Google en aplicaciones y ofrece integraciones con servicios de IA para añadir funcionalidades como reconocimiento de imágenes y procesamiento de lenguaje natural.

Voiceflow:

Permite a los usuarios diseñar, prototipar y construir aplicaciones de voz interactivas (como Alexa Skills o acciones de Google) sin código, integrando capacidades de procesamiento del lenguaje natural.

Clarifai:

Aunque Clarifai proporciona una API de IA para desarrolladores, también ofrece una interfaz visual que permite a los usuarios crear y entrenar modelos de visión por computadora sin escribir código.

Estas herramientas y plataformas están democratizando el acceso a la inteligencia artificial, permitiendo a más personas aprovechar el poder de la IA para crear aplicaciones avanzadas y personalizadas.