最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:
Llama 2可免费用于研究和商业用途。
(几小时前,swyy发现它已从LLaMA 2更名为Llama 2)。
Facebook最初的LLaMA模型于今年2月发布,掀起了开源LLM领域的创新浪潮——从微调变体到从零开始的再创造。
只有一个限制:用户不能将它用于商业目的。
Llama 2的出现改变了这一点!
它仍然有一些有趣的限制,重点是:
用户不得使用Llama材料或Llama材料的任何输出或结果来改进任何其他大型语言模型(不包括Llama 2或其衍生作品)。
如果在Llama 2版本发布之日,由被许可人或被许可人的附属机构提供的产品或服务的月活跃用户在前一个日历月超过7亿,则必须向Meta申请许可,Meta可自行决定是否授予许可。
这使得它仍然可以适用于大多数商业用途。接下来跟随本文试一试。
使用LLM访问Llama 2
LLM工具可以通过命令行访问各种语言模型,既可以通过网络应用程序接口访问,也可以在自己的机器上自行托管。
添加插件支持以扩展它对新模型的支持。现在,一个独立发布的插件可以为现有的CLI工具添加对新模型的支持。
全新的llm-replicate插件提供了对Replicate上托管的模型的CLI访问,a16z-infra发布了a16z-infra/llama13b-v2-chat,该插件提供了对新的Llama 2 13B聊天模型的Replicate API访问。
需要一个Replicate API密钥。
使用如下命令安装LLM:
pip install llm
如果没有安装pip,但可以使用Homebrew:
brew install simonw/llm/llm
运行llm--version确认已安装成功。
接下来,安装llm-replicate插件:
llm install llm-replicate
该插件添加了一组新的llm replicate命令——可以使用llm --help查看。
配置Replicate API密钥,以便插件能与API通信:
llm keys set replicate
Enter key:
在插件中注册新的a16z-infra/llama13b-v2-chat模型:
llm replicate add a16z-infra/llama13b-v2-chat \
--chat --alias llama2
这就告诉插件它是一个“chat”模型,这意味着用户可以与它进行持续对话,而不仅仅是发送单个提示。
现在,可以使用在这里配置的llama2别名发送提示信息:
llm -m llama2 "Ten great names for a pet pelican"
得到的输出如下所示:
当然!以下是十个适合作为宠物鹈鹕的好名字:
花生(Peanut):一个可爱而活泼的小鹈鹕的名字。 水洼(Puddles):一个有趣而傻气的名字,适用于喜欢在水中嬉戏的鹈鹕。 皮特(Pete):一个经典的名字,适合友好外向的鹈鹕。 彭洛丽(Penelope):一个漂亮而优雅的名字,适合雌性鹈鹕。 佩西(Percy):一个迷人而精致的名字,适合雄性鹈鹕。 皮皮(Pippy):一个活泼而亲爱的名字,适合个性活跃的鹈鹕。 佩尔蒂(Pelty):一个有趣而古怪的名字,适合个性独特的鹈鹕。 皮普(Pip):一个甜美而讨人喜欢的名字,适合小鹈鹕。 勇敢(Plucky):一个勇敢而冒险的名字,适合个性鲜明的鹈鹕。 波比(Poppy):一个可爱而娇嫩的名字,适合性情温和的雌性鹈鹕。 希望这些建议能帮助你为宠物鹈鹕找到一个完美的名字!
由于是聊天模型,可以在同一对话中发送后续提示:
llm -c "Five more and make them more nautical"
Ahoy!这里有五个更具海洋气息的名字,适合你的宠物鹈鹕:
海鸟(Seabird):适合喜欢海洋及其奇观的鹈鹕的名字。 船长胡克(Captain Hook):适合勇敢无畏的鹈鹕的英勇名字。 锚(Anchor):适合始终稳定可靠的鹈鹕的坚固名字。 芬利(Finley):适合热爱海洋及其生物的鹈鹕的有关鱼的名字。 轻快(Buoyant):适合心情轻松愉快的鹈鹕的活泼愉快名字。 希望这些建议能让你满意,伙计!
LLM会将通过它发送的每个提示和响应记录到SQLite数据库中。在这里使用--truncate来缩短输出,将输出截断以便在本文中显示:
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"
}
]
或运行llm logs path命令查看SQLite数据库文件的路径。如果已经安装了Datasette,可以使用以下命令打开日志数据库:
datasette "$(llm logs path)"
或使用Datasette Desktop:
open "$(llm logs path)"
结语
对Llama 2感到非常兴奋。预计随着模型权重的逐步推出,用户将开始看到在其基础上的各种创新。
特别期待以下内容:
- 微调模型。Alpaca、Vicuna等人在原始LLaMA模型的基础上进行微调,取得了惊人的成就。预计在接下来的几周内,我们将看到数十个微调模型。
- 实现reAct和Toolformer模式,这将使Llama 2能够以类似于OpenAI Functions的方式驱动外部工具。Llama 2的论文已经提到了针对Toolformer提示的测试,因此希望这不会太困难。
希望能记录什么类型的提示语能与Llama 2效果良好地配合使用,因为预计这一模型在未来一段时间内将成为生态系统中颇具影响力的一部分。