- 1 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:18:57.52 ID:CAP_USER
-
FacebookはC++、Java、Pythonなどの高水準言語で書かれたプログラムコードを別のプログラミング言語に変換するニューラルトランスコンパイラを開発したという。このシステムは教師なし学習を採用しており、同社は従来よりもかなり効率が改善したとしている。
既存のプログラムコードを別の言語に移行するには、両方の言語について専門的な知識が必要な上、コストがかかってしまいがちだ。たとえばオーストラリアのコモンウェルス銀行はプラットフォームをCOBOLからJavaに移行するために5年の歳月と約7億5,000万米ドルを費やした。
Facebookは教師なし学習というアプローチ法に取り組み、C++、Java、Python間でソースコードを変換することができる「TransCoder」を開発した。トレーニングには280万件以上のオープンソースリポジトリからなるGitHubコーパスを使用した。TransCoderは元のプログラムコードを別の言語へ変換し、変換したプログラムコードを元の言語へ再度変換することを繰り返して学習している。
TransCoderのパフォーマンス評価にはGeeksforGeeks(コーディングの問題点や解決方法を集めたオンラインプラットフォーム)から抽出したC++、Java、Pythonの関数852個を使用した。Facebookによると、最も評価の高かったバージョンのTransCoderは、厳密に言えば同一の関数を生成していないことが多かったが、計算精度が高かった。以下にTransCoderが期待される結果を返した割合をまとめる。
C++からJavaへの変換:74.8%
C++からPythonへの変換:67.2%
JavaからC++への変換:91.6%
PythonからJavaへの変換:56.1%
PythonからC++への変換:57.8%
JavaからPythonへの変換:68.7%
TransCoderが各言語に特有のシンタックスを理解するだけでなく、言語のデータ構造やメソッドも理解したことが証明されたと研究者らは述べている。専門知識を持たなくても、TransCoderを使えばあらゆるプログラミング言語で容易にソースコードを生成できます。しかも商業用のソリューションを大幅に上回っています。
AIによるコード生成システムを開発しているのはFacebookだけではない。今年行われたMicrosoftのカンファレンス「Build」では、OpenAIが英文で書かれたコメントから関数を生成するモデルをデモンストレーションした。2年前にはライス大学の研究者が「意図」を読み取ってコードを生成する「Bayouというシステムを作っている。
Intel Labsの主任研究者兼ディレクターのJustin Gottschlich氏はVentureBeatのインタビューに対してこう語った。
これらはソフトウェア開発の無駄を取り除いてくれます。バグ対応の手間が省けるので、プロダクティビティの加速化に役立ちます。そして新たな職を生み出します。なぜならプログラミングをしたことのない人々でもこれらのインターフェイスを通じてクリエイティブな直観を形にすることができるからです。
https://thebridge.jp/2020/06/facebooks-transcoder-ai-converts-code-from-one-programming-language-into-another - 2 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:21:48.61 ID:pdMnAXm5
- もうやりたい事を日本語で文章書いたら動けよ
- 37 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:30:52.79 ID:4AGSfSaK
- >>2
漢字Talk時代のApple Scriptが日本語表記okだった気がする - 3 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:28:36.18 ID:Xx+137s0
- こういうのはだいたい、不具合でて直そうとしたら人には理解できなくて苦労する
- 4 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:32:25.52 ID:3bcWTHJP
- こういうのって違う言語に変換してから元の言語にもう一回変換しても同じ動きするのかな
それか俺が書いた無駄な部分が最適化されてたりして - 5 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:32:49.72 ID:DdYJsufQ
- >言語のデータ構造やメソッドも理解した
まじかよ - 6 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:33:26.30 ID:Cnw6NGdX
- SE時代、似たようなやつをリプレースの時作ったわ
- 7 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:36:12.34 ID:5d0pB2R+
- 99%変換できても残りの1%がバグになるんなら使い物にはならないんじゃね
- 8 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:37:59.39 ID:MQDPCWjT
- 対応言語を一周して同じ動きになってから発表しろよ。
- 9 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:46:22.86 ID:SwSN/ozR
- むしろ、ルールベースで出来ないの?
- 10 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 21:50:57.29 ID:5KHHmIK4
- オーストラリアのコモンウェルス銀行はプラットフォームをCOBOLからJavaに移行するために5年の歳月と約7億5,000万米ドルを費やした。
コボルをJavaにロジックそのままで移行するのはバカ
- 11 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:00:17.25 ID:L6Jj4+oZ
- prologから javascriptに変換してから誇ってもらおうか!
- 13 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:01:24.68 ID:n1BvwaCv
- べーしっ君
- 14 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:02:55.00 ID:uosQIoSu
- よし、COBOLを一括変換だな
- 15 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:08:05.60 ID:LYXQviAg
- これでバグが出たら地獄見る気がする
- 16 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:10:01.63 ID:0AJ0qp+Y
- そして、致命的な不具合が発生しても一生修復できないプログラム完成
- 17 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:10:02.82 ID:wq05Rhfq
- ~%変換とか意味ないから。
100%じゃないとゴミですよ。 - 18 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:29:29.92 ID:fhl8TdVp
- >>1
夏が近づいてきたな
肝試しはこのジェネレータの出力コードにきまり - 19 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:30:17.51 ID:d0jLNknO
- C++ソースをアセンブラに翻訳してみてもらいたい。
- 32 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:17:40.60 ID:29WCXgwe
- >>19
馬鹿発見 - 39 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:40:03.84 ID:Bq7nXeKX
- >>19
仮にアセンブラをアセンブリに読み替えたとしてもコンパイラの役割だろそれは - 20 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:30:33.79 ID:iSLbcHy0
- 競技プログラミングぐらいなら
100%変換可能だろ - 21 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:37:05.91 ID:YA0LBWXl
- バグも翻訳中に直してくれるの?
- 22 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:41:36.07 ID:D3u6MgW+
- 自然言語をプログラム言語に翻訳できる日も近い
- 23 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:45:11.70 ID:lbOLTlGL
- FBって無能なんだな
- 24 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:49:36.56 ID:HASRNfE3
- アスペは文章を全部頭に入れてから考えるのが苦手
嫌われる要素しかない人間、それがアスペルガー症候群
- 25 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:49:46.01 ID:FhO6EsCB
- c++とjavaは文法が似てるだけあって精度が高い
pythonはかなり違うし動的型付けやから変換しんどそう - 26 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:52:15.95 ID:SVKGpFpI
- 単純なコード以外無理そう
- 27 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:56:31.69 ID:g7+gg0e7
- クレーム対応部門だけが生き残るのか。
超専門用語「仕様です」のみって言う対応マニュアルが配られて・・・ - 28 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 22:57:57.63 ID:FhO6EsCB
- 教師なしの学者機能だから延々とコード変換を繰り返して精度を上げていくんだろうな
こいつの変換精度でクソコードかどうか判定できそう
- 29 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:04:26.39 ID:ydGIzguN
- そうだね。本当に理解できたのなら、変換成功率は100%になるはず。
- 30 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:13:28.31 ID:OXRRxryj
- >PythonからC++への変換:57.8%
だめじゃん - 31 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:15:17.25 ID:DktoS3Cl
- 変換するくらいなら作り直す
- 33 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:18:36.43 ID:Bg7swl4C
- ちゃんと動くまで勝手にやってくれるなら素晴らしい
- 34 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:21:35.43 ID:gKEBQvmu
- COBOLからJavaとかならNTTデータがやってなかったっけ?
- 35 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:26:46.68 ID:dJKSzFhH
- 勝手に要求仕様書を読んで、勝手に理解して、勝手にテストしてくれるAIが欲しいw
システム作るところが楽しいんだから、楽しみを奪わないで欲しいw - 36 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:28:44.19 ID:oAp0YOOF
- 元のソースコードが完璧ならいずれ出来そうだけど、たいていのプログラムはバグを抱えてるからソレが悪さして訳分からん不具合抱えて動作すらしなさそう
- 38 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:38:48.39 ID:upPVLLb6
- 自動変換は変数名がどうなるか分からず変な変数名になる恐れがあるな。
- 40 名前:一般よりも上級の名無しさん 投稿日時:2020/06/17(水) 23:40:46.65 ID:nUTYiDSL
- C系とかメモリ管理がエグいのはまず無理だろうな。
あと、クソソースは変換後もクソソースw
そう考えたらクソソースを改善してくれるAIの方が使えるわ。
内容を本当に把握できてるならだけど。 - 41 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:05:01.81 ID:cTBLwak2
- C#↔VB.NETを100%変換頼むわ
- 42 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:06:26.49 ID:Mash+A4a
- 変換率100行かないなら、どんだけテストしなきゃいけないのか
- 43 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:07:35.37 ID:CQNMge/7
- 要するにまだ全然使い物にならんってことね。
10万行程度の小規模なシステムでも99%の精度じゃ1000行間違えてるってことだし。
99.99%の精度が出てやっと10行まで抑え込める。 - 44 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:20:39.26 ID:l47ar4Dh
- 変換したのを逆変換したら元に戻るのかな
- 45 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:28:05.93 ID:vQXLdcI0
- PythonからVBAへの変換やってほしい
もうVBAとか触りたくないねんけど
あれ作れこれ作れってあとからあとからマクロ要望出てきてもうやだ - 46 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:28:19.35 ID:vJHpgiyf
- 変数や関数名が001aとかになってそう
- 47 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:30:08.05 ID:MAIOwiHT
- テストコード込のコードの前提で、AIでテストを完全にパスするまで再帰してくれたらええのに
逆の発想で、クラスとメソッドのスケルトンとテストコードから、中身を自動実装するAIあったらええのに
- 48 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 00:52:27.77 ID:2YU1lhVa
- 大手なら既にコンバージョンツールぐらい自前で持っている
- 49 名前:一般よりも上級の名無しさん 投稿日時:2020/06/18(木) 01:42:02.35 ID:oYo/HTdu
- ポインタとかGCとか高階関数とか
言語によってない機能はどうすんだろ
コメント一覧