AI書き込みプログラム、これはあまり簡単ではありません!

昨年の初めに、マイクロソフトはDeepCoderというマシン学習システムを導入し、システムに自己エンコード機能があると主張し、人工知能の開発を一歩進めました。

多くの機械学習や深い学習方法で人工知能が構築されているのと同様に、DeepCoderによって作成されたコードは、研究者がシステムを訓練するためによく使用する多数の既存のコード例に基づいています。

その結果、DeepCoderによって書かれたソフトウェアは、他の手作業で書かれたプログラムの一部を集めています。有名なWiredの雑誌「これは他のソフトウェアを手に入れる」と呼ばれています。

もちろん、DeepCoderの不満足な側面にもかかわらず、ソフトウェアに独自のアプリケーション作成をさせる研究はまだまだ特別な仕事であり、デジタル世界全体を爽快にする見込みがあります。

インテントベースのプログラミング

ソフトウェアで私たちのためにアプリケーションを作成したいときは、本当に欲しいものは何ですか? 答えは:ソフトウェアによって書かれたアプリケーションが私たちの意図をより良く表現できることを願っています。

「インテントベース」という用語は、マネージャのビジネス意思を予測する人工知能に基づいてネットワークを構成する方法である「インテントベースのネットワーク」の最近の台頭に由来します。

インテントベースのネットワークは、管理者がより高いレベルのビジネス戦略を開発するのに役立ち、ポリシーを実行できるかどうかを検証し、構成されたネットワークリソースを理想的な状態にすることができるかどうか、ステータスは効果的に監視され、必要に応じてすべての戦略が継続的に実施され修正されるようにします。

たとえば、Alexaにあなたのアルバムコレクションを追跡するためのアプリを書くよう依頼することができます。 この時点で、Alexaはコードを自動的に記述し、完了したらそれを表示します。

原則は何ですか?

私はAlexaを例にとってみましたが、AIで使用される方法が要件に似たアプリケーションを見つけ、必要に応じてコードを調整したり、コードスニペットを選んだりするのは難しくありません。プログラムの組み合わせを作る。

言い換えれば、AlexaはDeepCoderと同様のアプローチを採用しています。DeepCoderは、他の場所からコードを「借用」し、現在の顧客のニーズを満たすコードを組み合わせることです。

しかし、手動で書かれたコードのコレクションは、私たちが本当に欲しいAI書き込みソフトウェアではありませんか? 私たちが本当に求めているのは、アプリケーションを革新する能力を持つソフトウェアです。

言い換えれば、プログラムを書くときにAIが創造的であることができますか? 真に革新的なアプリケーションを書くことができますか? これらのアプリケーションは想定されていません。

第5世代言語

コンピュータサイエンスの研究者にとっては、何十年もの間、ユーザーの意図に基づいて必要なアプリケーションを生成するソフトウェアを持つことを楽しみにしていました。 しかし、実際には、Wikipediaのデータによると、1980年代に始まった第5世代の言語波は、「コンピュータをプログラマなしで問題を解決する」ことを試みました。

第5世代言語は、コンピュータが自動的に問題を解決することを期待する意図であり、プログラマが人材を再投入する必要なしに与えられた一定の制約に基づいてプログラムによって処理される。 このアイデアは有望だと思われますが、実験結果には依然として多くの制限があることが証明されています。

制約を指定するだけで問題を解決するのは理想的です。ほとんどの数学的最適化問題は、制約をうまく記述する一連の数式を求めています。

アプリケーションを作成する上での大きな課題の1つは、第5世代言語ではアルゴリズムをあまりうまく表現できないということです。プログラマはコードを書くときに独自のステップを持っています。

したがって、第5世代言語の開発は楽観的ではありませんが、ユーザーの意図と基本ソフトウェアを区別する宣言的および言語固有の言語(SQLやHTMLなど)の迅速な開発を促進します。

しかし、宣言的な言葉であなたの意図を表現することは、あなた自身のアプリケーションを書くことができるソフトウェアとはまったく異なります。 「SELECT * FROM ALBUMLIST」と「Alexa、私の写真アルバムを追跡するためのアプリを書いてください」と書くのは、はるか悲しいことです。 第5世代言語の欠けている部分はAIです。

アルゴリズム

1980年代には、ソフトウェアで独自のアプリケーションを作成する方法はありませんでしたが、人工知能の急速な発展に伴い、このアイデアはもはや手に届きませんでした。 第5世代言語が単純な最適化タスクを処理する能力は、コンピュータ代数システムの開発を容易にし、コンピュータ最適化アルゴリズム(コンピュータ生成アルゴリズムとも呼ばれる)の点でますます成熟しています。 もちろん、開発はこれに限定されない。

機械学習に基づいたニューラルネットワークアーキテクチャを構築するGoogleのAutoMLなどの研究プロジェクトもあります。 人工知能を使用していても、ニューラルネットワークアーキテクチャをアプリケーションと考えることができます。 この場合、アプリケーションを作成するには十分な人工知能ソフトウェアが必要です。

AutoMLとそれに似たプロジェクトには、開発の余地があります。 それにもかかわらず、私たちはまだSkynetには近づいていません。これらの努力でさえ、先に説明した意図に基づくプログラミング目標を達成するには十分ではありません。

人間の意思

本質的に、AutoMLとインテントベースのプログラミングは、ユーザーの意図を表現する方法が異なるため、異なる方向に動いています。 上記の例のように、Alexaは人間中心のもので、Alexaの自然言語処理機能と他のコンテキスト・スキルを組み合わせることで、消費者向けのユーザーエクスペリエンスを提供します。

AutoML(または機械学習や深い学習の作業)では、エンジニアは制約(ユーザーの意図など)を正しく記述する必要があります。

たとえば、猫の写真を識別するために人工知能を教えるには、次のような制約があります。100万の画像を含むデータセットでは、少なくとも10万個に猫が含まれています。 ソフトウェアはそれらを正しく区別することができ、エラーを区別することは可能ですが、すべての試みで学習します。

では、「アルバムを追跡するアプリケーションが必要です」という効果的な制約は何ですか? 現在のところ、この問題はまだ解決できない範囲です。

現在の開発

現在、人工知能はユーザの意図を満足させるアプリケーションを作成することはできないが、単純なアプリケーションシナリオではうまく適用されている。 私たちが現在達成しているのは、大きなデータセットからのパターン分析を可能にする人工知能です。

アルゴリズムをデータセットに適用することができれば、いくらか進展する可能性があります。 たとえば、AIベースのアプリケーションが多数の手動で作成されたワークフローにアクセスできる場合は、現在のワークフローの次のステップを予測する良い指標になります。

言い換えれば、私たちは現在のアルゴリズムの機能を「次善策」と呼んでいます。 ソフトウェアにアプリケーションの要件を理解させるためにはまだもっと努力する必要があるかもしれませんが、今ではAIを使用してこの目標を達成するための手順を探ることができます。

「次のステップへの最善のアクション」を見つけるために、AIはいくつかのアドバイスを提供することができますが、アルゴリズム全体を体系的に構築することはできません。

私たちは、人間の意図を表現するソフトウェアのタイプを作成しようとしており、自動的に問題を解決するだけではありません。 もちろん、アプリケーションを構築するときには手助けをする必要がありますが、このプロセスをできるだけシンプルにする必要があります。

これに基づいて、新興低コードまたはコードフリープラットフォーム市場がこの方向で急速に革新していることは奇妙なことではありません。

今日の低コードまたはコードフリープラットフォームは、複雑なドメイン固有の宣言言語をサポートし、人々が英語のような表現(または他の人間の言語)で意図を表現できるようにします。

また、テンプレート内にアプリケーションとアプリケーションコンポーネントを表現できるため、ユーザーは「ドラッグアンドドロップ」という簡単な方法でアプリケーションを組み立てることができます。

現在では、多くのローコード・ベンダーやノーコード・プラットフォームのベンダーは、アプリケーション作成者の能力を高め、アプリケーションが従うべきアルゴリズムを指定するのに役立つAIを適用する方法を模索しています。

たぶんいつか、私たちはこれらのプラットフォームに自分たちのニーズを直接伝えることができ、その後自動的にそれらを私たちのために書くでしょう。 私たちの技術はまだこのレベルに達していませんが、今日では、低コードまたはコードフリープラットフォームよりも目標に近いものになり、革新は驚くほど速くなりつつあります。 私はこの待ち時間が長く続くとは思わない。

著者:[方向]

オリジナルを読む

この記事はYunqi Communityのオリジナルコンテンツであり、許可なく複製することはできません。

元のリンク