bjascob / amrlib

A python library that makes AMR parsing, generation and visualization simple.
MIT License
219 stars 34 forks source link

Model details? #63

Closed xiulinyang closed 8 months ago

xiulinyang commented 8 months ago

Hi, many thanks for providing this useful library!

I was wondering if I could find some papers/resources that detail the training process. Do all the models (except the spring one) just fine-tune on the AMR data? Or is there any preprocessing step?

I'm also curious, is there any model trained with AMR-2.0? It would be great if they were available. Many thanks in advance!

bjascob commented 8 months ago

There is no paper on the models, but there is https://amrlib.readthedocs.io/en/latest/training/. Other than that you'll have to look at the code.

Models are fine-tuned on "serialized" AMR data. The serialization is a slightly simpler format than the text representation of the graphs used in the AMR corpus (though it's fairly close to that format). The training and inference code takes care of converting into and out of this format so the fact that it's happening is invisible to the user. There's a serializer/deserializer class in with the model at https://github.com/bjascob/amrlib/blob/master/amrlib/models/parse_xfm/penman_serializer.py

There are no models trained on AMR2. AMR3 contains all of AMR2 plus corrections and additional graphs. There isn't much reason to train on it. The only reason people still use it is because the test set is a little simpler and gives smatch scores a few points higher.

xiulinyang commented 8 months ago

Thanks for the detailed information! I'll close the issue. :)

nschneid commented 8 months ago

That info is very useful, thanks @bjascob! Would it be worth putting into the README?

bjascob commented 8 months ago

I'm not with a university, so I don't typically write papers but I have had a number of questions on how the parse model works. Would it be worth the time to do a formal write-up on the process or would putting better links and the above info in the README be sufficient?

nschneid commented 8 months ago

I think any documentation you can provide would be great. Even a text file linked from the README would be helpful. If you wanted to make something more formal that would be easy to cite you could put it on arXiv.

bjascob commented 8 months ago

I dropped some basic info on parsing in the wiki and referenced it in the main README.

If you see something that needs adding let me know, though note that I'm trying to keep from writing a full technical paper on this.

nschneid commented 8 months ago

Thanks!