Open Assistant プロジェクト詳細紹介
プロジェクト概要
Open Assistant は、LAION-AI 組織によって開発されたオープンソースのチャットAIアシスタントプロジェクトです。このプロジェクトは、誰もが優れたチャットベースの大規模言語モデルにアクセスできるようにすることを目指し、オープンソースを通じて言語技術の革新を創造します。
⚠️ 重要なお知らせ: OpenAssistant プロジェクトは完了し、プロジェクトは終了しました。最終的にリリースされたデータセットは、HuggingFace の OpenAssistant/oasst2 で見つけることができます。
プロジェクトビジョン
Open Assistant は、オープンソースのコラボレーションを通じて、Stable Diffusion が世界が新しい方法でアートや画像を創造するのを助けたように、言語技術の分野で革命を起こせると信じています。プロジェクトの最終目標は、単に ChatGPT を複製するだけでなく、将来の以下のようなアシスタントを構築することです。
- メールや求職の手紙の作成
- 意味のある仕事の実行
- API の使用
- 動的な情報調査
- 個別化と拡張のサポート
技術的なアプローチ
コア技術スタック
プロジェクトの主な目標は、質問に答えることができるチャットボットを持つことであり、大規模言語モデル (LLM) を適合させることで、より適切に指示に従うようにします。このために、プロジェクトは InstructGPT 論文で提案された、人間からのフィードバックによる強化学習 (RLHF) に基づく方法を使用しました。
3段階のトレーニング方法
プロジェクトは、InstructGPT paper で概説されている3段階の方法に従います。
第一段階:データ収集
- 高品質な人間が生成した指示-完了サンプル(プロンプト+応答)を収集
- 目標:50,000以上のサンプル
- プロンプトを収集および審査するためのクラウドソーシングプロセスを設計
- トレーニングフラッド攻撃/有害/ゴミ/個人情報データを回避
- ランキングを通じてコミュニティを奨励し、進捗状況と最もアクティブなユーザーを表示
第二段階:ランキング収集
- 収集された各プロンプトに対して複数の完了をサンプリング
- プロンプトの完了結果をランダムにユーザーに表示してランキング(最高から最低)
- 信頼できないまたは悪意のあるユーザーをクラウドソーシング方式で処理
- 複数の独立したユーザーの投票を収集して、全体的な一貫性を測定
- 収集されたランキングデータを使用して報酬モデルをトレーニング
第三段階:RLHFトレーニング
- プロンプトと報酬モデルに基づいて、人間からのフィードバックによる強化学習トレーニング段階を実行
- 結果モデルを使用して、次の反復のためにサンプリング手順を継続できます
プロジェクトアーキテクチャ
開発環境設定
プロジェクトは、ウェブサイト、バックエンド、および関連する依存サービスを含む完全な Docker スタックのデプロイをサポートしています。
基本的な起動コマンド:
docker compose --profile ci up --build --attach-dependencies
MacOS M1 チップユーザーは以下を使用する必要があります:
DB_PLATFORM=linux/x86_64 docker compose ...
ローカルアクセス:
開発コンテナサポート
プロジェクトは標準化された開発環境サポートを提供します:
- ローカル VSCode devcontainer
- GitHub Codespaces ウェブブラウザ環境
- 構成ファイルは
.devcontainer
フォルダにあります
機能特性
チャット機能
- チャットフロントエンドがオンラインになり、ユーザーはログインしてチャットを開始できます
- アシスタントの応答に対するいいねまたは悪いねのフィードバックをサポート
- リアルタイムインタラクション体験
データ収集
- データ収集フロントエンドがオンラインになり、ユーザーはログインしてタスクの実行を開始できます
- プロンプトと応答を送信、ランク付け、およびタグ付けすることにより、Open Assistant の能力の向上を直接支援
- クラウドソーシング方式で高品質のデータを収集
推論システム
プロジェクトには、以下をサポートする完全な推論システムが含まれています。
- ローカルデプロイ推論サービス
- 消費者向けハードウェアの実行能力
- 拡張可能なアーキテクチャ設計
オープンソース特性
コミュニティ参加
- プロジェクトは、LAION と、この技術をすべての人に提供することに関心のある世界中の個々の組織によって組織されています
- 開発者のコード貢献を歓迎
- 詳細な貢献ガイドを提供
プロジェクトステータス
重要なリマインダー: OpenAssistant プロジェクトは完了し、終了しました。プロジェクト自体は終了しましたが:
- 最終データセット oasst2 は HuggingFace で利用可能
- コードは引き続きオープンソースでアクセス可能
- コミュニティは既存の作業に基づいて開発を継続できます
技術要件
ハードウェア要件
- プロジェクトのビジョンは、単一のハイエンド消費者向け GPU で実行できる大規模言語モデルを作成することです
- 消費者向けハードウェアのデプロイをサポート
- 最適化された推論パフォーマンス
デプロイオプション
- Docker コンテナ化デプロイ
- ローカル開発環境
- クラウドデプロイサポート
- 推論サービスの独立したデプロイ
関連リソース