天天看點

基于大模型進行開發的實踐與思考

作者:人人都是産品經理
LLM的革新,将會帶來什麼改變呢?作者對此展開思考,以獨立開發者的身份對大模型開發進行實踐,接下來,我們看看作者是如何做的吧。
基于大模型進行開發的實踐與思考

LLM出現引發的解放力提升及革新,有時會在我腦海裡浮現,對于期望從事LLM的人來說,可以從哪些方面來進行學習呢?

目前,各個行業都在對 LLM的應用和研究進行着不斷的嘗試,經過閱讀和論文的參考,對LLM進行了分類整理,也結合自身的實踐來做一次分享。

一、LLM綜述及簡介

基于大模型進行開發的實踐與思考

1. 領域專業化分類

基于拓展閱讀的論文觀點,LLM的專業領域主要分為三類:

  • 外部增強(External Augmentation)
  • 提示語制作(Prompt crafting)
  • 模型微調(Model Fine-tuning)

其中,外部增強是一個黑盒類型的應用,它是由外部的資料\上下文和内部的提示詞來控制輸出,實質上不能對 LLM的内部進行通路和調節。

提示語制作是一種灰盒類型的應用,它是通過調節 prompt的參數來控制 LLM的輸入和輸出,僅在 LLM中與 prompt有關的參數進行更新,這部分參數占 LLM總參數的0.01% 。

模型修正是一種白盒類型的應用,它是對模型中特定領域中的知識和資料的修正,是一種深入到模型中特定領域的全量參數修正。

2. LLM應用場景簡述

盡管專業領域被劃分成了三個類别,但是 LLM在其中的共同應用有:

  • 識别特定領域的實體、關系和事件
  • 生成特定領域的内容,并生成複雜的文本摘要
  • 分析特定領域的資料并進行預測
  • 通過自然語言生成\校驗代碼

這四個應用可以貫穿全領域,也是主要提效的表現,具體場景如下:

  • 可以用LLM快速進行客戶問題的分類
  • 使用LLM快速閱讀論文并給出摘要内容
  • 提供某一專業資料,并進行資料的分析總結
  • 用中文描述需求并生成python代碼,如請生成一個深度學習的示例代碼

在目前階段,各大中小企業對LLM進行的探索,一般都為外部增強的方式,因為這一方面無論是從成本還是門檻上來說,大部分是可以接受的。

是以,我在後面的實踐及應用介紹,也是以外部增強為基礎,從以上四個應用方向展開。

二、個人實踐簡述及總結

1. 已開發的個人工具

截至目前已經開發的工具有三個,分别為:

  • 電影評論情感分析工具(識别特定領域的實體、内容)
  • 客服問題分類工具(生成特定内容摘要)
  • 資料分析工具(分析特定領域的資料)
基于大模型進行開發的實踐與思考

三種工具均能滿足個性化的輸出需求,隻需讓使用者輸入不同的參數,或修改配置檔案中的提示詞内容即可。

并且開發過程我也是借助LLM,通過自然語言進行編碼及代碼排查、優化的工作。(通過自然語言生成\校驗代碼)

2. 各工具的設計思路、功能特點

在開始搭建工具時,按照LLM的應用場景分類,我選擇了文本總結、文本分類及文本分析三個方向,原因很簡單:學習的過程也是這麼個思路,先是閱讀,然後對知識點進行分類,并基于新文本進行分析。

是以在确定了每個方向後,選擇了一個場景進行驗證試點,文本總結使用豆瓣上的使用者評論,文本分類使用電商平台的售後咨詢類目,資料分析則使用世界銀行釋出的各國曆史失業率資料。

最後在對每一個場景進行了分析和整理之後,得出了一份材料如下:

基于大模型進行開發的實踐與思考

3. 過程中的問題及解決方案

在開發過程中識别到的問題可以分為以下幾類:

1)問題1. 輸出結果不符合預期、結果不可控

基于大模型進行開發的實踐與思考

Fig1.傳回結果不符合預期

如上圖,在輸入某一條評論并要求輸出表格形式時,得到的結果卻是JSON格式。

① 原因分析

因為外部增強屬于一種黑盒類的嘗試,是以通過實踐過程,我了解到一般出現這類問題有以下幾個方面的原因:

  • 提示語設定不夠準确,或者前後沖突,導緻輸出不可控
  • 提示語與使用者文本語言不一緻,如使用英文的prompt來分析中文的評論
  • 分析步驟太複雜,LLM無法很好的完成分析

② 解決方法

基于以上三個原因,給出三個不同的解決方法:

在輸出結果時,請確定是{Object_format}格式\

請保持輸出中的語言與原始文本相同 – 如果評論是中文的,則輸出也應為中文。\

  • 保證輸入的文本與prompt的一緻。可以在功能層面上維護多套語言的prompt。當使用者選擇了中文模式時使用中文的prompt提問
  • 提示語中設定few-shot或者分析步驟

2)問題2. api調用及token請求問題

毫無疑問,在開發過程中需要科學上網,并且需要限制一定的token請求量,目前GPT3.5單次請求隻能包含4390token,超過無法完成分析。

解決方法

  • 前端須有token限制的功能,另外需要補充功能記錄每次提問及傳回結果的token數量,用于監控調用
  • 科學上網

3)問題3. 調用量成本

基于大模型進行開發的實踐與思考

Fig2. usage調用量明細

截取了過去幾天的調用資料,平均$0.05/天,折合$0.35,此情況是根據一個使用者一天總共50次的請求數量計算的,平均費用為$0.007\天\人,具體取決于你所輸入的文本和構造的提示詞數量。

解決方法

  • 前端需具備發起提問的token限制功能
  • 源碼中的prompt的建構盡量簡潔、清楚、明确

4)問題4. 變現方式及正式商用可行性待評估

LLM目前商用可行性的問題主要有以下三點:

  • LLM的可靠性及穩定性
  • 工程化方案如何适應每個行業
  • 投入産出比如何平衡

LLM無疑可以幫助人們快速地實作各種AI功能,但是從外部增強的角度來進行實踐, LLM輸出的結果在本質上是不可控的,落地性比較差。

因為涉及到科學上網及使用第三方LLM能力,如何實作更好的工程化,目前還尚未有成熟的方案。

另,利用 LLM所産生的費用是每一個落地項目都要考慮的實際問題。

以上内容,因為本人也還在探索,是以目前隻能給出開放性的答案。

解放方法

  • 對于 LLM的可靠性,我們可以在 prompt中添加一些小的樣本量來描述,并盡可能地對每個請求進行詳細地分析,另外也可以增加産品功能、深度學習或者增強學習的方法進行優化
  • 工程問題的求解,則是基于行業領域的創新,在此先不展開
  • 投入産出平衡問題:如果是試探性的嘗試,那就盡量開發一種與已有的産品形式相比對的輕量級應用形式,并為其提供一個開關,以實作功能的激活和關閉

三、總結及後續

1. 總結

LLM讓我以獨立開發者的身份,開發出了三款工具,達到了一個人相當于一個團隊的效果,大大提高了時間和人力的效率。

LLM的應用潛力巨大,可以幫助人們快速實作各種AI功能。希望未來能夠有更多的人加入到LLM的探索和應用中,共同推動AI技術的發展。

2. 後續

考慮到 LLM還有其他兩個方向,也是非常值得探索的,後續有機會可以再做一次分享。

  • 提示語制作(Prompt crafting)
  • 模型微調(Model Fine-tuning)

拓展閱讀

‘Beyond One-Model-Fits-All: A Survey of Domain Specialization for Large Language Models’

專欄作家

SiegZhong,人人都是産品經理專欄作家。深入了解AI技術的前沿趨勢,并提供實用的解決方案及思考。

本文原創釋出于人人都是産品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協定

該文觀點僅代表作者本人,人人都是産品經理平台僅提供資訊存儲空間服務。