🚨週年慶最後三日🚨全站課程 83 折、最後加碼 $899💰 再送激高 $1600 券❗️
天
時
分
全站 83 折🔥
登入/註冊
AI . FREE Team
2023/09/25
2,039

如何透過 ChatGPT 加速軟體開發流程?

這篇文章向各位提供一些關於生成式AI的基本指導和應用概念。無論你是希望轉職成為資料科學家(例如數據分析師、數據 / AI 工程師或資料科學家),還是希望利用 AI 技術來優化自己現有專業領域的工作效能,這篇文章都將對你有所幫助。繼續閱讀,跟著我一起深入探討吧!

跟著 Hahow 與 AI . Free Team 掌握生成式 AI 趨勢 ,點亮屬於你的 AI 技能樹!

親愛的 Hahow 學員們,我是鄭中嘉 Eric 老師!如果你正在閱讀這篇文章,那麼你絕對對當今最炙手可熱的技術議題 — AI,感到非常有興趣。或者,你可能已經對 AI 有了一些初步的概念,但仍然感到有點摸不著頭緒,或者不確定為什麼需要學習 AI,以及該如何入門,尤其當你試圖突破資料科學的技術大門時。

在過去的幾年裡,以上提到的問題確實困擾著很多想要轉職或提升自己技能的朋友。然而,隨著 OpenAI 向社會大眾提供免費使用 ChatGPT,生成式 AI 最近經歷了爆炸式的成長,並擴大了應用範圍,這些問題已經不再是問題!

對於這個議題,我想透過這篇文章向各位提供一些關於生成式AI的基本指導和應用概念。為了讓來自不同專業背景的讀者都能夠迅速理解,我將使用時間軸的概念來探討 AI 在工作場景中的過去、現在和未來。無論你是希望轉職成為資料科學家(例如數據分析師、數據 / AI 工程師或資料科學家),還是希望利用 AI 技術來優化自己現有專業領域的工作效能,這篇文章都將對你有所幫助。繼續閱讀,跟著我一起深入探討吧!

生成式人工智慧究竟是什麼?

生成式 AI,或許是 2022 年 11 月 OpenAI 開放 ChatGPT-3 給大眾後最熱門的話題之一。簡單來說,生成式 AI 是一種人工智慧應用,經過模型建立、特徵識別和數據訓練後,能夠自行生成各種內容,包括文字、程式碼、圖像、音訊等等。所以,除了像 ChatGPT 這樣可以生成文字和程式碼的生成 AI,最近還有一些圖像生成 AI 工具,如 MidJourney 和 Stable Diffusion,也備受關注。

生成式 AI 可以怎麼樣的幫助我?

技術學習助益:

假設你正嘗試進入機器學習的迷宮,但你的背景並非傳統的資料/資訊科學體系,那麼你可能會被微積分、統計學和線性代數等基礎學科給嚇退。這些學科常常像一座龐大的學術大山,對許多人來說,不僅令人生畏,還讓人擔心學費昂貴。此外,沒有導師指引,學習這些新知識時,你可能會感到宛如迷宮中的孤獨旅者,承受巨大的壓力。

但有了像 ChatGPT 這樣的生成式 AI 工具,情況變得截然不同。現在你可以透過問答方式向 ChatGPT 提問,幫助你寫程式碼,減輕學習的壓力和時間成本。ChatGPT 也可以扮演 AI 助教的角色,幫助你在學習路上走過迷茫的路途。

工作負荷的減輕:

現在,讓我們談談工作,特別是對軟體工程師而言最令人討厭的事情之一:Debug(除錯)。如果你是一名新手工程師,可能會面臨 Debug 這個高度重複性的任務,而這通常是最令人討厭的工作之一。更糟的是,當你需要幫助時,可能會因為不好意思向前輩或主管尋求協助,只能自己摸索。這可能會讓你不得不瘋狂加班,才能解決 Debug 問題。

但現在有了 ChatGPT,就像有了一個自動解決的方案,適當附上錯誤訊息(Error Message )然後再與 ChatGPT 稍微討論下,往往很快就能夠找到突破口。這樣一來,你可以將你的時間和精力集中在更有成效的工作上,不必像過去為 Debug 而頭痛!

非技術部門工作者的生成式 AI 優化秘訣:

HR、行銷、客戶關係管理等非技術部門的同仁,你也能輕鬆運用生成式 AI 工具來提升工作效率!Eric 老師總結了一些業界實務案例,為大家提供以下幾點實用建議:

  • 釐清工作流程問題: 先搞清楚現有工作流程中的痛點,明確哪些方面可以進行優化。

  • 設定目標: 制定流程優化專案的評估標準,確保達到預期效果。

  • 拆解工作流程: 尋找可以自動化的部分,針對這些環節進行改進。

  • 智慧使用 Prompt 與 ChatGPT 對話: 透過準確的提問,讓 ChatGPT 明白工作需求,為你生成所需的自動化程式碼。

總之,即使你不是軟體技術專家,只要學會提出正確的問題,細分問題,然後透過 Prompt 與 ChatGPT 的互動,讓 AI 替你處理繁重工作,同時建立良好的 AI 合作和效能提升循環,這將使你和公司不斷進步。想深入了解如何使用生成式 AI 加速 AI 專案開發嗎?

在《學習 AI 一把抓,點亮人工智慧技能樹》課程中,我們介紹了資料科學方法論的整體專案流程。此外,我們還推出了全新的單元:《生成式 AI 特輯》,一同探討如何使用 ChatGPT 讓它幫我們快速的將想法轉為可以拿來用的程式碼!

實作案例大公開!

假設今天我們正在開發一個深度學習專案,目標是對輸入的影像(例如人的表情)進行情感分類,區分喜、怒、哀、一般等類別。在資料科學的世界中,這個專案有多個階段,從前處理處理灰階(Grayscale)影像,到模型建立使用卷積神經網路(CNN),再到評估階段繪製損失(Loss)和精確度(Accuracy)曲線,以瞭解 AI 模型的訓練過程是否符合預期。原則上,資料科學方法論的每個流程,都是能和 ChatGPT 討論的內容!

(一)進入 ChatGPT 對話框,並說明來意:

Eric

ChatGPT 你好,我待會想要和你討論電腦視覺的分類問題,我預計會使用 Tensorflow 進行模型的建立,影像處理的環節可能會使用 opencv。請你回答的時候盡量使用繁體中文,非常感謝!

ChatGPT

你好!當然可以討論電腦視覺的分類問題。TensorFlow 和 OpenCV 是在處理影像分類任務時非常有用的工具。以下是一個簡單的步驟指南,以幫助你開始建立你的電腦視覺分類模型:

    資料收集和預處理:
    - 收集包含不同類別的影像數據集,並確保數據集的標籤正確。
    - 使用 OpenCV 或其他圖像處理工具,對數據集進行預處理,如調整大小、正規化、去噪等。
    建立模型:
    - 使用 TensorFlow 創建深度學習模型。你可以選擇使用現有的預訓練模型(如ResNet、Inception等)或自定義模型。
    - 選擇適當的損失函數(如交叉熵)和優化器(如Adam)。
    訓練模型:
    - 將預處理過的數據餵入模型進行訓練。
    - 監控訓練過程中的損失函數和準確率,並使用驗證集來評估模型的性能。
    模型評估:
    - 使用測試數據集來評估模型的性能,計算準確率、精確率、召回率等指標。
    - 如果模型的性能不滿意,可以進一步調整模型架構或超參數。
    部署模型:
    - 一旦模型達到滿意的性能,你可以將它部署到應用程序中,以進行實時的影像分類。
    持續優化:
    - 隨著時間的推移,你可能需要不斷更新和優化模型,以應對新的數據和需求。

請注意,這只是一個簡單的概述,電腦視覺分類項目可能會更複雜,取決於你的特定需求。如果你有更具體的問題或需要更多幫助,請隨時提出,我會樂意協助你!

對話分析:

觀察上方問答,在最一開始,我通常會和 ChatGPT 說明待會要討論的主題,以及我預計使用哪些方法達成任務。我們也可以從 ChatGPT 的回答觀察出其在於系統性回覆文字的能力,有的時候如果真的在文案撰寫上遇上瓶頸,我就會和 ChatGPT 聊聊天,說不定就可以發現自己還有哪些面向可以補強。總之,目前我們可以確定 ChatGPT 已經進入狀況了!

(二)請 ChatGPT 幫忙撰寫影像處理的程式碼

Eric

目前我手邊有 1000 張長寬皆為 512 的 RGB 影像,但是我規劃建立的 CNN 模型預計接收的影像大小是 128 x 128 x 1,請幫我利用 python opencv 套件,撰寫(1)影像讀取、(2)轉為灰階影像、(3)另外輸出影像檔案,所需要的程式碼。

ChatGPT

當你有一批 512x512 的 RGB 影像,但你的 CNN 模型預計接收 128x128 的灰階影像時,你可以使用 Python 的 OpenCV 套件來執行這些任務。以下是一個範例程式碼,可以執行這三個步驟:
----
import cv2
import os

# 設定輸入和輸出目錄
input_dir = "input_images/"
output_dir = "output_images/"

# 確保輸出目錄存在,如果不存在則創建它
os.makedirs(output_dir, exist_ok=True)

# 1. 影像讀取和轉換
for filename in os.listdir(input_dir):
    if filename.endswith(".jpg"):  # 假設你的影像是 JPEG 格式
        input_path = os.path.join(input_dir, filename)
        output_path = os.path.join(output_dir, filename)
        
        # 讀取影像
        image = cv2.imread(input_path)
        
        # 2. 將影像轉換為灰階
        gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
        
        # 3. 儲存灰階影像
        cv2.imwrite(output_path, gray_image)

print("影像處理完成!")
----
在這個範例中,我們假設你的輸入影像都存儲在 input_images/ 目錄中,並且輸出的灰階影像將保存在 output_images/ 目錄中。程式碼會遍歷輸入目錄中的所有影像,將它們轉換為灰階,並保存到輸出目錄中。

請確保調整 input_dir 和 output_dir 變數以匹配你的實際目錄結構。此外,你也可以根據需要更改檔案格式(例如,如果你的影像不是 JPEG 格式,需要調整 if filename.endswith(".jpg") 的條件)。

對話分析:

在這一輪的對話中,首先我向 ChatGPT 精準地描述現狀,包含:(1)我有幾張照片、(2)照片既有的長寬,並且說明希望請它做的事情,包含:(1)讀取影像、(2)調整影像長寬、(3)轉為灰階影像,甚至也在文字訊息中要求它利用指定的程式語言 - Python 與指定的套件 - OpenCV。

ChatGPT 的回覆相當不錯,不僅符合我的需求,而且還很貼心的附上了讓我更容易讀懂程式碼的註解。

(三)請 ChatGPT 幫我建置一個符合使用情境的CNN模型。

Eric

我的目標是針對人臉影像進行情緒分類(喜、怒、哀、平淡),預期輸入給模型的影像大小是 128 x 128 x 1,然後需要對4個類別進行分類,請幫我利用 Tensorflow 撰寫建置 CNN 模型必要的程式碼,謝謝

ChatGPT

建立一個 CNN 模型來進行情緒分類(喜、怒、哀、平淡)是一個有趣的項目。以下是一個使用 TensorFlow 的範例程式碼,可以建立這樣的模型:
----
import tensorflow as tf
from tensorflow.keras import layers, models

# 建立 CNN 模型
model = models.Sequential()

# 卷積層 1
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 1)))
model.add(layers.MaxPooling2D((2, 2)))

# 卷積層 2
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

# 卷積層 3
model.add(layers.Conv2D(128, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))

# 扁平化層
model.add(layers.Flatten())

# 全連接層 1
model.add(layers.Dense(128, activation='relu'))

# 全連接層 2(輸出層)
model.add(layers.Dense(4, activation='softmax'))  # 4個類別,使用softmax作為分類層的激活函數

# 編譯模型
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# 打印模型摘要
model.summary()
----
這個模型包括了三個卷積層,每個卷積層後面都有最大池化層,接著有扁平化層和兩個全連接層。輸出層使用 softmax 激活函數,以確保輸出是4個類別的概率分佈。
請確保在模型訓練之前,你已經將你的數據集分成訓練集和測試集,並對標籤進行獨熱編碼(one-hot encoding)。然後,你可以使用 model.fit() 來訓練你的模型。
----
# 假設你有 train_images, train_labels, test_images, test_labels 這些數據集
model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
----
請注意,這只是一個簡單的模型示例。你可以根據你的數據集的規模和複雜性來調整模型的結構和超參數,以獲得更好的性能。此外,你需要確保數據集的情緒標籤(例如,喜、怒、哀、平淡)已經轉換為對應的數字標籤。

對話分析:

對於 AI 模型而言,最重要的就是輸入和輸出的形狀(如:影像的長與寬)需要正確,因此我在提問的時候有特別說明 (1) 影像大小是 128x128x1、(2)分類數量,並且要求 ChatGPT 利用 Tensorflow 建置 CNN 模型。

ChatGPT 的回答非常標準,不僅撰寫了建置模型需要的程式碼,甚至連後續的模型編譯(Compile)與訓練(fit)都有提供指引。

其實不只這些關於影像處理或是人工智慧的問題可以和 ChatGPT 聊聊,基本上 ChatGPT 現在已經強大到任何話題都能夠提出幾點具體的解決方案。我們回到主題,若大家針對資料科學方法論、影像處理、人工智慧模型建置感興趣的話,也歡迎參考我們的課程喔!

Final Thoughts : 幫你簡化整理方便讓你在朋友圈之間分享看完這篇文章之後的收穫!

在這篇文章中,我們發現,如果我們能夠精確地撰寫文字內容,ChatGPT 將成為我們最佳的程式碼夥伴。善用 ChatGPT 可以極大地提高程式碼專案開發的效率。即使遇到 bug,我們也可以運用思維模式:(1) 描述現狀、(2) 說明目標、(3) 設定條件限制,與 ChatGPT 一起一步一步解決問題!

無論你是否熟悉人工智慧,生成式 AI 工具已經在生活的各個方面帶來優勢。如果你是文字工作者,你一定能利用 ChatGPT 的能力寫出更出色的文案;如果你正在自學程式,你會發現 ChatGPT 大大降低了學習的門檻;如果你是軟體開發者,你肯定會著迷於 ChatGPT 可能帶來成指數發展的開發效率!

在生成式 AI 崛起的時代,我們與生成式 AI 工具將重新定義完成相同任務的方式,讓我們一同擁抱這個嶄新的時代!如果你對人工智慧感興趣,並且想知道我們如何通過生成式AI工具加速軟體開發,歡迎參加我們在Hahow開設的課程:《學習 AI 一把抓,點亮人工智慧技能樹》。我們特別新增了生成式 AI 的應用單元,絕對值得一看!

AI 學習加速器活動|AI 助教對話領 88 折券|閱讀 AI 精選內容領 $300 購課金|AI 趣味測驗抽拍立得

恭喜你收穫了一篇 AI 知識亮點!立即點我領取 6000 HP 獎勵 ✨(總共 5 篇等你探索)

想探索更多 AI 精選影音、好文章?或體驗 Hahow 最新 AI 學習助教替你解惑、推薦適合的學習資源?
👉 9/25 - 10/20 立即前往【AI 學習加速器】活動頁 探索更多,還有彩蛋 88 折優惠券、$300 購課金等你領 🙌

18
給創作者來點掌聲!
18


AI . FREE Team

AI . FREE Team 成立於 2018 年,秉持著「整合各方學習資源、跨專業領域知識共享」的核心理念,以人工智慧為研究主題,旨在建立自由、自主的學習文化。

其他人也在看

更多文章
18