使用LLM插件从命令行访问Llama 2

本文主要介绍使用llm-replicate插件从命令行访问Llama 2。

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

图片

最近的一个大新闻是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: <paste key here>

在插件中注册新的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"

得到的输出如下所示:

当然!以下是十个适合作为宠物鹈鹕的好名字:

  1. 花生(Peanut):一个可爱而活泼的小鹈鹕的名字。

  2. 水洼(Puddles):一个有趣而傻气的名字,适用于喜欢在水中嬉戏的鹈鹕。

  3. 皮特(Pete):一个经典的名字,适合友好外向的鹈鹕。

  4. 彭洛丽(Penelope):一个漂亮而优雅的名字,适合雌性鹈鹕。

  5. 佩西(Percy):一个迷人而精致的名字,适合雄性鹈鹕。

  6. 皮皮(Pippy):一个活泼而亲爱的名字,适合个性活跃的鹈鹕。

  7. 佩尔蒂(Pelty):一个有趣而古怪的名字,适合个性独特的鹈鹕。

  8. 皮普(Pip):一个甜美而讨人喜欢的名字,适合小鹈鹕。

  9. 勇敢(Plucky):一个勇敢而冒险的名字,适合个性鲜明的鹈鹕。

  10. 波比(Poppy):一个可爱而娇嫩的名字,适合性情温和的雌性鹈鹕。

希望这些建议能帮助你为宠物鹈鹕找到一个完美的名字!

由于是聊天模型,可以在同一对话中发送后续提示:

llm -c "Five more and make them more nautical"

Ahoy!这里有五个更具海洋气息的名字,适合你的宠物鹈鹕:

  1. 海鸟(Seabird):适合喜欢海洋及其奇观的鹈鹕的名字。

  2. 船长胡克(Captain Hook):适合勇敢无畏的鹈鹕的英勇名字。

  3. 锚(Anchor):适合始终稳定可靠的鹈鹕的坚固名字。

  4. 芬利(Finley):适合热爱海洋及其生物的鹈鹕的有关鱼的名字。

  5. 轻快(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效果良好地配合使用,因为预计这一模型在未来一段时间内将成为生态系统中颇具影响力的一部分。

推荐书单

IT BOOK 多得(点击查看5折活动书单)icon-default.png?t=N7T8https://u.jd.com/psx2y1M

《Python分布式机器学习》

《Python分布式机器学习》本书详细阐述了与分布式机器学习相关的基本解决方案,主要包括拆分输入数据、参数服务器和All-Reduce、构建数据并行训练和服务管道、瓶颈和解决方案、拆分模型、管道输入和层拆分、实现模型并行训练和服务工作流程、实现更高的吞吐量和更低的延迟、数据并行和模型并行的混合、联合学习和边缘设备、弹性模型训练和服务、进一步加速的高级技术等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。

《Python分布式机器学习》icon-default.png?t=N7T8https://item.jd.com/13968572.html

图片

精彩回顾

《10个最好的机器学习和人工智能Python库》

《使用PyTorch神经网络和YoloV8识别身体姿势》

《活用PyTorch,图像分类实战指南》

《使用PyTorch训练一个LSTM预测模型》

《逐步拆解学习,从简单线性回归到TensorFlow深度学习》

《手把手教你升级PyTorch 2.0和CUDA》

微信搜索关注《Python学研大本营》,加入读者群

访问【IT今日热榜】,发现每日技术热点

### 关于 Llama3 和 GraphRAG 的集成与实现 #### 集成背景 GraphRAG 是一种基于图结构的知识检索增强生成模型,能够通过结合外部知识库来提升大语言模型 (LLM) 的上下文理解和推理能力[^1]。而 Llama3 属于 Meta 开发的一系列开源大型语言模型之一,具有强大的自然语言处理能力和多模态支持特性。 为了将 Llama3 与 GraphRAG 进行有效集成,可以参考 Saurabh Rajaram Yadav 提供的本地化设置指南,该指南详细描述了如何利用 vLLM 和 Ollama 工具链完成类似系统的部署和优化过程。这些工具提供了灵活的接口用于加载自定义模型并调整其运行参数。 #### 技术架构概述 在技术层面,整个系统通常由以下几个核心组件构成: 1. **数据预处理模块**: 负责准备输入数据集 `{I_X, t}` ,其中 `t` 表示条件文本标签或查询语句。这部分工作可能涉及清洗原始文档集合以及构建索引以便快速查找关联知识点[^3]。 2. **信号映射器 (Output Projector)**: 将来自 LLM Backbone(即这里指代 Llama3)生成的 token-level 特征表示 \(S_X\) 映射到适合后续阶段使用的特征空间 \(H_X\) 。此转换旨在缩小目标分布差异从而促进跨模态一致性学习。 3. **模态生成器 (Modality Generator)**: 接收经过投影后的高层次抽象表征作为输入,并据此合成最终输出形式——无论是纯文字还是其他媒体类型取决于具体应用场景需求设定。 4. **服务编排层**: 使用像 Kubernetes 上扩展出来的命令行插件 k8sgpt 可以简化多个子系统之间的协作流程管理任务[^2]。例如借助它的 integration 子指令轻松启用第三方 API 或者数据库连接选项等功能扩充项。 #### 实现步骤概览 尽管不采用传统意义上的分步说明方式呈现内容,但仍有必要提及几个关键环节要点如下所示: - 安装必要的依赖环境包括但不限于 Python 解释器版本确认、pip 包安装列表验证等基础准备工作; - 下载对应框架源码仓库链接地址所指向的内容文件夹目录结构分析理解; - 修改默认配置文件中的路径变量名赋值操作确保匹配实际存储位置关系; - 启动调试模式下的单元测试脚本执行情况观察记录错误日志定位问题根源所在; 以下是部分伪代码片段展示如何初始化项目实例对象的一个例子: ```python from graphrag import GraphRAGPipeline from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3") model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3") pipeline = GraphRAGPipeline( model=model, tokenizer=tokenizer, knowledge_base="./data/knowledge_graph", max_length=512 ) result = pipeline.run(query="What is the capital of France?") print(result) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值