アップルの研究者は、SwiftUIで優れたユーザーインターフェースコードを生成するための新しいアプローチを開発したと発表しました。この研究は、オープンソースモデルが自ら学習する方法を示しています。
研究論文「UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback」によれば、LLMは創造的なライティングやコーディングなどのタスクで進化しているものの、UIのための構文的に正しい、優れたデザインのコードを生成するのは難しいとしています。
その理由として、UIコードの例がデータセットに非常に少ないことが挙げられています。データセット全体の1%未満である場合もあるということです。
この課題に対処するため、研究者はStarChat-Betaというコーディングに特化したオープンソースのLLMを使用しました。UIの説明リストを与え、それに基づいてSwiftUIプログラムの大規模な合成データセットを生成しました。
生成されたコードはSwiftコンパイラで実行可能か確認され、GPT-4Vというビジョン・ランゲージモデルで元の説明と比較されました。コンパイルに失敗したり、無関係なもの、重複したものは除外されました。残った出力が高品質なトレーニングセットを形成し、モデルの微調整に使用されました。
このプロセスを複数回繰り返すことで、モデルはより優れたSwiftUIコードを生成するようになり、よりクリーンなデータセットが形成されました。
5回の繰り返しの後、996,000のSwiftUIプログラムが生成され、UICoderと呼ばれるモデルが開発されました。このモデルは一貫してコンパイルされ、初期モデルよりもプロンプトに近いインターフェースを生成しました。
テストによれば、UICoderは自動評価と人間による評価の両方でベースのStarChat-Betaモデルを大幅に上回りました。さらに、GPT-4と比較しても全体的な品質で匹敵し、コンパイル成功率では上回ったということです。
興味深い事実として、元のデータセットにはSwiftUIコードがほとんど含まれていなかったことが挙げられます。StarChat-BetaのトレーニングデータにはSwiftUIデータがほとんど含まれていませんでした。TheStackデータセットを作成する際にSwiftコードリポジトリが誤って除外され、OpenAssistant-Guanacoデータセットには1万例中1例しかSwiftコードが含まれていなかったとしています。
このことから、UICoderの成果は、既存のSwiftUI例を単に再利用したものではなく、アップルが自動フィードバックループを通じて構築した自動生成のデータセットによるものだとしています。
研究者は、この方法がSwiftUI以外の言語やUIツールキットにも一般化できる可能性があると仮説を立てています。
この研究は、arXivで公開されています。