オープンソースのChatGPTの取り組みについて語る - MOSS

ChatGPT のリリース以来、その「3 段階の計画」は、AI の分野に漂流した「九陰経典」のようなもので、各宗派の実践方法は異なります。郭京のように段階的に練習する人もいます。このことからも、「三段階計画」はこれで終わりではなく、再発を踏まえて、ワイン僧のようにさらに思考を重ね、「九陰マニュアル」の欠点を認識し、それを修正し、陰と陽が調和し、互いに助け合う「九陽マニュアル」を手に入れることを示しています。

この連載では既存のChatGPT的な作品を紹介することで俯瞰し、読者の皆様にその共通点や相違点を理解していただき、インスピレーションを与えていただければ幸いです。個人の能力に限りがあるため、漏れや間違いがあるかもしれませんが、一緒に議論することを歓迎します。

Part1 3ステッププラン

自己完結型の原則に基づいて、ChatGPT の 3 ステップの技術ソリューションを簡単に紹介します [1]。より詳細な紹介はインターネットで見つけることができます。

  1. SFT モデル: 教師付き微調整は、SFT モデルを取得するために手動でラベル付けされた質問と回答のデータを通じて、強力な GPT 事前トレーニング モデルに対して実行されます。このプロセスは、命令チューニングとも呼ばれます。

  1. 報酬モデル: SFT モデルは、同じ質問に対する複数の回答を取得し、それらを良いか悪いかとしてマークし、ラベル付けされたデータを使用して GPT モデルをトレーニングします。これにより、モデルは答えが良いか悪いかを判断して報酬モデルを取得できます。

  1. PPO モデル:近接ポリシー最適化アルゴリズムを使用して、報酬モデルによって SFT モデルが人間の意図に沿って回答するように誘導し、PPO モデル (ChatGPT モデル) を取得します。

Part2苔

復旦大学のモス氏は2月20、23日の夜に中国語版ChatGPTの第一弾を発射したが、その夜は公式ホームページを開けることができなかった。最近, MOSS チームは約束を果たし, 事前トレーニング モデル, SFT モデル (プラグイン バージョンを含む) およびトレーニング データを一緒にリリースしました. これは最も完全なオープンソースの中国語 ChatGPT の作業となるはずです. 次に, いくつかの側面から見てみましょう:

全体的な効果

MOSS は現在オープンソース moss-moon-003-sft. これは最終バージョンではありませんが、主要な機能は基本的に利用可能です. Zhihu のネットユーザーが評価しています . 結論としては、MOSS のパフォーマンスは基本的に ChatGLM-6b の78 % に達しています。評価結果は追って公式から発表されるとのことだが、moss-moon-003-sftを使った個人的な主観的な経験からすると、確かにChatGLM-6bの方が若干優れている。

事前トレーニングされたモデル

関連する論文はまだ発表されていませんが、参加者の紹介によると[2]:

ベースは codegen の初期化であり、そのトレーニング コーパスには、pile bigquery bigpython が含まれており、100B の中国語 + 20B の英語とコードの事前トレーニングを継続します。

コード生成モデルとして、codegen を使用して基本モデルを初期化しますが、これは必然的に直感に反します。しかし、考えてみてください。

  1. 国内に目を向けてみると、2018年末のBertのリリースを皮切りに大型モデルの風が吹き始めましたが、エンコーダ単体やエンコーダ・デコーダほどデコーダ単体の構造が普及していないため、学校や企業で開発されるデコーダ単体のモデルは少なく、さらに大規模なものはさらに少なくなっています。

  1. 当時、Bert の大型バージョンのパラメータは 3 億しかありませんでした。100 億のモデルを作成するには、勇気だけでなくリソースも必要です。ゲームに参加できるプレイヤーは非常に少ないため、他の人が訓練した 100 億のモデルは簡単にはオープンソース化されません。

  1. 大規模モデル用のコードを記述することは現在標準ですが、コードを事前トレーニング データとして使用するオープンソースの中国の大規模モデルはあまりありません。

したがって、オープンソースで利用可能な中国語デコーダ専用の大規模モデルはほとんど存在しません。このように、自社開発の大規模モデルがない場合は、コード生成モデルで事前トレーニングを継続することも曲線を節約するソリューションです。ただし、コンピューティング リソースが限られているため、MOSS チームは 120B の事前トレーニングを継続したと推定されていますが、これは現在普及している LLaMA (1T+ トークン) と比較するとまだギャップがあります。

SFT

SFT部分的核心在于标注数据的质量,MOSS所用的SFT数据一大亮点是来自于真实用户的提问,同时他们也引入了3H(helpfulness, honesty, harmlessness)数据,这样即使是SFT模型,也能够具备初步的有助、无害、诚实的能力。目前开源了moss-002的标注数据,这部分的数据回复偏短,可能是由于使用Self-Instruct生成的缘故。SFT对数据质量的要求非常高,所谓“garbage in, garbage out”,Alpaca使用了self-instruct生成的数据,而Vicuna使用了shareGPT上用户真实的数据,效果上Vicuna明显胜出,中文方面目前很缺少像shareGPT这样的高质量数据。

SFT-plugin

MOSS团队同时还放出了会使用工具(即plugin)的版本——moss-moon-003-sft-plugin。大模型让人惊艳的能力之一便是它的推理能力,所谓推理,是指将复杂问题拆分为多个简单子问题的能力,通过逐个解决这些简单子问题,便能得到最终的正确答案。但在实际中,即使强如ChatGPT,在解决简单子问题的时候仍然容易出错,比如4位数的乘除法,一旦其中一个子问题出错,便会导致最终结果的错误。自然而然地,我们可以想到:让模型在解决简单子问题时通过使用外部工具以保证答案的正确性。

换一个角度,将模型比作大脑,而一个个工具则相当于是模型能与外部世界交互的手脚,这是一个令人激动的方向。近期这方面有不少亮眼的工作,如:ToolFormer[3]、ReAct[4]、HuggingGPT[5]、TaskMatrix.AI[6]、AutoGPT[7]……open AI自己也相应推出了ChatGPT plugins

让ChatGPT使用工具,仅仅需要在Prompt里说明每个工具即可,借助于ChatGPT强大的zero-shot推理能力,即使ChatGPT从未在训练过程中用过这些工具,它也能使用这个工具较好地完成任务。但对于像MOSS一样的百亿模型也可以吗?MOSS选择的方案是为每个工具构造对应的训练数据,然后用于训练模型,通过这种方式教会模型使用特定的工具。

“使用搜索工具”的训练数据

“使用搜索工具”的训练数据

这种方案优点是能够确保模型能够深刻理解每个工具的用处,但缺点也很明显:

  1. 每次添加新工具,需要对应构造训练数据,重新训练模型

  1. 从给出的样例来看,用户的问题仅需一个工具就被解决了,但实际中,用户的要求可能需要调用多个工具才能达成,比如:姚明比奥尼尔高多少?

总之,让模型自己分解任务,组合使用工具完成任务,被认为是“自主智能体”,这个方向这近期将会有大量的工作涌现。

Reward Model+PPO

MOSS repo的README中提到其最终版是经过偏好模型训练得来的,这里的偏好模型即Reward Model。目前能在PPO上取得收益的开源工作好像不多,所以很多类Chatgpt的工作也只是做了第一步SFT。目前MOSS还未开源这部分的工作,很期待看他们的实现细节。

——2023.04.24

Reference

[1] Introducing ChatGPT

[2] 复旦团队大模型 MOSS 开源了,有哪些技术亮点值得关注? - 孙天祥的回答 - 知乎

[3] Language Models Can Teach Themselves to Use Tools

[4] REACT : SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS

[5] HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

[6] TaskMatrix.AI: Completing Tasks by Connecting Foundation Models with Millions of APIs

[7] Auto-GPT: An Autonomous GPT-4 Experiment https://github.com/Significant-Gravitas/Auto-GPT

おすすめ

転載: blog.csdn.net/CompHub/article/details/130354853