Skip to content

Latest commit

 

History

History
178 lines (121 loc) · 4.6 KB

README.md

File metadata and controls

178 lines (121 loc) · 4.6 KB

GEERS AI - Introducción a la Inteligencia Artificial

En este repositorio van a encontrar los diferentes pasos que vamos a seguir en este primer encuentro sobre Inteligencia Artificial. El objetivo es comenzar a familiarizarnos con algunas de las herramientas que hoy se utilizan en el desarrollo de aplicaciones, de una forma amigable, ya que hay mucho para aprender y no siempre es fácil encontrar un punto de partida.

Si queres ver un resumen en video simplificado, que no utiliza langchain, te dejo a continuación este video que muestra en detalle como utilizar diferentes modelos de forma simplificada:

A Hackers' Guide to Language Models by Jeremy Howard https://youtube.com/watch?v=jkrNMKz9pWU

Pre-requisitos - Tiempo estimado: TBD

Debemos tener pre-instaladas las siguientes herramientas:

  1. git
  2. python@3.10
  3. pip@22.3.1
  4. Visual Studio Code (VSCode) con las siguientes extensiones:
    1. autopep8 para formatear el codigo
    2. Github Copilot para sugerencias de codigo
    3. Python para la sintaxis de python
    4. Pylance para el linter de python
    5. Jupyter para experimentar con notebooks (opcional)

Setup del entorno:

git clone ${url_del_repositorio}
pip install -r requirements.txt
code .

Definición de la API Key de OpenAI:

echo "OPENAI_API_KEY=<your-key>" > .env

Data preparation

En esta primera etapa, vamos a utilizar un dataset de Kaggle, que contiene información de peliculas.

El dataset original se encuentra en este enlace: https://www.kaggle.com/datasets/joebeachcapital/top-10000-most-popular-movies-from-imdb

Pueden encontrar mas información acerca de esta fase en el siguiente enlace: https://www.techtarget.com/searchbusinessanalytics/definition/data-preparation

CSV and Pandas - Tiempo estimado: TBD

Comenzamos por familiarizarnos con el dataset y como manipularlo utilizando pandas:

  1. https://pandas.pydata.org/docs/user_guide/10min.html
  2. https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf

En este archivo encontraras un ejemplo basico para comenzar:

python steps/data-preparation/combine_columns.py

Tiktoken - Tiempo estimado: TBD

Experimentamos con la libreria Tiktok, como para comenzar a familiarizarnos con la traducción texto => tokens.

  1. Byte pair encoding (BPE)

Jugamos en la consola para ver que nos devuelve:

python steps/tokenizers/use_tiktoken.py

Ahora pre-procesamos el dataset para obtener los tokens:

python steps/data-preparation/compute_tokens.py

Embedding - Tiempo estimado: TBD

Comenzamos a procesar los embeddings (vectores de 1516 dimensiones) utilizando el modelo de openai text-embedding-ada-002:

  1. https://platform.openai.com/docs/guides/embeddings/what-are-embeddings
python steps/data-preparation/compute_embedding.py

Base de datos vectoriales - Tiempo estimado: TBD

Ahora vamos a adentrarnos en la utilización de bases de datos vectoriales, en particular para este ejemplo, vamos a utilizar ChromaDB que es un wrapper sobre SQLite:

  1. https://www.trychroma.com/
python steps/vector-db/load-database.py

LangChain

Nos metemos de lleno ahora en el uso de LangChain, que es una libreria que permite integrar LLMs (Language Models) de forma sencilla en nuestras aplicaciones, pero al mismo tiempo intenta crear un ecosistema de herramientas que nos permitan experimentar con diferentes aspectos de la Inteligencia Artificial.

  1. https://python.langchain.com/docs/get_started/introduction.html

Prompts - Tiempo estimado: TBD

Como representamos los prompts en LangChain?

  1. https://www.promptingguide.ai
python steps/langchain/prompts/prompt-templates.py
python steps/langchain/prompts/prompt-from-fstring.py
python steps/langchain/prompts/prompt-from-yaml.py
python steps/langchain/prompts/prompt-composition.py

Memory - Tiempo estimado: TBD

Como le damos memoria?

python steps/langchain/memory/conversation-buffer.py

Retrieval - Tiempo estimado: TBD

Como obtenemos información adicional a la utilizada en el entrenamiento de los modelos third-party?

python steps/langchain/retrieval/web-retrieval.py
python steps/langchain/retrieval/vector-retrieval.py

Agents - Tiempo estimado: TBD

Como utilizamos LangChain para crear agentes conversacionales?

Esta ultima etapa se focaliza en la integración de todo lo que hemos visto hasta ahora para crear un bot que pueda realizar tareas especificas.

python steps/langchain/agent/hugo-v0.py
python steps/langchain/agent/hugo-v1.py