YAML Metadata Warning:The pipeline tag "text2text-generation" is not in the official list: text-classification, token-classification, table-question-answering, question-answering, zero-shot-classification, translation, summarization, feature-extraction, text-generation, fill-mask, sentence-similarity, text-to-speech, text-to-audio, automatic-speech-recognition, audio-to-audio, audio-classification, audio-text-to-text, voice-activity-detection, depth-estimation, image-classification, object-detection, image-segmentation, text-to-image, image-to-text, image-to-image, image-to-video, unconditional-image-generation, video-classification, reinforcement-learning, robotics, tabular-classification, tabular-regression, tabular-to-text, table-to-text, multiple-choice, text-ranking, text-retrieval, time-series-forecasting, text-to-video, image-text-to-text, image-text-to-image, image-text-to-video, visual-question-answering, document-question-answering, zero-shot-image-classification, graph-ml, mask-generation, zero-shot-object-detection, text-to-3d, image-to-3d, image-feature-extraction, video-text-to-text, keypoint-detection, visual-document-retrieval, any-to-any, video-to-video, other

GeM bid recommendation writer

Small seq2seq model that turns a bid's structured compliance breakdown (risk level, score and the findings of an automated verification pipeline) into a short recommendation for a procurement officer, ending in one of: Recommend qualifying, Recommend disqualification, or Recommend officer review before qualifying. Every output is labelled "AI-generated, advisory only".

It runs locally โ€” no external LLM API โ€” and only ever sees the structured summary, never raw bidder documents.

Intended use

Advisory text for a dashboard. The officer makes the decision; the platform's rule engine and audit log remain the record. Input format (built by ml/recommendation/findings.py):

write recommendation | risk: Non-Compliant | score: 40.0 | findings: gst_inactive status=cancelled ; mismatch:gst_trade_name document=... portal=...

Guardrail (use it)

A small generative model can occasionally state the wrong verdict, drop a finding or invent one. The project's ml/recommendation/infer.py checks every output against the input's own findings and falls back to deterministic template text for the same findings when the check fails. Use it rather than raw pipeline(...) output anywhere an officer will read the result.

Training data

Generated by ml/recommendation/generate.py: 54,000 train, 3,000 validation, 3,000 test examples.

Targets are written by a template generator with varied phrasing and a concrete next step per finding (e.g. "request recent ECR challans"). All data is synthetic, so the model's language is bounded by those templates: it combines and rephrases them fluently for any mix of findings, but does not reason beyond them.

Evaluation (generated outputs on held-out synthetic bids)

Graded on what matters to an officer rather than n-gram overlap: the right verdict, every finding in the input mentioned, and no finding invented.

Metric Value
Correct verdict 100.0%
Findings mentioned (recall) 100.0%
Outputs inventing a finding 0.0%
Carries the advisory label 100.0%
Examples graded 1000

Usage

from transformers import pipeline
write = pipeline("text2text-generation", model="HarshilDaGoat/gem-recommendation-writer")
write("write recommendation | risk: Low | score: 100.0 | findings: none", max_new_tokens=200, num_beams=4)
Downloads last month
147
Safetensors
Model size
77M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for HarshilDaGoat/gem-recommendation-writer

Finetuned
(522)
this model