博客專欄

        EEPW首頁 > 博客 > 從 GPT4All 體驗 LLM

        從 GPT4All 體驗 LLM

        發(fā)布人:ygtu 時間:2023-08-08 來源:工程師 發(fā)布文章
        推薦:使用NSDT場景編輯器助你快速搭建可編輯的3D應用場景
        什么是 GPT4All?

        術語“GPT”源自 Radford 等人 2018 年論文的標題“通過生成預訓練提高語言理解”。本文描述了如何證明變壓器模型能夠理解人類語言。

        從那時起,許多人嘗試使用轉換器架構開發(fā)語言模型,并且已經(jīng)發(fā)現(xiàn)足夠大的模型可以給出出色的結果。但是,開發(fā)的許多模型都是專有的。有付費訂閱的服務或具有某些限制條款的許可證。由于尺寸的原因,有些甚至無法在商用硬件上運行。

        GPT4All項目試圖在通用硬件上向公眾提供LLM。它允許你訓練和部署模型。還提供預訓練模型,其尺寸較小,可以在 CPU 上合理運行。

        如何獲取 GPT4All

        讓我們只關注使用預先訓練的模型。

        在撰寫本文時,GPT4All 可從 https://gpt4all.io/index.html 獲得,您可以將其作為桌面應用程序或使用 Python 庫運行。您可以下載操作系統(tǒng)的安裝程序以運行桌面客戶端。客戶端只有幾百MB。您應該會看到一個安裝屏幕,如下所示:

        安裝客戶端后,首次啟動它將提示您安裝模型,該模型可以大至數(shù) GB。首先,您可以選擇“”(GPT4All-J 型號)。這是一個相對較小但流行的模型。gpt4all-j-v1.3-groovy

        客戶端和模型準備就緒后,您可以在輸入框中鍵入消息。該模型可能期望特定形式的輸入,例如,特定的語言或樣式。該模型需要對話風格(如 ChatGPT),并且通常可以很好地處理英語。例如,下面是它如何響應輸入“給我 10 種顏色及其 RGB 代碼的列表”:

        如何在 Python 中使用 GPT4All

        GPT4All 的關鍵組件是模型。桌面客戶端只是它的接口。除了客戶端,您還可以通過 Python 庫調用模型。

        不出所料,該庫被命名為“”,“,您可以使用以下命令安裝它:gpt4allpip

        1
        pip install gpt4all

        之后,您只需幾行代碼即可在 Python 中使用它:

        1
        2
        3
        4
        5
        6
        import gpt4all
        gptj = gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy")
        messages = [{"role": "user", "content": "Give me a list of 10 colors and their RGB code"}]
        ret = gptj.chat_completion(messages)
        print(ret)

        運行上述代碼將下載模型文件(如果尚未下載)。之后,加載模型,提供輸入,并將響應作為 Python 字典返回,如下所示:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        {'model': 'ggml-gpt4all-j-v1.3-groovy',
        'usage': {'prompt_tokens': 272,
                   'completion_tokens': 301,
                   'total_tokens': 573},
        'choices': [
            {'message':
                {'role': 'assistant',
                 'content': ' Here is a list of 10 colors and their RGB code:Red (255, 0, 0)  Green (0, 255, 0) Blue (0, 0, 255)  Yellow (255, 255, 0) Orange (255, 127, 0)  Purple (0, 128, 255) Pink (255, 192, 203)  Blue-Green (0, 0, 255)  Green-Blue (0, 0, 255)  Blue-Purple (0, 0, 255)  Blue-Green (0, 0, 255)  Blue-Purple (0, 0'
                }
            }
        ]
        }

        上面的示例使用輸入作為一個字典的列表。更復雜的輸入是許多字典的列表,每個字典都包含鍵和 .可以是 、 或 ,而 是文本字符串。如果您使用的是 GPT4All-J 模型(如示例所示),則您的角色是在計算機 .輸入應該是這兩方之間的一系列對話。以下是逐步構建對話的方法:rolecontentrole"system""assistant""user"content"user""assistant"

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        import json
        import gpt4all
        gptj = gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy")
        messages = [{"role": "user", "content": "Can you explain what is a large language model?"}]
        ret = gptj.chat_completion(messages)
        messages.append(ret["choices"][0]["message"])
        messages.append({"role": "user", "content": "Can you give some examples applications?"})
        ret = gptj.chat_completion(messages)
        messages.append(ret["choices"][0]["message"])
        messages.append({"role": "user", "content": "Are there any limitations?"})
        ret = gptj.chat_completion(messages)
        消息appendret[“choices”][0][“message”])
        消息append{“role”: “user” content” 用兩句話總結上述內容。})
        RET = GPTJchat_completion消息)
        打印JSON.轉儲消息縮進 = 4))
        打印JSON.轉儲ret 縮進=4))

        請注意,您多次調用了該模型。每次它響應時,您都會獲取輸出并將其附加到消息列表中,以便累積上下文。然后,添加新對話框并再次調用該模型。您需要收集消息,因為每次調用模型時,它都會在不知道上一個對話的情況下重新開始。因此,您的工作是保留歷史記錄以提醒模型其先前的反應。

        下面是上述代碼輸出的示例,其中打印了模型的最后一個輸入消息及其響應。您可能會從另一個模型中獲得更好的結果。由于模型中的隨機性,您還可能會得到不同的結果:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
        30
        31
        32
        33
        34
        35
        36
        37
        38
        39
        40
        41
        42
        43
        44
        45
        46
        [
            {
        “角色”: “用戶”,
        “內容”:“你能解釋一下什么是大型語言模型嗎?
        },
            {
        “角色”: “助理”,
        “內容”:“大型語言模型是一種可以處理和理解自然語言(如語音或文本)的人工智能。它經(jīng)過大量數(shù)據(jù)的訓練,可以執(zhí)行語言翻譯、情感分析甚至回答問題等任務。大型語言模型在包括金融和醫(yī)療保健在內的各個行業(yè)中越來越受歡迎。
        },
            {
        “角色”: “用戶”,
        “內容”: “你能舉一些例子嗎?
        },
            {
        “角色”: “助理”,
        “內容”: “ 大型語言模型被用于各種應用,例如:- 語言翻譯和機器翻譯,其中大型語言模型在大量數(shù)據(jù)上進行訓練以提高準確性和速度.- 情感分析,其中大型語言模型被訓練以分析社交媒體數(shù)據(jù)并識別用戶意見中的模式.- 問答, 其中大型語言模型被訓練以基于大量數(shù)據(jù)來回答問題.- 醫(yī)療保健,其中大型語言模型用于分析患者數(shù)據(jù)并識別健康趨勢中的模式.- 金融,其中大型語言模型用于分析財務數(shù)據(jù)并識別模式”
        },
            {
        “角色”: “用戶”,
        “內容”:“有什么限制嗎?
        },
            {
        “角色”: “助理”,
        “內容”:“是的,大型語言模型有一些限制。主要挑戰(zhàn)之一是它們需要大量數(shù)據(jù)來訓練,這可能既昂貴又耗時。此外,大型語言模型的計算成本可能很高,并且可能需要專門的硬件才能運行。另一個限制是大型語言模型可能無法理解人類語言的細微差別,這可能會使它們在某些情況下效率降低。最后,大型語言模型可能無法理解對話或文本的上下文,這可能會使它們在某些應用程序中的效果降低。
        },
            {
        “角色”: “用戶”,
        “內容”:“用兩句話概括以上內容。
            }
        ]
        {
        “model”: “ggml-gpt4all-j-v1.3-groovy”,
        “用法”:{
        “prompt_tokens”:2113,
        “completion_tokens”:542,
        “total_tokens”:2655
        },
        “選擇”:[
                {
        “消息”:{
        “角色”: “助理”,
        “內容”:“大型語言模型是一種可以處理和理解自然語言(如語音或文本)的人工智能。他們接受過大量數(shù)據(jù)的培訓,可以執(zhí)行語言翻譯、情感分析甚至回答問題等任務。它們在金融和醫(yī)療保健等各個行業(yè)越來越受歡迎。然而,存在一些限制,例如昂貴的數(shù)據(jù)和專用硬件,計算費用,缺乏對人類語言和上下文細微差別的理解。
                    }
                }
            ]
        }
        總結

        GPT4All 是一個不錯的工具,您可以在計算機上使用。它允許您探索與大型語言模型的交互,并幫助您更好地了解模型的功能和限制。在這篇文章中,您了解到:

        • GPT4All 有一個桌面客戶端,您可以將其安裝在計算機上

        • GPT4All有一個Python接口,允許您在代碼中與語言模型進行交互

        • 有多種語言模型可用

        原文鏈接:從 GPT4All 體驗 LLM (mvrlink.com)


        *博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



        關鍵詞: AI 人工智能 chatgpt

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 山阳县| 喀喇沁旗| 洪湖市| 沁阳市| 赤壁市| 皮山县| 宁远县| 宜宾市| 新巴尔虎左旗| 彭山县| 万州区| 南华县| 广饶县| 安多县| 兴化市| 凤阳县| 图们市| 安达市| 镇江市| 洞头县| 海林市| 化隆| 曲松县| 中方县| 乌恰县| 彭州市| 定陶县| 乐业县| 宁晋县| 柏乡县| 七台河市| 兴义市| 体育| 吉木萨尔县| 林州市| 重庆市| 连南| 焉耆| 桐庐县| 龙泉市| 阿拉善右旗|