Taiwan-LLaMa Service: 使用 FastAPI 部署成一個服務

Simon Liu
InfuseAI
Published in
7 min readSep 18, 2023

--

看完文章後歡迎按鼓勵,訂閱,並分享給所有想知道此類知識的所有人!

Taiwan-LLaMa Service: 使用 FastAPI 部署成一個服務

本文內容難度: ★ ★ ★ ★ ☆

建議閱讀對象:這份內容適合因產業與公司限制,導致無法使用 OpenAI API 或者 ChatGPT 模型的人,希望能夠找到替代 OpenAI API 或者 ChatGPT 的使用者,可以了解新型可商用之地端生成式 AI 模型。

上一篇其實提到了為何你要關注 LLaMa 2 模型,主要也是因為可以商用的狀況下,讓你可以使用到相關的模型,雖然根據官方資料,LLaMa 2 其實還有進步空間,但如果在可商用的狀況下,會更期待他能夠持續往好的方向進步,讓大家能夠有更多的選擇可以使用。

在這篇文章中,我將會簡單介紹由台大學生所製作出來的中文化 LLaMa 2 模型,再來就是介紹如何將此類型模型,變成一個 API Service,並且透過 GPU 的環境,讓大家可以使用,期待這樣的文章,能夠讓大家了解如何將LLM 模型變成一個 API Service。

前情提要:LLaMa 2 模型

如果你還沒看過前一篇 LLaMa 2 的介紹,你可以先點選這篇,了解一下為何你一定要了解 LLaMa 2 模型

如果你還沒使用過,歡迎填寫以下問卷,讓您能夠得到 Google Colab 程式碼,並且運行起來,就可以得到相關的模型使用方式:

表單連結:https://forms.gle/GgRsXWDFDo7kHtKu9

Taiwan LLaMa 模型介紹

在推出 LLaMa 2 後,如果你有使用我所提供的資料去做實驗,你就會發現, LLaMa 2 會理解中文語意,可是在回答答案的過程中,他回答不出來中文的回覆,這在模型使用上,其實就變得很困擾,也因此,對於台灣人而言,這樣的模型,似乎還要去多做額外的處理。

在這邊,我想要介紹一個由台灣大學的博士生林彥廷所 Fine-tune 完成的模型,作者將它命名為:Taiwan-LLaMa v1.0模型。他不僅支援繁體中文,來符合臺灣人的習慣對話用語,還進行了特殊調校,以適應臺灣在地使用習慣。它基於 LLaMa 2 架構,包括了超過 50 億個 token 預訓練模型,並在超過 49 萬多次的繁體中文對話數據上進行了微調。

詳細資訊可以看看以下的報導連結,作者寫得非常仔細,讓大家可以了解 Taiwan-LLaMa v1.0模型是怎麼來的:

https://buzzorange.com/techorange/2023/08/17/taiwanese-ai-chatbot-from-ntu-phd/

如果你想使用看看這個模型,那你可以到 HuggingFace 去了解模型的使用方式:

詳細的使用方式,你也可以到 GitHub Repo 了解他們的資訊:

讓 Taiwan LLaMa model 變成一個模型

那既然知道了這樣的模型,那要如何讓它可以變成一個 API 的服務呢?我認爲你可以嘗試使用像是 FastAPI 來變成一個API服務。

FastAPI 是一個現代、快速(高效能)的 web 框架,專為建立 APIs 而設計,由於機器人對話這類型的需求需要高效能的使用,因此這次才推薦使用 FastAPI 作為模型服務的建置方式。它的主要優點包括以下幾點:

  1. 速度快:根據過去的人做比較,FastAPI 在效能上只比 NodeJS 和 Go 慢一點,這主要得益於 Starlette(基礎 web 框架)和 Pydantic(數據解析和驗證)。
  2. 易於使用:其設計讓開發者可以快速地開發和部署高品質的 API。
  3. 自動生成文檔:基於 Python 的註解與提示,我們可以很容易地在 FastAPI 頁面上自動產生 Swagger 的 API 文檔。
  4. 現代性:支援了當前的最新技術和標準,例如 WebSocket、OAuth、JWT 等。
  5. 安全性:提供了許多內建的工具和功能,使得開發安全的 API 變得更加容易。

整體來說,FastAPI 是一個強大且高效的工具,適合需要快速開發和部署現代 API 的開發者使用,詳細的 FastAPI 官方文件,你可以直接到以下網站獲取更多資訊:

透過 FastAPI 示範範例

我已經在公司設計好一套 Local LLM Solution Platform for Enterprise,為了讓接下來的應用能夠做得更好,這邊邀請大家填寫以下問卷調查,本問卷調查想要了解您在公司或個人專案上,對於我們所提出的需求,當你填寫完成後,你就可以在問卷填寫的信箱中得到 FastAPI 程式碼的範例,再請大家協助填寫相關內容了,感謝大家!

表單連結:https://forms.gle/UrAbDiRuAeTCt2Tj9

如果你運行了所有的程式碼,你應該會得到相關的 API 服務:

Google Colab Result Snapshot

那透過 Python 或者相關 request 工具(例如說 Postman 等)你應該就會得到結果。

I am Simon

大家好,我是 Simon 劉育維,目前在 InfuseAI 擔任人工智慧領域的客戶成功工程師,幫助企業規劃並實踐人工智慧相關技術。如果這篇文章對您有幫助,請在 Medium 上按一下鼓勵並追蹤我的個人帳號,這樣您就可以隨時閱讀我所撰寫的文章。歡迎在我的 Linkedin 上留言提供意見,並與我一起討論有關人工智慧的主題,期待能夠對大家有所幫助!

我的 Linkedin:https://www.linkedin.com/in/simonliuyuwei/

We are InfuseAI

InfuseAI provides LLM, MLOps, and data tools:

  1. PrimeHub — Our end-to-end MLOps platform is the entire machine learning lifecycle in one platform.
  2. MLOps and LLM consulting — Let the user know how to use MLOps and/or LLM Models to do the machine learning pipeline.
  3. PipeRider — The data quality toolkit for data professionals.

Feel free to contact us for assistance in implementing AI models!
Email: business@infuseai.io

--

--

Hi, I'm Simon Liu, AI and LLM engineer who's shaped AI solutions for major firms. Welcome to see my Medium article!