Estamos felices de anunciar los primeros lanzamientos de hfhub y tok ahora están en CRAN. hfhub es una interfaz R para Abrazando la cara Hubpermitiendo a los usuarios descargar y almacenar en caché archivos desde Hugging Face Hub mientras tok implementa enlaces R para Tokenizadores de cara de abrazo
biblioteca.
abrazando la cara rápidamente se convirtió el plataforma para crear, compartir y colaborar en aplicaciones de aprendizaje profundo y esperamos que estas integraciones ayuden a los usuarios de R a comenzar a usar las herramientas de Hugging Face, así como a crear aplicaciones novedosas.
También hemos anunciado previamente la tensores de seguridad
Paquete que permite leer y escribir archivos en formato Safetensors.
hfhub
hfhub es una interfaz R para Hugging Face Hub. Actualmente, hfhub implementa una única funcionalidad: descargar archivos desde los repositorios de Hub. Los repositorios de Mannequin Hub se utilizan principalmente para almacenar pesos de modelos previamente entrenados junto con cualquier otro metadato necesario para cargar el modelo, como las configuraciones de hiperparámetros y el vocabulario del tokenizador.
Los archivos descargados se almacenan utilizando el mismo diseño que la biblioteca de Python, por lo que los archivos almacenados en caché se pueden compartir entre la implementación de R y Python, para un cambio más fácil y rápido entre idiomas.
Ya usamos hfhub en el minhub paquete y en el Entrada de weblog ‘GPT-2 desde cero con antorcha’ para descargar pesas previamente entrenadas desde Hugging Face Hub.
puedes usar hub_download()
para descargar cualquier archivo desde un repositorio de Hugging Face Hub especificando la identificación del repositorio y la ruta al archivo que desea descargar. Si el archivo ya está en la caché, la función devuelve la ruta del archivo inmediatamente; de lo contrario, el archivo se descarga, se almacena en la caché y luego se devuelve la ruta de acceso.
<- hfhub::hub_download("gpt2", "mannequin.safetensors")
path
path#> /Customers/dfalbel/.cache/huggingface/hub/models--gpt2/snapshots/11c5a3d5811f50298f278a704980280950aedb10/mannequin.safetensors
tok
Los tokenizadores son responsables de convertir el texto sin formato en la secuencia de números enteros que a menudo se utiliza como entrada para los modelos de PNL, lo que los convierte en un componente crítico de los procesos de PNL. Si desea obtener una descripción normal de nivel superior de los procesos de PNL, es posible que desee leer nuestra publicación anterior. publicación de weblog ‘¿Qué son los modelos de lenguaje grandes? ¿Qué no son?.
Cuando se utiliza un modelo previamente entrenado (tanto para inferencia como para ajuste fino), es muy importante que utilice exactamente el mismo proceso de tokenización que se utilizó durante el entrenamiento, y el equipo de Hugging Face ha hecho un trabajo increíble asegurándose de que sus algoritmos coincidan. las estrategias de tokenización utilizaron la mayoría de los LLM.
tok proporciona enlaces de R a la biblioteca de tokenizadores 🤗. La biblioteca de tokenizadores está implementada en Rust para mejorar el rendimiento y nuestros enlaces utilizan el proyecto extensor
para ayudar a interactuar con R. Usando tok podemos tokenizar texto exactamente de la misma manera que lo hacen la mayoría de los modelos de PNL, lo que facilita la carga de modelos previamente entrenados en R, además de compartir nuestros modelos con la comunidad de PNL más amplia.
tok se puede instalar desde CRAN y actualmente su uso está restringido a cargar vocabularios de tokenizadores desde archivos. Por ejemplo, puedes cargar el tokenizador para el modelo GPT2 con:
<- tok::tokenizer$from_pretrained("gpt2")
tokenizer <- tokenizer$encode("Good day world! You need to use tokenizers from R")$ids
ids
ids#> [1] 15496 995 0 921 460 779 11241 11341 422 371
$decode(ids)
tokenizer#> [1] "Good day world! You need to use tokenizers from R"
Espacios
Recuerda que ya puedes hospedar
Shiny (para R y Python) en Hugging Face Areas. Como ejemplo, hemos creado una aplicación Shiny que utiliza:
- antorcha para implementar GPT-NeoX (la arquitectura de pink neuronal de EstableLM – el modelo utilizado para chatear)
- hfhub para descargar y almacenar en caché los pesos previamente entrenados desde el Repositorio StableLM
- tok para tokenizar y preprocesar texto como entrada para el modelo de antorcha. tok también usa hfhub para descargar el vocabulario del tokenizador.
La aplicación está alojada en este Espacio. Actualmente se ejecuta en la CPU, pero puede cambiar fácilmente la imagen de Docker si desea ejecutarla en una GPU para una inferencia más rápida.
El código fuente de la aplicación también es de código abierto y se puede encontrar en Areas. pestaña de archivo.
Pensando en el futuro
Son los primeros días de hfhub y tok y todavía queda mucho trabajo por hacer y funcionalidad por implementar. Esperamos obtener ayuda de la comunidad para priorizar el trabajo; por lo tanto, si falta alguna característica, abra un problema en el
repositorios de GitHub.
Reutilizar
El texto y las figuras tienen licencia Inventive Commons Attribution. CC POR 4.0. Las figuras que han sido reutilizadas de otras fuentes no están cubiertas por esta licencia y pueden reconocerse por una nota en su pie de foto: “Figura de…”.
Citación
Para atribución, cite este trabajo como
Falbel (2023, July 12). Posit AI Weblog: Hugging Face Integrations. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2023-07-12-hugging-face-integrations/
Cita BibTeX
@misc{hugging-face-integrations, creator = {Falbel, Daniel}, title = {Posit AI Weblog: Hugging Face Integrations}, url = {https://blogs.rstudio.com/tensorflow/posts/2023-07-12-hugging-face-integrations/}, yr = {2023} }