|
6 | 6 | "H@10": 1.0, |
7 | 7 | "MRR": 1.0 |
8 | 8 | } |
9 | | -
|
10 | 9 | python -m retrieval_aug_predictors.models.demir_ensemble --dataset_dir KGs/Countries-S2 --out "countries_s2_results.json" && cat countries_s2_results.json |
11 | 10 | { |
12 | | - "H@1": 0.9583333333333334, |
13 | | - "H@3": 0.9583333333333334, |
| 11 | + "H@1": 1.0, |
| 12 | + "H@3": 1.0, |
14 | 13 | "H@10": 1.0, |
15 | | - "MRR": 0.9666666666666667 |
| 14 | + "MRR": 1.0 |
16 | 15 | } |
17 | 16 | python -m retrieval_aug_predictors.models.demir_ensemble --dataset_dir KGs/Countries-S3 --out "countries_s3_results.json" && cat countries_s3_results.json |
18 | 17 | { |
19 | | - "H@1": 0.875, |
20 | | - "H@3": 0.9583333333333334, |
| 18 | + "H@1": 0.9166666666666666, |
| 19 | + "H@3": 1.0, |
21 | 20 | "H@10": 1.0, |
22 | | - "MRR": 0.9249999999999999 |
23 | | -} |
| 21 | + "MRR": 0.951388888888889 |
| 22 | +}( |
24 | 23 | """ |
25 | 24 |
|
26 | 25 | import dspy |
@@ -49,7 +48,7 @@ class MultiLabelLinkPredictionWithScores(dspy.Signature): |
49 | 48 | class MultiLabelLinkPredictor(dspy.Module): |
50 | 49 | def __init__(self): |
51 | 50 | super().__init__() |
52 | | - self.predictor = dspy.Predict(MultiLabelLinkPredictionWithScores) |
| 51 | + self.predictor = dspy.ChainOfThought(MultiLabelLinkPredictionWithScores) |
53 | 52 |
|
54 | 53 | def forward(self, subject, predicate, few_shot_examples) -> List[Tuple[str, float]]: |
55 | 54 | # Format examples more structured with clearer JSON expectations |
@@ -96,16 +95,13 @@ def __init__(self, knowledge_graph, base_url, api_key, temperature, seed, llm_mo |
96 | 95 | super().__init__(knowledge_graph, name="DemirEnsemble") |
97 | 96 | self.temperature = temperature |
98 | 97 | self.seed = seed |
99 | | - |
100 | | - # Create multiple LLM models with different parameters |
101 | | - self.lm_high_temp = dspy.LM(model=f"openai/{llm_model}", api_key=api_key, |
102 | | - api_base=base_url, seed=seed, temperature=0.7, |
103 | | - cache=True, cache_in_memory=True) |
104 | | - |
105 | | - self.lm_low_temp = dspy.LM(model=f"openai/{llm_model}", api_key=api_key, |
106 | | - api_base=base_url, seed=seed, temperature=0.1, |
107 | | - cache=True, cache_in_memory=True) |
108 | | - |
| 98 | + # () Initialize ensemble. |
| 99 | + self.ensemble=[] |
| 100 | + for i in range(0, 9): |
| 101 | + temperature_coefficient=i*0.1 |
| 102 | + self.ensemble.append(dspy.LM(model=f"openai/{llm_model}", api_key=api_key, |
| 103 | + api_base=base_url, seed=seed, temperature=temperature_coefficient, |
| 104 | + cache=True, cache_in_memory=True)) |
109 | 105 | # Initialize data same as original |
110 | 106 | self.train_set = [(self.idx_to_entity[idx_h], |
111 | 107 | self.idx_to_relation[idx_r], |
@@ -136,14 +132,14 @@ def __init__(self, knowledge_graph, base_url, api_key, temperature, seed, llm_mo |
136 | 132 | def _create_ensemble_predictors(self): |
137 | 133 | """Create multiple predictors with different configurations""" |
138 | 134 | predictors = [] |
139 | | - |
140 | | - # Standard predictor |
141 | | - dspy.configure(lm=self.lm_low_temp) |
142 | | - predictors.append(MultiLabelLinkPredictor()) |
| 135 | + for i in self.ensemble: |
| 136 | + # Standard predictor |
| 137 | + dspy.configure(lm=i) |
| 138 | + predictors.append(MultiLabelLinkPredictor()) |
143 | 139 |
|
144 | 140 | # Diverse predictor (high temp) |
145 | | - dspy.configure(lm=self.lm_high_temp) |
146 | | - predictors.append(MultiLabelLinkPredictor()) |
| 141 | + #dspy.configure(lm=self.lm_high_temp) |
| 142 | + #predictors.append(MultiLabelLinkPredictor()) |
147 | 143 |
|
148 | 144 | return predictors |
149 | 145 |
|
|
0 commit comments