見出し画像

BackStageConで発表された、BackChatと呼ばれる、Backstageのプラグインで生成AIが使える機能

Clip source: How to Boost Developer Productivity with Generative AI - The New Stack

最近はプラットホームエンジニアリング(Platform Engineering)、というキーワードがよく登場します。DevOpsの世界では、IDP (Internal Development Platform) と呼ばれてる時期もありましたが、それが少し進化したコンセプト、というイメージで捉えるようにしてます。
基本的に、開発者がコーディング作業にフォーカスできるように、周辺の色んな作業(インフラ構築、CI/CD処理、等の運用工数)を統合、自動化して劇的にそれに要する時間を減らす事ができるプラットホームです。周辺作業に必要なツールを全部まとめてサービスカタログ化して、簡単に自分の開発環境に実装できるようになります。また、それぞれのツール(社内開発したものも含めて)のドキュメント(操作、API、等)を統一したフォーマットで一括管理できる機能もかなりウケが良いようです。
BackChatと呼ばれるプラグインは、このBackStageの運用を生成AIでできちゃう、事を目標に作られてるコンポーネントです。よく読むとまだ先が長い感じがしますが、デモはいい感じで、期待は大きいです。
GitHub CoPilotを筆頭に、コーディングを支援する生成AIツールはいっぱい出回ってますが、それ以外の運用面の構築、運用、管理(例えばコストとか)、等の業務も生成AIで生産性を高める事は等しく大きい価値を生むのでは、と思います。少し地味かもしれませんが、情シス部門にとってはすごく大きな話になるかもしれません。


「開発者の生産性を向上させるための生成型AIの活用方法」

VMWareのベン・ウィルコック氏が、生成型AIの利点と欠点、AIプロンプトのヒント、Backstageにプライベートで安全なローカルAIを追加した結果について話しました。
2023年11月10日 午前4:00 ジェニファー・リギンス

今年は引き続き、プラットフォームエンジニアリングAIを通じて開発者の生産性を向上させることに重点を置いています。これら二つは密接に結びついており、開発者の生産性を解放する秘訣は、認知負荷とコンテキストの切り替えを減らすことにあります。これにより、エンジニアリングチームは coveted developer flow time に到達できます。
しかし、生成型AIやそれを支える大規模言語モデル(LLM)は本当に開発者の生産性をすでに向上させているのでしょうか?そしてどのように?
VMWareの技術マーケティング部門で働くベン・ウィルコック氏は、今週シカゴで開催されたBackstageConのステージで、AIに対する戦略的なアプローチ、彼がBackstageのローカルバージョンに直接組み込んだオープンソースのチャットボットについて語りました。

AIの生産性向上はすでに測定可能

ウィルコック氏は、チームがすでに達成し共有している測定可能な開発者生産性向上についての話で彼のプレゼンテーションを始めました。
昨年9月、ハーバードビジネススクールとボストンコンサルティンググループは、BCGの758人の知識労働者を対象にした
を共同で発表しました。
「このテストに参加した知識労働者全員がAIの使用から何らかの利益を得ていることがわかりました」とウィルコック氏は述べました。実際、スタッフの中での高成績者は17%の改善を見せ、低成績者は43%の改善を見せました。これら若く経験の浅い人々は最も大きな利益を見ました。
「彼らはまた、AIを得意とするテストに使用した際 — 例えば文章の作成やデータ分析、創造性など — AIを使用した労働者が生産性、品質、速度の面で顕著な利益を得ていることも発見しました」と彼は説明しました。
「このような生産性の向上は、一世代に一度くるかどうかの出来事です。」
全体として、この試験に参加した者たちは、12%多くのタスクを25%速く完了しました — これは、彼が指摘したように、1/4早いということです。
現在、ソフトウェア開発者は知識労働者ですが、この研究に参加した者たちはコンサルタント側に傾いていました。
今年の前半に、マッキンゼーはAI開発者生産性研究を実施しましたが、これはより小規模で管理されていました。異なる経験を持つ40人の開発者を二つのグループに分けました:

  • グループAは一般的なチャットボットAI(ChatGPTやBardのような)とコーディングAI(GitHub Copilotのような)へのアクセスがありました。

  • グループBはAIツールへのアクセスがなく、通常通りの振る舞いをしました。

実験はコード生成、リファクタリング、ドキュメント作成に焦点を当てました。AIツールへのアクセスを持つ開発者は、20〜50%の速度向上を見せ、タスクを時間内に完了する可能性が25〜30%高くなりました。
マッキンゼーの論文では、以下の4つの分野で「著しい利益」を挙げています:

  • 手動作業と繰り返し作業の迅速化。

  • 新しいコードの最初のドラフトの開始。

  • 既存コードの更新、アプリの近代化を加速。

  • 新しい課題に取り組む開発者の能力を向上。

ウィルコック氏によると、AIは私たちをより生産的にすることは明らかであり、特にコーディングのような知識集約的なタスクにおいてそうです。したがって、彼は開発者がAIを検討すべきだと考えていますが、おそらくマッキンゼーの混合型の内部開発環境ベースのAIをコーディングタスクのサポートに使用し、それに加えてより一般的なAIチャットボットを使用することが適しているでしょう。
「IDEの外にいる時に役立つ何かを持っていることも非常に有用です」と彼は述べました。「時々、ChatGPTのようなチャットボットへのアクセスがあると、IDEを使用しないその他の付随的なタスクを手助けするのに非常に役立ちます。」

AIによるソフトウェア開発全般の生産性向上

ウィルコック氏によると、AIはソフトウェア開発管理の全プロセスに利益をもたらし、DORAメトリックス、テスト、ドキュメンテーションの改善、開発者体験の向上に寄与する。
「AIをこのように利用し、開発者を知識タスクで支援することで、ストレスを大幅に軽減できる」と彼は述べた。「バーンアウトを防ぎ、知識を高め、チームメンバー間でより広く共有することができる。経験豊富な者もそうでない者も、皆が恩恵を受けることができる。」
実際、マッキンゼーの報告書では、開発者がAIの使用により2倍幸せになり、フロー状態に入るのが早くなることが明らかにされた。
ハーバード大学とBCGの研究では、AIが問題の診断と修正を迅速に行い、技術的負債の削減やコード品質の向上に役立つことが判明。実際、AIによる作業は品質が40%高いという結果も出た。
AIはすでにテスト生成に広く使用されており、ウィルコック氏はこれがコードのテストカバレッジを高め、欠陥や回帰の減少につながると指摘した。ドキュメンテーション生成も重要な用途であり、Joggrのような製品を通じて、開発者が文脈を求めながらもドキュメントを「Doneの定義」の一部とすることに抵抗しているのが見られる。良いドキュメンテーション、特にコードと統合されたものは、全体的な認知負荷とバーンアウトを減少させ、開発者のフローを高めることでチームの効率を向上させる。
AIは、BackstageConの聴衆にウィルコック氏が再確認したように、データ分析や意思決定、特にリソース割り当てに関して広範な用途を持つ。AIの助けを借りてクラウドコストを半分に削減する可能性を持つCast AIのようなFinOpsの影響は既に見て取れる。
「あるいは、AI機能を製品に組み込んで、顧客がより簡単に、または現在より多くの利益を得られるようにすることかもしれません」と彼は続けた。

生成AIのリスク

しかし、これらの生産性向上の利点があるとは言え、AIのように急速に発展する技術には、特にオンラインまたは公開AIを使用する際に、赤い旗とリスクが伴う。各組織は、迅速に生成AIポリシーを開発し、伝達する必要がある。
「オンラインの大規模言語モデル(LLM)の使用、例えばChatGPTやGoogle Bardなどは、多くの企業が受け入れがたいと考えるトレードオフを伴います」と、ChatGPTおよび他のLLMについてのガートナーレポートに記されている。ノースカロライナ大学チャペルヒル校の研究者たちは「LLMから機密情報を削除できるか」という問題を探求した。彼らが見つけたのは、最先端の編集方法を用いても、情報を完全に削除することはできなかった。
企業は、OpenAIが研究プロジェクトであり、無料のものはしばしば代償を伴うことを覚えておく必要がある。現在のコストは、Samsungの従業員が誤ってChatGPTにチップ製造の商業秘密を提供したような、データプライバシー侵害が発生したときの評判であるかもしれない。
「ChatGPTはあなたが与えたプロンプトを忘れず、記憶の中でそれらのプロンプトを再利用し、より広く共有し始める可能性があります」とウィルコック氏は述べた。この場合、SamsungはChatGPTの社内使用に完全な禁止を置いたが、完全に禁止することで、これらの劇的な生産性向上の可能性も遮断している。
もう一つの大きな懸念は、AIが社会や地球に与える影響である。AIはより多くのチップを要求し、データセンターとそれらを動力源とするエネルギーミックスも必要とする。既に、データセンターが貧しいコミュニティにより影響を与えやすいことは知られている。これは、彼らが冷却のために多くの電力を消費し、清潔な水の使用も少なくなり、近くに住むことの結果としての汚染によって、ブラックアウトの影響を不均衡に受けることを意味する。AIの成長は以前に見られなかったスケールで続いており、影響はより大きくなる。ウィルコック氏は、AIツールがマイクロソフトの水消費を34%増加させ、住宅用水供給が危険にさらされる可能性があるという例を挙げた。
また、AIは非常に説得力があるように見えるが、不正確であることも知られている。実際、コーネル大学の学術研究によれば、ChatGPTのソフトウェアエンジニアリングの質問の52%が間違っていた。これらの「幻覚」は通常、説得力がある。それでも、LLMが訓練されているであろうStack Overflowと比較して、39%のユーザーが「包括性と流麗な言語スタイル」のためにChatGPTを好んでいる。
現在の生成AIは、答えを知っているかどうかに関わらず、回答を提供するようにトレーニングされています。チャットボットに、それが正しいかどうか確信しているか、または引用を伴って答えるよう求めることを知っているチームはすべてではありません。
マッキンゼーのAIの状況に関するレポート(McKinsey State of AI)によると、ITリーダーにとって最大の懸念は不正確さで、サイバーセキュリティや規制遵守よりも上です。しかし、回答者のわずか32%が不正確さを軽減するために取り組んでいると述べました。全体として、ほとんどの回答者は、彼らの組織がまだAI関連のリスクに対処していないと述べています。
最後に、AIによる著作権の問題は非常に曖昧です。LLMは少なくとも部分的に著作権で保護された資料でトレーニングされている可能性があります。「それがどこから来たのか正確にはわからない」という状況です。そして、少なくとも米国では、AIによって生成されたものに著作権を主張することはできません

BackStage用にオープンソース生成AIチャットボットを構築

「私はBackStageでのAI安全性の実験をどのように行っているかをお見せしたかった」とウィルコックは言い、それは「BackStageにプライベートで安全なローカルAIを追加すること」です。
このプライベートで安全、かつローカルであるという点は重要で、それによりプライバシーやセキュリティに関する生成AIの多くの課題を克服しつつ、オープンソースに基づいています。また、企業データの再トレーニングを可能にし、ドメインや企業固有の文脈を提供します。
BackStageは、Spotifyがオープンソース化した内部開発者ポータル(IDP)を構築するためのサービスカタログおよびプラットフォームで、インフラツール、サービス、ドキュメンテーションを含むエンドツーエンドの合理化された開発環境を作成することを目指しています。ウィルコックの概念実証はBackChatプラグインと呼ばれています。これは、BackStage内の生成AI機能がどのようなものかユーザーに感じてもらうことを目的としています。
「開発者がより生産的になるためにBackStageを離れる必要がないように」と彼は説明しました。この概念実証は、BackStageのグラフィカルユーザーインターフェース(GUI)に導入できるオープンソースツールの組み合わせに基づいています。

これらの小規模なオープンソースLLMを活用することで、ウィルコックは、それらがGPUの有無に関わらず、ラップトップ、デスクトップ、ワークステーション、または仮想マシンで実行できることを指摘しました。これらのLLMは使用されていないときにシャットダウンし、彼によると、これらは常に高速化しています。これらはアカウント、クレジットカード、APIキーを必要としないため、リスクをさらに軽減し、稼働を容易にします。

生成AIのユースケース

「これは開発者のためだけではないことを覚えておいてください。BackStageにアクセスできる人なら誰でも利用できます。それがあなたのプロダクトマネージャーであれ、データベース担当者であれ、インフラ担当者であれ、彼ら全員が一緒になって、同じ場所でそれを使用することができます」とウィルコックは説明しました。彼が挙げた例を以下に示します:

  • データベース:データベースの設計、データの作成、データの抽出、データの変換、グラフおよびSQLデータベースに関する質問の回答。

  • 運用:プラットフォームの管理、セキュリティと可用性の維持、KubernetesなどのDevOpsタスクのサポート。

  • テスト:テストの記述、テストカバレッジの向上、テストデータの生成。

  • ドキュメンテーション:ドキュメンテーションの作成、再フォーマット、アクセスおよびドキュメンテーションの改善。

  • アイデア出し:アイデアの考案と評価、代替案の提案、概念の単純化、テキストの翻訳。

  • 研究:特定のユーザーペルソナであるふりをしてGenAIに質問し、新しい概念を学び、代替案を評価。

  • チームワーク:360度フィードバックの最適化(例えばフィードバックを与える際にあまり直接的でないようにする)、メールや提案書の作成。

  • 馴染みのないコード:コードの説明、フレームワークのトラブルシューティング、新しいテクニックの学習。

BackChatについて、「これは私が望むようなものではありません。このツールのロードマップについていくつかのアイデアがありますが、助けが必要です」とウィルコックはコメントしました。「だから、BackStageに生成AIを導入することに興味がある開発者がいれば、ぜひ連絡をしてください。あなたのサポートが必要です。」

開発者向け生成AIプロンプトのヒント

組織の生成AIポリシーの一環として、プロンプトエンジニアやAIエンジニアになる途中の開発者にアドバイスを提供します。
ウィルコックは、シンプルなAIプロンプトの構造を提案することでこのセクションを開始しました:

  1. 役割 - AIに実行している役割を伝えます。

  2. 状況 - AIが使用される状況を伝えます。

  3. タスク - タスクについて非常に明確な指示を出します。

彼は次の例を挙げました:

  1. あなたはSQLの専門知識を持つデータベース設計者です。

  2. あなたの会社は車両のフリートを管理しています。

  3. 車両とその所有者に関する情報を保持するデータベースを作成してください。

「次に、Chain Of Thought Promptingについて考えてみましょう」とウィルコックは続けました。「これは、AIに息をつかせ、一歩一歩慎重に問題を解決させるように促す方法です」と、作業を示すことでAIが飛躍的な結論に至るのを防ぐ方法です。
あなたは次のような提案を加えることでこれに取り組むことができます:

  • 「一歩一歩考えてみましょう。」

  • 「あなたの答えを確認してください。」

  • 「慎重に考えてください。」

彼は次の例を挙げました:
「次のメソッドが何をするのかを完全に説明するために必要なJavaDocを作成してください。{{Fibonacci method}} あなたのJavaDocは説明的で詳細でなければなりません。読者が興味深いと感じる詳細を含めてください。慎重に考え、答えを確認してください。」
Chain Of Thought Promptingを使用することで、より正確になるのを助けることができます」と彼は説明しました。「私はこれがAIにメソッド内のコードをよく見て、実際に適切に文書化しようとするのを助けることを期待しています。」
ウィルコックは他のAIプロンプトスタイルも提供しました:

  • ショー・ミー(何を持っているか)プロンプト:望ましい結果の例を示してAIに何をする必要があるかを示しますが、詳細な指示は与えません。

  • テル・ミー(どう成功するか)プロンプト:良い答えがどのようなものかをAIに伝え、明確な指示、明確なステップ、応答の成功基準を提供します。

  • フューショット・プロンプト:繰り返しタスクのために、AIにいくつかの例を提供して、出力フォーマット、スタイル、コピーすべき主要要素を示します。

どの道を選んでも、AIは開発者の生産性や組織全体の生産性に大きな可能性を持っています。そのため、利益を最大化しリスクを最小化しながら、人、プロセス、製品にどのように統合するかを考えることが重要です。
「AIがどこにでもあるとき、例えばポケットにも車にも冷蔵庫にもAIがあるとき、あなたは何をするつもりですか?」とウィルコックは結びました。「AI中心の世界になったとき、あなたは何をしますか?」

この記事が気に入ったらサポートをしてみませんか?