Proyecto | Huggingface | arxiv | Zenodo
Incrustación de jerarquías con modelos de idiomas.
Noticias (ChangeLog)?
sentence-transformers>=3.4.0.dev0 ( V0.1.0 ). sentence-transformers<3.0.0 ) y corrección de errores. ( V0.0.3 ) El transformador de jerarquía (HIT) es un marco que permite a los modelos de lenguaje (LMS) basados en el codificador de transformadores para aprender estructuras jerárquicas en el espacio hiperbólico. La idea principal es construir una pelota de Poinctaré que circunscribe directamente el espacio de incrustación de la producción de LMS, aprovechando la expansión exponencial del espacio hiperbólico para organizar las incrustaciones de entidades jerárquicamente. Además de presentar este marco (ver Código en GitHub), estamos comprometidos con la capacitación y la liberación de modelos de éxito en diversas aguas. Los modelos y conjuntos de datos estarán accesibles en Huggingface.
Este repositorio sigue un diseño similar a la biblioteca sentence-transformers . El modelo principal extiende directamente la arquitectura del transformador de oraciones. También utilizamos deeponto para extraer jerarquías de los datos de origen y construir conjuntos de datos a partir de jerarquías, y geoopt para la aritmética en el espacio hiperbólico.
La liberación actual de
sentence-transformers=3.3.1contiene errores durante la evaluación, que se solucionaron en su versión GitHub Devsentence-transformers=3.4.0.dev0, actualice la dependencia manualmente hasta que se lance el oficial3.4.0.
# requiring Python>=3.9
pip install hierarchy_transformerspip install git+https://github.com/KRR-Oxford/HierarchyTransformers.gitNuestros modelos de éxito y conjuntos de datos se lanzan en el HuB Huggingface.
from hierarchy_transformers import HierarchyTransformer
# load the model
model = HierarchyTransformer . from_pretrained ( 'Hierarchy-Transformers/HiT-MiniLM-L12-WordNetNoun' )
# entity names to be encoded.
entity_names = [ "computer" , "personal computer" , "fruit" , "berry" ]
# get the entity embeddings
entity_embeddings = model . encode ( entity_names )Use los incrustaciones de la entidad para predecir las relaciones de subsunción entre ellos.
# suppose we want to compare "personal computer" and "computer", "berry" and "fruit"
child_entity_embeddings = model . encode ([ "personal computer" , "berry" ], convert_to_tensor = True )
parent_entity_embeddings = model . encode ([ "computer" , "fruit" ], convert_to_tensor = True )
# compute the hyperbolic distances and norms of entity embeddings
dists = model . manifold . dist ( child_entity_embeddings , parent_entity_embeddings )
child_norms = model . manifold . dist0 ( child_entity_embeddings )
parent_norms = model . manifold . dist0 ( parent_entity_embeddings )
# use the empirical function for subsumption prediction proposed in the paper
# `centri_score_weight` and the overall threshold are determined on the validation set
subsumption_scores = - ( dists + centri_score_weight * ( parent_norms - child_norms ))Use los scripts de ejemplo en nuestro repositorio para reproducir los modelos existentes y entrenar/evaluar sus propios modelos.
Copyright 2023 Yuan He.
All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at *<http://www.apache.org/licenses/LICENSE-2.0>*
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Si encuentra útil este repositorio o los modelos publicados, cite nuestra publicación:
Yuan He, Zhangdie Yuan, Jiaoyan Chen, Ian Horrocks. Modelos de idiomas como codificadores de jerarquía. Aparecer en Neurips 2024. /Arxiv / /neurips /
@article{he2024language,
title={Language Models as Hierarchy Encoders},
author={He, Yuan and Yuan, Zhangdie and Chen, Jiaoyan and Horrocks, Ian},
journal={arXiv preprint arXiv:2401.11374},
year={2024}
}