PromptSource es un conjunto de herramientas para crear, compartir y usar indicaciones de lenguaje natural.
El trabajo reciente ha demostrado que los modelos de idiomas grandes exhiben la capacidad de realizar una generalización razonable de disparo cero a nuevas tareas. Por ejemplo, GPT-3 demostró que los modelos de idiomas grandes tienen fuertes habilidades de cero y pocos disparos. Flan y T0 luego demostraron que los modelos de lenguaje previamente capacitados ajustados en una manera masiva de manera múltiple producen un rendimiento de disparo cero aún más fuerte. Un denominador común en estos trabajos es el uso de indicaciones que ha ganado interés entre los investigadores e ingenieros de PNL. Esto enfatiza la necesidad de nuevas herramientas para crear, compartir y usar indicaciones de lenguaje natural.
Las indicaciones son funciones que asignan un ejemplo de un conjunto de datos a una entrada de lenguaje natural y una salida de destino. PromptSource contiene una creciente colección de indicaciones (que llamamos P3 : P Úblic P ool of P. Rompts). Al 20 de enero de 2022, hay ~ 2'000 indicadores de inglés para más de 170 conjuntos de datos en inglés en P3.

PromtorSource proporciona las herramientas para crear y compartir las indicaciones del lenguaje natural (consulte cómo crear indicaciones y luego usar las miles de indicaciones existentes y recién creadas a través de una API simple (consulte cómo usar las indicaciones).
{{premise}}
Question: Does this imply that "{{hypothesis}}"? Yes, no, or maybe? ||| {{answer_choices[labe l] }}Puede navegar a través de las indicaciones existentes en la versión alojada de PreckSource.
Si no tiene la intención de crear nuevas indicaciones, simplemente puede ejecutar:
pip install promptsourceDe lo contrario, debe instalar el repositorio localmente:
pip install -e . Para instalar el módulo promptsource Nota: Por razones de estabilidad, actualmente necesitará un entorno Python 3.7 para ejecutar el último paso. Sin embargo, si solo tiene la intención de usar las indicaciones y no crear nuevas indicaciones a través de la interfaz, puede eliminar esta restricción en el setup.py e instalar el paquete localmente.
Puede solicitar indicaciones a ejemplos de conjuntos de datos de la biblioteca de conjuntos de datos de combates.
# Load an example from the datasets ag_news
> >> from datasets import load_dataset
> >> dataset = load_dataset ( "ag_news" , split = "train" )
> >> example = dataset [ 1 ]
# Load prompts for this dataset
> >> from promptsource . templates import DatasetTemplates
> >> ag_news_prompts = DatasetTemplates ( 'ag_news' )
# Print all the prompts available for this dataset. The keys of the dict are the UUIDs the uniquely identify each of the prompt, and the values are instances of `Template` which wraps prompts
> >> print ( ag_news_prompts . templates )
{ '24e44a81-a18a-42dd-a71c-5b31b2d2cb39' : < promptsource . templates . Template object at 0x7fa7aeb20350 > , '8fdc1056-1029-41a1-9c67-354fc2b8ceaf' : < promptsource . templates . Template object at 0x7fa7aeb17c10 > , '918267e0-af68-4117-892d-2dbe66a58ce9' : < promptsource . templates . Template object at 0x7fa7ac7a2310 > , '9345df33-4f23-4944-a33c-eef94e626862' : < promptsource . templates . Template object at 0x7fa7ac7a2050 > , '98534347-fff7-4c39-a795-4e69a44791f7' : < promptsource . templates . Template object at 0x7fa7ac7a1310 > , 'b401b0ee-6ffe-4a91-8e15-77ee073cd858' : < promptsource . templates . Template object at 0x7fa7ac7a12d0 > , 'cb355f33-7e8c-4455-a72b-48d315bd4f60' : < promptsource . templates . Template object at 0x7fa7ac7a1110 > }
# Select a prompt by its name
>> > prompt = ag_news_prompts [ "classify_question_first" ]
# Apply the prompt to the example
>> > result = prompt . apply ( example )
>> > print ( "INPUT: " , result [ 0 ])
INPUT : What label best describes this news article ?
Carlyle Looks Toward Commercial Aerospace ( Reuters ) Reuters - Private investment firm Carlyle Group , which has a reputation for making well - timed and occasionally controversial plays in the defense industry , has quietly placed its bets on another part of the market .
> >> print ( "TARGET: " , result [ 1 ])
TARGET : BusinessEn el caso de que esté buscando las indicaciones disponibles para un subconjunto particular de un conjunto de datos, debe usar la siguiente sintaxis:
dataset_name , subset_name = "super_glue" , "rte"
dataset = load_dataset ( f" { dataset_name } / { subset_name } " , split = "train" )
example = dataset [ 0 ]
prompts = DatasetTemplates ( f" { dataset_name } / { subset_name } " )También puede recopilar todas las indicaciones disponibles para sus conjuntos de datos asociados:
> >> from promptsource . templates import TemplateCollection
# Get all the prompts available in PromptSource
> >> collection = TemplateCollection ()
# Print a dict where the key is the pair (dataset name, subset name)
# and the value is an instance of DatasetTemplates
> >> print ( collection . datasets_templates )
{( 'poem_sentiment' , None ): < promptsource . templates . DatasetTemplates object at 0x7fa7ac7939d0 > , ( 'common_gen' , None ): < promptsource . templates . DatasetTemplates object at 0x7fa7ac795410 > , ( 'anli' , None ): < promptsource . templates . DatasetTemplates object at 0x7fa7ac794590 > , ( 'cc_news' , None ): < promptsource . templates . DatasetTemplates object at 0x7fa7ac798a90 > , ( 'craigslist_bargains' , None ): < promptsource . templates . DatasetTemplates object at 0x7fa7ac7a2c10 > ,...}Puede obtener más información sobre la API de ActionSource para almacenar, manipular y usar indicaciones en la documentación.
PromptSource proporciona una GUI basada en la web que permite a los desarrolladores escribir indicaciones en un lenguaje de plantilla e inmediatamente ver sus resultados en diferentes ejemplos.
Hay 3 modos en la aplicación:

Para iniciar la aplicación localmente, primero asegúrese de haber seguido los pasos en la configuración y desde el directorio raíz del repositorio, ejecute:
streamlit run promptsource/app.py También puede navegar a través de las indicaciones existentes en la versión alojada de Preclsource. Tenga en cuenta que la versión alojada deshabilita el modo de abastecimiento ( streamlit run promptsource/app.py -- --read-only ).
Antes de crear nuevas indicaciones, debe leer las pautas de contribución que proporcionan una descripción paso a paso de cómo contribuir a la recopilación de indicaciones.
Algunos conjuntos de datos no se manejan automáticamente por datasets y requieren que los usuarios descarguen el conjunto de datos manualmente ( story_cloze , por ejemplo).
Para manejar también esos conjuntos de datos, requerimos que los usuarios descarguen el conjunto de datos y lo pongan en ~/.cache/promptsource . Este es el directorio raíz que contiene todos los conjuntos de datos descargados manualmente.
Puede anular esta ruta predeterminada utilizando la variable de entorno PROMPTSOURCE_MANUAL_DATASET_DIR . Esto debería apuntar al directorio raíz.
Pronticsource y P3 se desarrollaron originalmente como parte del proyecto BigScience para la investigación abierta?, Una iniciativa de un año dirigida al estudio de grandes modelos y conjuntos de datos. El objetivo del proyecto es investigar modelos de idiomas en un entorno público fuera de las grandes empresas de tecnología. El proyecto tiene 600 investigadores de 50 países y más de 250 instituciones.
En particular, PreckSource y P3 fueron los primeros pasos para la capacitación impulsada por múltiples tareas de papel habilita la generalización de tareas de disparo cero.
Encontrará el repositorio oficial para reproducir los resultados del documento aquí: https://github.com/bigscience-workshop/t-zero. También lanzamos T0* (pronunciado "t cero"), una serie de modelos entrenados en P3 y presentados en el documento. Los puntos de control están disponibles aquí.
Advertencia o error sobre Darwin en OS X: intente degradar pyarrow a 3.0.0.
ConnectionRefusedError: [Errno 61] Conexión rechazada: ocurre ocasionalmente. Intente reiniciar la aplicación.
Si encuentra útil P3 o PrecedSource, cite la siguiente referencia:
@misc { bach2022promptsource ,
title = { PromptSource: An Integrated Development Environment and Repository for Natural Language Prompts } ,
author = { Stephen H. Bach and Victor Sanh and Zheng-Xin Yong and Albert Webson and Colin Raffel and Nihal V. Nayak and Abheesht Sharma and Taewoon Kim and M Saiful Bari and Thibault Fevry and Zaid Alyafeai and Manan Dey and Andrea Santilli and Zhiqing Sun and Srulik Ben-David and Canwen Xu and Gunjan Chhablani and Han Wang and Jason Alan Fries and Maged S. Al-shaibani and Shanya Sharma and Urmish Thakker and Khalid Almubarak and Xiangru Tang and Xiangru Tang and Mike Tian-Jian Jiang and Alexander M. Rush } ,
year = { 2022 } ,
eprint = { 2202.01279 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.LG }
}