使用Meta釋出的模型,實作Chat GPT - Part 5

更新於 發佈於 閱讀時間約 7 分鐘

延續使用Meta釋出的模型,實作Chat GPT - Part 4,我們現在遇到一個問題:語言模型回答的資訊不是我想要的。

於是我參照ChatGPT回答不是你要的怎麼辦?,想使用低成本的技術:RAG,來改善這問題。

以下開始實作,首先引入一個重量級工具包,它叫做LangChain,這是做語言模型AI在實作上的一個省力工具。

from langchain.llms import HuggingFacePipeline

LLM = HuggingFacePipeline(pipeline = Generate_Text)

這部分程式如下圖,我們一樣按下「紅色框框」處來執行,大約一秒鐘後,執行完成,「紅色框框」處會有綠色提示 (0秒處)。

raw-image

然後我們回顧ChatGPT回答不是你要的怎麼辦?,RAG的核心思想就是索引外部資料庫,來當作我的大腦,往後我希望我的語言模型在回答問題之前可以先來這個大腦知識區索引一下資料。

我同時將兩種知識索引的程式都列出來給大家使用,一種是以網站資料為知識索引,另一種是以PDF文件為知識索引,大家可以二選一執行。

  • 網站為知識索引
# ------------------- Web Version -------------------
from langchain.document_loaders import WebBaseLoader

Web_Links = ['https://1688.com']

Loader = WebBaseLoader(Web_Links)
Documents = Loader.load()

from langchain.text_splitter import RecursiveCharacterTextSplitter
Text_Splitter = RecursiveCharacterTextSplitter(chunk_size = 1000, chunk_overlap = 30)
All_Splits = Text_Splitter.split_documents(Documents)

這部分程式如下圖,我們一樣按下「紅色框框」處來執行,大約兩秒後,執行完成,「紅色框框」處會有綠色提示 (2秒處)。

raw-image
  • PDF文件為知識索引
# ------------------- Single PDF Version -------------------

from langchain.document_loaders import PyPDFLoader

from google.colab import files
uploaded = files.upload()
Loader = PyPDFLoader('1688.pdf')
Documents = Loader.load()

from langchain.text_splitter import RecursiveCharacterTextSplitter
Text_Splitter = RecursiveCharacterTextSplitter(chunk_size = 500, chunk_overlap = 100)
All_Splits = Text_Splitter.split_documents(Documents)

這部分我們需要準備一個檔名叫做「1688.pdf」的文件,我的作法是直接到阿里巴巴首頁https://1688.com,然後按右鍵轉存pdf,這樣我就有該網頁的pdf檔案了。

這部分程式如下圖,我們一樣按下「紅色框框」處來執行,大約43秒後,執行完成,「紅色框框」處會有綠色提示 (43秒處)。

raw-image

然後我希望不論透過上述哪種方式得到的知識都能存在一個向量資料庫,於是我要做Embedding,然後使用FAISS來儲存,它是Facebook開發的技術,全名叫做Facebook AI Similarity Search。

from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS

Model_Name = 'sentence-transformers/all-mpnet-base-v2'
Model_Kwargs = {"device": "cuda"}

Embedding = HuggingFaceEmbeddings(model_name = Model_Name, model_kwargs = Model_Kwargs)

VectorStore = FAISS.from_documents(All_Splits, Embedding)

這部分程式如下圖,我們一樣按下「紅色框框」處來執行,大約8秒後,執行完成,「紅色框框」處會有綠色提示 (8秒處)。

raw-image

接著把我們的大型語言模型與上述的向量資料庫一起拼湊成RAG技術,作法如下:

from langchain.chains import ConversationalRetrievalChain

RAG = ConversationalRetrievalChain.from_llm(LLM,
VectorStore.as_retriever(),
return_source_documents = True)

這部分程式如下圖,我們一樣按下「紅色框框」處來執行,大約一秒後,執行完成,「紅色框框」處會有綠色提示 (1秒處)。

raw-image

最後我們就可以問問題囉,我一樣問什麼是1688 ?

Chat_History = []

Query = "What is 1688 ?"

Result = RAG({"question": Query, "chat_history": Chat_History})
print(Result['answer'])

Chat_History.append((Query, Result['answer']))

這部分程式如下圖,我們一樣按下「紅色框框」處來執行,大約22秒後,執行完成,「紅色框框」處會有綠色提示 (22秒處)。

raw-image

最後得到的回答是:

raw-image

可以回顧一下使用Meta釋出的模型,實作Chat GPT - Part 4,之前回答我1688和威士忌有關係,加入RAG技術之後,他終於回答我正確答案:1688是一個電商平台,叫做阿里巴巴。

由上述實作可以看到引入大腦知識可以顯著讓大型語言模型得到你想要的答案的機率。

留言
avatar-img
留言分享你的想法!
LearnAI-avatar-img
發文者
2024/05/03
使用Meta釋出的模型,實作Chat GPT - Part 6提及了這篇文章,趕快過去看看吧!
avatar-img
Learn AI 不 BI
223會員
603內容數
這裡將提供: AI、Machine Learning、Deep Learning、Reinforcement Learning、Probabilistic Graphical Model的讀書筆記與演算法介紹,一起在未來AI的世界擁抱AI技術,不BI。
Learn AI 不 BI的其他內容
2024/05/25
最近接了一個AI專案,客戶要求以AI方式實現節能功能,以下提供我的專案思考軌跡: 面對這樣的技術,我第一個想到使用Reinforcement Learning技術,然而這裡我思考一件事,這個專案是要幫助客戶賺錢的,在沒有Digital Twin的搭配之下,貿然使用Reinforcement L
2024/05/25
最近接了一個AI專案,客戶要求以AI方式實現節能功能,以下提供我的專案思考軌跡: 面對這樣的技術,我第一個想到使用Reinforcement Learning技術,然而這裡我思考一件事,這個專案是要幫助客戶賺錢的,在沒有Digital Twin的搭配之下,貿然使用Reinforcement L
2024/05/25
上週發了一篇AI書單推薦 今天來談談,我是怎麼學習的,我總共學了七年AI,自然對於一個小白想入門有更深刻的體悟,更能了解怎麼樣學習才能不至於一次面臨太多困難而放棄 我的建議是這樣: 先花兩年把Machine Learning學完,當中會遇到很多數學問題,這方面可以「在遇到問題時」再去翻
2024/05/25
上週發了一篇AI書單推薦 今天來談談,我是怎麼學習的,我總共學了七年AI,自然對於一個小白想入門有更深刻的體悟,更能了解怎麼樣學習才能不至於一次面臨太多困難而放棄 我的建議是這樣: 先花兩年把Machine Learning學完,當中會遇到很多數學問題,這方面可以「在遇到問題時」再去翻
2024/05/18
這篇介紹我看過的AI書籍中,覺得很棒的書單,我按照不同的AI作法來分類: Machine Learning: Pattern Recognition and Machine Learning, Christopher M. Bishop, 2011 The Elements of Statis
2024/05/18
這篇介紹我看過的AI書籍中,覺得很棒的書單,我按照不同的AI作法來分類: Machine Learning: Pattern Recognition and Machine Learning, Christopher M. Bishop, 2011 The Elements of Statis
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
今天又發現ChatGPT的一些缺點, 使用時需要很準確的提供你想要表達的文字(我覺得還蠻重要的) 又或者拿一些範例給它看, 它就能更準確的回答問題, 因為今天我發現有一篇文章和之前寫過的完全一樣了, 所以又要再請ChatGPT生成30則勵志英文短文, 結果之前發問的問題已經消失了, 又
Thumbnail
今天又發現ChatGPT的一些缺點, 使用時需要很準確的提供你想要表達的文字(我覺得還蠻重要的) 又或者拿一些範例給它看, 它就能更準確的回答問題, 因為今天我發現有一篇文章和之前寫過的完全一樣了, 所以又要再請ChatGPT生成30則勵志英文短文, 結果之前發問的問題已經消失了, 又
Thumbnail
因為網路上充斥著 是是而非的資訊,公說公有理 婆說婆有理,我發現我的價值觀開始有點混淆,心中有許多問題 不知道真正的答案是甚麼?突然 想到最近的AI新科技-ChatGPT 或許可以解答我內心的困惑。所以我試著與ChatGPT進行對話,沒想到ChatGPT 的回覆 完全可以解答我心中的疑惑。
Thumbnail
因為網路上充斥著 是是而非的資訊,公說公有理 婆說婆有理,我發現我的價值觀開始有點混淆,心中有許多問題 不知道真正的答案是甚麼?突然 想到最近的AI新科技-ChatGPT 或許可以解答我內心的困惑。所以我試著與ChatGPT進行對話,沒想到ChatGPT 的回覆 完全可以解答我心中的疑惑。
Thumbnail
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 針對Generative AI、Foundation Model、Large Language Mode
Thumbnail
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 針對Generative AI、Foundation Model、Large Language Mode
Thumbnail
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - Prompt Engineering - 2中,我們已經以文字敘述各種AI的範疇與其思想
Thumbnail
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - Prompt Engineering - 2中,我們已經以文字敘述各種AI的範疇與其思想
Thumbnail
ChatGPT(全名:聊天生成預訓練轉換器)是一個由 OpenAI 開發的人工智慧聊天機器人程式。它於 2022 年 11 月推出,使用了基於 GPT-3.5、GPT-4 和 GPT-4o 架構的大型語言模型,並以強化學習進行訓練。
Thumbnail
ChatGPT(全名:聊天生成預訓練轉換器)是一個由 OpenAI 開發的人工智慧聊天機器人程式。它於 2022 年 11 月推出,使用了基於 GPT-3.5、GPT-4 和 GPT-4o 架構的大型語言模型,並以強化學習進行訓練。
Thumbnail
筆記-曲博談AI模型.群聯-24.05.05 https://www.youtube.com/watch?v=JHE88hwx4b0&t=2034s *大型語言模型 三個步驟: 1.預訓練,訓練一次要用幾萬顆處理器、訓練時間要1個月,ChatGPT訓練一次的成本為1000萬美金。 2.微調(
Thumbnail
筆記-曲博談AI模型.群聯-24.05.05 https://www.youtube.com/watch?v=JHE88hwx4b0&t=2034s *大型語言模型 三個步驟: 1.預訓練,訓練一次要用幾萬顆處理器、訓練時間要1個月,ChatGPT訓練一次的成本為1000萬美金。 2.微調(
Thumbnail
這陣子使用AI模型,還有參考國內外一些喜歡玩語言模型的同好發文,一個很有趣的結論就是,有時候把大型語言模型(尤其ChatGPT)當作一個人來溝通,會得到比較好的結果,這的確是非常反直覺的,也就是說很多時候ChatGPT耍懶不肯工作的時候,你用加油打氣,或是情緒勒索的方法,確實是可以得到比較好的結果。
Thumbnail
這陣子使用AI模型,還有參考國內外一些喜歡玩語言模型的同好發文,一個很有趣的結論就是,有時候把大型語言模型(尤其ChatGPT)當作一個人來溝通,會得到比較好的結果,這的確是非常反直覺的,也就是說很多時候ChatGPT耍懶不肯工作的時候,你用加油打氣,或是情緒勒索的方法,確實是可以得到比較好的結果。
Thumbnail
ChatGPT 是 OpenAI 開發的大型語言模型,以其強大的生成能力和對話能力而聞名。 ChatGPT 的訓練過程主要分為兩個階段:預訓練和微調。 微調使用了 RLHF(Reinforcement Learning from Human Feedback)技術,可以有效地提高模型生成內容的質量。
Thumbnail
ChatGPT 是 OpenAI 開發的大型語言模型,以其強大的生成能力和對話能力而聞名。 ChatGPT 的訓練過程主要分為兩個階段:預訓練和微調。 微調使用了 RLHF(Reinforcement Learning from Human Feedback)技術,可以有效地提高模型生成內容的質量。
Thumbnail
在這篇文章中,我們將探討如何利用ChatGPT這個強大的語言模型來學習其他語言,並比較其與Google翻譯的優缺點。無論你是想提升外語能力還是在跨文化交流中更加流暢,ChatGPT都是一個極具價值的工具。
Thumbnail
在這篇文章中,我們將探討如何利用ChatGPT這個強大的語言模型來學習其他語言,並比較其與Google翻譯的優缺點。無論你是想提升外語能力還是在跨文化交流中更加流暢,ChatGPT都是一個極具價值的工具。
Thumbnail
從ChatGPT 4.0到GPTs 我是ChatGPT 4.0的付費使用者,說真格的,自從付費之後,就不想退出了,因為真是好用。 最近,ChatGPT 4.0又提供了GPTs的服務...... 有時候別人邀請我演講,我都會先溝通需求,有一次,某間學校邀請我對學生分享ChatGPT等生成式人工智
Thumbnail
從ChatGPT 4.0到GPTs 我是ChatGPT 4.0的付費使用者,說真格的,自從付費之後,就不想退出了,因為真是好用。 最近,ChatGPT 4.0又提供了GPTs的服務...... 有時候別人邀請我演講,我都會先溝通需求,有一次,某間學校邀請我對學生分享ChatGPT等生成式人工智
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News