Edit model card

Falcon-40B

Background

Sparse computation is increasingly recognized as an important direction in enhancing the computational efficiency of large language models (LLMs). Among various approaches, the mixture-of-experts (MoE) method, exemplified by models like Mixtral, has shown particular promise. MoE works by selectively activating different model components (experts), thus optimizing resource usage.

Recent studies (Zhang el al., 2021; Liu et al., 2023; Mirzadeh et al., 2023) reveal that LLMs inherently exhibit properties conducive to sparse computation when employing the ReLU activation function. This insight opens up new avenues for model efficiency, akin to MoE's selective activation. By dynamically choosing model parameters for computation, we can substantially boost efficiency.

However, the widespread adoption of ReLU-based models in the LLM field remains limited. Referring to the transformation methods from existing works (Zhang el al., 2021; Mirzadeh et al., 2023), we convert existing models to ReLU-activated versions through fine-tuning. We hope these open-source ReLU LLMs could promote the development of sparse LLMs.

Dataset

We finetune the model on about 5 billion tokens, including:

  • Wikipedia
  • Pile
  • StackOverflow

We optimistically believe that by continuing to train with more tokens (covering a wider variety of data), the model will further approach its original performance.

Training Details

We jointly optimize the model on the conventional language modeling objective and the knowledge distillation objective. The knowledge distillation objective is to minimize the KL divergence between the teacher model and the student model. The teacher model is the original LLM, and the student model is the ReLU-activated version. Since the size of the fine-tuning data is relatively small, we introduce the knowledge distillation objective to avoid overfitting and enhance the generalization ability of the model, which can be also seen as a technique of label smoothing.

Parameter Value
Finetune_Type Full FT
Batch_Size 1920
GPUs 40xA100(80G)
LR_Scheduler cosine
LR 3e-5

Evaluation

We evaluate the model on the datasets of Open LLM Leaderboard. The results are shown below:

Metric ReLU Value Orig Value
ARC (25-shot) 60.67 61.86
HellaSwag (10-shot) 84.48 85.28
MMLU (5-shot) 54.16 56.89
TruthfulQA (0-shot) 38.02 41.65
Winogrande (5-shot) 80.74 81.29
GSM8K (5-shot) 21.99 21.46
Average 56.52 58.07

Inference Tool

We utilize PowerInfer for inference, here we present the inference speeds of pure CPU-based inference with fp16 precision. The CPU configuration includes an Intel i9-13900K processor (eight performance cores at 5.4GHz) and 192GB of host memory (with a memory bandwidth of 67.2 GB/s).

Dense Inference: 0.85 tokens/s

Sparse Inference: 2.26 tokens/s

License Disclaimer:

This model is bound by the license & usage restrictions of the original falcon-40b model. And comes with no warranty or gurantees of any kind.

Limitations & Biases:

Falcon-40B and fine-tuned variants are a new technology that carries risks with use. Testing conducted to date has been in English, and has not covered, nor could it cover all scenarios. For these reasons, as with all LLMs, falcon-40b and any fine-tuned varient's potential outputs cannot be predicted in advance, and the model may in some instances produce inaccurate, biased or other objectionable responses to user prompts. Therefore, before deploying any applications of falcon-40b variants, developers should perform safety testing and tuning tailored to their specific applications of the model.

Citiation:

Please kindly cite using the following BibTeX:

@misc{sparsellm,
    title={Sparse Large Language Models with ReLU Activation}, 
    author={SpaseLLM Team},
    year={2023}
}

Acknowledgments:

The model card is modified from ORCA_LLaMA_70B_QLoRA.

Downloads last month
535
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.