程式設計師大殺器?帶你玩轉ChatGPT

京東雲開發者發表於2023-02-08

作者:京東零售 慄鴻宇

1.png

ChatGPT簡介

ChatGPT是一款基於AI技術的機器人對話軟體,它能夠與使用者進行智慧化的聊天對話,幫助使用者解決日常生活中的問題,為使用者提供豐富的資訊和服務。它整合了海量知識庫,能夠回答使用者的各種問題,包括日常生活中的常識性問題、文理科專業問題等,並且能夠根據使用者的需求提供個性化的資訊服務。

同時,ChatGPT還擁有強大的學習能力,透過收集網際網路上海量的文字資源,並在交流中不斷地學習使用者的交流習慣和語言表達方式,從而不斷最佳化自身的對話能力,讓使用者在使用ChatGPT時感到越來越自然和舒適。

總之,ChatGPT是一款先進的機器人對話軟體,能夠為使用者提供豐富的資訊和服務,讓使用者在日常生活中獲得更多便利和樂趣。

讓ChatGPT自己介紹一下自己:

訓練機制

官方部落格中介紹到,ChatGPT是基於GPT-3.5(模型card:https://datalearner.com/ai-resources/pretrained-models/gpt-3-5 )微調的結果。ChatGPT是InstructGPT的兄弟模型(InstructGPT是官方訓練的一個比GPT-3更好的遵循使用者意圖的語言模型,是基於OpenAI的alignment research技術研發的,比GPT-3更強的語言模型)。ChatGPT的訓練使用了基於人類反饋的強化學習( Reinforcement Learning from Human Feedback,RLHF)。這點與InstructGPT一樣,但是在資料收集方面有差異。OpenAI使用監督下的微調訓練了一個初始模型:人類人工智慧trainer提供對話,他們在對話中扮演雙方—使用者和人工智慧助理。這可以讓訓練者接觸到模型編寫的建議,以幫助組成對應的回應。

程式設計能力

目前幾家矽谷大廠都在朝著AI自動化程式設計努力:

•DeepMind的AlphaCode,據說「吊打72%人類程式設計師」,但尚未開放;

•傳聞中谷歌的「神秘專案」Pitchfork,也還在醞釀中;

•前段時間大火的GitHub Copilot主要是一個程式碼補全工具。

但是要說以上工具完全代替人類程式設計師,它們還不夠格?。那麼號稱能學習人類思維來程式設計的ChatGPT能做到什麼程度呢?

筆者首先丟給他一個LeetCode上經典的Hard難度問題:接雨水( https://leetcode.cn/problems/trapping-rain-water/

我在提問時並沒有說明這是一道程式設計題,ChatGPT也能夠正確識別並回答,說明擁有了一些理解提問者思想的能力?。不到10秒鐘,他就給出來了相應的示例程式碼,而且程式碼在leetcode上是可以AC的

但是上面的這些問題是不是直接透過搜尋引擎搜出來,甚至是從AC的Solution裡面摘抄出來的呢??

接著我給了一個面試時經常會問到的SQL問題:

這種應該就不是搜出來的,但是AI演算法經過學習還是能夠理解並寫出答案。雖然這段程式碼還不能拿過來直接使用,但是基本邏輯是正確的,開發者可以按照真實的表結構修改後使用。

在回答的最後,ChatGPT甚至還會簡單分析下程式碼的邏輯,因此這款工具對於理解複雜演算法提供了很好的輔助手段?。

作為實驗,我又讓他解釋了下快速排序的時間複雜度:

可以看出雖然解釋的內容相對簡單,但是對於有一定基礎的人還是可以快速理解的。

所以各位遠端面試的面試官要小心咯!因為你不知道電話另一邊的回答是不是來自於一個機器人的手筆??

程式設計師終結者?

我在日常溝通、專業解答、程式設計方案等方面和ChatGPT聊了很久,發現這個AI確實要比之前那些聊天機器人強很多,大多數情況下給出的回答都能夠符合預期?

但是聊得多了就能發現,ChatGPT解決問題的策略更像是一個優秀的答案縫合思路,看到題目先聯想是否做過類似的,然後透過已知的答案縫合成另一個答案,所以我覺得現階段ChatGPT讓大量程式設計師失業還不太可能?

從已有的成果和調研來看,AI繪畫出的圖片(如Deep Dream、stable diffusion)可以抵得上很多有較長練習經驗的人的水平,但是chatGPT輸出的程式尚且達不到中高階程式設計師的可靠性,而且其給出的程式碼全部是方法級、片段式的,無法直接滿足一個完整需求。如果把AI當做是一個私人助理,chatGPT是合格的,雖然他說的很多都是車軲轆話,但是也能保證說出的是“正確的,客觀的,中肯的...”,尤其是針對程式設計問題和理科問題, 大部分時候給出的建議還是挺靠譜的 (不靠譜的回答會非常明顯,一眼看穿)。

因此,作為一個類似於Siri或是Google Assistant的聊天機器人來說,是絕對比之前的AI好的,但是拿來寫程式碼,我覺得基本上不太可能。因為程式設計師的工作不僅僅需要寫程式碼,更需要遵循邏輯、根據複雜的需求場景構思出符合要求的完整工程。另外,根據我自身對於ChatGPT的測試結果來看,目前階段,靠ChatGPT去寫程式碼還不如靠搜尋引擎,最多能看作一個助手,對於廣大程式設計師來說是一個不錯的輔助工具。

至於替代程式設計師的工作,只能說如果有人如果能被這玩意替代,應該也找不到什麼好工作……

但是,這AI寫車軲轆話的水平一流!營銷號狂喜!??

註冊使用流程

?技術有國界,想玩用梯子?

要註冊使用 ChatGPT,我們需要準備以下內容:

•能夠訪問Google的全域性代理,推薦美國節點(實測亞洲節點如香港、新加坡節點會被ban);

•一個郵箱用於註冊,如Gmail,Outlook;

•一個國外手機號,如果沒有可以在第1步中透過第三方接碼平臺來完成註冊

1. 賬號註冊

進入註冊頁面:https://chat.openai.com/auth/login

點選註冊按鈕,輸入郵箱,還有你的註冊賬號,並設定密碼

郵箱確認好之後,接下來要填入電話。

這裡請大家注意,中國區的+86是不行的,如果你用GoogleVoice的話,也會被判別是虛擬電話,而做不了驗證碼。

需要透過下方平臺接收簡訊

2. 使用第三方接碼平臺

開啟網站:https://sms-activate.org/cn

點選右上角的註冊按鈕,在註冊頁面輸入自己的郵箱賬號,設定密碼後提交。會給你的郵箱發一條驗證郵件,點選郵件中的連結確認即完成註冊。

我們註冊後登入,在「餘額」那裡點選「充值」,使用支付寶充值 0.2 美金即可

然後,回到首頁,搜尋並選擇OpenAi服務,加車後購買即可

3. 使用購買的號碼啟用

購買完成後,然後就可以在啟用區域看到待使用的號碼。

複製這個號碼,然後把這個號碼放在第1步最後的驗證碼接收區

點選接收驗證碼按鈕後,可以回到第三方接碼平臺網站,看到驗證碼(從上面的截圖中應該能夠看到我有一個印度號碼的使用記錄),再次複製這個驗證碼填進去,這樣就成功完成註冊了

註冊完後,就可以ChatGPT網站去登陸:

https://chat.openai.com/auth/login

大家快去調戲ChatGPT吧~~

相關文章