軟體工程師該焦慮嗎?試玩ChatGPT/CodeGPT/CoPilot寫程式

資訊安全新知分享

NEITHNET 資安實驗室

簡介

  ChatGPT是一個基於OpenAI的大型自然語言處理模型,旨在為對話系統提供高品質的自然語言理解和生成功能。 ChatGPT使用了許多先進的技術,包括Transformer模型、自監督學習和微調等。總的來說,ChatGPT是一個基於先進技術的自然語言處理模型,可用於許多不同的應用場景,例如對話機器人、語言理解和自然語言生成。通過使用Transformer模型、自監督學習和微調等技術,ChatGPT能夠提供高品質的自然語言處理功能,並且在不斷地進化和改進中。

  CodeGPT是一個基於OpenAI的自然語言處理模型,專門用於代碼生成和理解等任務。 CodeGPT使用了許多先進的技術,包括Transformer模型、預訓練、自監督學習和微調等。Transformer模型是一種基於注意力機制的序列到序列模型,可用於自然語言生成和理解等任務。 CodeGPT使用了類似於GPT-2的Transformer架構,並在大量的代碼數據上進行預訓練。

  預訓練是指在大量未標記的數據上進行訓練。 CodeGPT使用了預訓練的方式來提高模型的性能,這是因為代碼數據的標記比較困難,而且模型可以在大量的未標記數據上進行自我訓練,從而提高模型的準確性和效能。總的來說,CodeGPT是一個基於先進技術的代碼生成和理解模型,可用於許多不同的應用場景,例如代碼自動完成、代碼摘要和代碼生成等。通過使用Transformer模型、預訓練、自監督學習和微調等技術,CodeGPT能夠提供高品質的代碼生成和理解功能,並且在不斷地進化和改進中。

  GitHub Copilot是GitHub和OpenAI共同開發的人工智能代碼編輯器,可以根據上下文提示和語言規則,自動生成代碼片段、函數和整個文件。Copilot使用了許多先進的技術,包括自然語言處理、預訓練模型、機器學習和生成對抗網絡等。總的來說,GitHub Copilot是一個基於先進技術的智能代碼編輯器,可以根據上下文提示和語言規則自動生成代碼片段、函數和整個文件。通過使用自然語言處理、預訓練模型、機器學習和生成對抗網絡等技術,Copilot能夠提供高品質的代碼生成和理解功能,並且在不斷地進化和改進中。

  以上,都是筆者從ChatGPT的問答對話中節錄出來的。ChatGPT可以提供在它訓練範圍內,相當品質的對話,看起來還是不錯的。不過人類大腦,還是可以隱約歸納出它的某些pattern,進而推測出對方不是『一般人』。不過既然我們都是工程師,自然想玩玩看這些 model能不能帶給我們一些有趣的幫助。底下,我們就做些試玩!

 首先我們準備三個題目

   1. Coding,問問看,是不是可以幫我寫段程式?

   2. Test Case,工程師寫test case很煩,那可以幫我寫test case嗎?

   3. Remark,註解也是一個重要的工作,我們問問看能不能幫忙寫個註解

  首先試玩一下ChatGPT,ChatGPT有網頁可以直接操作,只要註冊後就可以直接使用,算是相當方便。以下是筆者的問題,大家可以試試看,不同的詢問,獲得的答案不太一樣。

  其實筆者測試過幾次,有中文也有英文,但是結果都不太一樣,是挺人性的。但是程式碼是不是堪用,得需要自己去review。光看是很有架勢,個人覺得比較適合初學的人,用來參考別人的程式脈絡與思維。

  接著試試 CodeGPT。CodeGPT是一個VS Code的Plugin,首先要安裝與設定。然後需要註冊一個OpenAI的帳號,讓CodeGPT可以使用OpenAI幫忙處理。我們問一樣的問題,看看CodeGPT的程式有沒有寫的比較好?

  使用 text-davinci-003這個 model寫的程式:

  雖然比ChatGPT醜了點,還是有寫出來。

  但是如果換成 code-davinci-002,就不幫忙寫了,真是有點….

  最後看一下 Github Copilot有沒有比較厲害。

  筆者直接寫了一個簡單的註解,讓Copilot幫忙找答案,它直接給了四個答案。(截圖為部分內容)

  答案形形色色,看起來是需要專業的人員來挑選。後續問 test cases以及 remark都是很理想。歸納起來,找範例程式看起來是Github Copliot比較擅長的。

  以費用來說,目前ChatGPT看起來是可以簡單的免費玩,如果付費的話,每個月$20美元,可以有比較高的priority跟反應速度。有時候免費方案會比較忙,大概就是要等等它。CodeGPT則是消耗你自己的OpenAI帳號的token數量來計費,CodeGPT本身不收錢。目前OpenAI有$18美元的美費額度。而Github Copilot目前提供60天免費試用,之後是$10美元一個月。大家想嘗試看看,倒是不錯的選擇。

 以上的試玩心得歸納如下:

   1. 如果要找豐富的程式片段,Github Copilot是不錯的選擇。ChatGPT也有『機會』命中看起來不錯的程式碼。

   2. 如果要裝飾程式碼,比方說添加測試test case或是使用說明,ChatGPT是不錯的說書人。

   3. CodeGPT看起來還需要多點trainning才有辦法跟上前兩者。

   4. ChatGPT跟CodeGPT的回答,就像在閒聊程式碼。對於需要精準的程式設計,其實不是很恰當。

    當然筆者也很慶幸,距離工作被完全取代尚有些時間就是了。

  最後,祝大家跟GPT玩得愉快~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。