🚀 MiniCPM
MiniCPMは、面壁と清華大学自然言語処理研究室が共同でオープンソース化した一連のエンド側大規模言語モデルです。主体の言語モデルであるMiniCPM - 2Bは、非語彙埋め込みパラメータがわずか24億(2.4B)です。このモデルは、多くの面で優れた性能を発揮し、端末での展開や学術研究、商用にも適しています。
🚀 クイックスタート
MiniCPMを使用するには、まず必要なライブラリをインストールします。その後、以下のコードを実行してモデルを使用できます。
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)
path = 'openbmb/MiniCPM-2B-dpo-bf16'
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map='cuda', trust_remote_code=True)
responds, history = model.chat(tokenizer, "山东省最高的山是哪座山, 它比黄山高还是矮?差距多少?", temperature=0.8, top_p=0.8)
print(responds)
期待される出力
山东省最高的山是泰山,海拔1545米。
相对于黄山(海拔1864米),泰山海拔较低,相差约319米。
✨ 主な機能
- 高性能:SFT後、MiniCPMは公開された総合評価セットでMistral - 7Bに近い性能を発揮し(中国語、数学、コード能力はより優れています)、全体的な性能はLlama2 - 13B、MPT - 30B、Falcon - 40Bなどのモデルを上回ります。DPO後、MiniCPM - 2BはMTBenchでLlama2 - 70B - Chat、Vicuna - 33B、Mistral - 7B - Instruct - v0.1、Zephyr - 7B - alphaなどの多くの代表的なオープンソース大規模言語モデルを上回ります。
- 多モーダル能力:MiniCPM - 2Bをベースに構築された端側多モーダル大規模言語モデルMiniCPM - Vは、同規模のモデルの中で最高の性能を達成し、Phi - 2をベースに構築された既存の多モーダル大規模言語モデルを上回り、一部の評価セットでは9.6BのQwen - VL - Chatと同等以上の性能を発揮します。
- 端末展開容易:Int4量子化後、MiniCPMは携帯電話での展開と推論が可能で、ストリーミング出力速度は人間の話す速度よりもわずかに速いです。MiniCPM - Vは、携帯電話での多モーダル大規模言語モデルの展開を初めて実現しました。
- 開発コスト低:1枚の1080/2080で効率的なパラメータ微調整が可能で、1枚の3090/4090で全パラメータ微調整が可能です。1台のマシンでMiniCPMを継続的にトレーニングでき、二次開発コストが低いです。
📦 インストール
transformers>=4.36.0
と accelerate
をインストールしてください。
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
torch.manual_seed(0)
path = 'openbmb/MiniCPM-2B-dpo-bf16'
tokenizer = AutoTokenizer.from_pretrained(path)
model = AutoModelForCausalLM.from_pretrained(path, torch_dtype=torch.bfloat16, device_map='cuda', trust_remote_code=True)
responds, history = model.chat(tokenizer, "山东省最高的山是哪座山, 它比黄山高还是矮?差距多少?", temperature=0.8, top_p=0.8)
print(responds)
📚 ドキュメント
評価結果
詳細な評価結果はgithubリポジトリにあります。
⚠️ 重要な注意
Huggingfaceでの生成品質はvLLMよりもやや低いことがわかっています。したがって、テストにはvLLMの使用をおすすめします。原因を調査中です。
制限事項
- モデル規模の制限により、モデルは幻覚問題が発生する可能性があります。特にDPOモデルは生成する応答内容が長いため、幻覚が発生しやすくなります。MiniCPMモデルの改善を継続的に行っていきます。
- 学術研究用途でのモデルの汎用性を保つため、モデルには身分認識トレーニングを行っていません。また、ShareGPTのオープンソースコーパスを一部のトレーニングデータとして使用しているため、モデルはGPTシリーズモデルに似た身分認識情報を出力する可能性があります。
- モデル規模の制限により、モデルの出力はプロンプトの影響を大きく受け、複数回試行すると結果が不一致になる可能性があります。
- モデル容量の制限により、モデルの知識記憶は正確ではないため、今後はRAG方法を組み合わせてモデルの知識記憶能力を強化する予定です。
📦 モデルダウンロード
📄 ライセンス
モデルライセンス
- このリポジトリのコードは Apache - 2.0 ライセンスに基づいてオープンソース化されています。
- MiniCPMモデルの重みの使用は、「通用模型许可协议 - 来源说明 - 宣传限制 - 商业授权」 に従う必要があります。
- MiniCPMモデルの重みは学術研究に完全に開放されています。
- モデルを商用目的で使用する場合は、cpm@modelbest.cnに連絡して書面による許可を取得してください。登録後は無料で商用使用が許可されます。
声明
- 言語モデルとして、MiniCPMは大量のテキストを学習して内容を生成しますが、個人の意見や価値判断を理解または表現する能力はありません。MiniCPMが生成する内容は、モデル開発者の見解や立場を代表するものではありません。
- したがって、MiniCPMが生成した内容を使用する際は、ユーザー自身が評価と検証の責任を負う必要があります。
- MiniCPMのオープンソースモデルを使用することによって生じるすべての問題(データセキュリティ問題、公共の世論リスク、またはモデルが誤用、乱用、拡散、不適切に利用されることによるリスクや問題を含む)について、当方は一切の責任を負いません。
🔖 引用
MiniCPMがあなたの研究に役立った場合は、以下の技術レポートを引用してください。
@inproceedings{minicpm2024,
title={MiniCPM:Unveiling the Potential of End-side Large Language Models},
booktitle={OpenBMB Blog},
year={2024}
}