kevin009 commited on
Commit
92e67f5
·
verified ·
1 Parent(s): 23f63f0

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +151 -0
README.md ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ base_model:
6
+ - meta-llama/Llama-3.1-8B-instruct
7
+ pipeline_tag: text-generation
8
+ tags:
9
+ - lora
10
+ - adapter
11
+ - writing
12
+ - CoT
13
+ ---
14
+ # Merged-Llama-Adapters-317-320
15
+
16
+ A merged LoRA adapter combining four fine-tuned adapters (317-320) for the Llama-3.1-8B language model.
17
+
18
+ ## Model Details
19
+
20
+ - Base Model: meta-llama/Llama-3.1-8B-instruct
21
+ - Adaptation Method: Merged LoRA
22
+ - Source Adapters:
23
+ - https://huggingface.co/kevin009/merge-17-2
24
+ - https://huggingface.co/kevin009/llama318
25
+ - https://huggingface.co/kevin009/llama319
26
+ - https://huggingface.co/kevin009/llama320
27
+ - https://huggingface.co/kevin009/llama1720-base
28
+ - https://huggingface.co/kevin009/llama324
29
+
30
+ ## Merger Configuration
31
+
32
+ ### Source Adapters
33
+
34
+ All source adapters share the following configuration:
35
+ - Rank (r): 16
36
+ - Alpha: 16
37
+ - Target Modules:
38
+ - q_proj (Query projection)
39
+ - k_proj (Key projection)
40
+ - v_proj (Value projection)
41
+ - o_proj (Output projection)
42
+ - up_proj (Upsampling projection)
43
+ - down_proj (Downsampling projection)
44
+ - gate_proj (Gate projection)
45
+
46
+ ### Merger Details
47
+
48
+ - Merger Method: Linear interpolation
49
+ - Merger Weights: Equal weights (0.25) for each adapter
50
+ - Combined Rank: 16 (maintained from source adapters)
51
+
52
+ ## Usage
53
+
54
+ This merged adapter must be used with the base Llama-3.1-8B-instruct model.
55
+
56
+ ### Loading the Model
57
+
58
+ ```python
59
+ # Initialize with first F32 model
60
+ peft_model = PeftModel.from_pretrained(model, "llama319", adapter_name="llama319")
61
+ # Load F32 models (higher precision)
62
+ peft_model.load_adapter("llama324", adapter_name="llama324")
63
+ peft_model.load_adapter("llama320", adapter_name="llama320")
64
+ peft_model.load_adapter("llama318", adapter_name="llama318")
65
+ peft_model.load_adapter("llama1720-base", adapter_name="llama1720-base")
66
+ peft_model.load_adapter("merge-17-20", adapter_name="merge-17-20")
67
+
68
+ adapters = ["llama319", "llama320", "llama1720-base", "merge-17-20", "llama324", "llama318"]
69
+ weights = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
70
+ peft_model.add_weighted_adapter(adapters, weights, "merge", combination_type="ties", density=0.2)
71
+
72
+ peft_model.set_adapter("merge")
73
+ peft_model.save_pretrained("merged")
74
+
75
+ ```
76
+
77
+ ## Limitations and Biases
78
+
79
+ - This merged adapter inherits limitations and biases from:
80
+ - The base Llama-3.1-8B-instruct model
81
+ - All four source adapters
82
+ - The merging process may result in:
83
+ - Potential loss of specialized capabilities from individual adapters
84
+ - Averaged behavior across different adapter specializations
85
+ - Possible interference between adapter weights
86
+
87
+ ## Merging Process
88
+
89
+ The adapters were merged using the following approach:
90
+ 1. Linear interpolation of adapter weights
91
+ 2. Equal weighting (0.25) applied to each source adapter
92
+ 3. Preservation of original LoRA rank and architecture
93
+
94
+ ### Method Used
95
+
96
+ The adapters were merged using PEFT (Parameter-Efficient Fine-Tuning) library's weighted adapter combination feature. The process combines multiple LoRA adapters using linear interpolation with specified weights.
97
+
98
+
99
+ ### Key Parameters
100
+
101
+ - `combination_type="ties"`: Uses the TIES (Task Interference Edge Selection) method for combining adapters
102
+ - `density=0.2`: Controls the sparsity of the merged weights
103
+
104
+
105
+ ### Notes
106
+
107
+ - The order of loading adapters may affect the final result
108
+ - Equal weights were chosen to maintain balanced influence from each adapter
109
+ - The merged adapter maintains the same architecture and rank as the original adapters
110
+ - While this adapter merges multiple fine-tunes, each component was developed as part of independent research efforts to explore and language model capabilities as part of R&D process.
111
+
112
+
113
+ ## Datasets
114
+
115
+ - Not yet released, but should be released after evaluation has completed.
116
+ - Creating dataset alone tooks more than 3 month for creating 30k pairs dataset.
117
+ - Only 1k pairs example considered to be synthetic dataset, the rest half synthetic and human written text.
118
+
119
+ ### Use Cases
120
+
121
+ - This merged adapter can be used for a wide range of tasks, including but not limited to:
122
+ - Accessibility
123
+ - Revision & Editing
124
+ - instruction-following use with xml tags
125
+ - Thinking & reasoning with xml tag of <thinking> and </thinking>, if being asked i the instructions.
126
+
127
+
128
+ These Models not optimized for code, math, or other specialized tasks that need Perefence Optimization.
129
+
130
+ ## Why SFT Instead of RLHF/DPO?
131
+ - RLHF and DPO approaches often lead to vocabulary limitations and overfitting due to their optimization objectives
132
+
133
+
134
+ ## Why Multiple Adapters?
135
+ - Resource Issue: Placing the training into smaller adapters requires less GPU memory and compute time while gives more control over the training process.
136
+ - Iterative Development: Each adapter can be developed and tested independently
137
+ - Training Infrastructure: The complete fine-tuning process was conducted across multiple sessions, totaling over 100 hours on high-end GPUs (H100, H200, or L40s)
138
+ - Flexibility: Multiple adapters allow for different combinations or weightings
139
+
140
+
141
+ ## License
142
+
143
+ Licensed under Apache 2.0 License.
144
+
145
+ This merged adapter is part of independent individual research work. While the code is open-source under the Apache 2.0 license, please note:
146
+
147
+ - You are free to use, modify, and distribute this adapter following the Apache 2.0 license terms
148
+ - This work is provided "as is" without warranties or conditions of any kind
149
+ - This is an independent research project and not affiliated with any organization
150
+ - Attribution is appreciated but not required
151
+ - For full license details, see: https://www.apache.org/licenses/LICENSE-2.0