Apple(アップル)7分で読めます

アップル、SwiftUIでUIコードを生成するLLMを開発

AI要約複数の情報源を統合して作成しています

アップルの研究者は、SwiftUIで優れたユーザーインターフェースコードを生成するためのLLMを開発したと発表しました。この研究により、LLMが自動フィードバックを通じて自己学習する方法が示されました。

Apple trained an LLM to teach itself good UI code in SwiftUI

アップルの研究者は、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で公開されています。

出典元記事を読む(Apple(アップル))
LINEX
NihonTechHub

NihonTechHub

技術系ジャーナリスト

日本の最新テクノロジーやスタートアップ情報を発信するプラットフォームです。国内外のイノベーションをつなぎ、未来を切り開くための知識とインスピレーションを提供します。

Tools

NihonTechHub ソフトウェア · 私たちが開発した便利なツールとソフトウェア

Google Drive ダウンローダー

閲覧専用ファイルの簡単ダウンロード

Google DriveのView-only(閲覧専用)ファイルを簡単にダウンロードできるツールです。PDF、Docxファイルに対応しています。

PDF 対応済みDocx 対応済み無料で利用可能

この機能はNihonTechHubアプリでもご利用いただけます(Android・iOS対応)

App

無料

外出先でも最新のテクノロジーニュースをチェック!リアルタイム通知とパーソナライズされたニュースフィードを受け取るにはアプリをダウンロードしてください。

  • ・リアルタイム更新
  • ・プッシュ通知
  • ・カスタマイズ可能