update README.md
Browse files- README.md +87 -197
- logo.png +0 -0
- modelstructure.jpg +0 -0
    	
        README.md
    CHANGED
    
    | @@ -1,199 +1,89 @@ | |
| 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 | 
            -
            ### Training Data
         | 
| 79 | 
            -
             | 
| 80 | 
            -
            <!-- 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. -->
         | 
| 81 | 
            -
             | 
| 82 | 
            -
            [More Information Needed]
         | 
| 83 | 
            -
             | 
| 84 | 
            -
            ### Training Procedure
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
         | 
| 87 | 
            -
             | 
| 88 | 
            -
            #### Preprocessing [optional]
         | 
| 89 | 
            -
             | 
| 90 | 
            -
            [More Information Needed]
         | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
            #### Training Hyperparameters
         | 
| 94 | 
            -
             | 
| 95 | 
            -
            - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
         | 
| 96 | 
            -
             | 
| 97 | 
            -
            #### Speeds, Sizes, Times [optional]
         | 
| 98 | 
            -
             | 
| 99 | 
            -
            <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
         | 
| 100 | 
            -
             | 
| 101 | 
            -
            [More Information Needed]
         | 
| 102 | 
            -
             | 
| 103 | 
            -
            ## Evaluation
         | 
| 104 | 
            -
             | 
| 105 | 
            -
            <!-- This section describes the evaluation protocols and provides the results. -->
         | 
| 106 | 
            -
             | 
| 107 | 
            -
            ### Testing Data, Factors & Metrics
         | 
| 108 | 
            -
             | 
| 109 | 
            -
            #### Testing Data
         | 
| 110 | 
            -
             | 
| 111 | 
            -
            <!-- This should link to a Dataset Card if possible. -->
         | 
| 112 | 
            -
             | 
| 113 | 
            -
            [More Information Needed]
         | 
| 114 | 
            -
             | 
| 115 | 
            -
            #### Factors
         | 
| 116 | 
            -
             | 
| 117 | 
            -
            <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
         | 
| 118 | 
            -
             | 
| 119 | 
            -
            [More Information Needed]
         | 
| 120 | 
            -
             | 
| 121 | 
            -
            #### Metrics
         | 
| 122 | 
            -
             | 
| 123 | 
            -
            <!-- These are the evaluation metrics being used, ideally with a description of why. -->
         | 
| 124 | 
            -
             | 
| 125 | 
            -
            [More Information Needed]
         | 
| 126 | 
            -
             | 
| 127 | 
            -
            ### Results
         | 
| 128 | 
            -
             | 
| 129 | 
            -
            [More Information Needed]
         | 
| 130 | 
            -
             | 
| 131 | 
            -
            #### Summary
         | 
| 132 | 
            -
             | 
| 133 | 
            -
             | 
| 134 | 
            -
             | 
| 135 | 
            -
            ## Model Examination [optional]
         | 
| 136 | 
            -
             | 
| 137 | 
            -
            <!-- Relevant interpretability work for the model goes here -->
         | 
| 138 | 
            -
             | 
| 139 | 
            -
            [More Information Needed]
         | 
| 140 | 
            -
             | 
| 141 | 
            -
            ## Environmental Impact
         | 
| 142 | 
            -
             | 
| 143 | 
            -
            <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
         | 
| 144 | 
            -
             | 
| 145 | 
            -
            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).
         | 
| 146 | 
            -
             | 
| 147 | 
            -
            - **Hardware Type:** [More Information Needed]
         | 
| 148 | 
            -
            - **Hours used:** [More Information Needed]
         | 
| 149 | 
            -
            - **Cloud Provider:** [More Information Needed]
         | 
| 150 | 
            -
            - **Compute Region:** [More Information Needed]
         | 
| 151 | 
            -
            - **Carbon Emitted:** [More Information Needed]
         | 
| 152 | 
            -
             | 
| 153 | 
            -
            ## Technical Specifications [optional]
         | 
| 154 | 
            -
             | 
| 155 | 
            -
            ### Model Architecture and Objective
         | 
| 156 | 
            -
             | 
| 157 | 
            -
            [More Information Needed]
         | 
| 158 | 
            -
             | 
| 159 | 
            -
            ### Compute Infrastructure
         | 
| 160 | 
            -
             | 
| 161 | 
            -
            [More Information Needed]
         | 
| 162 | 
            -
             | 
| 163 | 
            -
            #### Hardware
         | 
| 164 | 
            -
             | 
| 165 | 
            -
            [More Information Needed]
         | 
| 166 | 
            -
             | 
| 167 | 
            -
            #### Software
         | 
| 168 | 
            -
             | 
| 169 | 
            -
            [More Information Needed]
         | 
| 170 | 
            -
             | 
| 171 | 
            -
            ## Citation [optional]
         | 
| 172 | 
            -
             | 
| 173 | 
            -
            <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
         | 
| 174 | 
            -
             | 
| 175 | 
            -
            **BibTeX:**
         | 
| 176 | 
            -
             | 
| 177 | 
            -
            [More Information Needed]
         | 
| 178 | 
            -
             | 
| 179 | 
            -
            **APA:**
         | 
| 180 | 
            -
             | 
| 181 | 
            -
            [More Information Needed]
         | 
| 182 | 
            -
             | 
| 183 | 
            -
            ## Glossary [optional]
         | 
| 184 | 
            -
             | 
| 185 | 
            -
            <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
         | 
| 186 | 
            -
             | 
| 187 | 
            -
            [More Information Needed]
         | 
| 188 | 
            -
             | 
| 189 | 
            -
            ## More Information [optional]
         | 
| 190 | 
            -
             | 
| 191 | 
            -
            [More Information Needed]
         | 
| 192 | 
            -
             | 
| 193 | 
            -
            ## Model Card Authors [optional]
         | 
| 194 | 
            -
             | 
| 195 | 
            -
            [More Information Needed]
         | 
| 196 | 
            -
             | 
| 197 | 
            -
            ## Model Card Contact
         | 
| 198 | 
            -
             | 
| 199 | 
            -
            [More Information Needed]
         | 
|  | |
| 1 | 
             
            ---
         | 
| 2 | 
            +
            license: cc-by-nc-4.0
         | 
| 3 | 
            +
            base_model: Qwen/Qwen2-7B-Instruct
         | 
| 4 | 
            +
            model-index:
         | 
| 5 | 
            +
            - name: Dolphin 
         | 
| 6 | 
            +
              results: []
         | 
| 7 | 
            +
            tags:
         | 
| 8 | 
            +
            - RAG
         | 
| 9 | 
            +
            - on-device language model
         | 
| 10 | 
            +
            - Retrieval Augmented Generation
         | 
| 11 | 
            +
            inference: false
         | 
| 12 | 
            +
            space: false
         | 
| 13 | 
            +
            spaces: false
         | 
| 14 | 
            +
            language:
         | 
| 15 | 
            +
            - en
         | 
| 16 | 
             
            ---
         | 
| 17 | 
            +
            # Dolphin: Long Context as a New Modality for Energy-Efficient On-Device Language Models
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            <p align="center">
         | 
| 20 | 
            +
            - <a href="https://www.nexaai.com/models" target="_blank">Nexa Model Hub</a>
         | 
| 21 | 
            +
            - <a href="https://arxiv.org/abs/2404.01744" target="_blank">ArXiv</a>
         | 
| 22 | 
            +
            </p>
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            <p align="center" width="100%">
         | 
| 25 | 
            +
              <a><img src="logo.png" alt="nexa-octopus" style="width: 30%; min-width: 300px; display: block; margin: auto;"></a>
         | 
| 26 | 
            +
            </p>
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            ## Overview
         | 
| 29 | 
            +
            Dolphin is a novel approach to accelerate language model inference by treating long context as a new modality, similar to image, audio, and video modalities in vision-language models. This innovative method incorporates a language encoder model to encode context information into embeddings, applying multimodal model concepts to enhance the efficiency of language model inference。 Below are model highlights:
         | 
| 30 | 
            +
            - 🧠 Context as a distinct modality
         | 
| 31 | 
            +
            - 🗜️ Language encoder for context compression
         | 
| 32 | 
            +
            - 🔗 Multimodal techniques applied to language processing
         | 
| 33 | 
            +
            - ⚡ Optimized for energy efficiency and on-device use
         | 
| 34 | 
            +
            - 📜 Specialized for long context understanding
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            ## Model Architecture
         | 
| 37 | 
            +
            Dolphin employs a decoder-decoder framework with two main components:
         | 
| 38 | 
            +
            1. A smaller decoder (0.5B parameters) for transforming information from extensive contexts
         | 
| 39 | 
            +
            2. A larger decoder (7B parameters) for comprehending and generating responses to current queries
         | 
| 40 | 
            +
            3. The architecture also includes a projector to align embeddings between the text encoder and the main decoder.
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            ## Running the Model
         | 
| 45 | 
            +
             | 
| 46 | 
            +
            ```python
         | 
| 47 | 
            +
            from transformers import AutoTokenizer
         | 
| 48 | 
            +
            from configuration_dolphin import DolphinForCausalLM
         | 
| 49 | 
            +
            import time
         | 
| 50 | 
            +
             | 
| 51 | 
            +
            tokenizer = AutoTokenizer.from_pretrained('nexa-collaboration/dolphin_instruct_1M_0805', trust_remote_code=True)
         | 
| 52 | 
            +
            model = DolphinForCausalLM.from_pretrained('nexa-collaboration/dolphin_instruct_1M_0805', trust_remote_code=True)
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            def inference(input_text):
         | 
| 55 | 
            +
                inputs = tokenizer(input_text, return_tensors="pt")
         | 
| 56 | 
            +
                outputs = model.generate(**inputs, max_new_tokens=100)
         | 
| 57 | 
            +
                return tokenizer.decode(outputs[0], skip_special_tokens=True)
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            input_text = "Take a selfie for me with front camera"
         | 
| 60 | 
            +
            nexa_query = f"Below is the query from the users, please call the correct function and generate the parameters to call the function.\n\nQuery: {input_text} \n\nResponse:"
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            start_time = time.time()
         | 
| 63 | 
            +
            result = inference(nexa_query)
         | 
| 64 | 
            +
            print("Dolphin model result:\n", result)
         | 
| 65 | 
            +
            print("Latency:", time.time() - start_time, "s")
         | 
| 66 | 
            +
            ```
         | 
| 67 | 
            +
             | 
| 68 | 
            +
            ## Training Process
         | 
| 69 | 
            +
            Dolphin's training involves three stages:
         | 
| 70 | 
            +
            1. Restoration Training: Reconstructing original context from compressed embeddings
         | 
| 71 | 
            +
            2. Continual Training: Generating context continuations from partial compressed contexts
         | 
| 72 | 
            +
            3. Instruction Fine-tuning: Generating responses to queries given compressed contexts
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            This multi-stage approach progressively enhances the model's ability to handle long contexts and generate appropriate responses.
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            ## Citation
         | 
| 77 | 
            +
            If you use Dolphin in your research, please cite our paper:
         | 
| 78 | 
            +
             | 
| 79 | 
            +
            ```bibtex
         | 
| 80 | 
            +
            @article{dolphin2024,
         | 
| 81 | 
            +
              title={Dolphin: Long Context as a New Modality for Energy-Efficient On-Device Language Models},
         | 
| 82 | 
            +
              author={[Author Names]},
         | 
| 83 | 
            +
              journal={arXiv preprint arXiv:[paper_id]},
         | 
| 84 | 
            +
              year={2024}
         | 
| 85 | 
            +
            }
         | 
| 86 | 
            +
            ```
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            ## Contact
         | 
| 89 | 
            +
            For questions or feedback, please [contact us]([email protected])
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | 
    	
        logo.png
    ADDED
    
    |   | 
    	
        modelstructure.jpg
    ADDED
    
    |   | 

