llama2 簡介與LocalGPT實例應用

立志成為繁體中文界的大型語言模型資料庫前言

Vincent Ko
Aug 6, 2023
  • 前言
  • llama2是甚麼?他特別之處在哪裡?
  • LLM vs GPT
  • Private / LocalGPT介紹
  • LocalGPT嘗試

前言

LLM&LangChain是我想要新開設的計畫,我對於這個領域很有興趣,雖然也才剛半隻腳踏入這個世界,但是有感於這個領域的中文資料偏少,所以自己想要藉由寫Medium文章,在學習、輸入的時候進行整理、輸出,也算是記錄自己的學習軌跡。

llama2是甚麼?他特別之處在哪裡?

llama系列是Meta和Microsoft聯合推出的LLM,是一個後期加入,但是挾帶者巨大的資本和優勢加入大型語言模型開發戰場的玩家,目前最主流的LLM公司就是你我所熟知的OpenAI公司,旗下最有名的就是ChatGPT這個徹底讓LLM技術出圈的應用程式,接者是Google推出的Bard系列,他也在2023年7月推出了中文版;此外還有中國開發,但是充斥者問題的文心一言;還有更新的AWS的falcon,總之現在只要是有點身分地位的大科技公司多半都是在和這個市場迎戰。

有酷羊駝先贏一辦了吧… 來源: https://venturebeat.com/ai/facebook-parent-meta-unveils-llama-2-open-source-ai-model-for-commercial-use/
有酷羊駝先贏一辦了吧… 來源: https://venturebeat.com/ai/facebook-parent-meta-unveils-llama-2-open-source-ai-model-for-commercial-use/

llama2最大的優勢,就是免費且可商用,這是甚麼意思呢?現在如果要開發LLM應用程式,多半是跟OpenAI有所關係,如果要生成文字的話,最簡單的方式就是直接把你的Prompt(想要問的問題)丟給OpenAI的LLM(ex. Davinci003, Ada...),叫他來幫你回答問題。但是這是超級花錢的部分,OpenAI公司幫你分析回答一定要跟你收費,同時這也需要連網到公司的伺服器那邊才可以回答,一來一回之間又浪費了一些時間。然而,如果你把整個LLM下載到自己的電腦/自己的server,吃的就變成了自己的運算資源和儲存空間等等,而不是被OpenAI予取予求(?) 。剩下的優點,像是用甚麼開發或者是他的表現那些可以自行查詢,主要就是「可以自行調參」是重要的。有7、13、40三種B可以下載。

如果大家想要測試llama2的功力的話,可以到以下的網址去玩玩:

LLM vs GPT

BTW,應該蠻多人把GPT跟LLM搞混,只需要記得GPT是LLM的一種就可以了,GPT就是OpenAI公司的LLM模型架構,往下又有剛剛提到的chatGPT, davinci, ada那些,只是GPT熱門到大家以為這個詞就是指大型語言模型。但是現在大部分的資料都將GPT跟LLM視為同種東西了,未來這兩個詞語會相互使用,大家知道說的就是可以回答問題就OK了。關於各種跟GPT、LLM相關的名詞介紹都可以在這裡查找,推推:

https://allaboutdataanalysis.medium.com/%E4%B8%80%E6%96%87%E6%90%9E%E6%87%82chatgpt%E7%9B%B8%E9%97%9C%E6%A6%82%E5%BF%B5%E5%92%8C%E5%8D%80%E5%88%A5-gpt-%E5%A4%A7%E6%A8%A1%E5%9E%8B-aigc-llm-transformer-%E7%BE%8A%E9%A7%9D-langchain-9b106583da3

Private / LocalGPT介紹

我們都很了解chatGPT,總之就是去openAI的網站,問他問題,然後經過她處理之後得到答案…欸等等,會不會覺得哪邊怪怪的呢?其實,如果使用線上的模型的話,可能會遇到以下的缺點:

  • 網絡:使用API時,需要把自己的資料、數據送到遠程服務器(ex. ChatGPT的處理server)並等待結果。如果網路不好的話,可能會有延遲,或者是根本回答不了。
  • 數據隱私:使用連網的LLM API,就代表數據將在服務器之間傳輸。如果擔心隱私問題的話,用OpenAI之類的服務就可能出現問題。
  • 使用成本:前面有提到過,API的使用通常會產生費用,問越多花越多,浮動成本高。相較之下,使用本地的LLM就不會每次問問題就要付錢給OpenAI了。
  • 定制化限制:首先,OpenAI會對提問的速率、數量等方面設限。這樣會讓程式開發時很麻煩,之後也需要針對這些東西多心。同時,使用官方給的套件也代表某些東西會被限制,像是Embedding的微調面上,用OpenAIEmbedding()就沒什麼fine-tuning的空間。

所以到了現在,在私人電腦中使用GPT是逐漸成長的趨勢。通常PrivateGPT代表的是一個GitHub上的專案,而LocalGPT則泛指所有沒有被PO到網路上的GPT。我們可以透過新的llama2,我們也可以自己創建本地的GPT,這代表:

我們可以在完全斷網的情況下,成功地進行問答,支援各種資料庫,而且免費(如果你不需要GPU等資源)。

Bravo!

我們嘗試利用PrivateGPT的技術來創建一個「可以根據你給的資料回答問題的GPT吧」!利用llama2,我們可以嘗試斷開網路而做到想做的事情。Code主要是參考這裡: https://github.com/PromtEngineer/localGPT

詳細的code介紹會寫在另外一篇文章,這篇文章的主要內容,就是藉由llama2,我們可以同時處理多個PDF檔案,而且是用multi-threading的方式,讓處理PDF、建立Vector database的時間更短。接者,使用llama2可以將問答這件事情留在本端執行。這樣下來,我們在本地端不僅有了超棒的模型可以免費用,同時也可以轉成商業用途,超棒的。

如果你覺得這篇文章不錯,不要忘了拍手、訂閱以及追蹤,以取得更多知識以及我的碎碎念,掰掰!

參考資料

https://hk.news.yahoo.com/%E6%95%B8%E6%93%9A%E7%A7%91%E6%99%AE-llama-2%E4%BE%86%E4%BA%86-%E4%B8%AD%E5%9C%8B%E4%BC%81%E6%A5%AD%E5%8F%AF%E7%94%A8%E4%B8%8A-203044137.html

https://www.youtube.com/watch?v=lbFmceo4D5E

https://www.youtube.com/watch?v=TLwLOvF_tME

--

--

Vincent Ko
Vincent Ko

Written by Vincent Ko

又名為黑翅鳶羽札,2024年即將邁向大四,正在國泰銀行資訊部門實習,可能會帶來第一手GenAI相關知識。LLM、人工智慧、資料分析與處理;財金、管理、財金數據分析。

No responses yet