将端侧大模型启动究竟

面壁不时都在做端侧大模型,之前有文本系列MiniCPM-2B模型,还有多模态系列的MiniCPM-V系列模型,当天又开源了MiniCPM3-4B模型,真是端侧一路走到低。

这次MiniCPM3-4B也是在成果上有了渺小的优化,超越Phi-3.5-mini-Instruct模型,肩比Llama3.1-8B-Instruct、GLM-4-9B-Chat、Qwen2-7B-Instruct等一众模型,可谓小模型之王。

之前的MiniCPM-2B模型报告也是干活满满,详见:

这里说一下哈,MiniCPM-2B是1.0版本模型,MiniCPM-1B是2.0版本模型,如今是3.0版本4B。

模型改良

上方是3个版本的模型结构(1->2->3)的区别:

留意力机制:MHA->GQA->MLA,MLA也是DeepSeek-V2的外围翻新

同时,还颁布了RAG套件MiniCPM-Embedding模型和MiniCPM-Reranker模型,针对 RAG场景还颁布了微调版MiniCPM3-RAG-LoRA模型。

模型成果

MiniCPM3-4B模型在中文英文遵照、数据推理、代码才干、工具调用上体现均很不错的成果。

其中,工具调用才干尤为突出,在Berkeley Function Calling Leaderboard上优于Llama3.1-8B-Instruct、GLM-4-9B-Chat、Qwen2-7B-Instruct等更大模型。

长文档的海底捞针也是全绿。

模型极速经常使用

PS:模型下载有艰巨的同窗,详见我之前写的一篇文章​ ​《大模型下载使我痛苦》​ ​。

from transformers import AutoModelForCausalLM, AutoTokenizerimport torch# 模型加载path = "openbmb/MiniCPM3-4B"tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map="cuda", trust_remote_code=True)# 输入结构messages = [{"role": "user", "content": "你知道刘聪NLP是谁吗?"},]model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to("cuda")# 模型生成model_outputs = model.generate(model_inputs,max_new_tokens=1024,top_p=0.8,temperature=0.9,repetition_penalty=1.1)# 模型解码output_token_ids = [model_outputs[i][len(model_inputs[i]):] for i in range(len(model_inputs))]responses = tokenizer.batch_decode(output_token_ids, skip_special_tokens=True)[0]print(responses)

本文转载自​​,作者:

您可能还会对下面的文章感兴趣: