BAAI
/

Aquila2-34B / README.md
ZacLiu's picture
Update README.md
131a9b7 verified
|
raw
history blame
3.5 kB
metadata
license: other

Aquila_logo

English | 简体中文 |

We opensource our Aquila2 series, now including Aquila2, the base language models, namely Aquila2-7B and Aquila2-34B, as well as AquilaChat2, the chat models, namely AquilaChat2-7B and AquilaChat2-34B, as well as the long-text chat models, namely AquilaChat2-7B-16k and AquilaChat2-34B-16k

The additional details of the Aquila model will be presented in the official technical report. Please stay tuned for updates on official channels.

Updates 2024.6.6

We have updated the basic language model Aquila2-34B, which has the following advantages compared to the previous model:

  • Replaced tokenizer with higher compression ratio:
Tokenizer Size Zh En Code Math Average
Aquila2-original 100k 4.70 4.42 3.20 3.77 4.02
Qwen1.5 151k 4.27 4.51 3.62 3.35 3.94
Llama3 128k 3.45 4.61 3.77 3.88 3.93
Aquila2-new 143k 4.60 4.61 3.78 3.88 4.22
  • The maximum processing length supported by the model has increased from 2048 to 8192

Quick Start Aquila2-34B

1. Inference

Aquila2-34B is a base model that can be used for continuation.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers import BitsAndBytesConfig

device= "cuda:0"

# Model Name
model_name = 'BAAI/Aquila2-34B'

# load model and tokenizer
quantization_config=BitsAndBytesConfig(
                        load_in_4bit=True,
                        bnb_4bit_use_double_quant=True,
                        bnb_4bit_quant_type="nf4",
                        bnb_4bit_compute_dtype=torch.bfloat16,
                    )
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16, trust_remote_code=True,
                        # quantization_config=quantization_config # Uncomment this one for 4-bit quantization
                        )

tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)

model.eval()

model.to(device)

# Example
text = "The meaning of life is"
tokens = tokenizer.encode_plus(text)['input_ids']
tokens = torch.tensor(tokens)[None,].to(device)

with torch.no_grad():
        out = model.generate(tokens, do_sample=False, max_length=128, eos_token_id=tokenizer.eos_token_id)[0]
        out = tokenizer.decode(out.cpu().numpy().tolist())
        print(out)

License

Aquila2 series open-source model is licensed under BAAI Aquila Model Licence Agreement

Citation

Feel free to cite the repo if you think Aquila2 is useful.

@misc{zhang2024aquila2technicalreport,
      title={Aquila2 Technical Report}, 
      author={Bo-Wen Zhang and Liangdong Wang and Jijie Li and Shuhao Gu and Xinya Wu and Zhengduo Zhang and Boyan Gao and Yulong Ao and Guang Liu},
      year={2024},
      eprint={2408.07410},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2408.07410}, 
}