在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl
,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。
在這篇文章中,將使用 SimpleSequentialChain
方法,其中一個模型的輸出將成為另一個模型的輸入,形成一個連續的對話流程
。以下說明如何設置和運用這兩個模型,以及它們是如何互相作用來產生有趣且相關的問答。
LLM 是一種深度學習模型,經過大量的文本訓練,使其擁有從海量的知識中識別、匯總、翻譯、預測等能力。Chain 是一種將多個 LLM 連接在一起,以完成更複雜和多樣的任務的方法。
Chain 可以讓您利用不同模型的優勢,並將它們的輸出作為下一個模型的輸入,形成一個有序的工作流程。
例如,您可以使用一個 LLM 來生成一個問題,然後使用另一個 LLM 來回答該問題,或者使用一個 LLM 來翻譯一段文本,然後使用另一個 LLM 來摘要該文本。如果想要串聯多個 LLMChain,您可以使用 SimpleSequentialChain 或 SequentialChain 類別來實現。這些類別可以讓多個 LLMChain 按照順序連接起來,並將前一個 LLMChain 的輸出作為後一個 LLMChain 的輸入。
model_id_1 = ModelTypes.FLAN_UL2
model_id_2 = ModelTypes.FLAN_T5_XXL
這次為了要讓兩模型互動,選擇了兩個基礎模型。
from ibm_watson_machine_learning.metanames import GenTextParamsMetaNames as GenParams
from ibm_watson_machine_learning.foundation_models.utils.enums import DecodingMethods
parameters = {
GenParams.DECODING_METHOD: DecodingMethods.SAMPLE,
GenParams.MAX_NEW_TOKENS: 100,
GenParams.MIN_NEW_TOKENS: 1,
GenParams.TEMPERATURE: 0.5,
GenParams.TOP_K: 50,
GenParams.TOP_P: 1
}
「簡易串聯鏈」(SimpleSequentialChain)是一種基礎鏈結構,其中每個階段的輸出自動成為下一階段的輸入。在這個過程中,我們將使用兩個 PromptTemplate 對象:一個用於創造隨機問題,另一個用於回答問題。這樣的設置允許我們將 LLMChain 串連,實現自動問題生成和回答
。
from langchain import PromptTemplate
prompt_1 = PromptTemplate(
input_variables=["topic"],
template="Generate a random question about {topic}: Question: "
)
prompt_2 = PromptTemplate(
input_variables=["question"],
template="Answer the following question: {question}",
)
實際 inference
from langchain.chains import LLMChain
prompt_to_flan_ul2 = LLMChain(llm=flan_ul2_model.to_langchain(), prompt=prompt_1)
flan_to_t5 = LLMChain(llm=flan_t5_model.to_langchain(), prompt=prompt_2)
from langchain.chains import SimpleSequentialChain
qa = SimpleSequentialChain(chains=[prompt_to_flan_ul2, flan_to_t5], verbose=True)
產生
這次練習 LLM 串連的基本概念和實作方法,並展示了如何使用 Google 的兩款大型語言模型 flan-ul2 和 flan-t5-xxl 來生成關於特定主題的隨機問題和回答
。通過 LLM 串連,我們可以將多個 LLM 模型按照順序連接起來,形成一個有序的工作流程,並利用不同模型的優勢來完成更複雜和多樣的任務。
在這個過程中,當兩個語言模型被放在一起時,它們可以開始進行對話和討論,這為智能客服或對話機器人等應用中的 AI 創造了更多的價值。希望這篇文章能夠幫助您更好地理解 LLM 串連的概念和應用,並啟發您在自己的項目中使用 LLM 串連來實現更多的創新和價值,感謝看到這裡的你,我們下次見~