Open-Assistant - Open Assistantは、誰もが優れたチャットベースの大規模な言語モデルにアクセスできるようにすることを目的としたプロジェクトです。

(NULL)

Created at: 2022-12-13 13:24:17
Language: Python
License: Apache-2.0

オープンアシスタント

Open Assistantは、誰もが優れたチャットベースの大規模な言語モデルにアクセスできるようにすることを目的としたプロジェクトです。

そうすることで、言語のイノベーションに革命を起こすことができると信じています。安定した普及が世界が新しい方法でアートやイメージを作るのを助けたのと同じように、Open Assistantが言語自体を改善することによって世界を改善するのに役立つことを願っています。

計画

InstructGPT のペーパーで概説されている 3 つの手順に従って、できるだけ早く最初の MVP に到達したいと考えています。

  1. 人間が生成した高品質の命令履行サンプル(プロンプト+応答)、目標>50kを収集します。プロンプトを収集してレビューするためのクラウドソーシングプロセスを設計します。フラッディング/有毒/スパム/ジャンク/個人情報データに関するトレーニングはしたくありません。進捗状況と最もアクティブなユーザーを示すコミュニティをやる気にさせるリーダーボードがあります。スワッグはトップコントリビューターに与えられます。
  2. 収集されたプロンプトごとに、複数の完了をサンプリングします。1 つのプロンプトの完了は、ユーザーにランダムに表示され、最高から最低にランク付けされます。繰り返しになりますが、これはクラウドソーシングで行われるはずです、たとえば、信頼できない潜在的に悪意のあるユーザーに対処する必要があります。全体的な合意を測定するには、独立したユーザーによる少なくとも複数の投票を収集する必要があります。収集されたランキングデータは、報酬モデルのトレーニングに使用されます。
  3. 次に、プロンプトと報酬モデルに基づくRLHFトレーニングフェーズに従います。

その後、結果のモデルを取得し、次の反復のために完了サンプリング手順2を続行できます。

ビジョン

ChatGPTの複製にとどまるつもりはありません。私たちは、電子メールやカバーレターを書くだけでなく、有意義な作業を行い、APIを使用し、情報を動的に調査し、誰でもパーソナライズおよび拡張できる未来のアシスタントを構築したいと考えています。そして、私たちはこれをオープンでアクセスしやすい方法で行いたいと考えています、つまり、優れたアシスタントを構築するだけでなく、消費者向けハードウェアで実行するのに十分な小型で効率的なものにする必要があります。

どのように助けることができますか?

すべてのオープンソースプロジェクトは、あなたのような人々から始まります。オープンソースとは、私たちが協力すれば、人類の利益のために私たちの知識と技術を世界に提供できるという信念です。

私は入っています!さて何ですか。

寄稿者のサインアップフォームに記入する

LAION Discord Serverに参加しましょう!

概念をご覧ください

タスクを引き受ける

問題のタスクリストが増えています。問題を見つける それはあなたにアピールし、あなたがそれに取り組みたいとコメントします。含める あなたのコメントでは、問題をどのように解決するか、そして 議論したい未解決の質問があります。かつてプロジェクトコーディネーター 問題を割り当てたので、作業を開始します。

問題が現在不明であるが興味がある場合は、に投稿してください Discordと誰かが問題をより詳細に明らかにするのを手伝うことができます。

作品の提出

私たちは皆、Open Assistantのさまざまな部分に一緒に取り組んでいます。作る スムーズな貢献 次のことをお勧めします。

  1. 少数のファイルにのみ触れる小さな焦点を絞った変更に取り組みます。
  2. 実行し、すべてのファイルのフォーマットが修正されていることを確認します。これ レビュー担当者の作業を簡素化します。
    pre-commit
  3. 問題の一部を解決する小さな作業をプルにパッケージ化する レビューのために要求して送信する
  4. 運が良ければ、問題なく変更をマージできます。 作業中のファイルに変更がある場合は、次の方法で解決します。
    main
  5. まず、これらの手順で提案されているようにリベースを試してください
  6. リベースが苦痛すぎると感じた場合は、これらの手順で提案されているようにマージします
  7. 競合を解決したら、レビューを終了して にマージします。
    main
  8. 変更をマージして、新しい課題または 2 番目のステップに進みます。 現在の問題。

さらに、誰かがあなたが興味を持っている問題に取り組んでいる場合は、彼らが それについて助けが必要か、問題に取り組む方法についての提案が欲しいです。そうすれば 乱暴に共有します。彼らがそれをうまく扱っているように見えるなら、彼らに彼らの仕事をさせてください 課題が発生するまでの解決策。

レビューはいつ終了しますか

すべてのブロックコメントが対処され、少なくとも1つのコメントが対処されると、レビューは終了します 所有しているレビュアーがPRを承認しました。 非ブロッキングを必ず確認してください リクエストを変更してコメントし、なぜそうではないのかを説明します 今すぐ対処するか、後で処理するために問題を提出します。

開発者のセットアップ

作業はプロジェクトボードで編成されます。

Todo列にあり、割り当てられていないものはすべて手に入れることができます。つまり、誰かがそれらの仕事をしてくれたらうれしいです。

何かに取り組みたい場合は、自分を割り当てるか、作業したいことと何をする予定かをコメントしてください。

  • 開発を開始するには、バックエンドで作業する場合は、を参照してください。
    scripts/backend-development/README.md
  • フロントエンドで作業したい場合は、バックエンドを利用できるようにするために見てください。
    scripts/frontend-development/README.md

フォルダ内のフロントエンドの最小限の実装もあります。

text-frontend

バックエンドにはPython 3.10を使用しています。

高レベルのプロトコルアーキテクチャを確認する

エンドツーエンドのデモ

プロジェクトを見てみたいだけに興味があるなら。 Open Assistant の実行に必要なスタック全体を設定できます。 Web サイト、バックエンド、および関連する依存サービス。

デモを開始するには、ルートディレクトリでこれを実行します。

docker compose up --build

次に、Web サイトに移動して操作します。いつ ログインし、マジックメールログインを取得するに移動します リンク。

http://localhost:3000
http://localhost:1080

ウェブサイト

Web サイトは Next.js を使用して構築され、フォルダー内にあります。

website

事前コミット

インストールして実行し、コミット前フックをインストールします。

pre-commit
pre-commit install

これを行っておらず、すでにコミットしていて、CIが失敗した場合は、実行してすべてのファイルに対してコミット前のフックを実行できます。

pre-commit run --all-files

配備

GitHub でリリースを行うと、すべての Docker イメージが自動的にビルドされ、ghcr.io にプッシュされます。Docker イメージには、リリース バージョンとタグがタグ付けされます。さらに、の ansible プレイブックが実行され、ビルドされたリリースを開発マシンに自動的にデプロイします。

latest
ansible/dev.yaml