Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

GitHub Modelsが限定パブリックプレビューで公開されたので試してみた

こんにちは、MLBお兄さんこと松村です。
MLB も後半戦に突入し、プレーオフ争いが盛り上がってまいりました。ニューヨーク・ヤンキースは地区優勝を目指してほしいです。


2024年8月1日に GitHub は GitHub Models というサービスを限定パブリックプレビューとして公開しました。
私のアカウントでは利用可能になりましたので、早速試してみました。

GitHub Models とは

GitHub Models とは、GitHub がホストする LLM を利用できるサービスです。
GitHub Models とは、GitHub のアカウントで OpenAI や Azure が提供する LLM を利用できるサービスです。
詳しい説明は GitHub が公開しているこちらの記事を参照してください。(※修正しました)

github.blog

github.blog

azure.microsoft.com

GitHub Models は限定パブリックプレビュー (limited public beta) という状態ですので、利用したい方は上記の記事にあるサインアップリンクから待機リストに登録しましょう。
注意点として、GitHub Models はベータ版につき開発環境での用途に限って利用するようにしましょう。

GitHub のドキュメントはこちらとなります。

docs.github.com

プレイグラウンドを試してみる

GitHub Models へのアクセスが許可されたら、マーケットプレイス経由でモデルを利用することができます。
GPT や Llama など、記事執筆時点では24個のモデルが提供されています。

github.com

今回は GPT-4o mini を試してみます。
https://github.com/marketplace/models/azure-openai/gpt-4o-mini

カテゴリとしては Azure OpenAI Service になるようです。
モデルの説明 (README)、評価 (Evaluation)、透明性 (Transparency)、ライセンス (License) を閲覧することができます。
また、上部のテキスト欄でプロンプトを入力することができます。

プレイグラウンドに移動すると、システムプロンプトや詳細なパラメーターを設定することができます。
Azure OpenAI Service のプレイグラウンドと似ていますね。

アプリケーションにモデルを組み込む

プレイグラウンドの Get started ボタンを押すと、そのモデルをアプリケーションに組み込むためのチュートリアルが表示されます。
記事執筆時点でカバーしているのは、JavaScript、Python、REST API の3種類です。今後ほかの言語もカバーされるのでしょう。

また JavaScript や Python の場合、例示される SDK も2種類あります。

  1. OpenAI SDK
  2. Azure AI Inference SDK

REST API で利用してみる

では REST API で GitHub Models を利用してみます。
curl の内容は画面に表示されているので、プロンプトを書き換えて実行するのみです。

ただし REST API を使用するための Personal Access Token (PAT) が必要となります。
PAT はスコープ不要で、Fain-grained またはクラシックのいずれかで発行します。(どちらでもよいです)

curl -X POST "https://models.inference.ai.azure.com/chat/completions" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $GITHUB_TOKEN" \
    -d '{
        "messages": [
            {
                "role": "system",
                "content": "あなたは優秀なメジャーリーグベースボールのアナリストです。"
            },
            {
                "role": "user",
                "content": "MLBは現在観客動員数が減少し、人気に陰りが出ています。今後MLBが人気を回復するために取り組むべきことを、理由や具体的な対策を含めて3つ挙げてください。"
            }
        ],
        "model": "gpt-4o-mini"
    }' | jq
{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "MLBが人気を回復するために取り組むべき3つのポイントを以下に挙げます。\n\n### 1. ゲームのテンポを改善する\n**理由:** 現 在、試合が長時間に及ぶことがファンの関心を失わせる一因とされています。観客は速いペースに慣れており、試合が長引くと集中力が途切れがちです。\n\n**具体的な対策:**\n- **ショートイニング・ルールの導入:** 例えば、ノーリードの状況においては、7回からショートイニングを適用する。\n- **時間制限の導入:** ピッチャーやバッターに対する時間制限を設け、プレー間の無駄な時間を削減する。\n\n### 2. 若年層のファン層の拡大\n**理由:** MLBの観客層は高年齢化しており、若い世代へのアプローチが不足しています。彼らが興味を持つコンテンツや体験を提供する必要があります。\n\n**具体的な対策:**\n- **SNSやデジタルプラットフォームの活用:** TikTokやInstagramを通じて、短いハイライトや面白い瞬間をシェアし、若いファンを引 き込む。\n- **eスポーツとのコラボレーション:** MLB経営を含むバーチャルベースボールのトーナメントを開催し、若者に親近感を持たせる。\n\n### 3. ローカルコミュニティとのつながりを強化\n**理由:** 特定の地域ファンがチームの成長に貢献し、地域に根ざしたファン層が強化されることで、観 客動員数の向上が期待できます。\n\n**具体的な対策:**\n- **地域イベントの開催:** 地元の学校やコミュニティセンターと提携し、野球教室やワーク ショップを開催して、若い世代に野球を親しんでもらう。\n- **チームの地域貢献活動:** 地域の慈善イベントやボランティア活動に選手やフロントオフィス関係者が参加し、ファンとの絆を深める。\n\nこれらの施策を通じて、MLBは新たなファン層の獲得や既存ファンの維持・拡大を図ることができると 考えます。",
        "role": "assistant"
      }
    }
  ],
  "created": 1722989245,
  "id": "chatcmpl-9tOV3yJ83ZXHEgUs1wbgUt0Q91L7B",
  "model": "gpt-4o-mini",
  "object": "chat.completion",
  "system_fingerprint": "fp_276aa25277",
  "usage": {
    "completion_tokens": 590,
    "prompt_tokens": 93,
    "total_tokens": 683
  }
}

Node.js SDK で実装するチュートリアルも用意されているため、アプリケーションに組み込んでモデルを利用することができます。
チュートリアルに沿って実装してみたコード類はこちら。

github.com

まだ試していないこと

プレイグラウンドから GitHub Codespaces を起動して開発を行うことができそうですが、まだ試していません。時間ができたら試してみます。
また、GitHub CLI の gh models コマンドが利用できると発表になっていますが、試した限りはまだ GitHub CLI に含まれていませんでした。


開発環境や開発用途で LLM を使いたい場合の選択肢として、GitHub Models が増えたのは良いことだと思います。
個人的には、 GitHub CLI でモデルが使えるようになることが便利そうだと思っていますので、実装を待ちたいと思います。

関連リンク集を置いておきます。


サービス一覧 www.alterbooth.com www.alterbooth.com www.alterbooth.com