billwang37 commited on
Commit
6fa0aad
·
verified ·
1 Parent(s): 7edeeef

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +64 -177
README.md CHANGED
@@ -1,209 +1,96 @@
1
  ---
 
2
  base_model: Qwen/Qwen2.5-Math-7B
 
 
 
 
 
 
 
 
 
 
3
  library_name: peft
4
  pipeline_tag: text-generation
5
- tags:
6
- - base_model:adapter:/scratch/billwang37/optim_ai/models/Qwen2.5-Math-7B
7
- - dpo
8
- - lora
9
- - transformers
10
- - trl
11
  ---
12
 
13
- # Model Card for Model ID
14
-
15
- <!-- Provide a quick summary of what the model is/does. -->
16
-
17
-
18
-
19
- ## Model Details
20
-
21
- ### Model Description
22
-
23
- <!-- Provide a longer summary of what this model is. -->
24
-
25
-
26
-
27
- - **Developed by:** [More Information Needed]
28
- - **Funded by [optional]:** [More Information Needed]
29
- - **Shared by [optional]:** [More Information Needed]
30
- - **Model type:** [More Information Needed]
31
- - **Language(s) (NLP):** [More Information Needed]
32
- - **License:** [More Information Needed]
33
- - **Finetuned from model [optional]:** [More Information Needed]
34
-
35
- ### Model Sources [optional]
36
-
37
- <!-- Provide the basic links for the model. -->
38
-
39
- - **Repository:** [More Information Needed]
40
- - **Paper [optional]:** [More Information Needed]
41
- - **Demo [optional]:** [More Information Needed]
42
-
43
- ## Uses
44
-
45
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
46
-
47
- ### Direct Use
48
-
49
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
50
-
51
- [More Information Needed]
52
-
53
- ### Downstream Use [optional]
54
-
55
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
56
-
57
- [More Information Needed]
58
-
59
- ### Out-of-Scope Use
60
-
61
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
62
-
63
- [More Information Needed]
64
-
65
- ## Bias, Risks, and Limitations
66
-
67
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
68
-
69
- [More Information Needed]
70
-
71
- ### Recommendations
72
-
73
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
74
-
75
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
76
-
77
- ## How to Get Started with the Model
78
-
79
- Use the code below to get started with the model.
80
-
81
- [More Information Needed]
82
-
83
- ## Training Details
84
-
85
- ### Training Data
86
 
87
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
88
 
89
- [More Information Needed]
90
 
91
- ### Training Procedure
92
 
93
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
 
 
 
94
 
95
- #### Preprocessing [optional]
96
-
97
- [More Information Needed]
98
-
99
-
100
- #### Training Hyperparameters
101
-
102
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
103
-
104
- #### Speeds, Sizes, Times [optional]
105
-
106
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
107
-
108
- [More Information Needed]
109
 
110
  ## Evaluation
111
 
112
- <!-- This section describes the evaluation protocols and provides the results. -->
113
-
114
- ### Testing Data, Factors & Metrics
115
-
116
- #### Testing Data
117
-
118
- <!-- This should link to a Dataset Card if possible. -->
119
-
120
- [More Information Needed]
121
-
122
- #### Factors
123
-
124
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
125
-
126
- [More Information Needed]
127
-
128
- #### Metrics
129
-
130
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
131
-
132
- [More Information Needed]
133
-
134
- ### Results
135
-
136
- [More Information Needed]
137
-
138
- #### Summary
139
-
140
-
141
-
142
- ## Model Examination [optional]
143
-
144
- <!-- Relevant interpretability work for the model goes here -->
145
-
146
- [More Information Needed]
147
-
148
- ## Environmental Impact
149
-
150
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
151
-
152
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
153
-
154
- - **Hardware Type:** [More Information Needed]
155
- - **Hours used:** [More Information Needed]
156
- - **Cloud Provider:** [More Information Needed]
157
- - **Compute Region:** [More Information Needed]
158
- - **Carbon Emitted:** [More Information Needed]
159
-
160
- ## Technical Specifications [optional]
161
-
162
- ### Model Architecture and Objective
163
-
164
- [More Information Needed]
165
-
166
- ### Compute Infrastructure
167
-
168
- [More Information Needed]
169
-
170
- #### Hardware
171
-
172
- [More Information Needed]
173
 
174
- #### Software
175
 
176
- [More Information Needed]
 
 
 
177
 
178
- ## Citation [optional]
179
 
180
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
181
 
182
- **BibTeX:**
183
 
184
- [More Information Needed]
185
 
186
- **APA:**
187
 
188
- [More Information Needed]
189
 
190
- ## Glossary [optional]
191
 
192
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
 
 
193
 
194
- [More Information Needed]
 
 
 
 
 
 
 
195
 
196
- ## More Information [optional]
 
 
 
197
 
198
- [More Information Needed]
199
 
200
- ## Model Card Authors [optional]
 
 
 
 
 
 
201
 
202
- [More Information Needed]
203
 
204
- ## Model Card Contact
 
 
 
 
205
 
206
- [More Information Needed]
207
- ### Framework versions
208
 
209
- - PEFT 0.17.1
 
1
  ---
2
+ license: apache-2.0
3
  base_model: Qwen/Qwen2.5-Math-7B
4
+ tags:
5
+ - operations-research
6
+ - optimization
7
+ - linear-programming
8
+ - integer-programming
9
+ - lora
10
+ - dpo
11
+ - peft
12
+ language:
13
+ - en
14
  library_name: peft
15
  pipeline_tag: text-generation
 
 
 
 
 
 
16
  ---
17
 
18
+ # OptimAI
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
+ A 7B model fine-tuned to formulate and solve operations research problems (LP, IP, network flow, queueing, stochastic optimization).
21
 
22
+ Built on Qwen2.5-Math-7B with a two-stage training pipeline: supervised fine-tuning (SFT) followed by Direct Preference Optimization (DPO). Distributed as a LoRA adapter (~646 MB).
23
 
24
+ ## Intended use
25
 
26
+ - Formulating optimization problems from natural-language descriptions
27
+ - Solving small LPs, IPs, shortest-path, max-flow, knapsack, and similar OR problems end-to-end
28
+ - Studying optimality conditions (KKT, dual formulations, sensitivity analysis)
29
+ - Educational support for OR / optimization students
30
 
31
+ Not a replacement for a real solver. Use this to set up the problem; verify with Gurobi, CPLEX, OR-Tools, or SciPy.
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  ## Evaluation
34
 
35
+ Evaluated on a held-out set of 60 OR problems across three categories: closed_form (n=20, auto-graded), open_conceptual (n=20, qualitative), long_form (n=20, qualitative).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
+ Closed-form numeric accuracy (final-answer grader, last 5 lines of completion only):
38
 
39
+ | Model | Closed-form score |
40
+ |---|---|
41
+ | SFT-only | 48.3% |
42
+ | SFT + DPO (this model) | 55.4% |
43
 
44
+ DPO gives a +7.1 percentage point absolute improvement (~15% relative). Across 20 closed-form items, DPO improved 7, regressed 5, tied 8.
45
 
46
+ ### Example: A01 (LP formulation)
47
 
48
+ Prompt: "A factory produces A and B. A needs 2h labor, 3 units material, profit $5. B needs 1h labor, 2 units material, profit $4. Available: 100h labor, 200 units material. Maximize profit."
49
 
50
+ Expected: x_A=40, x_B=20, profit=280
51
 
52
+ SFT (incorrect): "the optimal solution is x_A = 20 and x_B = 60, which gives a total profit of $340"
53
 
54
+ DPO (correct): "the maximum profit occurs at the point (x_A, x_B) = (40, 20), yielding a total profit of $280"
55
 
56
+ ## How to use
57
 
58
+ from peft import PeftModel
59
+ from transformers import AutoModelForCausalLM, AutoTokenizer
60
+ import torch
61
 
62
+ base = AutoModelForCausalLM.from_pretrained(
63
+ "Qwen/Qwen2.5-Math-7B",
64
+ torch_dtype=torch.bfloat16,
65
+ device_map="auto",
66
+ trust_remote_code=True,
67
+ )
68
+ model = PeftModel.from_pretrained(base, "billwang37/WWang-Lab-OptimAI")
69
+ tokenizer = AutoTokenizer.from_pretrained("billwang37/WWang-Lab-OptimAI", trust_remote_code=True)
70
 
71
+ prompt = "Maximize 3x + 5y subject to x + 2y <= 14, 3x - y >= 0, x - y <= 2, x,y >= 0."
72
+ inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
73
+ out = model.generate(**inputs, max_new_tokens=1024, do_sample=False)
74
+ print(tokenizer.decode(out[0], skip_special_tokens=True))
75
 
76
+ ## Training details
77
 
78
+ - Base model: Qwen/Qwen2.5-Math-7B
79
+ - SFT data: ~6k OR problems with worked solutions
80
+ - DPO data: ~1.2k preference pairs (chosen vs rejected)
81
+ - Method: LoRA adapter via PEFT + TRL
82
+ - Hardware: Single A100 (40 GB) on OU OSCER cluster
83
+ - SFT runtime: ~4 hours (3 epochs)
84
+ - DPO runtime: ~30 minutes
85
 
86
+ ## Limitations
87
 
88
+ - 60-problem eval set is small; numbers are a directional signal, not a definitive benchmark
89
+ - Grader checks numbers, not reasoning
90
+ - Can produce confidently wrong answers, especially on integer programming and combinatorial graph problems
91
+ - LoRA adapter format; you must load Qwen2.5-Math-7B base separately
92
+ - English-only
93
 
94
+ ## License
 
95
 
96
+ Apache-2.0, inherited from the base model.