¡Hola a todos! Soy Nataraj y, al igual que tú, me han fascinado los recientes avances de la inteligencia artificial. Al darme cuenta de que necesitaba estar al tanto de todos los avances que ocurrían, decidí embarcarme en un viaje personal de aprendizaje, ¡así nació 100 días de IA ! Con esta serie, aprenderé sobre los LLM y compartiré ideas, experimentos, opiniones, tendencias y aprendizajes a través de las publicaciones de mi blog. Puede seguir el viaje en HackerNoon aquí o en mi sitio web personal aquí . En el artículo de hoy, buscaremos construir un kernel semántico con la ayuda de GPT-4.
Si estás leyendo la serie 100 días de IA, estoy escribiendo un tema común que notarás que la mayoría de las publicaciones tienen algún tipo de experimento o demostración. Al final de las publicaciones también enumero ideas que son posibles con las tecnologías que exploré. Entonces, la siguiente pregunta obvia es: ¿hay alguna manera de convertir fácilmente estos experimentos en productos demostrables y compartirlos con la gente y obtener comentarios?
En esta publicación exploraremos cómo convertir fácilmente un experimento de IA en una demostración que pueda realizarse y obtener comentarios.
Supongamos que desea crear una aplicación de inteligencia artificial que reciba texto y devuelva un resumen. Y desea compartirlo con la gente y obtener comentarios. Si tiene que crear una aplicación web para esta aplicación, debe codificar la interfaz de usuario, asegurarse de encontrar una solución de alojamiento y descubrir cuál será la pila completa. Por supuesto, existen pilas de aplicaciones web iniciadas que permitirán hacerlo más rápido, pero no necesita toda esa complejidad para su caso de uso. En su lugar, usaremos Gradio, que crea una interfaz similar a una aplicación web sin escribir ningún código para esta aplicación.
Gradio es una biblioteca de Python que le permite crear fácilmente demostraciones de sus aplicaciones de IA y compartirlas con una audiencia en forma de una aplicación web.
Para comprender cómo realizar una demostración sencilla de un experimento de IA genérica con Gradio, crearemos una aplicación web de resumen en la que podrá proporcionarle a la aplicación un texto largo y la aplicación generará el resumen de ese texto largo.
Junto con Gradio, usaremos la aplicación Hugging Face, así que para seguirla, asegúrese de tener a mano la clave API de Hugging Face. Para comenzar, carguemos la clave API desde el archivo .env y agreguemos los módulos de Python necesarios.
import os import io from IPython.display import Image, display, HTML #from PIL import Image import base64 import openai env_path = '../.env' from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv(env_path)) # read local .env file hf_api_key = os.environ['HF_API_KEY']
La lógica central de lo que queremos lograr es enviar un texto largo a un modelo y obtener un resumen del texto. Definiremos una función que toma el texto largo como entrada y llama a un modelo en la cara abrazada llamado distilbart . Aquí está la función para hacer esto.
def get_completion(inputs, parameters=None, ENDPOINT_URL=os.environ['HF_API_SUMMARY_BASE']): headers = { "Authorization": f"Bearer {hf_api_key}", "Content-Type": "application/json" } data = { "inputs": inputs } if parameters is not None: data.update({"parameters": parameters}) response = requests.request("POST", ENDPOINT_URL, headers=headers, data=json.dumps(data) ) return json.loads(response.content.decode("utf-8"))
La forma principal de interactuar con Gradio es a través de la función de interfaz . Necesitamos pasar una función y sus correspondientes entradas y salidas. Tenga en cuenta que definimos una nueva función llamada resumir para este propósito. Esta función toma una entrada, que será el texto largo que se va a resumir y la función llamará a la función get_completion del paso 2 para obtener el resumen del texto de entrada y devolverlo como salida . En la última línea le pedimos a gradio que inicie la demostración de esta aplicación. Al proporcionar share=True le estamos diciendo a gradio que cree un enlace público que pueda compartirse con otros y también le damos el puerto_servidor en el que debe ejecutarse el servidor web local. En el siguiente código también personalizamos el título, la descripción y las etiquetas de los campos de entrada y salida que notará en el resultado.
import gradio as gr def summarize(input): output = get_completion(input) return output[0]['summary_text'] gr.close_all() demo = gr.Interface(fn=summarize, inputs=[gr.Textbox(label="Text to summarize", lines=6)], outputs=[gr.Textbox(label="Result", lines=3)], title="Text summarization with distilbart-cnn", description="Summarize any text using the `shleifer/distilbart-cnn-12-6` model under the hood!" ) demo.launch(share=True, server_port=int(os.environ['PORT1']))
Una vez que ejecute esto, así es como se ve el resultado en su navegador en http://127.0.0.1:<su número de puerto>.
Así de fácil es hacer una demostración de un proyecto con Gradio. Lo bueno aquí es que usted, como desarrollador, no tuvo que idear una pila de interfaz de usuario y pasar por la complejidad de aprender esa pila y llevarla a producción. Gradio lo hace por ti.
Gradio ofrece diferentes tipos de entrada y salida con los que puedes crear demostraciones más complejas e interesantes que se pueden compartir fácilmente. Exploraremos más demostraciones con Gradio y otras herramientas en las próximas publicaciones.
Eso es todo por el día 12 de 100 días de IA.
Escribo un boletín llamado Above Average donde hablo sobre los conocimientos de segundo orden detrás de todo lo que está sucediendo en la gran tecnología. Si estás en tecnología y no quieres ser promedio, suscríbete .
Sígueme en Twitter , LinkedIn o HackerNoon para obtener las últimas actualizaciones sobre 100 días de IA. Si está en tecnología, es posible que le interese unirse a mi comunidad de profesionales de la tecnología aquí .