AI for Low-Code for AI
要約
- Low-codeプログラミングとAIによるツールの組み合わせの重要性について論じた研究
- LowCoderという新しいlow-codeツールの紹介
- LowCoderは視覚プログラミングと自然言語インターフェースを組み合わせた初のツール
- ユーザースタディにより、LowCoderが開発者にとって有益であることが示された
- 他のlow-code for AIツールとの比較
- 自然言語プログラミングの重要性についての研究
- AIツールの開発者に対する影響についてのユーザースタディ
- この研究は、低コードとAIの交差点を探ることを目的としており、低コードを使用したAIの利点と制限を理解することを試みています。研究では、AIパイプラインを構築するためのプロトタイプの低コードツール「LowCoder」を実装し、研究しています。このツールは、視覚プログラミング(VP)と自然言語(NL)の両方を備えたsklearnオペレーターを含むツールであり、ユーザーの間における両方のモダリティの影響を調査する機会を提供します。
- LowCoderは、Python FlaskバックエンドサーバーとBlocklyメタツールに基づいたフロントエンドを使用したクライアントサーバーアーキテクチャを使用しています。LowCoderVPは、ブロックベースの視覚プログラミングインターフェイスを提供し、LowCoderNLは自然言語インターフェースを使用しています。これにより、ユーザーは自然言語で操作を記述し、適用可能なオペレーターを自動的に追加することができます。
- 低コードツールの潜在的な弱点は、適切なコンポーネントを見つけることが難しいことです。そのため、LowCoderNLは、自然言語からコードへの変換モデルを使用しており、プログラムを自動的に生成します。また、LowCoderNLの評価のために、訓練された言語モデルのないバージョンも提供されています。
- AIによる低コードツール「LowCoderNL」の設計と実装についても説明されており、大規模なAPIを低コードツールを介してアクセス可能にすることを目指しています。このために、140KのPython Kaggleノートブックからデータを収集し、自然言語とコードの対応関係を抽出しています。
- データの前処理とタスクの説明も提供されており、NLクエリに対応するsklearnコードの生成を目指しています。これにより、開発者は広範なsklearn APIを効果的に活用することができます。
- モデルは、完全な操作呼び出し文を合成するタスクに取り組んでおり、予備的な結果では、モデルはしばしば任意のハイパーパラメータ値を作り出し、開発者が直接使用することがほとんどできないコードを生成することが示されている。
- マスクされた演算子呼び出し生成では、呼び出し文からすべてのハイパーパラメータの値をマスクし、名前だけを残す。
- ハイブリッド演算子呼び出し生成では、NLコードのペアの手作業による検査により、クエリが時々コードで使用されるハイパーパラメータのサブセットを明示的に記述することがあることが明らかになった。このような場合、モデルは少なくともそれらのハイパーパラメータ値を予測するための必要なコンテキストを持っている。このクエリの形式をサポートすることで、ユーザーは最も重要なハイパーパラメータを前もって表現することができる。
- モデルは、明示的に記述されている場合、NLクエリでハイパーパラメータ値を保持し、それ以外の場合はマスクする新しいハイブリッドタスクを定式化した。
- 複数の深層学習パラダイムを比較し、特にタスクに適したハイブリッド演算子呼び出し生成を使用することを決定するために、さまざまなトレーニングタスクの結果を比較した。
- トランスフォーマー、CodeT5、CodeGenなど、3つの異なるディープラーニングパラダイムを比較し、それぞれの特性について詳細に説明した。
- 実験の結果、HOIジェネレーションタスクで最も優れたパフォーマンスを発揮するモデルとして、0.77BパラメータのファインチューニングされたCodeT5が選ばれた。
- NLコードペアからのテストデータとユーザーの実際のデータを使用して、モデルの性能を評価し、トレーニングタスクに対応するフォーミュレーションに基づいてオペレータ名とオペレータ呼び出しの生成能力を評価した。
以上が要約です。
- greedy (top-1) および top-K (top-5) デコーディングは、オペレータを生成する際に使用される。評価は、Kaggle のプロキシデータセットに基づいて行われ、その後、20人の参加者を募集し、それぞれに LowCoder を使用して AI パイプラインを作成するタスクを実施。参加者は、LowCoder と自然言語インターフェース (LowCoderNL) 付きとなしの 2 つの条件でタスクを行った。結果は、LowCoderNL を使用する場合、未知のオペレータを発見する確率が高く、特に LowCoderNL を使用することで、未知のオペレータを発見する確率が高まることが示された。
- 参加者の経験によると、LowCoderNLを使用すると初心者はweb検索よりもNL条件で演算子を見つけやすいことが統計的に示された。結果は80のタスク全体にわたって検討しても変わらない。この結果から、LowCoderNLは以前には知られていなかった演算子を見つけるのに特に役立ち、特にweb検索と比較して優れていることが示唆される。
- 参加者はAIパイプラインを構築し、反復的に洗練することができた。その過程で、演算子やハイパーパラメーターを交換することが最も一般的だった。初心者と経験者の両方がパイプラインを反復的に洗練することができたが、初心者はタスクを完了する際にいくつかの課題に直面した。
- 低コードを使用する利点と課題については、機械学習演算子の発見、パイプラインの反復的構成、および特に初心者が機械学習や低コードツールの使用に関して直面する課題に焦点を当てた。参加者のフィードバックも収集され、LowCoderの将来の開発に役立てられた。
- 低コーダーNLは、参加者が以前知らなかった演算子を見つけるのに役立った。参加者は、LowCoderNLを使用して以前に知らなかった演算子を見つけることができたが、一般的なウェブ検索に関する課題もあった。
- 参加者はLowCoderを使用して機械学習タスクを実行する際にさまざまな課題に直面した。特に、初心者は「何を知らない」という課題に直面し、LowCoderNLの使用に関する課題もあった。
- 結果から、LowCoderVPとLowCoderNLの両方が、演算子の発見やパイプラインの反復的構成など、初心者を含む参加者にとって有益であることが示された。これにより、プログラミングの形式的なトレーニングが不足しているため、市民開発者が特に利益を得る可能性がある。
- 低コード機械学習ツールは、初心者市民開発者向けにより適したものに改
- ユーザースタディにより、LowCoderは開発者がAIパイプラインを作成し、繰り返すのを助けることが示された。
- LowCoderNLは、75%のタスクで以前に知られていなかったオペレータを発見するのに役立ち、Web検索では22.5%のみであった。
- PBNLは、何を達成したいかが明確でない場合に初心者をサポートするのに失敗した。
- LowCoderの実装、LowCoderNLのトレーニングおよび評価用のデータセット、およびユーザースタディの材料は、https://doi.org/10.5281/zenodo.7042296で入手可能。
- ACM Trans. Softw. Eng. Methodol. 31, 2, Article 29 (mar 2022), 47 pages. https://doi.org/10.1145/3487569
- 付録A タスクの定式化
- Table 4にはNLクエリの追加の例と、タスクの定式化に基づく対応するコードが含まれています。
- 付録B データに関する追加の詳細
- NLクエリがコードセル内の単一のsklearnオペレータ呼び出しに対応するデータの62%を見つけ、残りの38%では複数のsklearnオペレータ呼び出し文があります。Table 5にハイブリッドオペレータ呼び出し内のハイパーパラメータの分布が示されています。
- 付録C デコーディング技術
- 異なるデコーディング技術を実験し、出力のハイブリッド操作呼び出しシーケンスを生成します。具体的には、貪欲デコーディング、Top Kサンプリング、Nucleusサンプリングを試します。
- 付録D モデルの結果
- モデルの性能をベンチマークし、いくつかの異なる変数にわたる推論時間を記録します。具体的には、学習戦略、モデルサイズ、デコーディング、ツール対応の操作などを比較します。
- 付録E 実際のユーザーデータの注釈ガイドライン
- 2つの著者が実際のユーザーデータを手動で注釈付けし、注釈付け時に特定の基準を使用します。具体的には、正確な予測、NLが不明、部分的に正しい、ツールでサポートされていない、モデルからの出力なしを見ます。Table 7には、実際のユーザーデータの各タスクのデータ分布が示されています。
- Table 4: 異なるタスク定式化のNLコードペアの例
- Table 5: ハイブリッドオペレータ呼び出し内のハイパーパラメータの分布
- 付録G ユーザースタディ
- G.1 ユーザースタディタスク
- データセットパラメータの分布を示します。
- 付録F 実際のユーザーデータでのモデル評価
- LowCoderNLの実際の
- 研究では、視覚的なブロックを使用してモデルを意図的に改善し、データ処理やハイパーパラメータの調整をランダムに行った。
- 作業中にエラーメッセージや具体的な演算子の名前に関するトラブルがあり、ツールの機能や検索方法について困難を経験した。
- タスクの理解や演算子の使用に関する問題があり、ツールの機能や検索結果に不満を持つ参加者もいた。
- ツールの特定の機能を理解せず、NLP検索の結果に不満を持つ参加者もいた。
- ツールがサポートしていない操作を行いたいと考える参加者もいた。
- 参加者のフィードバックによると、NLPバージョンやツールの特定の機能に不満を持つ参加者もいた一方で、データテーブルの機能やツールの特定の部分に満足している参加者もいた。
評価
この研究は、低コードプログラミングとAIを組み合わせたツールの重要性について議論しています。具体的には、新たな低コードツール「LowCoder」を紹介し、それが視覚プログラミングと自然言語インターフェースを組み合わせた初のツールであることを明らかにしています。ユーザースタディを通じて、LowCoderが開発者にとって有益であることが示されています。また、他の低コードAIツールと比較し、自然言語プログラミングの重要性についても議論しています。研究は、AI開発者に対するLowCoderの影響を調査し、低コードプログラミングの利点と制約を理解しようと試みています。LowCoderはPython FlaskバックエンドサーバーとBlocklyメタツールに基づいて構築され、自然言語からコードへの変換モデルを使用しています。大規模なAPIを低コードツールを介してアクセス可能にする目標の一環として、140KのPython Kaggleノートブックからデータを収集し、自然言語とコードの対応関係を抽出しています。
上記の内容は、開発者がsklearn APIを効果的に活用するためのNLクエリに対応するsklearnコードの生成を目指すものです。モデルは操作呼び出し文を合成し、ハイパーパラメータ値を生成します。一方で、ハイパーパラメータ値はマスクされ、ハイブリッド演算子呼び出し生成では、ハイパーパラメータのサブセットが明示的に記述されることもあります。NLクエリでハイパーパラメータ値が明示的に記述されると、それを保持し、それ以外の場合はマスクします。深層学習パラダイムの比較と評価は、トランスフォーマー、CodeT5、CodeGenを対象とし、その中で最も優れたパフォーマンスを発揮したのはファインチューニングされたCodeT5でした。モデルの性能評価は、テストデータとユーザーの実際のデータを使用し、オペレータ名とオペレータ呼び出しの生成能力を評価しました。
この研究では、AIパイプライン作成のタスクにおいてLowCoderとLowCoderNL(自然言語インターフェース付き)の両方が使用されました。結果として、LowCoderNLを使用することで、未知のオペレータの発見が容易になることが示されました。初心者は、web検索よりもNL条件で演算子を見つけやすいことが統計的に明らかになりました。これは80のタスク全体でも同様でした。また、参加者はAIパイプラインを反復的に洗練することが可能で、その過程で演算子やハイパーパラメーターの交換が一般的であることが明らかになりました。初心者はタスクを完了する際にいくつかの課題に直面しましたが、低コーディングツールの使用は特に役立ちました。また、参加者のフィードバックはLowCoderの将来の開発に役立つよう収集されました。結論として、LowCoderとLowCoderNLは初心者を含む参加者にとって有益であり、特にプログラミングトレーニングが不足している市民開発者にとって有益であることが示されました。
この研究では、AIパイプラインを作成し、その反復を容易にするツール、LowCoderが開発されました。LowCoderNLは、75%のタスクで新たなオペレータを発見するのに有用であり、これはWeb検索の22.5%よりも高い結果を示しています。しかしPBNLは、目的が明確でない場合の初心者のサポートには失敗しました。この研究の実装、トレーニングと評価用のデータセット、ユーザースタディの材料は指定のURLで利用可能です。
付録部分では以下の内容が述べられています:
- 付録Aではタスクの定式化を介して、NLクエリとそれに対応するコードの例が示されています。
- 付録Bでは、NLクエリが単一のsklearnオペレータ呼び出しに対応するデータの62%を見つけ、残りの38%では複数のsklearnオペレータ呼び出し文があることを報告しています。
- 付録Cでは、異なるデコーディング技術が実験され、出力のハイブリッド操作呼び出しシーケンスが生成されます。
- 付録Dでは、モデルの性能をベンチマークし、学習戦略、モデルサイズ、デコーディング、ツール対応の操作などの変数にわたる推論時間を記録しています。
- 付録Eでは、著者が実際のユーザーデータの注釈付けを行い、その際に特定の基準を使用しています。
このテキストは、研究結果の一部を詳述しています。表4と5は、自然言語(NL)コードペアの異なるタスク定式化とハイブリッドオペレータ呼び出し内のハイパーパラメータの分布について言及しています。付録GとFは、ユーザースタディと実際のユーザーデータに基づくモデル評価に関連しています。
研究では、視覚的なブロックを活用してモデルを改良し、データ処理とハイパーパラメータの調整をランダムに行いました。しかし、参加者たちはエラーメッセージや特定の演算子の名前についてのトラブル、ツールの機能や検索方法についての問題、タスクの理解や演算子の使用に関する困難、ツールの特定の機能やNLP検索結果に不満、そしてツールがサポートしていない操作を行いたいという欲求など、いくつかの問題を経験しました。
それにもかかわらず、参加者のフィードバックは一貫性がなく、NLPバージョンやツールの特定の機能に不満を持つ人もいれば、データテーブルの機能やツールの特定の部分に満足している人もいました。
和訳
1 / 1
100%