当社のCTOがコーディングにジェネレーティブAIを使用した経験
当社のCTOがコーディングにジェネレーティブAIを使用した経験
当社のCTOであるエヴァン・デイヴィスは、現実世界の問題を解決するために最新のAI技術を活用してきた。彼は最近 ジェネレーティブAI スキムAIチームとのコーディング・ワークのために、技術の実用的な応用と潜在的な落とし穴に関する彼の個人的な洞察のいくつかを提供します。この対談とその結果としてのブログによって、私たちは、この急速に変化する環境の内部を覗き見ること、そして特に、この使いやすいジェネレーティブAIの時代にコーディングが決して変わらない理由を提供することを目指しています。
コーディングにおけるジェネレーティブAIの可能性と限界
人工知能のサブセットであるジェネレーティブAIは、アートワークからコードに至るまで、既存の例から学習することによって新しいコンテンツを作成することに焦点を当てています。エヴァンの最近の経験では、ChatGPT-3.5のようなトップクラスのジェネレーティブAIモデルがある、 GPT-4, Github CoPilot, アマゾン・コードウィスパラー, バルド などなど、このテクノロジーはコーディング作業の貴重な味方であることが証明されている。これは、いくつかの限界に飛び込む前の重要な注意点である。現状では、ジェネレーティブAIはコーディングに大きなインパクトを与えており、今後も進化を続け、より良くなっていくだろう。
コーディングの知識がある人にとって、このテクノロジーは大きなスタートダッシュを切ることができ、80%程度のタスクを処理し、デバッグプロセスをより管理しやすくする可能性がある。これは、ジェネレーティブAIがコーディングへのアプローチ方法に革命をもたらし、プロセスをスピードアップし、ヒューマンエラーを減らすと考える業界の専門家と一致している。
しかし、どんな新しい技術でもそうであるように、ジェネレーティブAIにも限界がないわけではない。エヴァンは個人的な経験として、特に一般的でないライブラリの場合、このテクノロジーはロジックに欠けるコードを生成することがあると指摘した。AIは幻の関数、つまりライブラリに存在しない関数を呼び出すため、混乱が生じ、出力の解読に余計な時間を費やすことになる。これはこの分野ではよく知られた課題であり、研究者たちはこのような問題に対処するためにAIアルゴリズムを改良し続けている。
GitHub Copilotの役割とその可能性
エヴァンはまた、AIを搭載したコーディング・アシスタントであるGitHub Copilotを使った経験についても語った。ユーザーの既存のコードの範囲内で動作するため、レールから外れる可能性が低いことがわかったという。
GitHubとOpenAIによって開発されたCopilotは、ユーザーによって提供されたコンテキストに基づいて行ごとにコードを提案し、誤った出力を生成する可能性を低くする。
GPT-4をVisual Studio Codeに統合し、音声制御機能を備えたCopilot Xのリリースは、この分野における大きな進歩です。このツールは音声で作動するコーディングアシスタントとして機能し、AIをコーディングワークフローに完全に統合するための重要な一歩となる。
ジェネレーティブAI:今日のロゼッタストーン
ジェネレーティブAIについてのチームの会話の中で、グレゴリー・エリアスCEOは、AIが生成するコードとロゼッタストーンの間に興味深いアナロジーを描き、このテクノロジーの能力と制約を説明した。ロゼッタ・ストーンが古代言語の翻訳メカニズムとして機能したように、ジェネレーティブAIはコーディング言語の翻訳機として見ることができる。
コーディングの文脈におけるジェネレーティブAIは、翻訳者のような働きをする。ある言語の構文、慣習、イディオムを理解し、それを別の言語で再現する。単純な単語ごとの翻訳を超え、元のコードの意図、論理、構造を捉えることを目指す。
しかし、この翻訳プロセスの精度と有効性は、AIのトレーニングデータにおける特定のコーディング言語やライブラリの可用性と豊富さに大きく依存します。例えば、AIがPythonやJavaで広範囲に訓練されているが、Erlangのような一般的でない言語をほとんど見たことがない場合、Erlangコードを正確に生成したり翻訳したりするのに苦労するかもしれません。
トレーニングデータの質:重要な要素
エヴァンはまた、AIモデルに投入するトレーニングデータの質の重要性も強調した。インターネットには様々な品質のコードが溢れており、AIモデルが高品質のコードで学習されるようにすることは重要な課題である。それらは機能するが、過度に単純化されている。
例えば、SQLクエリを生成するユーザーを支援するために訓練された生成AIモデルを考えてみよう。以前は、正しいSQLクエリを作成するには何年もの専門知識が必要だったが、今では生成AIの助けを借りれば、何十万人ものユーザーがわずか数秒でこれを実現できる。これは、知識と能力の民主化における記念碑的な前進である。この原理は、SQLにとどまらず、マイクロソフト・エクセルやビジネス・インテリジェンス・ツールなど、より日常的なツールにまで拡張することができる。ユーザーは、複雑なスプレッドシート、チャート、ダッシュボードを簡単かつ正確に作成することができる。
しかし、ライブラリのドキュメントが不十分であったり、AIの学習データにそのライブラリからの包括的な例が含まれていなかったりすると、AIは精度の低いコードや機能性の低いコードを生成する可能性がある。この洞察は、AI研究者たちによるより広範な観察と類似している。つまり、AIモデルの性能は、それがトレーニングされたデータの豊富さ、多様性、品質に強く依存しているのだ。
要するに、ジェネレーティブAIは、人間のコーダーと同じように、慣れ親しんだ言語やライブラリを扱うのが得意なのだ。このことは、AIモデル開発における包括的で高品質なトレーニングデータの重要性を強調するとともに、新しい言語が登場し、既存の言語が進化するにつれて、継続的なAIのトレーニングと改良の重要性を強調している。物事の大枠では、これは、様々なタスクにわたってユーザーを支援するAIの能力を継続的に向上させ、ユーザーの効率性と生産性を高めるのに役立ちます。
新時代の到来
エヴァンのジェネレーティブAIの体験は、このテクノロジーの計り知れない可能性と内在する課題を垣間見せてくれる。AIの分野が進化し続ける中で、このような経験がAIの発展を導き、現実世界の問題を解決するためのさらに効果的なツールになることを保証する。
驚くべきことに、ChatGPTのような生成AIモデルは、プログラマーにとってもエンドユーザーにとっても、ライブラリ内での何十万時間ものコーディングと何年もの専門化の必要性を大幅に削減し始めている。この変革は、プログラミング・アプリケーションのアクセシビリティとユーザビリティにおける記念碑的な飛躍を意味する。
私たちの記事 "ChatGPTとBardがコーダーに危険を告げる"はこの点を強調している。どちらのAIモデルも、コードを効率的に生成する能力を披露し、人間のコーディング作業にかかる数え切れないほどの時間を削減し、驚くべき結果をもたらす可能性を示した。これらの技術が改善され続ければ、プログラミング作業の容易さとスピードにさらに大きな影響を与えることが期待できる。
ジェネレーティブAIの出現と継続的な発展は、加速するイノベーションと包括性を特徴とするプログラミングの世界に新しい時代を切り開く可能性がある。参入障壁を減らし、コーディング・プロセスを簡素化することで、これらの高度なAIモデルは、コーディングの専門知識がデジタル・ソリューション構築の前提条件ではなくなる未来を約束する。このエキサイティングな未来を切り開くために、私たちはこの急速に進化するテクノロジーを常に把握し、その変革の可能性を活用し続けなければならない。