AI/ML搭載機能
GitLabはDevSecOpsプラットフォーム全体でAI支援機能を開発しています。これらの機能は、ソフトウェア開発ライフサイクル全体のベロシティを高め、主要なペインポイントを解決することを目的としています。
AI/ML機能の有効化
GitLab 16.0で導入され、アクティブに展開されています。
前提条件:
- グループのオーナーロールを持っている必要があります。
トップレベルグループのAI/ML機能を有効にするには:
- 実験機能を有効にします。
- サードパーティのAI機能を有効にします(デフォルトで有効)。サードパーティAPIによるAI機能を無効にするには、この設定をオフにします。
これらの設定は連動しているため、実験的なAI機能とサードパーティのAI機能の両方を混在させることができます。
一般的に利用可能なAI機能
一般的に利用可能な機能は、エクスペリメント機能を有効にする必要はありません。これらの機能の中には、サードパーティのAI機能を有効にする必要があるものもあります。
以下の機能は一般的に利用可能です:
ベータ版AIの機能
ベータ版の機能は、エクスペリメント機能を有効にする必要はありません。
以下の機能はベータ版です:
AI機能の実験
エクスペリメントのAI機能を使用するには、エクスペリメントの機能が有効になっていることと、サードパーティのAIサービスが有効になっていることが必要です。
Experimentには以下の機能があります:
このページで説明されている残りの機能も実験段階です。
選択したコードを Web UI で説明する(究極の SAAS 実験)
GitLab 15.11でGitLab.comのExperimentとして導入されました。
このAI機能は、GoogleのCodey for Code Chat (codechat-bison)を利用したGitLab.comでの実験です。
GitLabは、あなたがより速くスピードアップするのを助けることができます:
- 他の人が作ったコードを理解するのに多くの時間を費やしている、あるいは
- 馴染みのない言語で書かれたコードを理解するのに苦労すること。
大規模な言語モデルを使用することで、GitLabは自然言語でコードを説明することができます。
前提条件:
上記2つ以外の前提条件。
- プロジェクトがGitLab.com上にあること。
- GitLab Ultimateサブスクリプションのティアを持っている必要があります。
- リポジトリを表示するのに十分な権限を持つプロジェクトのメンバーである必要があります。
コードを説明するために
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- プロジェクト内のコードを含むファイルを選択します。
- ファイル上で説明したい行を選択します。
- 左側のクエスチョンマーク({question})を選択します。選択した行を表示するには、最初の行までスクロールする必要があるかもしれません。これにより、選択されたコードがプロンプトとともに送信され、大規模言語モデルに説明が提供されます。
- ページの右側に引き出しが表示されます。説明が生成されるまでしばらくお待ちください。
- 説明に対する満足度をフィードバックしてください。
マージリクエストのコンテキストでコードを説明することもできます。マージリクエストでコードを説明するには:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 左サイドバーで、コード > マージリクエストを選択し、マージリクエストを選択します。
- セカンダリメニューで、変更を選択します。
-
説明したいファイル上で3つの点({ellipsis_v})を選択し、View File @ $SHAを選択します。
別のブラウザタブが開き、最新の変更点を含むファイル全体が表示されます。
- 新しいタブで、説明させたい行を選択してください。
- 左側のクエスチョンマーク({question})を選択します。選択した行を表示するには、最初の行までスクロールする必要があるかもしれません。これにより、選択されたコードがプロンプトとともに送信され、大規模言語モデルに説明が提供されます。
- ページの右側に引き出しが表示されます。説明が生成されるまでしばらくお待ちください。
- 説明に対する満足度をフィードバックしてください。
大規模な言語モデルが正しい結果を生成することを保証するものではありません。説明は注意して使用してください。
GitLab Duo Chat(究極のSaaS実験)
GitLab 16.0からExperimentとして導入されました。
この機能はGitLab.comのExperimentです。グループレベルのサードパーティAI機能の設定を有効にする必要があります。
GitLab Duo Chatは、AnthropicのClaude-2.0とClaude-instant-1.1大規模言語モデルとOpenAIのtext-embedding-ada-002エンベッディングを利用しています。LLMはユーザーの質問を分析し、ユーザーのプロジェクトから適切なコンテキストデータを収集し、応答を生成するために使用されます。場合によっては、エンベッディングを使用してユーザーの質問を埋め込み、GitLab ドキュメントから関連するコンテンツを見つけ、LLM と共有して回答を生成します。
以下のトピックについて、GitLab Duo ChatからAIが生成したサポートを受けることができます:
- GitLabの使い方。
- イシューに関する質問
- イシューの要約
質問例
What is a fork?
How to reset my password
Summarize the issue <link to your issue>
Summarize the description of the current issue
上の例では、イシューやGitLabドキュメントのデータを使っています。しかし、コードの生成や CI/CD 設定、コードの説明を求めることもできます。たとえば
Write a hello world function in Ruby
Write a tic tac toe game in JavaScript
Write a .gitlab-ci.yml file to test and build a rails application
Explain the following code: def sum(a, b) a + b end
フォローアップの質問をすることもできます。
これは実験的な機能であり、チャットの機能と信頼性を継続的に拡張しています。
- 左下にあるヘルプアイコンを選択してください。新しい左サイドバーを有効にする必要があります。
- GitLab Duo チャットで質問を選択します。画面の右側にドロワーが開きます。
- チャット入力ボックスに質問を入力し、Enterを押すか、送信を選択します。対話型AIチャットが答えを出すまで数秒かかることがあります。
- 次の質問をすることができます。
- 前の会話とは関係のない新しい質問をしたい場合は、入力ボックスに
/reset
と入力して送信を選択し、コンテキストをクリアにすると、より良い回答が得られる場合があります。
特定の回答についてフィードバックするには、回答メッセージのフィードバックボタンを使用します。または、フィードバックイシューにコメントを追加することもできます。
イシューのディスカッションの要約(Ultimate SAAS EXPERIMENT)
GitLab 16.0からExperimentとして導入されました。
この機能は、OpenAIのGPT-3を利用したGitLab.comのExperimentです。グループレベルのサードパーティAI機能の設定を有効にする必要があります。
イシューに関するディスカッションのサマリーを生成することができます:
- イシューのアクティビティセクションまでスクロールしてください。
- 要約を表示]を選択します。
イシューのコメントが最大10個のリスト項目に要約されます。要約はあなただけに表示されます。
この実験的な機能に関するフィードバックはイシュー407779までお寄せください。
データ使用:この機能を使用すると、イシューに対する公開コメントのテキストが、上記の大規模言語モデルに送信されます。
デプロイ頻度予測を表示(ULTIMATE SAAS EXPERIMENT)
GitLab 16.2でExperimentとして導入されました。
この機能はGitLab.comのExperimentです。
CI/CD Analyticsでは、デプロイ頻度の予測を見ることができます:
- 左のサイドバーで「検索」または「移動」を選択してあなたのプロジェクトを検索します。
- 分析 > CI/CD分析を選択します。
- デプロイ頻度タブを選択します。
- Show forecastトグルをオンにします。
- 確認ダイアログで、Accept testing termsを選択します。
予測はChart上に点線で表示されます。選択した日付範囲の半分の期間のデータが予測されます。例えば、30日間の範囲を選択した場合、その後15日間の予測が表示されます。
この実験的な機能に関するフィードバックはイシュー416833にお寄せください。
イシューの説明文の生成(Ultimate SAAS EXPERIMENT)
GitLab 16.3からExperimentとして導入されました。
この機能は、OpenAIのGPT-3を利用したGitLab.comのExperimentです。グループレベルのサードパーティAI機能の設定を有効にする必要があります。
短い要約からイシューの説明を生成することができます。
- 新しいイシューを作成します。
- 説明フィールドの上で、AIアクション > イシューの説明を生成するを選択します。
- 短い説明を入力し、[送信]を選択します。
イシューの説明はAIが生成したテキストに置き換えられます。
この実験的な機能に関するフィードバックをissue 409844 に送ってください。
データ使用量:この機能を使用すると、入力されたテキストが上記の大規模な言語モデルに送信されます。
データ使用量
GitLabのAI機能は、ジェネレーティブAIを活用してベロシティを向上させ、生産性を高めることを目的としています。各機能は他の機能とは独立してオペレーションされ、他の機能が機能するために必要なものではありません。
段階的な機能強化
これらの機能は、DevSecOpsプラットフォーム全体で、既存のGitLab機能のプログレッシブ・エンハンスメントとして設計されています。これらの機能はグレースフルに失敗するように設計されており、基盤となる機能の Core 機能を妨げるべきではありません。各機能は、関連する機能のサポートポリシーによって定義された期待される機能に従うことに注意してください。
安定性とパフォーマンス
これらの機能にはさまざまなサポートレベルがあります。これらの機能の性質上、使用に対する要求が高くなり、機能のパフォーマンス低下や予期せぬダウンタイムが発生する可能性があります。GitLabは、これらの機能が優雅に劣化するように構築しており、悪用や誤用を軽減できるように制御しています。GitLabは、当社の判断により、いつでもベータ版および実験的な機能をすべてのお客様に対して無効にすることができます。
サードパーティサービス
データのプライバシー
一部のAI機能では、Google AIおよびOpenAIのサードパーティのAIサービスモデルおよびAPIを使用する必要があります。個人データの処理は、当社のプライバシーステートメントに従います。また、サブプロセッサのページでは、当社がこれらの機能を提供するために使用するサブプロセッサのリストをご覧いただけます。
グループオーナーは、グループレベルのサードパーティAI機能設定を使用することで、どのトップレベルグループがサードパーティAI機能にアクセスできるかを制御できます。
モデルの精度と品質
ジェネレーティブAIは、予期せぬ結果を生み出す可能性があります:
- 低品質
- 支離滅裂
- 不完全
- 失敗したパイプラインの製造
- 安全でないコード
- 攻撃的または無神経
GitLabは、生成されるコンテンツの品質を向上させるために、AI支援機能のすべてを積極的に反復しています。私たちは、迅速なエンジニアリング、これらの機能を強化するための新しいAI/MLモデルの評価、そしてこれらの機能に直接組み込まれた新しいヒューリスティックによって、品質を向上させています。