Spaces:
Runtime error
Runtime error
from pinecone_quieries import PineconeProposalQueries | |
import streamlit as st | |
def show_about_ask2democracy(): | |
description = """ | |
<h2>Sobre esta iniciativa</h2> | |
<p>El debate ciudadano generalmente está sustentado en documentos que salvo pocas excepciones, casi nadie lee. | |
En este demo se han indexado algunos textos relevantes para la discución pública que suelen estar dispersos y poco accesibles. Además, se apoya en el estado del arte de la inteligencia artificial (abajo más detalles) , permitiendo explorar los documentos haciéndoles preguntas en español. | |
<p> | |
Por otro lado, las alucinaciones generadas por modelos de lenguaje grandes como ChatGPT/GPT-4 son un problema que en la práctica resulta en desinformación y posibles consecuencias aún desconocidas. OpenAI ha liderado el camino en el control de estas alucinaciones mediante el uso de RLHF para generar texto a partir del conocimiento "congelado" de los modelos de lenguaje. Sin embargo, esta aproximación no es viable en muchos dominios específicos. | |
<p> | |
En este demo se aborda el problema de las alucinaciones utilizando una arquitectura RAG, Retrieval Augmented Generation. En el pipeline de consulta, se utilizan modelos sentence transformers para obtener el top k de documentos candidatos, modelos Roberta para generar respuestas abstractas tomadas de las fuentes y modelos generativos para aumentar las respuestas. | |
Dándole un estilo conversacional similar al de ChatGPT pero basado en fuentes. | |
<p> | |
También se busca contribuir a la inteligencia artificial abierta y en español, mediante la construcción de datasets y el entrenamiento de modelos de lenguaje adaptados para las discusiones democráticas. Algo que puede ayudar a elevar la calidad del debate en todos los países de habla hispana. | |
<p> | |
Textos indexados: Propuesta reforma pensional de Marzo 22 de 2023, Propuesta reforma de la salud del 13 febrero 2023 , Capítulo de hallazgos y recomendaciones de la comisión de la verdad sobre el conflicto armado Colombiano (trabajo en progreso, si quieres apoyar escríbeme) | |
<div align="right"> | |
Creado por Jorge Henao 🇨🇴 <a href="https://twitter.com/jhenaotw" target='_blank'>Twitter</a> <a href="https://www.linkedin.com/in/henaojorge" target='_blank'>LinkedIn</a> <a href="https://linktr.ee/jorgehenao" target='_blank'>Linktree</a> | |
<br> | |
Con el apoyo de David Torres 🇨🇴 <a href="https://twitter.com/davinci137" target='_blank'>Twitter</a> <a href="https://github.com/datorresb" target='_blank'>LinkedIn</a> | |
</div> | |
<p> | |
<h2>Sobre el trabajo realizado durante la Hackathon Somos NLP 2023</h2> | |
El proyecto Ask2Democracy fue creado antes de la hackathon Somos NLP 2023. Las siguientes contribuiciones fueron realizadas durante las fechas de la Hackathon (20 de Marzo al 9 de Abril de 2023): | |
<h4>En el espacio demo:</h4> | |
<ul> | |
<li>Refactor/Ajustes de integración con la base de datos vectorial Pinecone.</li> | |
<li>Pre-procesado e indexación de la propuesta de reforma pensional de Colombia de Marzo 2023.</li> | |
<li>Refactor UX y ajustes de usabilidad de la interfaz de usuario.</li> | |
<li>Ajustes de integración con OpenAI</li> | |
<li>Pruebas/Ajustes en el pipeline de consulta Sentence transformers usando texto en español y xlm-roberta-base-squad2-distilled</li> | |
</ul> | |
<h4>Modelos de lenguaje:</h4> | |
Fueron entrenados dos modelos Baizemocracy basados en LLaMA-7B con foco en aumentar los documentos retornados en el pipeline de consulta, con el fin de hacerlo más conversacional usando modelos open source en español. | |
Los siguientes modelos fueron entrenados entrenados con un dataset construido durante la hackathon además de varios datasets orientados a Question answering y Chat. | |
<ul> | |
<li><a href="https://huggingface.co/hackathon-somos-nlp-2023/baizemocracy-lora-7B-cfqa">baizemocracy-lora-7B-cfqa</a>: Esta variación del modelo es más enfocada en generar respuestas factuales dado un contexto basado en fuentes.</li> | |
<li><a href="https://huggingface.co/hackathon-somos-nlp-2023/baizemocracy-lora-7B-cfqa-conv">baizemocracy-lora-7B-cfqa-conv</a>: Esta variación del modelo tiene un estílo más conversacional para generar respuestas factuales dado un contexto basado en fuentes.</li> | |
</ul> | |
<h4>Datasets:</h4> | |
<ul> | |
<li><a href="https://huggingface.co/datasets/hackathon-somos-nlp-2023/ask2democracy-cfqa-salud-pension">ask2democracy-cfqa-salud-pension</a>: Un datset de tipo instrucciones con respuestas a preguntas generadas a partir de textos de reforma sobre salud y pensiones en español.</li> | |
</ul> | |
Nota: Los modelos generativos entrenados durante la hackathon requieren optimizaicón adicional para ser integrados en el pipeline de consulta que ya utiliza otros modelos transformers. | |
Durante la hackathon se realizaron pruebas con tiempos de inferencia mayor a 70 segundos sobre GPU, sin contar el resto de componentes del pipeline de consulta. Lo que sobrepasa las capacidades de infraestructura gratiuita de Hugging Face sobre CPU. | |
Futuras actualizaciones se esperan incorporar en el demo original del proyecto <a href="https://huggingface.co/spaces/jorge-henao/ask2democracycol">espacio demo original del proyecto</a> | |
<h2>¿Cómo utilizar este espacio?</h2> | |
Selecciona el de documento que quieres explorar en el panel de la izquierda, escribe preguntas en la caja de texto y presiona el botón. | |
No se trata de un sistema de búsquedas basado en palabras clave, por el contrario, puedes redactar preguntas más extensas y elaboradas. Cuanto más contexto le des a la pregunta mejores resultados obtienes. | |
<h2>Integración opcional con OpenAI</h2> | |
Este demo usa recursos de computo limitados sin costo para la gente (si quieres ayudar a que sea más rápido ecríbeme). | |
De manera opcional, si tienes una cuenta en OpenAI también puedes activar la integración copiando tu API key en el panel de la izquierda. | |
Una vez ingreses el api key, cada vez que hagas una pregunta el sistema la usará para elaborar una respuesta breve a partir de los resultados de búsqueda obtenidos, basándose siempre en las fuentes oficiales. | |
También puedes configurar que tan larga quieres que sea la respuesta (max tokens), y que tan creativas (temperatura). | |
<p><p><b>Nota:El sistema no guarda tu API key, sólo la utiliza para aumentar tus consultas mientras lo uses.</b> | |
<h2>Inteligencia artificial y democracia</h2> | |
Pretende ayudar a construir democracia participativa apaloncándose en el estado del arte de la inteligencia artificial. | |
Al ser un demo accesible en web, puede ayudarle a un ciudadano del común a tener una opinión más informada, ayudándole a ser partícipe del debate público haciendo preguntas directamente a las fuentes en su propio lenguaje y llegando a sus propias conclusiones. | |
<p><p> | |
Respecto a la inteligencia artificial hay algunas hipótesis que se quieren probar: | |
<ul> | |
<li> ¿Que tan efectivo puede ser un sistema de búsquedas con modelos de inteligencia artificial abiertos, para ayudar a la gente a entender discuciones ciudadanas relevantes en español? </li> | |
<li> ¿Que tan creativa puede ser la ingeligencia artificial en esa materia?</li> | |
<li> ¿Puede la inteligencia artificial abierta, ayudarle a la gente a entender documentos legislativos: propuestas de reforma, planes de gobierno, y en general documentos de discución pública?</li> | |
<li> ¿Puede un sistema RAG usando modelos abiertos mejorar las halucinaciones presentadas en sistemas como ChatGPT/GPT-4 de OpenAI para el entendimiento de discusiones democráticas en español?</li> | |
</ul> | |
Por lo anterior, se busca contribuir a la inteligencia artificial abierta y en español, mediante la construcción de datasets y el entrenamiento de modelos de lenguaje adaptados para las discusiones democráticas. | |
Algo que puede ayudar a elevar la calidad del debate en todos los países de habla hispana. | |
<h2>Información adicional</h2> | |
Se utiliza una arquitectura RAG(Retrieval Augmented Generation) para aumentar las respuestas basadas en fuentes de manera conversacional. | |
Esta version usa sentence transformers (Cosine similarity), una base de dactos vectorial Pinecone para almacenar los embeddings, Haystack framework y la integración con OpenAI. | |
Los modelos de lenguaje transformers utilizados son: | |
<code> | |
sentence-transformers/multi-qa-MiniLM-L6-cos-v1 | |
deepset/xlm-roberta-base-squad2-distilled | |
</code> | |
<a href= "https://github.com/jorge-henao/ask_to_democracy"> repo en github con FastAPI</a> | |
<h2>Beta disclaimer</h2> | |
Las respuestas que arroja el sistema no han sido pregrabadas ni basadas en opiniones. Todas son respuestas extraídas de fuentes oficiales. | |
Este demo usa modelos de lenguaje para entender el lenguaje español, sin embargo, necesita de un mayor entrenamiento por lo que, en ocasiones, puede ser confuso y no tan preciso. | |
Si quieres apoyar escríbeme a <a href="mailto:[email protected]">[email protected]</a> | |
</p> | |
""" | |
st.markdown(description, unsafe_allow_html=True) |