那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是Deep TabNine?機器學習極大提高智能編碼能力

WpOh_rgznai100 ? 來源:lq ? 2019-07-27 07:04 ? 次閱讀

導讀:在過去的一年中,AI 生成書面文字的能力大大提高。通過掃描龐大的文本數據集,機器學習軟件可以生成從短篇小說到歌詞的各種令人信服的樣本。現在,一個名為 Deep TabNine 的新程序,可以將相同的技術應用于編碼世界。這個程序一經F推出便好評如潮,大有搶了程序員飯碗的架勢。這個程序是否真有這么好用?我們來一探究竟。

什么是Deep TabNine?

據外媒 The Verge 報道,Deep TabNine 是由滑鐵盧大學的計算機科學本科生 Jacob Jackson 創建的編碼自動完成器,程序員可以將它作為附件安裝在他們選擇的編輯器中,程序員寫代碼時,這個程序會給出下一行代碼建議,每次提供一小段代碼。你可以將它理解為 Gmail 的智能撰寫功能用到了代碼上。

據悉,Jacob 于 2018 年 2 月開始研究該軟件的原始版本,在 11 月發布之前它叫做 TabNine。本月早些時候,他發布了一個更新版本,該版本使用由研究實驗室 OpenAI 設計的深度學習文本生成算法模型 GPT-2 來改善能力。該模型使用 Transformer 架構,旨在解決自然語言處理中的問題,Deep TabNine 用這個架構來理解代碼中的英語。例如,模型可以使用 if / else 語句來進行否定。在訓練時,模型的目標是根據前面給定的 token 來預測下一個 token。

Deep TabNine 使用 GitHub 的近 200 萬個文件進行了訓練,它具有預先存在的知識,而不是僅僅從用戶當前的項目中學習。此外,這個模型還引用以自然語言編寫的文檔來推斷函數名稱、參數和返回類型。它還能利用傳統工具難以發現的小線索。例如,它可以理解 app.get_user() 的返回類型被假定為具有設置器方法的對象,且 app.get_users()的返回類型被假定為列表。

機器學習極大提高智能編碼能力

Jacob 表示,這種軟件雖然并不新鮮事物,但機器學習已經大大地改善了它的功能。“這對我來說是解決了一個問題。”

Deep TabNine 的更新版本讓程序員們留下了深刻印象,他們在 Twitter 上稱這個軟件“驚人”、“讓人瘋狂”和“絕對令人興奮”。

用戶 Franck Nijhof 是一位在閑暇時間從事開源家庭自動化軟件工作的 IT 經理,他對 Deep TabNine 不僅感到驚訝 ,還覺得既興奮又害怕。“我使用 Deep TabNine 的第一個小時內沒有作用,因為我不停地被它驚訝到,腦子里一直不停地問它到底是怎么知道的?怎么做到的?” Nijhof 通過電子郵件告訴 The Verge。

這樣的自動完成工具之前就有過,但 Nijhof 表示 Deep TabNine 的建議更準確。“我過去曾嘗試過一些'通用'的智能編寫程序,但它們很煩人而且沒有幫助,”他說道,“TabNine 無疑是一個改變游戲規則的存在。”

特斯拉人工智能總監 Andrej Karpathy 也對這個程序贊不絕口:

深度學習自動編碼 https://t.co/WenacHVj7z 非常酷!很久以前我在做 char-rnn(字符級循環神經網絡)時嘗試過相關的想法,但當時它并不是很有用。隨著新工具(GPT-2)的出現和更多的關注,它將會發揮更大的作用。

- Andrej Karpathy(@karpathy),2019年7月18日

機器學習預測讓代碼建議更優,支持22種語言

Jackson 表示,該軟件之所以可以提供更好的建議,是因為它可以進行預測。大多數自動填充程序必須解析用戶已編寫的內容來提出建議,就像人使用數學公式中的步驟一樣理順代碼。相比之下,Deep TabNine 依賴于機器學習的能力來查找數據中的統計模式以進行預測。

與文本生成算法在大量書籍、文章和電影腳本數據集上進行訓練的方式相同,Deep TabNine 對來自編碼庫 GitHub 的 200 萬個文件進行了訓練。它在這些數據中找到模式,并用其在任意給定代碼行中可能出現的內容給出建議,無論是變量名還是函數。

Jackson 說,使用深度學習創建自動編碼軟件有幾個優點。首先,它可以輕松添加對新語言的支持。只需要將更多的訓練數據放入 Deep TabNine 中,它就會挖出模式。這意味著,Deep TabNine 支持大約 22 種不同的編碼語言,而大多數同類型產品只支持一種。

Deep TabNine 支持的編碼語言完整列表如下:

PythonJavaScript,Java,C ++,C,PHP,Go,C#,Ruby,Objective-C,Rust,Swift,TypeScript,Haskell,OCaml,Scala,Kotlin,Perl ,SQL,HTML,CSS,Bash

最重要的是,由于深度學習的分析能力,Deep TabNine 提出的建議整體上具有很高的質量。而且,因為軟件不會查看用戶自己寫的代碼來提出建議,所以它可以從編碼的那一刻開始就起作用,而不用等著從用戶編寫的代碼中尋找蛛絲馬跡。

TABNINE并不完美:不擅長創造性代碼

當然,這個軟件也并非完美。它在提出建議時會出錯,另外,它也不是對所有類型的編碼都有用。Hacker News 和 r / program subreddit 的用戶已經找到了它的各種優點和編程漏洞(但大多數傾向于正面評論)。

用戶1:免費版本 200 KB 的限制對于實際代碼庫來說太低了,有考慮過提高限制嗎?

Jacob Jackson 回復:可以試下付費版 30 天返款。所有版本的 TabNine 仍然適用于大于索引限制的項目。索引中將添加和刪除文件,以確保索引文件與用戶正在編輯的文件盡可能相關。

用戶2:可以用,但不是很好用。對于你最喜歡的編輯器不支持或沒有插件的語言來說,這是一個非常酷的技術,但是如果編輯器已經對語言有很好的支持(比如 VSCode for Typescript),它可能不會比連接自動完成的編輯器更好用。

用戶3:添加 IntelliJ Idea 支持,我會買它:)

用戶 4:支持 Emacs 后,我會買!

對于這個為程序員構建的編碼工具的編輯器和工作流程精確度,大家也有很多看法。

Jackson 也坦承了 Deep TabNine 的一些缺點,如它更適合某些類型的編碼。它在自動完成相對死記硬背的代碼時效果最好,這種編程已經被做過數千次,只有很小的變化。但是,它并不擅長用戶用于解決新問題的探索性代碼。考慮到軟件的智能來自數據中的模式,這并不奇怪。

那么,它對于普通程序員真的有用嗎?這取決于很多因素,比如他們使用的編程語言,他們想要實現的目標等。但 Jackson 表示,與其說是一個人類編碼助手,它更像是一種更快的輸入法(一種常見的被稱為結對編程的做法)。

“想象一下,現在所有的程序員都在使用相當于手機的鍵盤打字,而使用 Deep TabNine 有點像轉而去使用常規鍵盤,”他說道。這款軟件可以提高用戶輸入信息的速度,并且可以提高工作效率,“因為你可以花更多時間考慮內容而不是細節。”但它不會按照你的方式編寫代碼,而你也確實需要要密切關注它的動向。

如何使用 Deep TabNine?

雖然集成深度學習模型具有多種優勢,但使用它需要大量的算力。Jackson 明確提到,在筆記本電腦上運行無法實現 TabNine 用戶習慣的低延遲。對此,他們提供了一種解決方案——TabNine Cloud(Beta)服務,該服務將使用戶能夠使用 TabNine 的服務器進行 GPU 加速自動完成。訪問 TabNine Cloud,可以在此處免費注冊:https://tabnine.com/beta_signup

但是,有許多人更愿意將代碼保存在他們的機器上。為了確保代碼的隱私性和安全性,TabNine 團隊正在研究以下用例:

他們承諾在未來推出尺寸減小的模型,個人開發者可以在筆記本電腦上運行,提供合理的延遲。

企業可以選擇模型許可,在自己的硬件上運行。他們還提供訓練自定義模型,以了解企業代碼庫特有的獨特模式和樣式。

商業化前途未定

目前,Jackson 正在考慮下一步該用這款軟件做些什么,以及是否值得商業化。他說,他本人目前在一家大型科技公司有一份全職工作,他還不想放棄,但來自各領域的人都對這款軟件表示“非常感興趣”。“我還沒有真正決定我想用它做什么。”

目前,TabNine 的個人許可用費用為 49 美元,商業用途費用為 99 美元,個人必須注冊 Deep TabNine 測試版才能訪問新的深度學習功能。購買許可之后, TabNine 能夠索引更多文件,給出更多相關建議。

網站上寫道:“TabNine 每分鐘至少可以為你節省 1 秒鐘。如果你認為你的時間價值超過 1.40 美元/小時,它將幫你在不到一年的時間內收回成本。“

他說,如果他能夠使用開源軟件創建這樣的程序,那么 AI 輔助編碼的未來就是一片光明。

“這是在這個領域工作的每個人的目標,告訴計算機你想要寫什么樣的代碼,它就能幫你寫,”他說道。“我們目前距離實現這個目前還很遠,但我認為這種工具可以幫助你更方便地表達自己的想法。”

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼
    +關注

    關注

    6

    文章

    957

    瀏覽量

    54954
  • 編輯器
    +關注

    關注

    1

    文章

    806

    瀏覽量

    31293
  • 機器學習
    +關注

    關注

    66

    文章

    8441

    瀏覽量

    133087

原文標題:搶程序員飯碗?自動寫代碼的Deep TabNine真如此神奇?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【「具身智能機器人系統」閱讀體驗】+初品的體驗

    解決許多技術的和非技術的挑戰,如提高智能體的自主性、處理復雜環境互動的能力及確保行為的倫理和安全性。 未來的研究需要將視覺、語音和其他傳感技術與機器人技術相結合,以探索更加先進的知識表示和記憶模塊,利用強化
    發表于 12-20 19:17

    內存救星-極大提高系統速度的工具

    內存救星-極大提高系統速度的工具1600%提高系統速度的工具 軟件簡介:   Windows為每個應用程序平等的分配內存,但這樣并不合理。例如:你在玩游戲時,一些
    發表于 07-31 16:46

    人類與人工智能機器人合作的前景

    的工資會比原來高出很多。  其次,人類的生活品質會極大提高。人工智能的進步將帶來許多社會利益。例如,無人駕駛汽車會減少90%的交通事故。人工智能可以將人們從日常工作中解放出來,尋找新的定位和職業,把
    發表于 04-16 17:42

    人工智能機器學習的前世今生

    如何傳授給計算機的過程。任何機器使用算法以智能方式執行任務,這就是展現的人工智能機器學習是人工智能
    發表于 08-27 10:16

    新型諧波分析方法提高智能電表精度的技巧精選

    MS-2223:新型諧波分析方法提高智能電表的精度并降低計算開銷
    發表于 09-16 12:39

    機器學習的創新/開發和應用能力

    機器學習的未來在工業領域采用機器學習機器學習和大數據工業人工智能生態系統
    發表于 12-16 07:47

    人工智能機器學習提高網絡安全性的方法

    人工智能機器學習可以幫助組織提高網絡安全性的一些方法
    發表于 01-25 06:25

    什么是人工智能機器學習、深度學習和自然語言處理?

    機器人現在可以與具有多任務處理能力的人類工作者一起工作。計算機視覺、傳感器網絡和人工智能廣泛應用于數控機床和裝配線,以減少誤差,實現自動修正和提高生產率。交通: 基于應用程序的出租車
    發表于 03-22 11:19

    歐洲2020年將用智能電表代替80%的電表從而進一步提高智能電網的能力

    預計發展中和發達經濟體將進一步加強其智能電網,并通過部署更多的智能電表,建立管理電力消耗的雙向通信。據歐盟委員會稱,歐洲地區計劃到2020年用智能電表代替80%的電表,這就意味著將部署2億智能
    發表于 01-09 16:07 ?3397次閱讀

    人工智能機器學習助力下 工廠的生產率也得到了極大提高

    機器人和其他自動化技術極大提高了當今工廠的生產率。但是,它們仍然有一個主要限制:它們要求人們告訴他們該怎么做。
    發表于 11-13 10:14 ?652次閱讀

    區塊鏈如何提高智能電網的使用效率

    美國伊利諾州(Illinois)公用事業大廠ComEd宣布,擴大部署新興技術,研發區塊鏈和智能化領域,確保電網的安全性和復原力,同時提高智能電網的使用效率,并滿足消費者不斷變化的需求。
    發表于 01-04 10:43 ?1171次閱讀

    人工智能技術的熱點透視

    機器學習迎來爆發期是神經網絡研究領域領軍者Hinton在2006年提出了神經網絡Deep Learning算法,使神經網絡的能力大提高
    發表于 01-06 11:51 ?892次閱讀

    人工智能/機器學習/深度學習的關系

    機器學習”“人工智能”“深度學習”這三個詞常常被人混淆,但其實它們出現的時間相隔甚遠,“人工智能”(Artificial Intellig
    的頭像 發表于 01-03 15:29 ?8177次閱讀
    人工<b class='flag-5'>智能</b>/<b class='flag-5'>機器</b><b class='flag-5'>學習</b>/深度<b class='flag-5'>學習</b>的關系

    環路供電智能變送器的功耗限制如何提高智能水平

    電子發燒友網站提供《環路供電智能變送器的功耗限制如何提高智能水平.pdf》資料免費下載
    發表于 11-28 11:25 ?0次下載
    環路供電<b class='flag-5'>智能</b>變送器的功耗限制如何<b class='flag-5'>提高智能</b>水平

    人工智能機器學習和深度學習是什么

    在科技日新月異的今天,人工智能(Artificial Intelligence, AI)、機器學習(Machine Learning, ML)和深度學習
    的頭像 發表于 07-03 18:22 ?1431次閱讀
    百家乐心术| 百家乐连线游戏下载| 王牌百家乐官网的玩法技巧和规则 | 百家乐里面的奥妙| 百家乐布| 百家乐电子| 大发888中文版| 娱乐城百利宫娱乐| 武冈市| 百家乐官网平注法是什么| 八大胜娱乐城| 百家乐官网玩法的技巧| 百家乐官网园百利宫娱乐城怎么样百家乐官网园百利宫娱乐城如何 | 澳门百家乐官网走势图| 大上海百家乐官网的玩法技巧和规则 | 24山风水发几房| 百家乐群html| 威尼斯人娱乐城官方站| 网络娱乐城| 百家乐官网电子路单破解| 百家乐官网微笑心法搜索| 百家乐游戏软件开发| 德州扑克大小顺序| 模拟百家乐官网游戏软件| 澳门百家乐单注下限| 威尼斯人娱乐城游戏| 百家乐官网有几种打法| 伟易博百家乐官网娱乐城 | 万豪娱乐| 百家乐官网六合彩| 网上玩百家乐有钱| 大发888娱乐场下载iypu rd| 剑阁县| 皇家百家乐官网的玩法技巧和规则 | 新利国际网上娱乐| 伟易博百家乐官网娱乐城 | 大发888体育官网| 网上百家乐官网哪家最好| 百家乐娱乐网址| 甘泉县| 百家乐博彩软件|