Update README.md
Browse files
README.md
CHANGED
@@ -11,33 +11,140 @@ tags:
|
|
11 |
- RLAIF
|
12 |
quantized_by: bartowski
|
13 |
pipeline_tag: text-generation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
- RLAIF
|
12 |
quantized_by: bartowski
|
13 |
pipeline_tag: text-generation
|
14 |
+
lm_studio:
|
15 |
+
param_count: 7b
|
16 |
+
use_case: general
|
17 |
+
release_date: 19-03-2024
|
18 |
+
model_creator: Nexusflow
|
19 |
+
prompt_template: OpenChat
|
20 |
+
system_prompt: none
|
21 |
+
base_model: mistral
|
22 |
+
original_repo: Nexusflow/Starling-LM-7B-beta
|
23 |
---
|
24 |
|
25 |
+
## 💫 Community Model> Starling-LM-7B-beta by Nexusflow
|
26 |
+
|
27 |
+
*👾 [LM Studio](https://lmstudio.ai) Community models highlights program. Highlighting new & noteworthy models by the community. Join the conversation on [Discord](https://discord.gg/aPQfnNkxGC)*.
|
28 |
+
|
29 |
+
**Model creator:** [Nexusflow](https://huggingface.co/Nexusflow)<br>
|
30 |
+
**Original model**: [Starling-LM-7B-beta](https://huggingface.co/Nexusflow/Starling-LM-7B-beta)<br>
|
31 |
+
**GGUF quantization:** provided by [bartowski](https://huggingface.co/bartowski) based on `llama.cpp` release [b2440](https://github.com/ggerganov/llama.cpp/releases/tag/b2440)<br>
|
32 |
+
|
33 |
+
## Model Summary:
|
34 |
+
Starling-LM-7B-beta is an iteration on the Starling series of models, building on the work from [berkeley-nest](https://huggingface.co/berkeley-nest) who released [Starling-LM-7B-alpha](https://huggingface.co/berkeley-nest/Starling-LM-7B-alpha).<br>
|
35 |
+
This model is finetuned from [openchat/openchat-3.5-0106](https://huggingface.co/openchat/openchat-3.5-0106) based on [Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1).<br>
|
36 |
+
Using [Nexusflow/Starling-RM-34B](https://huggingface.co/Nexusflow/Starling-RM-34B) as the reward model and a policy optimization method of [Fine-Tuning Language Models from Human Preferences (PPO)](https://arxiv.org/abs/1909.08593) to yield impressive results for such a small model.
|
37 |
+
|
38 |
+
## Prompt Template:
|
39 |
+
|
40 |
+
Choose the 'OpenChat' preset in your LM Studio.
|
41 |
+
|
42 |
+
Under the hood, the model will see a prompt that's formatted like so:
|
43 |
+
```
|
44 |
+
GPT4 Correct User: {prompt}<|end_of_turn|>GPT4 Correct Assistant:
|
45 |
+
```
|
46 |
+
|
47 |
+
You can also choose the 'OpenChatCode' for a coding assistant.
|
48 |
+
|
49 |
+
Under the hood, the model will see a prompt that's formatted like so:
|
50 |
+
```
|
51 |
+
Code User: {prompt}<|end_of_turn|>Code Assistant:
|
52 |
+
```
|
53 |
+
|
54 |
+
## Use case and examples
|
55 |
+
|
56 |
+
Starling-LM-7B-beta is tuned to achieve impressive multi-turn chat performance. The base model was designed for being a generalist and coding tuned model, so it will work well for general tasks as well as coding.
|
57 |
+
|
58 |
+
### General knowledge:
|
59 |
+
|
60 |
+
GPT4 Correct User: Why is the sky blue?<|end_of_turn|>
|
61 |
+
GPT4 Correct Assistant: The sky appears blue due to a phenomenon called Rayleigh scattering, named after British scientist Lord Rayleigh who first studied it in detail. Here's a simplified explanation of why this occurs:
|
62 |
+
|
63 |
+
1. Sunlight is composed of various colors of light, each with different wavelengths. These colors include red, orange, yellow, green, blue, indigo, and violet, which together form the visible spectrum.
|
64 |
+
|
65 |
+
2. When sunlight enters Earth's atmosphere, it interacts with molecules of air (mainly nitrogen and oxygen) and small particles like dust and water droplets. These interactions cause the different colors of light to scatter in various directions.
|
66 |
+
|
67 |
+
3. Rayleigh scattering is more effective at shorter wavelengths, meaning that blue and violet light are scattered more than red and yellow light. However, our eyes are more sensitive to blue light than violet, so we perceive the sky as blue rather than a mixture of blue and violet.
|
68 |
+
|
69 |
+
4. At sunrise and sunset, the sun is lower in the sky, and its light has to travel through more atmosphere. This causes even more scattering of shorter wavelengths (blue and violet), leaving longer wavelengths (red, orange, and yellow) to dominate, resulting in the warm colors we see during these times.
|
70 |
+
|
71 |
+
5. In some cases, such as after a rainstorm or in areas with high pollution levels, the sky may appear more grayish or hazy. This is because the scattering of light is less selective, and more of the shorter wavelengths (blue) are scattered out of our line of sight, along with the longer wavelengths (red).
|
72 |
+
|
73 |
+
In summary, the sky appears blue due to the selective scattering of sunlight by the atmosphere, with shorter wavelengths (blue) being scattered more than longer wavelengths (red), and our eyes being more sensitive to blue light.
|
74 |
+
|
75 |
+
### Coding:
|
76 |
+
|
77 |
+
Code User: Implement quicksort using C++<|end_of_turn|>
|
78 |
+
Code Assistant: Here is an example of how to implement the quicksort algorithm in C++:
|
79 |
+
|
80 |
+
```cpp
|
81 |
+
#include <iostream>
|
82 |
+
#include <vector>
|
83 |
+
|
84 |
+
using namespace std;
|
85 |
+
|
86 |
+
void swap(int* a, int* b) {
|
87 |
+
int t = *a;
|
88 |
+
*a = *b;
|
89 |
+
*b = t;
|
90 |
+
}
|
91 |
+
|
92 |
+
int partition(vector<int>& arr, int low, int high) {
|
93 |
+
int pivot = arr[high];
|
94 |
+
int i = (low - 1);
|
95 |
+
|
96 |
+
for (int j = low; j <= high - 1; j++) {
|
97 |
+
if (arr[j] < pivot) {
|
98 |
+
i++;
|
99 |
+
swap(&arr[i], &arr[j]);
|
100 |
+
}
|
101 |
+
}
|
102 |
+
swap(&arr[i + 1], &arr[high]);
|
103 |
+
return (i + 1);
|
104 |
+
}
|
105 |
+
|
106 |
+
void quickSort(vector<int>& arr, int low, int high) {
|
107 |
+
if (low < high) {
|
108 |
+
int pi = partition(arr, low, high);
|
109 |
+
|
110 |
+
quickSort(arr, low, pi - 1);
|
111 |
+
quickSort(arr, pi + 1, high);
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
int main() {
|
116 |
+
vector<int> arr = {10, 7, 8, 9, 1, 5};
|
117 |
+
int n = arr.size();
|
118 |
+
|
119 |
+
quickSort(arr, 0, n - 1);
|
120 |
+
|
121 |
+
cout << "Sorted array: \n";
|
122 |
+
for (int i = 0; i < n; i++) {
|
123 |
+
cout << arr[i] << " ";
|
124 |
+
}
|
125 |
+
cout << endl;
|
126 |
+
|
127 |
+
return 0;
|
128 |
+
}
|
129 |
+
```
|
130 |
+
|
131 |
+
This code defines a `quickSort` function that takes a vector of integers, a starting index (low), and an ending index (high) as parameters. The function uses the partition method to find the pivot element's correct position in the sorted array and then recursively sorts the sub-arrays before and after the pivot.
|
132 |
+
|
133 |
+
The `main` function demonstrates how to use the `quickSort` function by sorting an example vector of integers and printing the sorted result.
|
134 |
+
|
135 |
+
## Technical Details
|
136 |
+
|
137 |
+
Uses [Nexusflow/Starling-RM-34B](https://huggingface.co/Nexusflow/Starling-RM-34B) as a reward model for PPO.
|
138 |
+
|
139 |
+
Nexusflow/Starling-RM-34B was trained on the following dataset:
|
140 |
+
|
141 |
+
- [berkeley-nest/Nectar](https://huggingface.co/datasets/berkeley-nest/Nectar)
|
142 |
+
|
143 |
+
|
144 |
+
## Special thanks
|
145 |
+
|
146 |
+
🙏 Special thanks to [Georgi Gerganov](https://github.com/ggerganov) and the whole team working on [llama.cpp](https://github.com/ggerganov/llama.cpp/) for making all of this possible.
|
147 |
+
|
148 |
+
## Disclaimers
|
149 |
+
|
150 |
+
TBD
|