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.
Introducción
EstaAunque no es un curso orientado a programadores hemos considerado interesante añadir esta sección ofrececon la única intenciaón de exponer las posibilidades adicionales que ofrecce la IA pra todo aquel que tenga interés o conozca los conceptos básicos de la programación. Probablemente sea el caso de profesores o maestros de ciencias, tecnología etc... Pero también para el resto pues forma parte de la cultura de la IA y como mínimo da una introduccióperspecita adicional de la misma.
No hablamos de programar con ayuda de la IA, algo que hacen casi perfectamente los distintos chatbots que hemos visto, sino de usar código para programar y entrenar nuestros propios modelos u otros modelos puestos a disposición del público (llamados modelos Open Source o de código libre).
Las posibilidades son inmensas ya que hay cada vez más modelos y entornos disponibles de manera gratuita así como recursos didácticos y documentación.
La sección se divide en tres partes, una para quién quiera introducirse en elprogramación mundocon herramientas y recursos disponibles, la segunda habla sobre los distintos entornos para programar con IA y modelos de la programaciónlenguaje y haceruna usoúltima en la que mostramos herramientas de lacreación mismade aplicaciones sin usar código.
Obviamente las dos primeras son sólamente para elaquellos trabajointresados conen modelointroducirse sdo edatosconocer aprovechando la ingente cantidad de recursos y su facilidad de uso
No se trata de un manualherramientas de programación enpor sí mismo, sino más bien de un conjunto de ideas y referenciaslo que permimtiránlas alconsideramos alumno'voluntarias' 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 usodentro 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 iniciarsecurso.
Introducción a python
Aunque otros muchos lenguajes, en un gran porcentaje todo lo que se hace y se está haciendo en la actualidad vinculado a la IA y a la llamada ciencia de datos se desarrolla en python. Por ello centraremos esta sección en este lenguaje cada vez más popular.
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.
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:
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.Jupyter Notebook
RStudio
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
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.
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)Visual Studio Code (VS Code)
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
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.
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.Google Colab
Databricks
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
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
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.IA y en el uso de modelos.
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:
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:
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.
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.