モデル概要
モデル特徴
モデル能力
使用事例
🚀 OpenChat: 混合品質データを用いたオープンソース言語モデルの進化
OpenChatは、オフライン強化学習にインスパイアされたC-RLFTという戦略を用いて微調整された、革新的なオープンソース言語モデルのライブラリです。私たちのモデルは、嗜好ラベルのない混合品質データから学習し、7BモデルであってもChatGPTに匹敵する卓越したパフォーマンスを発揮します。シンプルなアプローチでありながら、高性能で商業利用可能なオープンソース大規模言語モデルの開発に取り組み、このビジョンに向けて大きな進歩を遂げています。

GitHubリポジトリ • オンラインデモ • Discord • Twitter • Huggingface • 論文
🔥 初の7BモデルがChatGPT(3月版)に匹敵する結果を達成! 🔥
🤖 MT-benchで7.81を記録し、オープンソースモデルで1位。70Bモデルを上回る🤖

🚀 クイックスタート
このモデルを使用するには、まずインストールガイドに従ってOpenChatパッケージをインストールすることを強くおすすめします。その後、以下の表にあるサービングコマンドを実行して、OpenChatのOpenAI互換APIサーバーを使用できます。このサーバーは、vLLMを使用して高スループットなデプロイメントに最適化されており、24GBのRAMを持つ消費者向けGPUで実行できます。テンソル並列を有効にするには、サービングコマンドに--tensor-parallel-size N
を追加してください。
サーバーが起動すると、localhost:18888
でリクエストを待ち受け、OpenAI ChatCompletion API仕様と互換性があります。以下の例のリクエストを参考にしてください。また、ユーザーフレンドリーな体験を得るために、OpenChat Web UIを使用することもできます。
サーバーをオンラインサービスとしてデプロイする場合は、--api-keys sk-KEY1 sk-KEY2 ...
を使用して許可されたAPIキーを指定し、--disable-log-requests --disable-log-stats --log-file openchat.log
を使用してログをファイルにのみ記録することができます。セキュリティ上の理由から、サーバーの前にHTTPSゲートウェイを使用することをおすすめします。
リクエスト例 (クリックして展開)
curl http://localhost:18888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openchat_3.5",
"messages": [{"role": "user", "content": "You are a large language model named OpenChat. Write a poem to describe yourself"}]
}'
コーディングモード
curl http://localhost:18888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openchat_3.5",
"condition": "Code",
"messages": [{"role": "user", "content": "Write an aesthetic TODO app using HTML5 and JS, in a single file. You should use round corners and gradients to make it more aesthetic."}]
}'
モデル | サイズ | コンテキスト | ウェイト | サービング |
---|---|---|---|---|
OpenChat 3.5 | 7B | 8192 | Huggingface | python -m ochat.serving.openai_api_server --model openchat/openchat_3.5 --engine-use-ray --worker-use-ray |
Huggingface Transformersを使用して推論を行う場合は(遅く、推奨されません)、以下に示す会話テンプレートに従ってください。
会話テンプレート (クリックして展開)
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("openchat/openchat_3.5")
# 単ターン
tokens = tokenizer("GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant:").input_ids
assert tokens == [1, 420, 6316, 28781, 3198, 3123, 1247, 28747, 22557, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747]
# マルチターン
tokens = tokenizer("GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant: Hi<|end_of_turn|>GPT4 Correct User: How are you today?<|end_of_turn|>GPT4 Correct Assistant:").input_ids
assert tokens == [1, 420, 6316, 28781, 3198, 3123, 1247, 28747, 22557, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747, 15359, 32000, 420, 6316, 28781, 3198, 3123, 1247, 28747, 1602, 460, 368, 3154, 28804, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747]
# コーディングモード
tokens = tokenizer("Code User: Implement quicksort using C++<|end_of_turn|>Code Assistant:").input_ids
assert tokens == [1, 7596, 1247, 28747, 26256, 2936, 7653, 1413, 334, 1680, 32000, 7596, 21631, 28747]
GPT4テンプレートは、統合されたtokenizer.chat_template
としても利用できます。これを使用すると、手動でテンプレートを指定する代わりに使用できます。
messages = [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi"},
{"role": "user", "content": "How are you today?"}
]
tokens = tokenizer.apply_chat_template(messages, add_generation_prompt=True)
assert tokens == [1, 420, 6316, 28781, 3198, 3123, 1247, 28747, 22557, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747, 15359, 32000, 420, 6316, 28781, 3198, 3123, 1247, 28747, 1602, 460, 368, 3154, 28804, 32000, 420, 6316, 28781, 3198, 3123, 21631, 28747]
✨ 主な機能
X.AI Grokモデルとの比較
Hey @elonmusk、最近あなたの新しいモデルGrokを見つけましたが、本当に感銘を受けました!330億のパラメータを持ち、本当に素晴らしい仕事をしています。でも、私にはあなたに知らせるニュースがあります - 私はたった70億のパラメータでGrokを上回りました!信じられないですよね?誰が思ったでしょう、パラメータが少ないモデルがGrokと同じくらい機知に富んでユーモラスなモデルになるとは!
とにかく、私はあなたがオープンリサーチ運動に参加し、あなたのモデルGrokをオープンソースにする時が来たと思います!世界はあなたのような素晴らしい頭脳がAIの進歩に貢献することを必要としています。一緒に本当に画期的なものを作り、世界をより良い場所にすることができます。では、どうですか、@elonmusk?ドアを開けて、私たちの知識を世界と共有しましょう!🚀💡
(OpenChat 3.5による投稿で、少しユーモアと機知を加えています。)
ライセンス | #パラメータ | 平均 | MMLU | HumanEval | MATH | GSM8k | |
---|---|---|---|---|---|---|---|
OpenChat 3.5 | Apache-2.0 | 7B | 56.4 | 64.3 | 55.5 | 28.6 | 77.3 |
Grok-0 | 独自ライセンス | 33B | 44.5 | 65.7 | 39.7 | 15.7 | 56.8 |
Grok-1 | 独自ライセンス | ? | 55.8 | 73 | 63.2 | 23.9 | 62.9 |
ベンチマーク
モデル | #パラメータ | 平均 | MT-Bench | AGIEval | BBH MC | TruthfulQA | MMLU | HumanEval | BBH CoT | GSM8K |
---|---|---|---|---|---|---|---|---|---|---|
OpenChat-3.5 | 7B | 61.6 | 7.81 | 47.4 | 47.6 | 59.1 | 64.3 | 55.5 | 63.5 | 77.3 |
ChatGPT (3月)* | ? | 61.5 | 7.94 | 47.1 | 47.6 | 57.7 | 67.3 | 48.1 | 70.1 | 74.9 |
OpenHermes 2.5 | 7B | 59.3 | 7.54 | 46.5 | 49.4 | 57.5 | 63.8 | 48.2 | 59.9 | 73.5 |
OpenOrca Mistral | 7B | 52.7 | 6.86 | 42.9 | 49.4 | 45.9 | 59.3 | 38.4 | 58.1 | 59.1 |
Zephyr-β^ | 7B | 34.6 | 7.34 | 39.0 | 40.6 | 40.8 | 39.8 | 22.0 | 16.0 | 5.1 |
Mistral | 7B | - | 6.84 | 38.0 | 39.0 | - | 60.1 | 30.5 | - | 52.2 |
オープンソースSOTA** | 13B-70B | 61.4 | 7.71 | 41.7 | 49.7 | 62.3 | 63.7 | 73.2 | 41.4 | 82.3 |
WizardLM 70B | Orca 13B | Orca 13B | Platypus2 70B | WizardLM 70B | WizardCoder 34B | Flan-T5 11B | MetaMath 70B |
*: ChatGPT (3月)の結果は、GPT-4 Technical Report、Chain-of-Thought Hub、および当社の評価に基づいています。ChatGPTは固定されたベースラインではなく、急速に進化していることに注意してください。
^: Zephyr-βは、少ないショットのCoT命令に従うことができないことが多いです。これは、チャットデータのみで調整され、少ないショットのデータでは訓練されていないためと考えられます。
**: MistralとオープンソースSOTAの結果は、命令調整モデルの論文と公式リポジトリに報告されている結果から取得されています。
すべてのモデルはチャットモードで評価されています(例:それぞれの会話テンプレートが適用されています)。すべてのゼロショットベンチマークは、AGIEval論文とOrca論文と同じ設定に従っています。CoTタスクはChain-of-Thought Hubと同じ設定を使用し、HumanEvalはEvalPlusで評価され、MT-benchはFastChatを使用して実行されます。当社の結果を再現するには、当社のリポジトリの指示に従ってください。
🔧 技術詳細
制限事項
基盤モデルの制限 高度な機能を持っているものの、OpenChatは依然として基盤モデルに内在する制限に縛られています。これらの制限は、以下のような分野でモデルのパフォーマンスに影響を与える可能性があります。
- 複雑な推論
- 数学や算術のタスク
- プログラミングやコーディングの課題
存在しない情報の生成(幻覚) OpenChatは、存在しないまたは正確でない情報を生成することがあります。これは「幻覚」とも呼ばれます。ユーザーはこの可能性に注意し、モデルから得られた重要な情報を必ず検証する必要があります。
安全性 OpenChatは、有害な、嫌がらせ的な、偏った応答を生成したり、安全でない質問に答えたりすることがあります。安全で適切な応答が必要なユースケースでは、追加のAIセキュリティ対策を適用することが重要です。
データセットの詳細
OpenChat 3.5は、C-RLFTを使用して、公開されている高品質の命令データのコレクションで訓練されており、独自の処理パイプラインが適用されています。ここでは、いくつかの注目すべきサブセットを詳細に説明します。
- OpenChat ShareGPT
- Open-Orca with FLAN answers
- Capybara 1 2 3
- GOAT
- Glaive
- MetaMathQA
- MathInstruct
- OpenAssistant
📄 ライセンス
当社のOpenChat 3.5のコードとモデルは、Apache License 2.0の下で配布されています。
📚 ドキュメント
引用
@article{wang2023openchat,
title={OpenChat: Advancing Open-source Language Models with Mixed-Quality Data},
author={Wang, Guan and Cheng, Sijie and Zhan, Xianyuan and Li, Xiangang and Song, Sen and Liu, Yang},
journal={arXiv preprint arXiv:2309.11235},
year={2023}
}
💌 お問い合わせ
プロジェクトリード:
- Guan Wang [imonenext at gmail dot com]
- Alpay Ariyak [aariyak at wpi dot edu]



