使用LLM插件從命令行訪問(wèn)Llama 2
最近的一個(gè)大新聞是Meta AI推出了新的開源授權(quán)的大型語(yǔ)言模型Llama 2。這是一項(xiàng)非常重要的進(jìn)展:
Llama 2可免費(fèi)用于研究和商業(yè)用途。
(幾小時(shí)前,swyy發(fā)現(xiàn)它已從LLaMA 2更名為L(zhǎng)lama 2)。
Facebook最初的LLaMA模型于今年2月發(fā)布,掀起了開源LLM領(lǐng)域的創(chuàng)新浪潮——從微調(diào)變體到從零開始的再創(chuàng)造。
只有一個(gè)限制:用戶不能將它用于商業(yè)目的。
Llama 2的出現(xiàn)改變了這一點(diǎn)!
它仍然有一些有趣的限制,重點(diǎn)是:
用戶不得使用Llama材料或Llama材料的任何輸出或結(jié)果來(lái)改進(jìn)任何其他大型語(yǔ)言模型(不包括Llama 2或其衍生作品)。
如果在Llama 2版本發(fā)布之日,由被許可人或被許可人的附屬機(jī)構(gòu)提供的產(chǎn)品或服務(wù)的月活躍用戶在前一個(gè)日歷月超過(guò)7億,則必須向Meta申請(qǐng)?jiān)S可,Meta可自行決定是否授予許可。
這使得它仍然可以適用于大多數(shù)商業(yè)用途。接下來(lái)跟隨本文試一試。
使用LLM訪問(wèn)Llama 2
LLM工具可以通過(guò)命令行訪問(wèn)各種語(yǔ)言模型,既可以通過(guò)網(wǎng)絡(luò)應(yīng)用程序接口訪問(wèn),也可以在自己的機(jī)器上自行托管。
添加插件支持以擴(kuò)展它對(duì)新模型的支持?,F(xiàn)在,一個(gè)獨(dú)立發(fā)布的插件可以為現(xiàn)有的CLI工具添加對(duì)新模型的支持。
全新的llm-replicate插件提供了對(duì)Replicate上托管的模型的CLI訪問(wèn),a16z-infra發(fā)布了a16z-infra/llama13b-v2-chat,該插件提供了對(duì)新的Llama 2 13B聊天模型的Replicate API訪問(wèn)。
需要一個(gè)Replicate API密鑰。
使用如下命令安裝LLM:
pip install llm
如果沒有安裝pip,但可以使用Homebrew:
brew install simonw/llm/llm
運(yùn)行l(wèi)lm--version確認(rèn)已安裝成功。
接下來(lái),安裝llm-replicate插件:
llm install llm-replicate
該插件添加了一組新的llm replicate命令——可以使用llm --help查看。
配置Replicate API密鑰,以便插件能與API通信:
llm keys set replicate
Enter key: <paste key here>
在插件中注冊(cè)新的a16z-infra/llama13b-v2-chat模型:
llm replicate add a16z-infra/llama13b-v2-chat \
--chat --alias llama2
這就告訴插件它是一個(gè)“chat”模型,這意味著用戶可以與它進(jìn)行持續(xù)對(duì)話,而不僅僅是發(fā)送單個(gè)提示。
現(xiàn)在,可以使用在這里配置的llama2別名發(fā)送提示信息:
llm -m llama2 "Ten great names for a pet pelican"
得到的輸出如下所示:
當(dāng)然!以下是十個(gè)適合作為寵物鵜鶘的好名字:
- 花生(Peanut):一個(gè)可愛而活潑的小鵜鶘的名字。
- 水洼(Puddles):一個(gè)有趣而傻氣的名字,適用于喜歡在水中嬉戲的鵜鶘。
- 皮特(Pete):一個(gè)經(jīng)典的名字,適合友好外向的鵜鶘。
- 彭洛麗(Penelope):一個(gè)漂亮而優(yōu)雅的名字,適合雌性鵜鶘。
- 佩西(Percy):一個(gè)迷人而精致的名字,適合雄性鵜鶘。
- 皮皮(Pippy):一個(gè)活潑而親愛的名字,適合個(gè)性活躍的鵜鶘。
- 佩爾蒂(Pelty):一個(gè)有趣而古怪的名字,適合個(gè)性獨(dú)特的鵜鶘。
- 皮普(Pip):一個(gè)甜美而討人喜歡的名字,適合小鵜鶘。
- 勇敢(Plucky):一個(gè)勇敢而冒險(xiǎn)的名字,適合個(gè)性鮮明的鵜鶘。
- 波比(Poppy):一個(gè)可愛而嬌嫩的名字,適合性情溫和的雌性鵜鶘。
希望這些建議能幫助你為寵物鵜鶘找到一個(gè)完美的名字!
由于是聊天模型,可以在同一對(duì)話中發(fā)送后續(xù)提示:
llm -c "Five more and make them more nautical"
Ahoy!這里有五個(gè)更具海洋氣息的名字,適合你的寵物鵜鶘:
- 海鳥(Seabird):適合喜歡海洋及其奇觀的鵜鶘的名字。
- 船長(zhǎng)胡克(Captain Hook):適合勇敢無(wú)畏的鵜鶘的英勇名字。
- 錨(Anchor):適合始終穩(wěn)定可靠的鵜鶘的堅(jiān)固名字。
- 芬利(Finley):適合熱愛海洋及其生物的鵜鶘的有關(guān)魚的名字。
- 輕快(Buoyant):適合心情輕松愉快的鵜鶘的活潑愉快名字。
希望這些建議能讓你滿意,伙計(jì)!
LLM會(huì)將通過(guò)它發(fā)送的每個(gè)提示和響應(yīng)記錄到SQLite數(shù)據(jù)庫(kù)中。在這里使用--truncate來(lái)縮短輸出,將輸出截?cái)嘁员阍诒疚闹酗@示:
llm logs --truncate
[
{
"id": "01h5n5b3q6s54e03wtvqe90w2g",
"model": "replicate-a16z-infra-llama13b-v2-chat",
"prompt": "Five more and make them more nautical",
"system": null,
"response": "Ahoy matey! Here be five more nautical-themed names for yer pet pelican:\n\n1. Captain Hook\n2. Anch...",
"response_json": null,
"conversation_id": "01h5n5atsqfg4bhxc53j3ymnx2",
"duration_ms": 7364,
"datetime_utc": "2023-07-18T18:48:51.999944",
"conversation_name": "Ten great names for a pet pelic\u2026",
"conversation_model": "replicate-a16z-infra-llama13b-v2-chat"
},
{
"id": "01h5n5atss6k9zsr5qs5hb2wzd",
"model": "replicate-a16z-infra-llama13b-v2-chat",
"prompt": "Ten great names for a pet pelican",
"system": null,
"response": "Sure, here are ten great names for a pet pelican:\n\n1. Pelty\n2. Peanut\n3. Puddles\n4. Nibbles\n5. Fu...",
"response_json": null,
"conversation_id": "01h5n5atsqfg4bhxc53j3ymnx2",
"duration_ms": 7873,
"datetime_utc": "2023-07-18T18:48:42.356413",
"conversation_name": "Ten great names for a pet pelic\u2026",
"conversation_model": "replicate-a16z-infra-llama13b-v2-chat"
}
]
或運(yùn)行l(wèi)lm logs path命令查看SQLite數(shù)據(jù)庫(kù)文件的路徑。如果已經(jīng)安裝了Datasette,可以使用以下命令打開日志數(shù)據(jù)庫(kù):
datasette "$(llm logs path)"
或使用Datasette Desktop:
open "$(llm logs path)"
結(jié)語(yǔ)
對(duì)Llama 2感到非常興奮。預(yù)計(jì)隨著模型權(quán)重的逐步推出,用戶將開始看到在其基礎(chǔ)上的各種創(chuàng)新。
特別期待以下內(nèi)容:
- 微調(diào)模型。Alpaca、Vicuna等人在原始LLaMA模型的基礎(chǔ)上進(jìn)行微調(diào),取得了驚人的成就。預(yù)計(jì)在接下來(lái)的幾周內(nèi),我們將看到數(shù)十個(gè)微調(diào)模型。
- 實(shí)現(xiàn)reAct和Toolformer模式,這將使Llama 2能夠以類似于OpenAI Functions的方式驅(qū)動(dòng)外部工具。Llama 2的論文已經(jīng)提到了針對(duì)Toolformer提示的測(cè)試,因此希望這不會(huì)太困難。
希望能記錄什么類型的提示語(yǔ)能與Llama 2效果良好地配合使用,因?yàn)轭A(yù)計(jì)這一模型在未來(lái)一段時(shí)間內(nèi)將成為生態(tài)系統(tǒng)中頗具影響力的一部分。