From 76e246b42f432893826866543d43b787e3ddf7a9 Mon Sep 17 00:00:00 2001 From: Zhao Penghai Date: Thu, 8 Aug 2024 11:32:01 +0800 Subject: [PATCH] 240808 --- README.md | 56 +++++++++++++++++++++++++++++++++++++++---- img/model.png | Bin 0 -> 20053 bytes requirements.txt | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 img/model.png create mode 100644 requirements.txt diff --git a/README.md b/README.md index 02e10f4..a8b69c3 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,63 @@ # From Words to Worth: Newborn Article Impact Prediction with LLM - + ### [Early Access Version] -###### This [paper](https://arxiv.org/abs/2408.03934?context=cs.CL) is currently under peer review. The code might change frequently. If you have any issues, feel free to reach out via Email: oceanytech@gmail.com or open an issue in the repository. +###### This [paper](https://arxiv.org/abs/2408.03934?context=cs.CL) is currently under peer review. The code might change frequently. We are currently experiencing a severe staff shortage. If you encounter any issues during the replication process, please feel free to contact us through an issue or via email:oceanytech@gmail.com. + + ## Introduction -This repository contains the official implementation for the paper **"From Words to Worth: Newborn Article Impact Prediction with LLM"**. The tool is designed to help researchers predict the future impact of newly published academic articles using just their titles and abstracts. +This repository contains the official implementation for the paper **"From Words to Worth: Newborn Article Impact Prediction with LLM"**. The tool is designed to PEFT the LLMs for the prediction of the future impact. + +## Installation +At this Early Access stage,installation could be a little bit complicated. +First, you need pull the repo and type following commands in the console: +``` +cd ScImpactPredict +pip install -r requirements.txt +``` +Second, you have to manully modify the 'xxxForSequenceClassification' in the `transformers` package. +``` +class LlamaForSequenceClassification(LlamaPreTrainedModel): + def __init__(self, config): + super().__init__(config) + self.num_labels = config.num_labels + self.model = LlamaModel(config) + self.score = nn.Linear(config.hidden_size, self.num_labels, bias=False) + self.post_init() + # Add codes here! + self.loss_func = 'mse' + self.sigmoid = nn.Sigmoid() + ... + def forward(...): + ... + hidden_states = transformer_outputs[0] + logits = self.score(hidden_states) + # Add codes here! + if not self.loss_func == 'bce': + logits = self.sigmoid(logits) + if input_ids is not None: + batch_size = input_ids.shape[0] + ... + # Add codes here! + if self.config.problem_type == "regression": + if self.loss_func == 'bce': + loss_fct = BCEWithLogitsLoss() + elif self.loss_func == 'mse': + loss_fct = MSELoss() + # loss_fct = MSELoss() + elif self.loss_func == 'l1': + loss_fct = L1Loss() + elif self.loss_func == 'smoothl1': + loss_fct = nn.SmoothL1Loss() + +``` diff --git a/img/model.png b/img/model.png new file mode 100644 index 0000000000000000000000000000000000000000..49101165e9197994dd67c39690c1777b8b52b201 GIT binary patch literal 20053 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