iT邦幫忙

2024 iThome 鐵人賽

DAY 30
1
生成式 AI

Python 新手的 AI 之旅:從零開始打造屬於你的 AI / LLM 應用系列 第 30

【Day30】結語:從零開始打造屬於你的 LLM 應用

  • 分享至 

  • xImage
  •  

前言

終於寫到最後一天了,我真的是不要命了XD,大四開學比前幾學期的開學都還要忙,但還是抽出時間來寫文章,雖然一開始就有先寫好大綱、囤了六天份的文章,但還是覺得壓力山大,還幾天前還急性蕁麻疹,不過總算寫到最後一天了,真的太棒惹~

動機

會寫這系列文其實是一系列的事件推動的,今年暑假加入 GDG on Campus NCKU (前身為 GDSC NCKU),並且提了一個校園機器人的提案,考慮到可能加入的同學不是每個都對大型語言模型應用開發有經驗,所以想寫一系列的文章當作教材,也當作自己學習的紀錄。另一方面則是大一的室友大佬 Vincent55 當時就開始在寫鐵人賽文章,但那時候我真的太菜了,現在像是圓了那時候的夢,不過內容含金量肯定比不過他的就是了XD

其實我原本是想要做一個 Notion 記帳應用,因為以前用手機 Notion 來記帳常常因為速度太慢,我自己設定的標籤又太多,一整個超麻煩到最後也沒有在記帳了,所以我就在想如果可以用自然語言講話的方式來記帳,就好像有一個貼身秘書在旁邊一樣,那不是太好了嗎?於是暑假時,我趁和女友一起修模組化課程的機會,在最後的 Final Project 做了一個以 Flet 作為前端,使用 Groq API 來記帳的 Prototype VoiceFinance,只是效果就不太好又很陽春,而且那時候的經驗也不太夠,連 RAG 功能也沒有加入。

動機講完了,最後聊聊我對 LLM 應用的想法,在開始之前我們來看看今年十月的 OpenAI DevDay 2024 有什麼酷東東

OpenAI DevDay 2024

OpenAI DevDay 每年都會舉辦一次,向開發者和社群展示他們最新的技術進展、產品規劃等等,今年的亮點有:Realtime API, Canvas, 模型蒸餾等等

Prompt Caching in the API

官網說明

提示詞快取功能是什麼呢?這是一項用來加速應用程式反應時間的技術,特別是在經常重複使用相似提示的情況下。這個功能可以幫助開發者減少延遲並優化運行成本,特別是當相同的提示或非常類似的內容多次使用時。

我們常常會在 System prompt 中寫很多設定,例如「你是一個 xxx 的模型...請依照以下規範...保持專業的語氣...」;或者在多輪對話中,提示詞會變得很長。Prompt Caching 會把這些提示詞存起來,下次遇到相同的提示時,系統會直接從快取中提取結果,針對尚未被快取的部分進行推論,而不是重新經過完整的模型運算,這樣可以節省 50% 的成本並加快處理速度。

最重要的是,不需要對現有程式碼有進行任何修改,你看到這篇文章的當下就享有這些折扣了。所以結構化設計 Prompt 的方式就會更省錢,因為每次只會修改少少的部分,其他都被快取了。

視覺微調 (Vision Fine-tuning)

視覺微調技術允許開發者針對特定任務對視覺模型進行微調,以提升模型在特定應用場景中的性能。這可以包括調整模型的訓練參數以使其更適合特定的影像識別任務,例如醫學影像分析或自動駕駛中的物件識別。簡單來說就是你現在可以根據圖片 + 回覆的組合,來微調 gpt-4o,而且到 2024/10/31 之前,每天都有 100 萬個 token 是免費的 (!)

模型蒸餾 (Model Distillation)

模型蒸餾是一種用於提升效率的技術,它通過將大型模型的知識壓縮到一個較小的模型中來達到更高的效能和更低的計算成本。如果這幾天開發下來你有用過 gpt-4o 和 gpt-4o-mini 就會很明顯地感覺到前者雖然精確但是比較貴又比較慢;後者則是快又便宜。模型蒸餾可以把 gpt-4o 當作老師,把老師的對話紀錄當成教材去訓練小模型像是 gpt-4o-mini,未來要呼叫 API 來解決特定問題的時候就可以用更低成本的 gpt-4o-mini 來完成。

一個典型的案例是 Vicuna 模型,它是通過蒸餾自 Meta 的 LLaMA 模型並結合 ChatGPT 的對話資料來進行訓練的 (從 ShareGPT 上抓取)。這樣的蒸餾過程使得 Vicuna 在保有一定性能的同時,也能夠顯著降低運算成本。Vicuna 的成功展示了如何利用大型模型的知識,通過蒸餾技術來創建輕量化且實用的聊天機器人。

這應該也是為什麼 OpenAI 死不肯把 o1 系列模型「思考」的過程完整的寫出來,就是因為模型蒸餾效果太屌了,才不想讓其他人「白嫖」模型的輸出。

上游廠商的競爭,就是做應用的優勢

過去,AWS、GCP 等基礎設施讓我們能夠更方便地使用雲端服務,不需要自己維護實體機台和網路架構。現在有了 LLM 供應商,開發者也不需要擔心如何訓練和維護大型語言模型,這些模型已經作為一種基礎設施被提供 (你看我 Day28 微調的過程如此輕鬆就知道,以後衛更簡單)。我們可以直接使用這些 API 來做應用,而不需要投入大量資源進行模型訓練,有更多時間專注於創新的應用。

而且除了 OpenAI,還有 Anthropic、Mistral AI、Cohere、還有一些中國的供應商,大家都在「削價競爭」,如果你是重視隱私的企業,那也可以用 Meta 的 Llama 系列模型。如果你只是個想做出實用、剛好可以用 LLM 解決的應用;又或者是有新想法,需要快速 POC 讓市場去驗證概念的新創,那還有花時間、金錢來自行訓練模型的必要嗎?或者應該問,你的技術贏的了這些供應商嗎?

下一步是...?

既然自己訓練模型 (特別是語言模型) 已經不可能贏過那些擁有龐大資源的公司,那何不利用現有的工具來產生更高的價值呢?就像我們沒有田可以耕作、沒有工廠可以做出廚具,但只要有了食材和廚房,我們就可以當廚師做出美味的料理,產生更高的價值。

只要你有酷酷的,並且可以解決真實世界問題的想法,就算這個解決方案是非線性、非結構化的,都可以嘗試使用 LLM 的力量,站在巨人的肩膀上解決問題。


上一篇
【Day29】實用 AI 工具分享:用 AI 做簡報、讀 Paper、查新聞
系列文
Python 新手的 AI 之旅:從零開始打造屬於你的 AI / LLM 應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言