Text Generation
Transformers
Safetensors
English
qwen2
fact-verification
claim-verification
reasoning
grpo
lora
decomposition
conversational
text-generation-inference
Instructions to use dipta007/decomposeRL-7b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dipta007/decomposeRL-7b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="dipta007/decomposeRL-7b") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("dipta007/decomposeRL-7b") model = AutoModelForCausalLM.from_pretrained("dipta007/decomposeRL-7b") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use dipta007/decomposeRL-7b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "dipta007/decomposeRL-7b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dipta007/decomposeRL-7b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/dipta007/decomposeRL-7b
- SGLang
How to use dipta007/decomposeRL-7b with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "dipta007/decomposeRL-7b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dipta007/decomposeRL-7b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "dipta007/decomposeRL-7b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dipta007/decomposeRL-7b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use dipta007/decomposeRL-7b with Docker Model Runner:
docker model run hf.co/dipta007/decomposeRL-7b
| """Run DecomposeRL-7B on a (claim, evidence_doc) pair and pretty-print the trace. | |
| Usage: | |
| python example.py | |
| """ | |
| import re | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| MODEL_NAME = "dipta007/decomposeRL-7b" | |
| PROMPT_TEMPLATE = """You are tasked with systematically verifying the accuracy of a claim. You will be provided with a claim to verify and an evidence document to consult. | |
| Here is the evidence document you should consult: | |
| <evidence_document> | |
| {evidence_doc} | |
| </evidence_document> | |
| Here is the claim you need to verify: | |
| <claim> | |
| {claim} | |
| </claim> | |
| Your task is to verify whether this claim is Supported or Refuted through an iterative process of asking questions and gathering information. | |
| # Verification Process | |
| Begin by analyzing the claim in <think> tags, then enter an iterative cycle of <question>/<answer> pairs answered ONLY from the evidence document. When every sub-claim is addressed, output your final label inside <verification> tags. The label must be exactly one of: Supported, Refuted. | |
| Stop immediately after the closing </verification> tag. | |
| Begin your verification process now.""" | |
| TAG_RE = re.compile(r"<(think|question|answer|verification)>(.*?)</\1>", re.DOTALL) | |
| def build_prompt(claim: str, evidence_doc: str) -> str: | |
| """Wrap a claim and evidence document in the DecomposeRL verification prompt.""" | |
| return PROMPT_TEMPLATE.format(claim=claim, evidence_doc=evidence_doc) | |
| def verify( | |
| model, | |
| tokenizer, | |
| claim: str, | |
| evidence_doc: str, | |
| max_new_tokens: int = 4500, | |
| temperature: float = 0.7, | |
| ) -> str: | |
| """Run the model end-to-end on a (claim, evidence_doc) pair and return the raw trace.""" | |
| messages = [{"role": "user", "content": build_prompt(claim, evidence_doc)}] | |
| text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) | |
| inputs = tokenizer([text], return_tensors="pt").to(model.device) | |
| out = model.generate( | |
| **inputs, | |
| max_new_tokens=max_new_tokens, | |
| temperature=temperature, | |
| do_sample=True, | |
| ) | |
| return tokenizer.decode(out[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) | |
| def parse_trace(text: str): | |
| """Return a list of (tag, content) tuples in the order they appear.""" | |
| return [(tag, body.strip()) for tag, body in TAG_RE.findall(text)] | |
| def pretty_print(text: str) -> None: | |
| """Print the trace as a readable conversation. Falls back to raw output if degenerate.""" | |
| parsed = parse_trace(text) | |
| tags = {tag for tag, _ in parsed} | |
| if not parsed or "verification" not in tags: | |
| print("⚠️ Could not parse output into the expected think/question/answer/verification structure.") | |
| print("Raw output:") | |
| print("─" * 78) | |
| print(text) | |
| print("─" * 78) | |
| return | |
| cycle_idx = 0 | |
| pending_q = None | |
| for tag, body in parsed: | |
| if tag == "think": | |
| print("─" * 78) | |
| print("🧠 THINK") | |
| print("─" * 78) | |
| print(body) | |
| print() | |
| elif tag == "question": | |
| cycle_idx += 1 | |
| pending_q = body | |
| elif tag == "answer": | |
| print(f"🔸 Q{cycle_idx}: {pending_q}") | |
| print(f"💬 A{cycle_idx}: {body}") | |
| print() | |
| pending_q = None | |
| elif tag == "verification": | |
| print("=" * 78) | |
| print(f"✅ VERIFICATION: {body}") | |
| print("=" * 78) | |
| def extract_label(text: str): | |
| """Return 'Supported', 'Refuted', or None.""" | |
| match = re.search(r"<verification>\s*(Supported|Refuted)\s*</verification>", text) | |
| return match.group(1) if match else None | |
| def main(): | |
| print(f"Loading {MODEL_NAME} ...") | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| MODEL_NAME, | |
| torch_dtype="auto", | |
| device_map="auto", | |
| ) | |
| evidence_doc = ( | |
| "The Eiffel Tower is a wrought-iron lattice tower on the Champ de Mars in Paris, " | |
| "France. It is named after the engineer Gustave Eiffel, whose company designed and " | |
| "built the tower from 1887 to 1889. Locally nicknamed 'La dame de fer', it was " | |
| "constructed as the centerpiece of the 1889 World's Fair. The tower is 330 metres " | |
| "(1,083 ft) tall." | |
| ) | |
| claim = "The Eiffel Tower was completed in 1887 and stands 330 metres tall." | |
| print(f"\nClaim: {claim}\n") | |
| response = verify(model, tokenizer, claim, evidence_doc) | |
| pretty_print(response) | |
| print(f"\nFinal label: {extract_label(response)}") | |
| if __name__ == "__main__": | |
| main() | |