58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
---
|
||
language:
|
||
- en
|
||
base_model: deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
|
||
tags:
|
||
- chat
|
||
library_name: transformers
|
||
license: apache-2.0
|
||
---
|
||
|
||
# StepFun-Prover-Preview-7B
|
||
|
||
**StepFun-Prover-Preview-7B** is a theorem proving model developed by StepFun Team. It can iteratively refine the proof sketch via interacting with Lean4, and achieve 66.0% accuracy with Pass@1 on MiniF2F-test. Advanced usage examples can be seen in [github](https://github.com/stepfun-ai/StepFun-Prover-Preview).
|
||
|
||
# Quick Start with vLLM
|
||
|
||
```python
|
||
from vllm import LLM, SamplingParams
|
||
from transformers import AutoTokenizer
|
||
|
||
model_name = "Stepfun/Stepfun-Prover-Preview-7B"
|
||
model = LLM(
|
||
model=model_name,
|
||
tensor_parallel_size=4,
|
||
)
|
||
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
|
||
|
||
formal_problem = """
|
||
import Mathlib
|
||
|
||
theorem test_theorem (x y z : ℝ) (hx : 0 < x) (hy : 0 < y) (hz : 0 < z) :
|
||
(x^2 - z^2) / (y + z) + (y^2 - x^2) / (z + x) + (z^2 - y^2) / (x + y) ≥ 0 := by
|
||
""".strip()
|
||
|
||
system_prompt = "You will be given an unsolved Lean 4 problem. Think carefully and work towards a solution. At any point, you may use the Lean 4 REPL to check your progress by enclosing your partial solution between <sketch> and </sketch>. The REPL feedback will be provided between <REPL> and </REPL>. Continue this process as needed until you arrive at a complete and correct solution."
|
||
|
||
user_prompt = f"```lean4\n{formal_problem}\n```"
|
||
|
||
dialog = [
|
||
{"role": "system", "content": system_prompt},
|
||
{"role": "user", "content": user_prompt}
|
||
]
|
||
|
||
prompt = tokenizer.apply_chat_template(dialog, tokenize=False, add_generation_prompt=True)
|
||
|
||
sampling_params = SamplingParams(
|
||
temperature=0.999,
|
||
top_p=0.95,
|
||
top_k=-1,
|
||
max_tokens=16384,
|
||
stop_token_ids=[151643, 151666], # <|end▁of▁sentence|>, </sketch>
|
||
include_stop_str_in_output=True,
|
||
)
|
||
|
||
output = model.generate(prompt, sampling_params=sampling_params)
|
||
output_text = output[0].outputs[0].text
|
||
print(output_text)
|
||
``` |