hyx21 commited on
Commit
5f6f256
1 Parent(s): 116ff2c

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +121 -45
README.md CHANGED
@@ -1,63 +1,139 @@
1
- # MiniCPM
2
-
3
- ## 介绍 Introduction
4
-
5
-
6
- - 与`Llama`的关系 The Relationship between `Llama`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
- `MiniCPM`与`Llama`均使用了仅解码器架构。代码实现上,`MiniCPM`基于`Llama`实现,增加了放缩机制。
 
 
9
 
10
- `MiniCPM` uses Decoder-only Structure as well as `Llama`. The implementation of `MiniCPM` is based on `Llama` code, with scaling mechenism added.
 
 
11
 
12
- ## 软件依赖 Dependency
 
 
13
 
14
- - `transformers >= 4.36.0`
15
- - `accelerate`
16
 
17
- ## 使用 Usage
18
 
19
- 我们推荐使用`AutoModelForCausalLM`与`AutoTokenizer`载入`MiniCPM`,并使用`torch.bfloat16`作为计算精度。我们推荐在GPU上进行推理。
20
 
21
- We recommend using `AutoModelForCausalLM` and `AutoTokenizer` to load `MiniCPM`, and use `torch.bfloat16` as the calculation precision. GPU reference is recommended.
 
 
 
22
 
23
- 以下是一个使用`MiniCPM`生成的例子。
 
 
 
24
 
25
- An example is provided below for using `MiniCPM` to generate tokens.
26
 
27
- ```python
28
- from transformers import AutoModelForCausalLM, AutoTokenizer
29
- import torch
30
 
31
- path = '/data/miniCPM_opensource/miniCPM-bf16' # TODO
 
32
 
33
- tokenizer = AutoTokenizer.from_pretrained(path)
34
- model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.float32, device_map='auto', trust_remote_code=True)
35
 
36
- dialog = [{'role': 'user', 'content': '请问中国哪几个城市最适合旅游?'}]
37
 
38
- input = tokenizer.apply_chat_template(dialog, tokenize=False, add_generation_prompt=False)
39
- enc = tokenizer(input, return_tensors='pt').to('cuda')
40
 
41
- output = model.generate(**enc, max_length=1024)
42
- print(tokenizer.decode(output[0]))
43
  ```
 
 
 
 
 
44
 
45
- 期望的输出 Expected Output:
46
- ```
47
- <s> <用户>请问中国哪几个城市最适合旅游?<AI> 中国有很多适合旅游的城市,以下是一些建议:
48
-
49
- 1. 北京:中国的首都,有着悠久的历史和丰富的文化,如故宫、天安门广场、颐和园等。
50
- 2. 上海:中国的经济中心,有着现代化的城市风貌和世界级的景点,如外滩、东方明珠、豫园等。
51
- 3. 西安:古都西安有着丰富的历史遗迹,如兵马俑、大雁塔、华清池等。
52
- 4. 成都:美食之都,有着悠闲的生活氛围,如锦里、宽窄巷子、大熊猫繁育研究基地等。
53
- 5. 杭州:美丽的西湖是杭州的标志性景点,还有许多历史遗迹和文化景点,如灵隐寺、宋城等。
54
- 6. 广州:南方繁华的大都市,有着丰富的美食和购物资源,如珠江夜游、白云山、长隆旅游度假区等。
55
- 7. 厦门:美丽的海滨城市,有着清新的空气和美丽的海景,如鼓浪屿、南普陀寺、厦门大学等。
56
- 8. 桂林:著名的旅游城市,有着壮丽的山水风光,如漓江、阳朔、世外桃源等。
57
- 9. 张家界:有着独特的石柱地貌,如黄龙洞、天子山、金鞭溪等。
58
- 10. 西藏:神秘的高原地区,有着壮丽的自然风光和丰富的文化,如布达拉宫、大昭寺、纳木错等。
59
-
60
- 以上仅是中国部分城市的推荐,实际上中国还有许多其他美丽的地方值得一游。在选择旅游目的地时,可以根据自己的兴趣和喜好进行选择。</s>
61
- ```
62
 
63
- ## 引用 Reference
 
1
+ ---
2
+ language:
3
+ - en
4
+ - zh
5
+ tags:
6
+ - MiniCPM
7
+ - ModelBest
8
+ - THUNLP
9
+ ---
10
+
11
+
12
+ <div align="center">
13
+ <h1>
14
+ MiniCPM
15
+ </h1>
16
+ </div>
17
+
18
+ <p align="center">
19
+ <a href="XXXX" target="_blank">MiniCPM 技术报告 Technical Report</a> |
20
+ <a href="https://github.com/OpenBMB/OmniLMM/" target="_blank">OmniLMM 多模态模型 Multi-modal Model</a> |
21
+ <a href="https://luca.cn/" target="_blank">CPM-C 千亿模型试用 ~100B Model Trial </a>
22
+ </p>
23
+
24
+ MiniCPM 是面壁与清华大学自然语言处理实验室共同开源的系列端侧语言大模型,主体语言模型 MiniCPM-2B 仅有 24亿(2.4B)的非词嵌入参数量。
25
+ - 经过 SFT 后,MiniCPM 在公开综合性评测集上,MiniCPM 与 Mistral-7B相近(中文、数学、代码能力更优),整体性能超越 Llama2-13B、MPT-30B、Falcon-40B 等模型。
26
+ - 经过 DPO 后,MiniCPM 在当前最接近用户体感的评测集 MTBench上,MiniCPM-2B 也超越了 Llama2-70B-Chat、Vicuna-33B、Mistral-7B-Instruct-v0.1、Zephyr-7B-alpha 等众多代表性开源大模型。
27
+ - 以 MiniCPM-2B 为基础构建端侧多模态大模型 MiniCPM-V,整体性能在同规模模型中实现最佳,超越基于 Phi-2 构建的现有多模态大模型,在部分评测集上达到与 9.6B Qwen-VL-Chat 相当甚至更好的性能。
28
+ - 经过 Int4 量化后,MiniCPM 可在手机上进行部署推理,流式输出速度略高于人类说话速度。MiniCPM-V 也首次跑通了多模态大模型在手机上的部署。
29
+ - 一张1080/2080可高效参数微调,一张3090/4090可全参数微调,一台机器可持续训练 MiniCPM,二次开发成本较低。
30
+
31
+ 我们将完全开源MiniCPM-2B的模型参数供学术研究和有限商用,以及训练过程中的所有Checkpoint和大部分非专有数据供模型机理研究。
32
+
33
+ - 基于MiniCPM-2B的指令微调与人类偏好对**MiniCPM-2B-SFT/DPO。**
34
+ - 基于MiniCPM-2B的多模态模型**MiniCPM-V**,能力超越基于Phi-2的同参数级别多模态模型**。**
35
+ - MiniCPM-2B-SFT/DPO的Int4量化版**MiniCPM-2B-SFT/DPO-Int4。**
36
+ - 基于MLC-LLM、LLMFarm开发的MiniCPM手机端程序,**文本及多模态模型均可在手机端进行推理。**
37
+
38
+
39
+ MiniCPM is an End-Size LLM developed by ModelBest Inc. and TsinghuaNLP, with only 2.4B parameters excluding embeddings.
40
+
41
+ - MiniCPM has very close performance compared with Mistral-7B on open-sourced general benchmarks with better ability on Chinese, Mathmetics and Coding after SFT. The overall performance exceeds Llama2-13B, MPT-30B, Falcon-40B, etc.
42
+ - After DPO, MiniCPM outperforms Llama2-70B-Chat, Vicuna-33B, Mistral-7B-Instruct-v0.1, Zephyr-7B-alpha, etc. on MTBench.
43
+ - MiniCPM can be deployed and infer on smartphones, and the speed of streaming output is relatively higher than the verbal speed of human. MiniCPM-V is the first time that multi-modal models can be deployed on smartphones.
44
+ - The cost of developing based on MiniCPM is low. Parameter efficient finetuning can be conducted with a single 1080/2080 GPU and full parameter finetuning can be conducted with a 3090/4090 GPU.
45
+
46
+ We release all model parameters for research and limited commercial use. We also release all the checkpoint during training and most public training data for research on model mechanism.
47
+
48
+ - SFT and DPO version based on MiniCPM-2B and human preference
49
+ - The multi-modal model MiniCPM-V based on MiniCPM-2B, which outperforms models with similar size, i.e., Phi-2
50
+ - The INT4 quantized version MiniCPM-2B-SFT/DPO-Int4 based on MiniCPM-2B-SFT/DPO
51
+ - Smartphone application based on MLC-LLM and LLMFarm. All models can conduct inference on smartphones.
52
+
53
+
54
+ ### 局限性 Limitations:
55
+
56
+ - 受限于模型规模,模型可能出现幻觉性问题。其中由于DPO模型生成的回复内容更长,更容易出现幻觉。我们也将持续进行MiniCPM模型的迭代改进;
57
+ - 为了保证在学术研究用途上模型的通用性,我们未对模型进行任何身份认同训练。同时由于我们用ShareGPT开源语料作为部分训练数据,模型可能会输出类似GPT系列模型的身份认同信息;
58
+ - 受限于模型规模,模型的输出受到提示词(prompt)的影响较大,可能多次尝试产生不一致的结果;
59
+ - 受限于模型容量,模型的知识记忆较不准确,后续我们将结合RAG方法来增强模型的知识记忆能力。
60
+
61
+ - Due to the size of the model, hallucination might arise. DPO models have longer outputs, which increases the probability of hallucination. We will inhibit the hallucination in the future.
62
+ - To maximum the generalization ability in research, we have not conduct any self-identification training. Since SharedGPT is included in our training data, the model might identify itself as GPT.
63
+ - Due to the size of the model, the output is highly related to the prompt. Multiple runs might give inconsistent results.
64
+ - Due to the capacity of the model, the inaccuracy of its memory remains high. We will increase its memorizing ability with RAG in the future.
65
+
66
+ ## 模型下载 Download
67
+
68
+ | HuggingFace | ModelScope | WiseModel |
69
+ |-------------|------------|-----------|
70
+ |[sft-bf16](https://huggingface.co/openbmb/MiniCPM-2B-sft-bf16)|[sft-bf16](https://modelscope.cn/models/OpenBMB/miniCPM-bf16)|[sft-bf16](https://wisemodel.cn/models/OpenBMB/miniCPM-bf16)
71
+ |[sft-fp32](https://huggingface.co/openbmb/MiniCPM-2B-sft-fp32)|[sft-fp32](https://modelscope.cn/models/OpenBMB/MiniCPM-2B-sft-fp32)|[sft-fp32](https://wisemodel.cn/models/OpenBMB/miniCPM-dpo-fp32)
72
+ |[dpo-bf16](https://huggingface.co/openbmb/MiniCPM-2B-dpo-bf16)|[dpo-bf16](https://modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-bf16/summary)|[dpo-bf16](https://wisemodel.cn/models/OpenBMB/MiniCPM-2B-dpo-bf16)
73
+ |[dpo-fp16](https://huggingface.co/openbmb/MiniCPM-2B-dpo-fp16)|[dpo-fp16](https://modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-fp16/)|[dpo-fp16](https://wisemodel.cn/models/OpenBMB/MiniCPM-2B-dpo-fp16)
74
+ |[dpo-fp32](https://huggingface.co/openbmb/MiniCPM-2B-dpo-fp32)|[dpo-fp32](https://modelscope.cn/models/OpenBMB/MiniCPM-2B-dpo-fp32)|[dpo-fp32](https://wisemodel.cn/models/OpenBMB/miniCPM-dpo-fp32)
75
+
76
+ ## 模型使用 Usage
77
+
78
+ * 安装`transformers>=4.36.0`以及`accelerate`后,运行以下代码
79
+ * 注意:需要在`from_pretrained`中明确指明模型的数据类型,否则会引起较大计算误差
80
+ * Run the following code after install `transformers>=4.36.0` and `accelerate`
81
+ * Warning: It is necessary to specify the data type of the model clearly in 'from_pretrained', otherwise large calculation errors will be caused
82
+ ```python
83
+ from transformers import AutoModelForCausalLM, AutoTokenizer
84
+ import torch
85
+ torch.manual_seed(0)
86
 
87
+ path = 'openbmb/MiniCPM-2B-dpo-fp16'
88
+ tokenizer = AutoTokenizer.from_pretrained(path)
89
+ model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.float16, device_map='cuda', trust_remote_code=True)
90
 
91
+ responds, history = model.chat(tokenizer, "山东省最高的山是哪座山, 它比黄山高还是矮?差距多少?", temperature=0.8, top_p=0.8)
92
+ print(responds)
93
+ ```
94
 
95
+ * 期望输出 Expected Output
96
+ ```shell
97
+ 山东省最高的山是泰山,海拔1545米。
98
 
99
+ 相对于黄山(海拔1864米),泰山海拔较低,相差约319米。
100
+ ```
101
 
102
+ ## 开源协议 License
103
 
104
+ #### 模型协议 Model License
105
 
106
+ * 本仓库中代码依照 [Apache-2.0](https://github.com/OpenBMB/MiniCPM/blob/main/LICENSE) 协议开源
107
+ * MiniCPM 模型权重的使用则需要遵循 [“通用模型许可协议-来源说明-宣传限制-商业授权”](https://github.com/OpenBMB/General-Model-License/blob/main/%E9%80%9A%E7%94%A8%E6%A8%A1%E5%9E%8B%E8%AE%B8%E5%8F%AF%E5%8D%8F%E8%AE%AE-%E6%9D%A5%E6%BA%90%E8%AF%B4%E6%98%8E-%E5%AE%A3%E4%BC%A0%E9%99%90%E5%88%B6-%E5%95%86%E4%B8%9A%E6%8E%88%E6%9D%83.md)。
108
+ * MiniCPM 模型权重对学术研究完全开放。
109
+ * 如需将模型用于商业用途,请联系cpm@modelbest.cn来获取书面授权,在登记后亦允许免费商业使用。
110
 
111
+ * The code in this repo is released according to [Apache-2.0](https://github.com/OpenBMB/MiniCPM/blob/main/LICENSE)
112
+ * The usage of MiniCPM's parameters is subject to ["General Model License Agreement - Source Notes - Publicity Restrictions - Commercial License"](https://github.com/OpenBMB/General-Model-License/blob/main/)
113
+ * The parameters are fully open to acedemic research
114
+ * Please contact cpm@modelbest.cn to obtain a written authorization for commercial uses. Free commercial use is also allowed after registration.
115
 
116
+ #### 声明 Statement
117
 
118
+ * 作为一个语言模型,MiniCPM 通过学习大量的文本来生成内容,但它无法理解、表达个人观点或价值判断,它所输出的任何内容都不代表模型开发者的观点和立场。
119
+ * 因此用户在使用 MiniCPM 生成的内容时,应自行负责对其进行评估和验证。
120
+ * 如果由于使用 MinCPM 开源模型而导致的任何问题,包括但不限于数据安全问题、公共舆论风险,或模型被误导、滥用、传播或不当利用所带来的任何风险和问题,我们将不承担任何责任。
121
 
122
+ * As an LLM, MiniCPM generates contents by learning a large mount of texts, but it cannot comprehend, express personal opinions or make value judgement. Anything generated by MiniCPM does not represent the views and positions of the model developers
123
+ * We will not be liable for any problems arising from the use of the MinCPM open Source model, including but not limited to data security issues, risk of public opinion, or any risks and problems arising from the misdirection, misuse, dissemination or misuse of the model.
124
 
125
+ <p id="8"></p>
 
126
 
127
+ ## 工作引用 Reference
128
 
129
+ * 如果觉得MiniCPM有助于您的工作,请考虑引用下列[技术报告](todo)
130
+ * Please refer to the [Technical Report](todo) if this helps
131
 
 
 
132
  ```
133
+ @inproceedings{minicpm2024,
134
+ title={MiniCPM: todo},
135
+ booktitle={OpenBMB Blog},
136
+ year={2024}
137
+ }
138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139