Views
No views yet
1 from peft import PeftModel, PeftConfig
2 from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
3 HUGGING_FACE_USER_NAME = "mou3az"
4 model_name = "IT-General_Question-Generation "
5 peft_model_id = f"{HUGGING_FACE_USER_NAME}/{model_name}"
6 config = PeftConfig.from_pretrained(peft_model_id)
7 model = AutoModelForSeq2SeqLM.from_pretrained(config.base_model_name_or_path, return_dict=True, load_in_8bit=False, device_map='auto')
8 QG_tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)
9 QG_model = PeftModel.from_pretrained(model, peft_model_id)1 def get_question(context, answer):
2 device = next(QG_model.parameters()).device
3 input_text = f"Given the context '{context}' and the answer '{answer}', what question can be asked?"
4 encoding = QG_tokenizer.encode_plus(input_text, padding=True, return_tensors="pt").to(device)
5
6 output_tokens = QG_model.generate(**encoding, early_stopping=True, num_beams=5, num_return_sequences=1, no_repeat_ngram_size=2, max_length=100)
7 out = QG_tokenizer.decode(output_tokens[0], skip_special_tokens=True).replace("question:", "").strip()
8
9 return out| Epoch | Optimization Step | Training Loss | Validation Loss |
|---|---|---|---|
| 0.0 | 84 | 4.6426 | 4.704238 |
| 3.0 | 252 | 1.5094 | 1.202135 |
| 6.0 | 504 | 1.2677 | 1.146177 |
| 9.0 | 756 | 1.2613 | 1.112074 |
| 12.0 | 1000 | 1.1958 | 1.109059 |
Training Loss: 1.1.1958
Evaluation Loss: 1.109059
Bertscore: 0.8123
Rouge: 0.532144
Fuzzywizzy similarity: 0.74209