618ZXW

AI が生成したコードは高速で優れていますが、信頼してよいのでしょうか?

オープンソース協会開源社

以下の記事は、Mulan が執筆した、Mulan オープンソース コミュニティからのものです。

ChatGPTが人工知能分野における新たな研究とイノベーションの波を巻き起こして以来、AIが世界を根底から変えつつあることを誰もが深く実感しています。AI主導の自律プログラミングツールの登場は、プログラマーに喜びと不安の両方をもたらしています。例えば、マイクロソフトのGitHub Copilotコーディングアシスタント、Amazon Web ServicesのCode Whisperer、SalesforceのEinstein for Developersなどが挙げられます。国内では、Alibaba CloudのTongyi Lingmaや、清華大学とZhipu AIが共同で立ち上げたCodeGeeXなどがあり、いずれも迅速なコード生成と業務タスクの迅速な完了を可能にします。

2023年6月、IT系Q&Aサイト「Stack Overflow」は9万人以上の開発者を対象とした調査を発表しました。その結果、開発者の約44%が業務でAIツールを利用しており、そのうち82%以上がコード生成にAIツールを使用していると回答しました。

しかし、今年4月中旬、Gentoo LinuxはAI生成コードの使用を明示的に禁止する評議会ポリシーを発表しました。5月16日、NetBSD Foundationは新たな開発ポリシーを発表しました。大規模言語モデルや類似の技術(ChatGPT、GitHub Copilotなど)によって生成されたコードは、汚染されている(つまり、著作権が不明瞭で、NetBSDのライセンス目標に沿わない)とみなされ、NetBSDに提出できなくなります。

これら 2 つのコミュニティは、禁止を公に発表した唯一の 2 つのオープンソース コミュニティであり、この決定は、コードの品質、著作権の問題、倫理的な問題を総合的に考慮した結果に基づいています。

これら2つのオープンソースコミュニティからの明確な発言は、広範な議論を巻き起こしました。確かに、Transformerアルゴリズムに基づくいわゆる大規模言語モデル(LLM)ツールは、膨大なテキストデータを分析することで語彙パターンを学習し、それに応じたコードを生成するものであり、語彙パターンを真に理解したり作成したりするものではありません。これらのツールが生成する「インテリジェント」なコードは、学習用コーパスを直接コピーする可能性があり、著作権紛争を引き起こす可能性があります。また、コードの独創性を保証することは困難であり、オープンソースソフトウェアにおける透明性の原則に反しています。

しかし、本稿執筆時点では、Debian プロジェクトはこの禁止措置を採用しておらず、Debian の立場は技術倫理に関する議論に新たな側面を加えるものとなっています。

このトピックに関する議論の中で、ある開発者が鋭く指摘しました。「GentooやNetBSDはアップストリームの修正に依存しているにもかかわらず、LLMによって生成されたコードの組み込みをどのようにして防げるのか理解できません。すべての主要ディストリビューション、あるいはカーネルでさえ、700社以上のLLM企業に事前に警告を発しない限り、これを防ぐ方法はないように思われますが、ディストリビューションやカーネルでさえ、そのための資金を持っていませんし、GPLライセンスはこのような脅威と互換性がない可能性があります(LLM企業はすべて、トレーニングデータに使用されるコードのGPLコピーをホストし、ユーザーがダウンロードできるようにすることで、簡単に対処できます)。」

Debianの行動は、現在のオープンソースのエコシステムと法的枠組みにおいては、LLM生成コードの流入を完全に阻止することは事実上不可能であり、複雑な法的問題やコミュニティ間の協力関係の構築が必要となる可能性があるという認識を示しているように思われます。したがって、Debianは、単に禁止措置を講じるのではなく、コードの品質管理、著作権遵守、透明性に重点を置いた柔軟な管理戦略を採用する可能性が高いと考えられます。

オープンソース コミュニティの一般的な傾向と雰囲気から判断すると、コードがプロジェクトの品質基準、著作権規制、倫理的要件を満たしている限り、ほとんどのオープンソース プロジェクトは AI ツールを使用して生成されたコードに対してオープンです。

もう一つ注目すべき点は、GitHubの所有者であるMicrosoftが、自社のOSのソースコードをLLM研修コーパスに一切組み込んでいないことです。これは、テクノロジーの巨人でさえ潜在的なリスクと課題を認識していることを間接的に示しています。

01 ZTEコーポレーションのオープンソース戦略ディレクターであり、LF AI & Dataの取締役会会長であるMeng Wei氏

大規模プログラミングモデルは国内ITベンダーに広く導入されており、研究開発効率を効果的に向上させており、その効果は否定できません。多くのベンダーは、将来的には大規模プログラミングモデルがプログラマーの作業の90%以上を代替し、コスト削減と市場投入までの期間短縮につながると主張しています。

大規模プログラミングモデルでは、コードセキュリティの脆弱性、著作権や法的問題、論理エラーといった課題が顕在化しています。しかし、開発初期段階では、大規模プログラミングモデルに過度な要求をすべきではありません。さらに、これらの課題には、コードレビュー、セキュリティ脆弱性チェック、コンプライアンススキャンといった適切な解決策が存在します。これらのタスクは開発プロセスに内在しているため、余分な作業負荷は発生しません。大規模プログラミングモデルがより洗練され、開発プロセス全体にわたって完全に自動化され、コード作成、レビュー、スキャン、ユニットテスト、システムテストを含むワークフローの閉ループが実現されるようになると、セキュリティとコンプライアンスを維持しながら、作業効率が大幅に向上するでしょう。

プログラミング自体は、設計ソリューションを完成させるための知識ベースのアーキテクチャに基づいています。人工知能の発展は、人間による反復的な知識ベースの労働を徐々に置き換えるでしょう。大規模モデルに問題があるからといって、それがもたらす莫大な生産性向上を無視して、大切なものを無駄にすべきではありません。

知識と労力はAIに委ね、知恵と美意識は人間に残していくことこそが、これから私たちが目指すべき方向です。

02 オープンソース実践者であり、九州未来の共同創設者である張金南

GitHubが発表した2023年のオープンソースとAIに関するレポートでは、開発者の92%が既にAI支援プログラミングツールを使用または体験しているという驚くべき統計が明らかになりました。また、レポートでは、2023年のオープンソースAIプロジェクトの数は、2022年以前のAIプロジェクト総数の2倍を超えたことも指摘されています。これらの数字は、人工知能技術がオープンソースソフトウェアの将来のエコシステムを徐々に変革しつつあることを明確に示しており、AI支援プログラミングツールの普及の傾向は不可逆的です。このような変革に直面して、産業革命期に繊維労働者が靴下編み機を破壊したように、単純な禁止措置では技術の進歩を阻止できないだけでなく、機会損失につながる可能性もあります。

オープンソースプロジェクトと開発者は、AI支援プログラミングツールを受け入れ、深く理解するために、よりオープンな姿勢が必要です。条件が許せば、ソフトウェアエンジニアリング分野のAIエージェントをオープンソースコミュニティの運営とプロジェクトガバナンスに統合することも検討できます。主流のDevOpsアジャイルコラボレーションモデルを採用することで、AIエージェントをDevOpsパイプラインに導入し、コードレビュー、コメント作成、ドキュメント生成、翻訳といった、煩雑ながらも重要なタスクを実行させることができます。AI支援プログラミングツールの普及に伴い、オープンソースコミュニティでは、今後、より多くのAIエージェントがグローバルなオープンソースプロジェクトのコラボレーションに参加するようになることは間違いありません。さらに、AIエージェントのこの独自の役割をオープンソース領域に効果的に統合し、「シリコンベースの生命」との調和のとれた共存を実現する方法は、将来のコミュニティガバナンスにおいて深く検討する価値のあるテーマとなるでしょう。

03 蘇州プリズムカラフルインフォメーションテクノロジー株式会社副社長、黄浩東氏

今日の話題はAI生成コードについてです。そこで、早速大きなモデルに質問してみました。

複数のモデルからの回答は、言葉遣いに至るまで驚くほど一貫していました。全員が一致して同意し、中にはコード生成、コードの説明とドキュメント化、コードのデバッグと最適化、コード補完、教育と学習のサポートといった実現可能なシナリオを辛抱強く概説してくれた人もいました。偶然にも昨日、ある公開アカウントで、ChatGPTを使って書かれたたった1行のコードが、ある会社に数万ドルの損失をもたらしたという記事を見ました。さらに悪いことに、そのコードは上司自身が書いたもので、誰も責任を負えませんでした。

私はすっかり困惑してしまいました。従来の書き方では、正反対の二つの視点を提示され、どちらを「自分のもの」として受け入れるべきか分からなくなってしまったのです。どうしようもなく、長い間眠っていた脳を引っ張り出してじっくり考えることしかできませんでした。

まず、AIであれ大規模モデルであれ、最終的には優れたコードを書けるようになるでしょう。怠惰こそが人類の進歩の原動力ではないでしょうか?さらに、ツールの改良と変革は、さらなる反復と生産性の爆発的な向上を促進するでしょう。しかし、AIがコードを書くことは、コーディングの世界における工業生産を象徴し、個々のコーダーによる分散労働に取って代わることになるのでしょうか?おそらくそうではないでしょう。根本的に、第一に、コードは最終的には人間によって、人間と機械の両方が理解できるように設計されるものです。AIに機械-人間-機械という道を強制するのは誤ったアプローチです。第二に、人間は現在最もエネルギー効率の高い「デバイス」であると確信しています。エネルギー供給がこのような大規模なコンピューティングパワーの使用をサポートできるかどうかは、単純に計算すれば分かります。

しかし、当社の観点からすると、AIによるコード生成はオープンソースの世界に大きな影響を与える可能性があります。モデルの学習に使用されるコードの大部分は間違いなくオープンソースであり、AIが学習中に「ライセンス」のルールを理解できる可能性は低いでしょう。また、AIに固有の不確実性により、AIが生成したコードがどのプロジェクトに由来するかを証明することも困難です。AIが生成したコードがオープンソースコミュニティにさらなる貢献をした場合、それは壊滅的な結果をもたらす可能性があります。なぜなら、他人が書いた膨大な量のコードを見たいと思う人は誰もいないからです。

AIが生成したテキスト画像を認識する手法はすでに存在しており、AIが生成したコードも近いうちに認識できるようになると考えられています。さらに、どのプロジェクトのコードがAIのコードと関連しているかを判別できれば、「5種類のクローン」の認識問題は解決されるでしょう。

新たないたちごっこが始まり、ビジネスチャンスも豊富です。そろそろ執筆を終えて、コーディングに戻ります。

04 匿名

コード生成を用いて開発効率を向上させることは、ソフトウェア業界では長年の慣習となっています。大規模モデルコード生成が登場する以前は、多くのプログラマーはエディタの自動補完、アプリケーション開発中の自動スキャフォールディングコード生成、CMake、Protobuf、PyBindといったツールといった機能に慣れていました。大規模モデルコード生成技術は、間違いなくプログラマーのツールボックスに新たな優れたツールを追加するものです。Linus Torvalds氏も最近のインタビューで同様の見解を示しています( https://blog.mathieuacher.com...)

個人的な経験から言うと、私は今やcopilotのヘビーユーザーですが、コード補完やコードスニペットライブラリのコードスニペットを使って基本的なコード構造を提供することと、copilotとの根本的な違いは見当たりません。プログラマーの視点からすれば、ツールを使って効率性を向上させるのは当然のことです。この種のコードの独創性の定義については、AIが生成したコードをプログラマーがレビューして修正を加えた時点で、既にプログラマーのオリジナル作品とみなせると私は個人的に考えています。結局のところ、copilotはあくまで助手席であり、プログラマーは依然として運転席にいるのです。

NetBSD Foundationは、大規模言語モデルや類似の技術によって生成されたコードをNetBSDに提出することを禁止していますが、実装上の実際的な課題はさておき、業界全体でより明確な議論と解釈が必要です。例えば、プログラマーが大規模モデルによって生成されたコードをレビューして修正した場合、修正されたコードは依然として大規模モデルによって生成されたコードとみなされるのでしょうか?プログラマーが大規模モデルに提供したプロンプトがオリジナルのものである場合、大規模モデルによって生成されたコードはオリジナルのコードとみなされるのでしょうか?大規模モデルのトレーニングに使用されたコードが許容範囲である場合、生成されたコードはオープンソースプロジェクトで直接使用できるのでしょうか?

転載元:Mulanオープンソースコミュニティ

編集:王俊

関連資料

国内大手企業の公式オープンソース Web サイトを調べることで、オープンソースに対する姿勢を把握できます。

TiDBハッカソン2024 | TiDBと共に未来のAIイノベーションアプリケーションを構築し、総額21万円を超える賞金をゲットしよう!

オープンソース協会の紹介

2014年に設立されたオープンソース協会(KAIYUANSHE)は、オープンソースの理念に献身的に貢献する個々のボランティアで構成されるオープンソースコミュニティであり、「貢献、合意、そして共同統治」の原則に基づき活動しています。KAIYUANSHEは、「ベンダー中立性、公益性、非営利性」の原則を堅持し、「中国を拠点とし、世界に貢献し、新時代のライフスタイルとしてオープンソースを推進する」というビジョンを掲げています。その使命は「オープンソースのガバナンス、国際的な連携、コミュニティの発展、そしてプロジェクトのインキュベーション」であり、健全で持続可能なオープンソースエコシステムの共創を目指しています。

オープンソース協会は、オープンソースを支援するコミュニティ、大学、企業、政府機関と積極的に連携しています。また、世界的なオープンソースライセンス認証組織であるOSIの中国初の会員でもあります。

2016年以降、中国オープンソースカンファレンス(COSCon)が毎年開催され、「中国オープンソース年次報告書」が継続的に発表されています。また、「中国オープンソースパイオニアリスト」と「中国オープンソースコードパワーリスト」も共同で立ち上げ、国内外で幅広い影響力を発揮しています。