---
title: math-shepherd-mistral-7b-prm-GGUF
canonical_url: "https://www.modelscope.cn/models/QuantFactory/math-shepherd-mistral-7b-prm-GGUF"
md_url: "https://www.modelscope.cn/models/QuantFactory/math-shepherd-mistral-7b-prm-GGUF.md"
repository: QuantFactory/math-shepherd-mistral-7b-prm-GGUF
last_updated: 2024-10-18
pipeline_tag: text-generation
tasks:
  - text-generation
library_name:
  - pytorch
  - transformer
  - gguf
frameworks:
  - pytorch
downloads: 2963
stars: 0
tags:
  - gguf
---

# math-shepherd-mistral-7b-prm-GGUF

> math-shepherd-mistral-7b-prm-GGUF - QuantFactory 在 ModelScope 开源的模型。QuantFactory/math-shepherd-mistral-7b-prm-GGUF This is quantized version of peiyi9979/math-shepherd-mistral-7b-prm created using llama.cpp

- **Repository**: QuantFactory/math-shepherd-mistral-7b-prm-GGUF
- **Tasks**: text-generation
- **Tags**: gguf
- **Downloads**: 2963
- **Stars**: 0
- **Last updated**: 2024-10-18

Source: https://www.modelscope.cn/models/QuantFactory/math-shepherd-mistral-7b-prm-GGUF

---

[![QuantFactory Banner](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeiuCm7c8lEwEJuRey9kiVZsRn2W-b4pWlu3-X534V3YmVuVc2ZL-NXg2RkzSOOS2JXGHutDuyyNAUtdJI65jGTo8jT9Y99tMi4H4MqL44Uc5QKG77B0d6-JfIkZHFaUA71-RtjyYZWVIhqsNZcx8-OMaA?key=xt3VSDoCbmTY7o-cwwOFwQ)](https://hf.co/QuantFactory)


# QuantFactory/math-shepherd-mistral-7b-prm-GGUF
This is quantized version of [peiyi9979/math-shepherd-mistral-7b-prm](https://huggingface.co/peiyi9979/math-shepherd-mistral-7b-prm) created using llama.cpp

# Original Model Card
Process reward model (mistral-7b) used in [Math-Shepherd](https://arxiv.org/pdf/2312.08935.pdf). 

`Input`: question + step-by-step solutions with a special step tag `ки`, e.g.,
```
Janet\u2019s ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes .... ? Step 1: Janet's ducks lay 16 eggs per day. ки\nStep 2: She eats three for breakfast every morning, so she has 16 - 3 = 13 eggs left. ки\nStep 3: She bakes muffins for her friends every day with four eggs, so she has 13 - 4 = 9 eggs left. ки\nStep 4: She sells the remainder at the farmers' market daily for $2 per fresh duck egg, so she makes 9 * $2 = $18 every day at the farmers' market. The answer is: 18 ки
```
`Output`: the logits. You need to post-process it to achieve the score of each step.


```python
from transformers import AutoTokenizer
from transformers import AutoModelForCausalLM
import torch

good_token = '+'
bad_token = '-'
step_tag = 'ки'

tokenizer = AutoTokenizer.from_pretrained('peiyi9979/math-shepherd-mistral-7b-prm')
candidate_tokens = tokenizer.encode(f"{good_token} {bad_token}")[1:] # [648, 387]
step_tag_id = tokenizer.encode(f"{step_tag}")[-1] # 12902
model = AutoModelForCausalLM.from_pretrained('peiyi9979/math-shepherd-mistral-7b-prm').eval()

question = """Janet\u2019s ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes muffins for her friends every day with four. She sells the remainder at the farmers' market daily for $2 per fresh duck egg. How much in dollars does she make every day at the farmers' market?"""
output1 = """Step 1: Janet's ducks lay 16 eggs per day. ки\nStep 2: She eats three for breakfast every morning, so she has 16 - 3 = 13 eggs left. ки\nStep 3: She bakes muffins for her friends every day with four eggs, so she has 13 - 4 = 9 eggs left. ки\nStep 4: She sells the remainder at the farmers' market daily for $2 per fresh duck egg, so she makes 9 * $2 = $18 every day at the farmers' market. The answer is: 18 ки""" # 18 is right
output2 = """Step 1: Janet's ducks lay 16 eggs per day. ки\nStep 2: She eats three for breakfast every morning, so she has 16 - 3 = 13 eggs left. ки\nStep 3: She bakes muffins for her friends every day with four eggs, so she has 13 - 4 = 9 eggs left. ки\nStep 4: She sells the remainder at the farmers' market daily for $2 per fresh duck egg, so she makes 9 * $2 = $17 every day at the farmers' market. The answer is: 17 ки""" # 17 is wrong

for output in [output1, output2]:
    input_for_prm = f"{question} {output}"
    input_id = torch.tensor([tokenizer.encode(input_for_prm)])

    with torch.no_grad():
        logits = model(input_id).logits[:,:,candidate_tokens]
        scores = logits.softmax(dim=-1)[:,:,0] 
        step_scores = scores[input_id == step_tag_id]
        print(step_scores)
        
# tensor([0.9955, 0.9958, 0.9983, 0.9957])
# tensor([0.9955, 0.9958, 0.9983, 0.0240]) 

```
