BAAI
/

File size: 6,135 Bytes
9de6cfa
 
 
f64b6a5
627c4bd
 
dbe851b
f64b6a5
dbe851b
26da5b5
dbe851b
 
 
f64b6a5
 
 
dbe851b
f64b6a5
 
e8a98fe
 
 
 
 
04446e9
49e363d
 
f64b6a5
c1b7e70
 
 
 
 
 
 
 
bb24589
00a6822
f64b6a5
dbe851b
f64b6a5
 
 
 
 
 
8b77d13
14ae5a4
8b77d13
 
1db77e2
 
 
 
 
8b77d13
1db77e2
8b77d13
 
 
1db77e2
8b77d13
1db77e2
8b77d13
 
 
 
 
 
1db77e2
 
 
 
 
 
 
 
 
 
 
8b77d13
1db77e2
 
8b77d13
 
f64b6a5
 
c968537
 
26da5b5
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
79
80
81
82
83
84
85
86
87
88
89
90
---
license: other
---

![Aquila_logo](./log.jpeg)

# 悟道·天鹰(Aquila)

悟道·天鹰(Aquila) 语言大模型是首个具备中英双语知识、支持商用许可协议、国内数据合规需求的开源语言大模型。
- 🌟 **支持开源商用许可**。Aquila系列模型的源代码基于 [Apache 2.0 协议](https://www.apache.org/licenses/LICENSE-2.0),模型权重基于[《智源Aquila系列模型许可协议》](https://huggingface.co/BAAI/AquilaChat-7B/resolve/main/BAAI%20Aquila%20Model%20License%20Agreement.pdf),使用者在满足许可限制的情况下,可用于商业目的。
- ✍️ **具备中英文知识**。Aquila系列模型在中英文高质量语料基础上从 0 开始训练,中文语料约占 40%,保证模型在预训练阶段就开始积累原生的中文世界知识,而非翻译而来的知识。
- 👮‍♀️**符合国内数据合规需求**。Aquila系列模型的中文语料来自智源多年积累的中文数据集,包括来自1万多个站源的中文互联网数据(其中99%以上为国内站源),以及获得国内权威机构支持的高质量中文文献数据、中文书籍数据等。我们仍在持续积累高质量、多样化的数据集,并源源不断加入Aquila基础模型后续训练中。
- 🎯**持续迭代,持续开源开放**。我们将不断完善训练数据、优化训练方法、提升模型性能,在更优秀的基础模型基座上,培育枝繁叶茂的“模型树”,持续开源开放更新的版本。



悟道 · 天鹰 Aquila 模型的更多细节将在官方技术报告中呈现。请关注官方渠道更新。包括 [FlagAI GitHub仓库](https://github.com/FlagAI-Open/FlagAI/),[FlagAI 知乎账号](https://www.zhihu.com/people/95-22-20-18)、[FlagAI 官方技术交流群](https://github.com/FlagAI-Open/FlagAI/blob/master/wechat-qrcode.jpg)、智源研究院微信公众号、智源社区微信公众号。


|   模型          |  模型类型    | 简介  |  状态   |  训练所用显卡   |                                   
| :---------------- | :------- | :-- | :-- | :-- | 
| Aquila-7B         | 基础模型,70亿参数  |   **Aquila 基础模型**在技术上继承了 GPT-3、LLaMA 等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的 tokenizer,升级了 BMTrain 并行训练方法,实现了比 Magtron+DeepSpeed ZeRO-2 将近8倍的训练效率。   | 已发布 | Nvidia-A100 |
| Aquila-33B          |基础模型,330亿参数  |    同上    | **敬请期待** | Nvidia-A100 | 
| AquilaChat-7B          |SFT model,基于 Aquila-7B 进行微调和强化学习  |    **AquilaChat 对话模型**支持流畅的文本对话及多种语言类生成任务,通过定义可扩展的特殊指令规范,实现 AquilaChat对其它模型和工具的调用,且易于扩展。 <br><br>例如,调用智源开源的 **[AltDiffusion](https://github.com/FlagAI-Open/FlagAI/tree/master/examples/AltDiffusion-m18) 多语言文图生成模型**,实现了流畅的文图生成能力。配合智源 **InstructFace 多步可控文生图模型**,轻松实现对人脸图像的多步可控编辑。  | 已发布  | Nvidia-A100  | 
| AquilaChat-33B           |SFT model,基于 Aquila-33B 进行微调和强化学习 |   同上    | **敬请期待** | Nvidia-A100 | 
| AquilaCode-7B-NV          | 基础模型,“文本-代码”生成模型,基于 Aquila-7B继续预训练,在英伟达芯片完成训练  |   AquilaCode-7B 以小数据集、小参数量,实现高性能,是目前支持中英双语的、性能最好的开源代码模型,经过了高质量过滤、使用有合规开源许可的训练代码数据进行训练。<br><br> AquilaCode-7B 分别在英伟达和国产芯片上完成了代码模型的训练。  | github已发布  | Nvidia-A100 | 
| AquilaCode-7B-TS           |基础模型,“文本-代码”生成模型,基于 Aquila-7B继续预训练,在天数智芯芯片上完成训练  |    同上    | github已发布  | Tianshu-BI-V100  |

悟道·天鹰Aquila系列模型将持续开源更优版本。

- 2023/07/14 :开源 v0.8
  - Aquila-7B-01  md5: b14329f7314c05dd79d44b2838c315aa
  - Aquila-7B-02  md5: 88aa286283c7b7dd78c0fbb7fae6327d
  - AquilaChat-7B-01 md5: 0a77901af35d3e5ed16eeafa622e2173
  - AquilaChat-7B-02 md5: 6e84423fe2837c79c0ced6817c316bd4

其中 AquilaChat-7B 在 FlagEval 大模型评测中( “主观+客观”),相比7月7日发布的 v0.6 版本整体提升了 1 % ,在 MMLU评测数据集上提升 17%,详细评测结果请通过 http://flageval.baai.ac.cn 网站查看。
历史版本变更详情见:[变更日志](https://huggingface.co/BAAI/AquilaChat-7B/blob/main/change_log.log) 。

## 快速开始使用 AquilaChat-7B 对话模型


## 使用方式/How to use

### 1. 推理/Inference

```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

device = torch.device("cuda:1")

model_info = "BAAI/AquilaChat-7B"
tokenizer = AutoTokenizer.from_pretrained(model_info, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_info, trust_remote_code=True)
model.eval()
model.to(device)

text = "请给出10个要到北京旅游的理由。"

tokens = tokenizer.encode_plus(text)['input_ids'][:-1]

tokens = torch.tensor(tokens)[None,].to(device)


with torch.no_grad():
    out = model.generate(tokens, do_sample=True, max_length=512, eos_token_id=100007)[0]

    out = tokenizer.decode(out.cpu().numpy().tolist())
    if "###" in out:
        special_index = out.index("###")
        out = out[: special_index]

    if "[UNK]" in out:
        special_index = out.index("[UNK]")
        out = out[:special_index]

    if "</s>" in out:
        special_index = out.index("</s>")
        out = out[: special_index]

    if len(out) > 0 and out[0] == " ":
        out = out[1:]
    print(out)
```


## 证书/License

`AquilaChat`系列开源模型使用 [智源Aquila系列模型许可协议](https://huggingface.co/BAAI/AquilaChat-7B/resolve/main/BAAI%20Aquila%20Model%20License%20Agreement.pdf)