File size: 8,902 Bytes
54a8c35
292e522
 
 
54a8c35
 
 
 
 
 
 
 
540ef8d
 
ba65b6e
540ef8d
a9fd728
540ef8d
ba65b6e
540ef8d
ba65b6e
 
 
 
 
 
 
540ef8d
54a8c35
 
 
acc109c
 
 
54a8c35
39d5b3d
 
 
 
 
 
 
 
 
 
 
 
54a8c35
 
fbb849f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39d5b3d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6eeeefc
 
 
 
 
 
 
 
 
 
 
 
 
39d5b3d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
---
license: other
license_name: tongyi-qianwen-license-agreement
license_link: https://github.com/QwenLM/Qwen/blob/main/Tongyi%20Qianwen%20LICENSE%20AGREEMENT
base_model: moreh/MoMo-72B-lora-1.8.7-DPO
---

![image/png](https://cdn-uploads.huggingface.co/production/uploads/64c14f6b02e1f8f67c73bd05/pf4d6FA7DriRtVq5HCkxd.png)


![image/png](https://cdn-uploads.huggingface.co/production/uploads/64c14f6b02e1f8f67c73bd05/e4u8VYfDBh11u60rFYJHF.png)

Smaug arrives!

We recently released Smaug-72B-v0.1 which has taken first place on the Open LLM Leaderboard by HuggingFace. It is the first open-source model to surpass an average score of 80%.

Smaug-72B is finetuned directly from [moreh/MoMo-72B-lora-1.8.7-DPO](https://huggingface.co/moreh/MoMo-72B-lora-1.8.7-DPO) and is ultimately based on [Qwen-72B](https://huggingface.co/Qwen/Qwen-72B).

We created Smaug-72B-v0.1 using a new fine-tuning technique, DPO-Positive (DPOP), and new pairwise preference versions of ARC, HellaSwag, and MetaMath (as well as other existing datasets). We introduce the technique and the full training details in our new paper: https://arxiv.org/abs/2402.13228.

We show that on datasets in which the edit distance between pairs of completions is low (such as in math-based datasets), standard DPO loss can lead to a reduction of the model's 
likelihood of the preferred examples, as long as the relative probability between the preferred and dispreferred classes increases. 
Using these insights, we design DPOP, a new loss function and training procedure which avoids this failure mode. 
Surprisingly, we also find that DPOP outperforms DPO across a wide variety of datasets and downstream tasks, including datasets with high edit distances between completions.

We believe this new approach is generally useful in training across a wide range of model types and downstream use cases, and it powers all of our Smaug models.
With the release of our paper and datasets, we are excited for the open source community to continue to build on and improve Smaug and spawn more dragons to dominate the LLM space!


### Evaluation Results

| Average | ARC | HellaSwag | MMLU | TruthfulQA | Winogrande | GSM8K |
| --- | --- | --- | --- | --- | --- | --- |
|  80.48  | 76.02 | 89.27  | 77.15 | 76.67 | 85.08 | 78.70 |

#### MT-Bench

We ran MT-Bench with the llama-2 conversation template and the system prompt set to the Qwen system prompt. We got the following
results in single model mode:

| First Turn | Second Turn | Average |
| ---------- | ----------- | ------- |
| 8.18       | 7.34        | 7.76    |

The bottom of the card includes some sample responses from the model. We have selected responses that have high and low scores
from the GPT-4 judge.

### Contamination Results

We generate our contamination numbers using https://github.com/swj0419/detect-pretrain-code-contamination/tree/master, with Llama7B as our reference model.
Smaug-72B has the following results:

| ARC | TruthfulQA | GSM8K |
| --- | --- | --- |
| 0.20| 0.45| 1.00|

By comparison, MoMo-72B-lora-1.8.7-DPO has the following results:

| ARC | TruthfulQA | GSM8K |
| --- | --- | --- |
| 0.20| 0.39| 1.00|

Note that GSM8K often scores very highly on this contamination suite - we verified this by also running Llama-2-70B:

| ARC | TruthfulQA | GSM8K |
| --- | --- | --- |
| 0.22| 0.51| 0.89|


### Sample MT Bench results

#### Example 1
**Question**

Imagine you are writing a blog post comparing two popular smartphone models.
Develop an outline for the blog post, including key points and subheadings to effectively
compare and contrast the features, performance, and user experience of the two models.
Please answer in fewer than 200 words.

**Response**

Outline:

1. Introduction to the two smartphone models being compared (mention brand names and models)
2. Design and Build Quality
   - Comparison of dimensions, weight, materials used, and overall aesthetic appeal
   - Water and dust resistance, if applicable
3. Display and Screen Quality
   - Comparison of screen technology (OLED, IPS LCD, etc.)
   - Display resolution, refresh rate, and brightness levels
4. Performance and Hardware
   - Processor, RAM, and storage configurations
   - Comparison of benchmark scores (e.g., AnTuTu, Geekbench)
5. Camera System and Image Quality
   - Comparison of primary, ultra-wide, telephoto, and macro lenses (if available)
   - Comparison of low-light performance and image processing capabilities
6. Battery Life and Charging
   - Battery capacity and estimated usage time
   - Charging technologies (wired, wireless, fast charging, reverse charging)
7. Software and User Experience
   - Comparison of operating systems (iOS vs. Android) and their features
   - User interface, customization options, and app ecosystem
8. Additional Features and Extras
   - Comparison of biometric authentication (fingerprint, face unlock, etc.)
   - Additional features like NFC, 5G connectivity, and audio quality
9. Pricing and Value for Money
   - Comparison of retail prices and current offers
   - Assessment of overall value considering the features and performance
10. Conclusion and recommendation for potential buyers based on their preferences

#### Example 2
**Question**

In a survey conducted at a local high school, preferences for a new school color were measured: 
58% of students liked the color blue, 45% preferred green, and 22% liked both colors.
If we randomly pick a student from the school, what's the probability that they would like neither blue nor green?

**Answer**

To find the probability that a randomly picked student would like neither blue nor green, we need to find the percentage of students who like only one color or neither color.

From the given information, we know:
- 58% like blue
- 45% prefer green
- 22% like both colors

To find the percentage of students who like only one color, we can subtract the percentage of students who like both colors from the sum of students who like blue and green:
- 58% (blue) + 45% (green) - 22% (both) = 83%

Now, to find the probability of a student liking neither blue nor green, we subtract the percentage of students who like at least one color from 100%:
- 100% - 83% = 17%

So, the probability that a randomly picked student would like neither blue nor green is 17%.

#### Example 3
**Question**

Implement a program to find the common elements in two arrays without using any extra data structures.

**Answer**

Finding common elements in two arrays without using extra data structures can be achieved by using a simple algorithm. Here's a Python implementation of this problem:

```python
def find_common_elements(arr1, arr2):
    common_elements = []
    for num1 in arr1:
        if num1 in arr2 and num1 not in common_elements:
            common_elements.append(num1)
    return common_elements

# Example usage:
array1 = [1, 2, 3, 4, 5]
array2 = [4, 5, 6, 7, 8]
print(find_common_elements(array1, array2))  # Output: [4, 5]
```

This program iterates through the elements of the first array (arr1) and checks if each element is present in the second array (arr2). If it is, and the element hasn't been added to the common_elements list yet, it is appended. The function then returns the list of common elements.

#### Example 4

**Question**

Identify the named entities (people, organizations, locations) mentioned in the given news article.
Please generate a JSON dictionary that lists the named entities in three separate groups based on their entity types.
The key is the type of entity and the value is a list of strings.

Yesterday, Adamson Emerson, the CEO of Faraday, and Dieter Zetsche, the CEO of Daimler AG, announced plans to
build a new Gigafactory in Berlin. The facility will be a joint venture between Faraday and Daimler, producing
electric vehicles and battery packs for both companies, creating thousands of job opportunities in the region.
Emerson and Zetsche stated that the strategic location of Berlin, coupled with its skilled workforce and strong infrastructure,
makes it an ideal choice for expansion. The new Gigafactory aims to meet the growing demand for electric vehicles in Europe
and contribute to a sustainable future. Volkswagen CEO Herbert Diess welcomed the news, saying greater collaboration will,
benefit the auto industry's transition to e-mobility.

**Answer**

```
{
  "people": ["Adamson Emerson", "Dieter Zetsche", "Herbert Diess"],
  "organizations": ["Faraday", "Daimler AG", "Volkswagen"],
  "locations": ["Berlin", "Europe"]
}
```

### Citation

Please cite the paper if you use data, model, or method in this repo.

```
@article{luo2023wizardcoder,
  title={Smaug: Fixing Failure Modes of Preference Optimisation with DPO-Positive},
  author={Pal, Arka and Karkhanis, Deep and Dooley, Samuel and Roberts, Manley and Naidu, Siddartha and White, Colin},
  journal={arXiv preprint arXiv:2402.13228},
  year={2024}
}
```