- QEMUコミュニティが最近ポリシーを改定。AIコード生成器(例: Copilot、ChatGPT など)の使用およびそれらのツールによるコード提出が禁止された
define policy forbidding use of AI code generators
- 最近、AIコード生成器の利用への関心が急増しているが、それらのツールの出力物に対するライセンス解釈は業界で広く受け入れられていない
- 主要ベンダーは問題はなく、自由にライセンスを選択できると主張しているが、彼らには利益相反が存在する
- AIコード生成器はさまざまなライセンスの下で学習されたデータをもとに作られているため、出力物のライセンス問題について業界の合意がまだ存在しない
- QEMUはDCO(Developer Certificate of Origin)において、コントリビューターがそのプロジェクトのライセンスの下でコードを貢献する権利を明確に持っていることを要求している
- AIコード生成器を使ったコードの場合、DCOのb/c条項の遵守を立証するのが難しい点を明確に言及している
- そのため、AIコード生成器が明確に使用された、またはその疑いがある場合、QEMUプロジェクトへのコード貢献を許可しないポリシーを導入した
ポリシーの柔軟性と例外処理
- AI支援ソフトウェア開発は初期段階にあり、法的論点は今後解決される可能性が高い
- ツールの進化により、今後は一部のツールがオープンソースプロジェクトで安全に使用可能になると見込んでいる
- 現在は厳格で安全なポリシーを優先適用し、今後必要に応じて緩和可能としている
- 例外申請は個別に審査して許可可否を判断する予定
1件のコメント
Hacker Newsのコメント
CONTRIBUTING.mdに次のようなLLMコード貢献ポリシーを入れる予定だLLM-Generated Contribution Policy
Colorライブラリは複雑な数学と繊細な意思決定に満ちたライブラリである。すべてのIssueやPRは、提出者本人の深い理解のもとで作成されなければならず、とくにPRについては開発者が各コミットについてDCOを証明しなければならない。LLMの助けを受けてPRを作成した場合は、コミットメッセージとPRで明示しなければならない。証拠なしにLLM支援が検出された場合、そのPRは却下される。LLMが作った内容をレビューなしで提出することは無条件で拒否する
一人でプロジェクトを背負う立場としてバランスを取ろうとしているが、個人的にはLLMによるコード貢献は好まないSECURITY.mdにも LLM-Generated Security Report Policy として、LLMが生成したセキュリティ報告は無条件で受け付けない方針を入れるつもりだ他人が自分のコードすら理解しないままPRを提出できるなど、到底想像しにくい。そういう人たちのせいで、ポリシーのために自分がオートコンプリート程度のLLM利用まで制限される現実には少し不満がある。
自動リファクタリング課題くらいはCopilotにやらせたいが、試してみるとめちゃくちゃに壊れることが多く、ブロック全体を新規生成する方式が多いため、自分で手作業するよりむしろ遅くなることが多い。
興味深いのは、もし自分が入力中にバグを書いていると、Copilotがそのバグまでそのまま補完してくることがよくある点だ。変数名のタイプミスのような、文脈上あきらかな間違いまでそのまま自動補完する
自分が行うハイレベルな作業は絶対にAIに任せられないが、反復的で重要度の低い作業はAIに引き受けてもらって速度を上げている。たとえばClaude Codeにデータベースベンチマーク結果のCSVファイルを渡して、各種グラフや外れ値分析をつなげてほしいと頼めば、概念的には簡単でもライブラリ探しやセットアップに時間がかかる作業を素早く片付けてくれる
コードを「理解する」とは何を意味するのか考えている。自分が取り組んでいるあるプロジェクトは、既存のVMオーケストレーションシステムに新しいストレージバックエンドを完全に新規実装で入れる作業だ。既存コードを知らない立場で、自分で実装する時間もなかなか取れないが、テストクラスターを構築し、さまざまなシナリオを回しながら、設計とテストの観点では全体像を十分把握している
自分もオープンソースメンテナとして、質の低いLLM「スロップ」PRが来ることがどれほど大きなストレスかは想像できる。結局、作者がコードを理解していようがいまいが、メンテナは必ずコードをレビューしなければならない。
今後は、こうしたツールを適切に活用し、提出コードの品質水準を他の開発者に伝える方法を模索すべきだと思う。初期のLinux向けZFSポートで見つかった微妙なバグから学んだのは、人間が1行ずつレビューして書くことに劣らず、徹底したテストがきわめて重要だということだ
Dotnet RuntimeはAIを積極的に受け入れている。外部ではあざ笑われるかもしれないが、Stephen Toub や David Fowler のような優れたエンジニアが支持している点に注目すべきだ。
企業に対しては、次にIBMがAIサービスを売り込みに来たとき、本当に未来志向のパートナーを探したほうがいいと勧めたい。
North Carolina出身者として、IBMとRedHatが正しい方向を向いてくれることを願っている
法的リスクのためにAIを避ける人の気持ちは理解できるが、過度に心配しすぎるのも疑問だ。本当に何らかの可能性をゼロにできたと信じている人は、まだ十分に考え切れていないと思う
case文の列を書くときにCopilotがパターンを検出して入力を大幅に減らしてくれる自分の脳だって実のところクローズドソースコードをたくさん学習してきたのだから、AIの著作権議論は西洋的なNIMBY(地域エゴ)発想だと皮肉っている。こうした法的な「もしも」を口実にすばらしい技術を拒んでいたら、西洋文明そのものが崩れるかもしれないと懸念している
AI貢献禁止方針とは別に、むしろ「この部分ではAIを使えます」という明確な線引きも必要だと思う。たとえばQEMUのCIセットアップなどはセキュリティを守るべき中核領域ではない。面白く新しいテストケースや環境に対する貢献については、AIを一定条件つきで許可するやり方も十分可能だと思う
結局、「とりあえず今は受け入れない」が皆にとってより単純で、よりドラマの少ない選択だ。
関連資料として QEMUライセンス と 非自由ライセンス一覧 のリンクを添えている
しかし、AI生成コードと人間がどこかから写したコードを実際に区別する方法があるのかは気になる。オープンソースは誰でも貢献できる以上、人間がコードで他のソースの影響を受けるのも同じことだ。
現時点の見方としては、AI生成コードはそれ自体に独立したアイデンティティがあるというより、人間の手にある道具に近いと思う
もうこの比喩も使う必要がないほど長く引っ張ってしまったと感じている
まるで自分が棒人間の絵を描いたら、「その絵は誰かの棒人間の絵を真似た可能性があるから提出する権利はない」と言われるようなものだ。
方針の本当の目的は、結局いつか誰かがAIコードと混ざったものを提出したとしても「仕方がなかった」と言うための免責作りなのだろう。方針立案者たち自身も、その方針が無意味だと分かっていないはずがないと思う
法的問題以外にも、AIコードを使うことで生じるさまざまな別の問題があるのは確かだ