「大規模なモデルの時代のプログラマー」
Programmers in the era of large-scale models
以下のビデオは、Apache SeaTunnelの開発者がCo-Pilotの支援を受けて日々の作業を行っている様子を紹介しています。Co-PilotやChatGPT、または大規模なプライベートモデルのような開発支援ツールにまだ取り組んでいない場合、次の5年間で業界に追いつくことは難しいかもしれません。AIを活用したコーディングのスキルを持つ人は、このスキルを持たない人と比べて、開発スピードを10倍に加速させることができます。これは誇張ではありません。この文章を読んだ後、AIGCが開発効率をどのように向上させるかについて新たな視点を持つことでしょう。
大規模モデルによる伝統的なジュニアプログラマーのトレーニングの変革:スキルと経験の強化
過去において、ジュニアプログラマーはメンターからタスクを与えられ、基本的なアプローチを教わり、コードを書く際にはガイドと修正を受けました。彼らは経験と指導から学び、徐々に熟練度を高めていきました。
しかし、大規模なモデルの登場により、このプロセスは完全に変革されました。大規模モデルは幅広い知識を持ち、いくつかの基本的な推論能力を備えています。彼らは無数の練習を行い、会社内でのさまざまなコードやビジネスの定義を学びました。彼らが遭遇したシナリオは、彼らの時間にメンターが直面したものを遥かに超えています。彼らは開発者の要件と目標に基づいて潜在的な回答を提供します。
これは、あなたの要望や学習のためにコードを即座に生成できる、全知の「メンター」がいつでも手元にいるようなものです。学習と調整の後、ジュニアプログラマーは個々のスキルレベルを超えるコードを提出し、ピアレビューの準備ができます。
では、なぜ私たちは大規模モデルを利用して開発効率を向上させないのでしょうか?
アシスト付きプログラミングにおける大規模モデルの活用方法
現在一般的なツールには、ChatGPT、Co-Pilot、およびプライベートな大規模モデルが含まれます。
プログラミングシナリオによっては、異なる手法が適用されます:
難解で革新的なアーキテクチャや新しいビジネスシナリオのコードには、人間が最適です。再利用または類似したアルゴリズムの場合、Co-Pilotを使用することで効率が急速に向上します。ChatGPTは、類似したシナリオにおいてコードを生成するために使用することができます。プライベートな大規模モデルは、データとコードのセキュリティが重要なシナリオや、モデルがビジネス知識に精通していることが重要なシナリオで適しており、ファインチューニングが必要です。
一部の企業がプライベートな大規模モデルを導入する余裕がないと主張するかもしれませんが、これは誤解です。新たにプライベートな大規模モデルを完全にトレーニングする必要はありません。ほとんどの企業にとって、既存のオープンソースの大規模モデルを最適化(ファインチューニング)して、ビジネスコンテキストを理解するのに十分です。このプロセスには、1-2枚のグラフィックカード(例:3090/4090)と数時間の設定時間が必要です。
プライベートな大規模モデルを使用することで、次のような利点が直接得られます:
- 望むソフトウェア機能への簡単なアクセス。
- 複雑なユーザーマニュアルやルールの効率的なナビゲーション。
- アシスト付きプログラミング、Txt2SQL、データプログラマーの効率向上。
プログラミング支援としてプライベートな大規模モデルを活用することは、あなたが思っているよりも身近なものです。プログラミングにおけるAIGC駆動の自動化の時代についてまだ疑問を抱いている場合は、以下の例をご覧ください。オープンソースプロジェクトがAIGCを活用して開発効率を向上させる方法について説明します。
大規模モデルによる自動プログラミングの例:Apache SeaTunnel
Apache SeaTunnelのビジョンは、「全てをつなげ、雷のように高速に同期する」ことです。この野心的な目標は、データベース、SaaS、ミドルウェア、およびBinLogsなどの市場上のすべてのデータソースを接続し、最適な同期を実現することを目指しています。これは単一の企業にとって不可能な課題であり、人間でさえ、数千ものSaaSソフトウェアオプションと常に変化するインターフェースの中でこれを達成するのは困難です。では、Apache SeaTunnelのコアチームはAI時代にそのようなソフトウェアを設計したのでしょうか?全体の構造は以下の図に示されています。
まず第一に、コアの計算エンジンは同期のために特化しています。 FlinkやSparkとは異なり、効率的なメモリ、CPU、および帯域幅の活用に焦点を当て、データの一貫性を確保しています。これらは既存のベンチマークに欠けている要素です。そのため、ほとんどのコードは借用されず、コアエンジニアによって直接開発され、世界中の専門家からの持続的な入力と改善を受けながら最先端の技術に追いつくことができます。
第二に、アイスバーグコネクタなどのコアデータベースコネクタは、正確さと高いデータ伝送効率の両方を重視した複雑な実装です。これらは主に人間の専門知識に依存していますが、既存のコードとクラウドベースのプラクティスを活用し、サポートツールとしてCo-Pilotを利用することができます。大規模モデルは従来のアルゴリズムを補完し、コードスニペットを再利用することによって支援します。これは紹介ビデオで示されています。
広大なSaaSインターフェースの海を前にして、MarTechセクターだけでも5000以上のマニュアル統合は実現不可能です。SeaTunnelのコアチームは戦略を考案しました:以前に人間がコード化していた数々のインターフェースを抽象化し、ChatGPTと協力してエレガントなコードを生成できる2つのインターフェースに変えることです。ChatGPTはSaaSインターフェースのドキュメントを理解し、関連するコードスニペットを直接生成することができます。SeaTunnel内では、この機能は「AI互換性」として知られており、AIと人間の協力を容易にしています。これはプログラマとAIの「調和」であり、お互いが得意な分野で貢献することを保証しています。
この機能はApache SeaTunnel 2.3.1でリリースされました。ただし、進化を続けるオープンソースプロジェクトとして、まだ改善の余地があります。コードのオープン性から、より多くの愛好家がこの機能を微調整し自動化する可能性があります。たとえば、GitHub上のSaaSの問題を監視し、ChatGPTを使用してコードを生成し、自動的にプルリクエストを送信する「GPT Coder」の開発者の話を聞いたことがあります。これにより、人間とボットの協力が極限にまで推し進められます。
大規模モデル駆動の自動化プログラミングの課題
ChatGPT、Co-Pilotなどのツールはプログラミングを向上させますが、無敵ではありません。大規模モデルを使用してコードを生成する際に考慮すべきいくつかの課題があります:
- 正確性の問題。
- コードレビューの実施不能。
- 自動テストの能力の制約。
- 責任の所在がない。
大規模モデルでも間違いを comitte することがあり、それはしばらくの間普通のことでしょう — たとえChatGPT4でもコードの正確性が90%であるとしても。したがって、コード生成プロセスを簡素化することは重要です。大規模モデルによる迅速なコード生成の後、人間によるコードレビューは追いつくのが難しくなる場合があります。最終的なコードがビジネスロジックを正しく実装しているかどうかを機械は検証できません。大規模モデルを使用したコードレビューは、論理の正しさの評価を曇らせる、重要に見えるが結局は些細な改善が数多く見つかることがあります。
さらに、大規模モデルにとって自動テストとテストケースの生成はまだ課題です。TestPilotは学術界で積極的に議論されていますが(Cornellの関連記事を参照)、エンジニアリングレベルの適用はまだ遠いです。
最後に、技術的な課題ではなく哲学的な課題である責任の問題があります。ChatGPTの正確性率が90%であるとしても、仮に99.9999%という仮想的な数字であっても、それを信頼して企業全体の給与計算を自動的に行い、銀行との直接的な給与振込を開始することはできますか?問題が発生した場合、誰が責任を負うのでしょうか?ビジネスの課題はすべて技術で解決できるわけではなく、大規模モデルにも同様のことが言えます。
将来の展望
現在、大規模モデルによる自動化プログラミングの初期段階にあります。多くの開発者がまだCo-PilotやChatGPTを試行しており、ほとんどのプログラマはまだ自社のコンテキストに基づいて大規模モデルを活用してコーディング効率を向上させていません。しかし、次の3〜5年間で、プログラミングにおける自動化支援は確実に開発者の必須ツールとなるでしょう:
- 基本的な大規模モデルはChatGPTとのギャップを縮め、使いやすさを向上させます。
- オープンソースの大規模モデルは正確性と性能を向上させ、より多くの企業が導入することでROIが向上します。
- 大規模モデルによる自動化の閾値は下がり、Apache DolphinSchedulerを超えた民主的な大規模モデルトレーニングのツールが登場します。
- 技術マネージャーの間で大規模モデルによる自動化プログラミングへの理解が広まり、技術管理プロセスが適応されます。
- 現在の経済サイクルの中で、効率を向上させるために大規模モデルを活用することが必要です。
したがって、次の数年間で、開発プロセスがCRUD操作に限定され、大規模モデルを利用して専門知識とビジネス理解を10倍または100倍に増幅することができない場合、35歳になるまでプログラマに代わられるのを待つ必要はないかもしれません。彼らが10倍にスケールアップした後、あなたは9人のうちに取り残されてしまうかもしれません。
これは少し警戒心を抱かせるかもしれませんが、プログラミングにおける大規模モデルによる自動化の傾向は止められない力です。私は大規模モデルによる自動化プログラミングの未知の探検者に過ぎませんが、多くの技術マネージャーやアーキテクトが大規模モデルによる自動化の波に参加し、開発フィールド内で人間と大規模モデルの関係を継続的に改善していくと信じています。最終的に、このシナジーはプログラマ、AI、および技術開発プロセスをビジネスにより効果的にサービス提供するものにします。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles