🚀 雅意大模型
雅意大模型は、百万レベルの人工的に構築された高品質な分野データで指令微調整を行って得られました。訓練データは、メディア宣伝、オピニオン分析、公共安全、金融リスク管理、都市管理などの五大分野と、数百種類の自然言語指令タスクをカバーしています。雅意大模型は、事前学習の初期化重みから分野モデルへの反復過程で、中国語の基礎能力と分野分析能力を徐々に強化し、一部のプラグイン機能も追加されました。同時に、数百人のユーザーによる内部テスト中に継続的に人工フィードバックを行い最適化することで、モデルの性能と安全性をさらに向上させました。
雅意大模型のオープンソース化を通じて、中国語事前学習大規模言語モデルのオープンソースコミュニティの発展に貢献し、オープンソースを通じて各パートナーと協力して雅意大模型のエコシステムを構築します。
🚀 クイックスタート
以下は、yayi - 7b
を使用して下流タスクの推論を行う簡単なサンプルコードです。このコードは、単一の A100/A800/3090 などの GPU で実行でき、FP16 精度で推論する場合、約 20GB の VRAM を使用します。訓練データを取得するか、yayi - 7b
をベースにモデルの微調整を行う場合は、[💻Github Repo](https://github.com/wenge - research/YaYi) を参照してください。
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
import torch
yayi_7b_path = "wenge-research/yayi-7b"
tokenizer = AutoTokenizer.from_pretrained(yayi_7b_path)
model = AutoModelForCausalLM.from_pretrained(yayi_7b_path, device_map="auto", torch_dtype=torch.bfloat16)
prompt = "你好"
formatted_prompt = f"<|System|>:\nA chat between a human and an AI assistant named YaYi.\nYaYi is a helpful and harmless language model developed by Beijing Wenge Technology Co.,Ltd.\n\n<|Human|>:\n{prompt}\n\n<|YaYi|>:"
inputs = tokenizer(formatted_prompt, return_tensors="pt").to(model.device)
eos_token_id = tokenizer("<|End|>").input_ids[0]
generation_config = GenerationConfig(
eos_token_id=eos_token_id,
pad_token_id=eos_token_id,
do_sample=True,
max_new_tokens=100,
temperature=0.3,
repetition_penalty=1.1,
no_repeat_ngram_size=0
)
response = model.generate(**inputs, generation_config=generation_config)
print(tokenizer.decode(response[0]))
注意: モデルの訓練時には、特殊トークン <|End|>
がシーケンス終了マーカーとして追加されました。したがって、上記の GenerationConfig
では、eos_token_id
をこのシーケンス終了マーカーに対応するトークン ID に設定する必要があります。
✨ 主な機能
雅意大模型は、以下のような主な機能を備えています。
- 中国語の基礎能力と分野分析能力が強化されています。
- マルチターン会話機能が強化され、一部のプラグイン機能が追加されています。
- 数百人のユーザーによる内部テストを通じて、性能と安全性が最適化されています。
📚 ドキュメント
関連協定
制限事項
現在のデータとベースモデルを基に訓練された SFT モデルは、性能面で以下の問題があります。
- 事実関連の指令に対して、事実に反する誤った回答を生成する可能性があります。
- 有害な指令をうまく識別できず、有害なコンテンツを生成する可能性があります。
- 論理的な推論、コード生成、科学的な計算などのシナリオでの能力は、まだ向上が必要です。
免責事項
上記のモデルの制限により、開発者には、このプロジェクトから生成されたコード、データ、モデル、およびその派生品を研究目的のみに使用し、商業目的や社会に有害な目的で使用しないようお願いします。雅意大模型によって生成されたコンテンツを評価および利用する際には注意を払ってください。有害なコンテンツをインターネット上に拡散させないでください。このような行為による悪影響は、拡散者の責任となります。
このプロジェクトは研究目的のみを対象としており、プロジェクト開発者は、このプロジェクトの使用(データ、モデル、コードなどを含む)によって生じる損害や損失について一切の責任を負いません。詳細については、[免責事項](https://github.com/wenge - research/YaYi/blob/main/DISCLAIMER) を参照してください。
ライセンス
このプロジェクトのコードは [Apache - 2.0](https://github.com/wenge - research/YaYi/blob/main/LICENSE) ライセンスでオープンソース化されており、データは [CC BY - NC 4.0](https://github.com/wenge - research/YaYi/blob/main/LICENSE_DATA) ライセンスに従い、YaYi シリーズのモデルウェイトの使用は [モデルライセンス](https://github.com/wenge - research/YaYi/blob/main/LICENSE_MODEL) に従う必要があります。
🔧 技術詳細
モデルの初期化と訓練
- 本プロジェクトでは、BigScience の [bloomz - 7b1 - mt](https://huggingface.co/bigscience/bloomz - 7b1 - mt) モデルのウェイトと Meta の [Llama 2](https://huggingface.co/meta - llama) シリーズを初期化ウェイトとして使用し、語彙拡張を行っています。
- 訓練コードは、Databricks の dolly プロジェクトと Huggingface の transformers ライブラリを参考にしています。
- 分散訓練には、Microsoft の DeepSpeed 分散訓練ツールと Huggingface transformers のドキュメントの [ZeRO stage 2](https://huggingface.co/docs/transformers/main_classes/deepspeed#zero2 - config) 設定ファイルを使用しています。
📄 ライセンス
本プロジェクトのコードは [Apache - 2.0](https://github.com/wenge - research/YaYi/blob/main/LICENSE) ライセンスでオープンソース化されており、データは [CC BY - NC 4.0](https://github.com/wenge - research/YaYi/blob/main/LICENSE_DATA) ライセンスに従い、YaYi シリーズのモデルウェイトの使用は [モデルライセンス](https://github.com/wenge - research/YaYi/blob/main/LICENSE_MODEL) に従う必要があります。
謝辞
- 本プロジェクトでは、BigScience の [bloomz - 7b1 - mt](https://huggingface.co/bigscience/bloomz - 7b1 - mt) モデルのウェイトと Meta の [Llama 2](https://huggingface.co/meta - llama) シリーズを初期化ウェイトとして使用し、語彙拡張を行っています。
- 訓練コードは、Databricks の dolly プロジェクトと Huggingface の transformers ライブラリを参考にしています。
- 分散訓練には、Microsoft の DeepSpeed 分散訓練ツールと Huggingface transformers のドキュメントの [ZeRO stage 2](https://huggingface.co/docs/transformers/main_classes/deepspeed#zero2 - config) 設定ファイルを使用しています。