LLM 串連:利用不同模型的優勢完成更複雜和多樣的任務

更新於 2024/12/17閱讀時間約 5 分鐘

前言

在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。

在這篇文章中,將使用 SimpleSequentialChain 方法,其中一個模型的輸出將成為另一個模型的輸入,形成一個連續的對話流程。以下說明如何設置和運用這兩個模型,以及它們是如何互相作用來產生有趣且相關的問答。

Chain的基本概念

LLM 是一種深度學習模型,經過大量的文本訓練,使其擁有從海量的知識中識別、匯總、翻譯、預測等能力。Chain 是一種將多個 LLM 連接在一起,以完成更複雜和多樣的任務的方法。Chain 可以讓您利用不同模型的優勢,並將它們的輸出作為下一個模型的輸入,形成一個有序的工作流程。

例如,您可以使用一個 LLM 來生成一個問題,然後使用另一個 LLM 來回答該問題,或者使用一個 LLM 來翻譯一段文本,然後使用另一個 LLM 來摘要該文本。如果想要串聯多個 LLMChain,您可以使用 SimpleSequentialChain 或 SequentialChain 類別來實現。這些類別可以讓多個 LLMChain 按照順序連接起來,並將前一個 LLMChain 的輸出作為後一個 LLMChain 的輸入。

raw-image


實作

選擇基礎模型

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
}

Simple Sequential Chain

「簡易串聯鏈」(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)

產生

raw-image

應用中文版

raw-image

延伸應用在 FAQ 的生成

raw-image


小心得

這次練習 LLM 串連的基本概念和實作方法,並展示了如何使用 Google 的兩款大型語言模型 flan-ul2 和 flan-t5-xxl 生成關於特定主題的隨機問題和回答。通過 LLM 串連,我們可以將多個 LLM 模型按照順序連接起來,形成一個有序的工作流程,並利用不同模型的優勢來完成更複雜和多樣的任務。

在這個過程中,當兩個語言模型被放在一起時,它們可以開始進行對話和討論,這為智能客服或對話機器人等應用中的 AI 創造了更多的價值。希望這篇文章能夠幫助您更好地理解 LLM 串連的概念和應用,並啟發您在自己的項目中使用 LLM 串連來實現更多的創新和價值,感謝看到這裡的你,我們下次見~

avatar-img
33會員
43內容數
歡迎來到《桃花源記》專欄。這裡不僅是一個文字的集合,更是一個探索、夢想和自我發現的空間。在這個專欄中,我們將一同走進那些隱藏在日常生活中的"桃花源"——那些讓我們心動、讓我們反思、讓我們找到內心平靜的時刻和地方
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Karen的沙龍 的其他內容
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
1. 問題定義 每一個成功的模型都始於明確的問題定義! 核心思考:你的模型想要達到什麼目的? 例如:是要偵測每一筆交易是否涉及洗錢,還是要從大量資料中找出可能的洗錢關聯戶? 2. 數據檢查 數據是模型的基石,但不是所有數據都是有用的! 核心思考:你的數據夠嗎?時間分佈如何?正負樣本
今年的國泰金控技術年會,關於 AI 有幾個主題覺得很有趣、也受到一些啟發: 1. 可解釋 AI : AI 的可解釋性一直是一個很被關注的題目,尤其是發生在模型要準備落地應用,需要驗證黑盒子是不是依照正確的邏輯、人類的邏輯去判斷問題,我自己很喜歡這個部分,算法是用一套最基本的SHAP,SHAP基於博
最近有採購幾台 server ,正在進行一些設定的作業,把這些過程都保留下來,之後要再設定就可以回來查看了~~~ 目標 在 Centos Linux 主機上移除 Podman ,並安裝 Docker 解決 首先先確認 Centos 的版本,是 Debian or Fedora cat /
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
1. 問題定義 每一個成功的模型都始於明確的問題定義! 核心思考:你的模型想要達到什麼目的? 例如:是要偵測每一筆交易是否涉及洗錢,還是要從大量資料中找出可能的洗錢關聯戶? 2. 數據檢查 數據是模型的基石,但不是所有數據都是有用的! 核心思考:你的數據夠嗎?時間分佈如何?正負樣本
今年的國泰金控技術年會,關於 AI 有幾個主題覺得很有趣、也受到一些啟發: 1. 可解釋 AI : AI 的可解釋性一直是一個很被關注的題目,尤其是發生在模型要準備落地應用,需要驗證黑盒子是不是依照正確的邏輯、人類的邏輯去判斷問題,我自己很喜歡這個部分,算法是用一套最基本的SHAP,SHAP基於博
最近有採購幾台 server ,正在進行一些設定的作業,把這些過程都保留下來,之後要再設定就可以回來查看了~~~ 目標 在 Centos Linux 主機上移除 Podman ,並安裝 Docker 解決 首先先確認 Centos 的版本,是 Debian or Fedora cat /
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
最近各組織正急於整合大型語言模型(LLMs)以改善其線上用戶體驗。這使它們面臨網路LLM攻擊的風險,這些攻擊嘗試取得不允許存取的資料、API或阻擋使用者。
Thumbnail
最近在上LLM線上課 來分享我所學到的 LangChain LangChian是把ChatGPT API 轉換為物件導向的形式來使用我所學到 LangChain 的五個方法 : Prompt Template / LLMChain / OutputParser / Agent / Conversat
在上一期「LLM 005|大語言模型是如何利用Transformer理解語言的?」我們提到,Transformer是大語言模型理解語言的關鍵。 而Transformer架構兩個主要的後代是BERT以及GPT。 BERT是bidirectional encoder representati
從頭開始寫大語言模型的程式碼, 是最好理解大語言模型的機制與限制的方風。 從頭開始寫大語言模型的程式碼,可以幫助我們得到預訓練與微調整開源大語言模型架構所需要的知識,並應用到特定領域的數據及以及任務。 客製化大語言模型一般來說比起通用大語言模型有更好的表現。 一個具體的例子是
大語言模型,例如OpenAI提供的ChatGPT,是過去幾年發展的深度神經網路模型,開啟自然語言處理的新紀元。
Thumbnail
ChatGPT 在去年十一月橫空出世,每個人都驚探於它的能力,AI 也從遙遠的科技成為很多人每天都在使用的工具,但是自從 AI 成為最熱門的話題之後,始終有一群人一直大聲疾呼,我們需要小心發展 AI,另一方面則要提防 AI 被壞人利用,在影片中,Andrej Karpathy 介紹了三種已知的安全漏
Thumbnail
做一個網頁或是 App 除了原本 agoda 有的搜尋條件外,增加一個可以輸入 prompt 的小對話筐 可以輸入你額外的條件,按下搜尋後輸出結果 輸出的結果除了適合你的房子外,還會寫出為什麼適合你,以及你額外的條件他有幾項符合
Thumbnail
嘗試一個微調金融領域的 LLM:FinGPT (一個追求開源、輕量、低成本的微調在金融領域的 LLM(大型語言模型)),來做新聞標題情感(Sentiment)極性辨識。 PS. 有附註 Hugging Face 模型下載與 cache 路徑自定義說明 因為研究題目,最近在接觸各種金融領域微調(
Thumbnail
ChatGPT背後的技術 大型語言模型 是否與我們前面介紹的神經網路相同呢? 答案是不同的,這也是我們想要進一步探討了解的課題。今天會先解釋什麼是語言模型,想要做到的是哪些事情。
Thumbnail
大家好,我是茶桁. 在上一节课中,我们学习了如何使用LangChain这个Python包链式调用OpenAI的API。通过链式调用,我们可以将需要多轮询问AI才能解决的问题封装起来,将需要多轮自然语言调用才能解决的问题变成一个函数调用。 然而,LangChain对我们的帮助远不止于此。最近,Ch
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
最近各組織正急於整合大型語言模型(LLMs)以改善其線上用戶體驗。這使它們面臨網路LLM攻擊的風險,這些攻擊嘗試取得不允許存取的資料、API或阻擋使用者。
Thumbnail
最近在上LLM線上課 來分享我所學到的 LangChain LangChian是把ChatGPT API 轉換為物件導向的形式來使用我所學到 LangChain 的五個方法 : Prompt Template / LLMChain / OutputParser / Agent / Conversat
在上一期「LLM 005|大語言模型是如何利用Transformer理解語言的?」我們提到,Transformer是大語言模型理解語言的關鍵。 而Transformer架構兩個主要的後代是BERT以及GPT。 BERT是bidirectional encoder representati
從頭開始寫大語言模型的程式碼, 是最好理解大語言模型的機制與限制的方風。 從頭開始寫大語言模型的程式碼,可以幫助我們得到預訓練與微調整開源大語言模型架構所需要的知識,並應用到特定領域的數據及以及任務。 客製化大語言模型一般來說比起通用大語言模型有更好的表現。 一個具體的例子是
大語言模型,例如OpenAI提供的ChatGPT,是過去幾年發展的深度神經網路模型,開啟自然語言處理的新紀元。
Thumbnail
ChatGPT 在去年十一月橫空出世,每個人都驚探於它的能力,AI 也從遙遠的科技成為很多人每天都在使用的工具,但是自從 AI 成為最熱門的話題之後,始終有一群人一直大聲疾呼,我們需要小心發展 AI,另一方面則要提防 AI 被壞人利用,在影片中,Andrej Karpathy 介紹了三種已知的安全漏
Thumbnail
做一個網頁或是 App 除了原本 agoda 有的搜尋條件外,增加一個可以輸入 prompt 的小對話筐 可以輸入你額外的條件,按下搜尋後輸出結果 輸出的結果除了適合你的房子外,還會寫出為什麼適合你,以及你額外的條件他有幾項符合
Thumbnail
嘗試一個微調金融領域的 LLM:FinGPT (一個追求開源、輕量、低成本的微調在金融領域的 LLM(大型語言模型)),來做新聞標題情感(Sentiment)極性辨識。 PS. 有附註 Hugging Face 模型下載與 cache 路徑自定義說明 因為研究題目,最近在接觸各種金融領域微調(
Thumbnail
ChatGPT背後的技術 大型語言模型 是否與我們前面介紹的神經網路相同呢? 答案是不同的,這也是我們想要進一步探討了解的課題。今天會先解釋什麼是語言模型,想要做到的是哪些事情。
Thumbnail
大家好,我是茶桁. 在上一节课中,我们学习了如何使用LangChain这个Python包链式调用OpenAI的API。通过链式调用,我们可以将需要多轮询问AI才能解决的问题封装起来,将需要多轮自然语言调用才能解决的问题变成一个函数调用。 然而,LangChain对我们的帮助远不止于此。最近,Ch