6行代码就能在Mac上跑LLaMa2模型

TLDR

只需要以下6行代码就能直接在本地运行属于你自己的LLaMa2 大模型。注意,需要M1或者以上芯片

1
2
3
4
5
6
xcode-select --install # 确保你下载了Git和C/C++
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
curl -L https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/resolve/main/llama-2-7b-chat.ggmlv3.q4_K_M.bin --output ./models/llama-2-7b-chat.ggmlv3.q4_K_M.bin
LLAMA_METAL=1 make
./main -m ./models/llama-2-7b-chat.ggmlv3.q4_K_M.bin -n 1024 -ngl 1 -p "Give me a list of things to do in BeiJing"

注意:HuggingFace可能有权限要求,直接执行会403,可以在网页端登录,到这个链接直接把模型下载下来放到 刚刚Clone的 llama.cpp 目录下的models目录里面。

原因

LLaMa2本身的模型不支持直接在Window或者Mac机器上调用,只能在Linux系统,支持N卡。

我们可以基于llama.cpp开源项目来Mac本地运行Llama 2。它从TheBloke的huggingface仓库下载Llama 7B Chat的4位优化权重,将其放入llama.cpp的模型目录中,然后使用Apple的Metal优化器来构建llama.cpp项目。

LLaMa-Chat-7B的权重应该可以在拥有8GB RAM的机器上运行(但如果你有16GB的RAM会更好)。像13B或70B这样的更大模型将需要更多的RAM。

Llama 2的非聊天权重也可以在这里找到,但是如果你想要一个更简单的聊天界面,那么更推荐使用聊天权重。

效果

  • 能够理解中文,但只能用英文回答

中文回答

  • 强制要求它用中文回答,可以输出中文,但是好像温度有点高,给生成了相关内容。(产生幻觉了)

翻译

智写AI是免费万能的ai写作聊天机器人。ai免费帮你写作文、写论文、写材料、写文案、周报月报、公务员材料、行政报告、写英语作文、写小说剧本、写短视频脚本、写营销文案等等,还能写代码。它能教你python、java、C#、C、javscript、Golang编程、系统架构设计、系统开发。它还能教你简历制作、简历模版,给你做心理咨询、给你讲故事、陪你玩文字游戏等。

Langchain 是什么?作为开发者我为什么要关心它?

什么是Langchain 🦜

Langchain是历史上增长最快的开源项目之一,这在很大程度上是由于人们对LLM的兴趣激增。

这篇文章高度概述了 langchain 帮助开发人员做的一些很酷的事情。它是为了我自己的利益而编写的,因为我探索了这个框架,如果您也好奇 langchain 可能有用的地方,我希望它能对您有所帮助。

langchain 如此强大的一些功能包括允许您将数据连接到语言模型(例如通过 API 的 OpenAI 的 GPT 模型)以及创建代理工作流程(稍后将详细介绍代理)。

Langchain为何存在?🤔

​简而言之,当今使用语言模型存在许多粗糙的问题。整个生态系统仍在发展中,因此对于开发人员来说,通常缺乏足够的工具来进行语言模型的生产部署。

诸如提示链接、日志记录、回调、持久内存和与多个数据源的高效连接等任务是 langchain 开箱即用的标准。

Langchain 还提供了一个与模型无关的工具集,使公司和开发人员能够探索多种 LLM 产品并测试最适合其用例的产品。最好的部分是,您可以在单个界面中执行此操作,而不必线性缩放您尝试支持的每个其他提供程序的代码库的大小。

Langchain的社区⭐️

评估工具时要考虑的核心事项之一是围绕它构建的社区。对于 langchain 这样的开源项目来说更是如此。截至目前,该项目在 GitHub 上拥有超过 51,000 颗星(通常用于评估开源项目受欢迎程度的指标),每月下载量达 100 万次,并且在 Discord/Twitter 上活跃。

Langchain 最近还在其核心存储库上达到了 1,000 名贡献者的里程碑,这是很少有存储库能够实现的壮举,并且说明了项目的开放性及其长期可行性。Langchain 甚至使用流行的 MIT 许可证,允许开发人员分叉代码库并在现有代码之上制作自己的版本,甚至开发商业产品。

Langchain 代理🤖

目前大型语言模型领域最热门的想法之一是代理的想法。通过使用语言模型,您基本上可以重新创建一个具有可以执行的目标和任务的编程实体。

Langchain 通过其代理 API 使使用大型语言模型创建代理变得简单。开发人员可以使用 OpenAI 函数或其他执行任务的方式来使语言模型能够采取行动。

有许多代理工具,例如 AgentGPT 等。那么 langchain 在这种情况下有何用处呢?其一,您可以使用单个界面访问多个工具框架。此外,您可以利用计划和执行功能,允许模型创建计划、执行任务和完成目标。当您正在寻找具有一定程度自主性的代理并尝试在几乎没有或没有人类反馈的情况下完成目标时,这尤其有用。虽然这在某些情况下听起来相当可怕,但鉴于今天的模型通常无法在很长一段时间内成功完成这些任务(当然,随着时间的推移,情况会变得更好),它今天的真正影响非常小。

带有语言模型的记忆🧠

如今,最强大的LLM API是OpenAI的API。该 API 没有状态,因此每次发送生成新聊天消息的请求时,您都必须传回模型回答当前查询所需的任何上下文。开发人员可以做一些轻量级的事情,例如将消息历史记录存储在 Python 列表中或将其写入文本文件,但这不能很好地扩展。

您还可以启动矢量数据库(专门用于嵌入的特殊数据库,它是表示文本含义的数字方式),但这通常需要一些工作。Langchain 有一个内存模块,可提供对多个数据存储的即插即用访问,使您可以自动保存对话的消息历史记录,进一步减少创建聊天机器人等的麻烦。

Langchain 目前支持 10 种不同的数据库集成,并且肯定很快就会推出更多数据库集成,为您保存消息历史记录的方式提供了很大的灵活性。我还预计,随着时间的推移,在 langchain 之外执行此操作的选项将会变得更好,因为已经有一些开源项目专门设计用于帮助简化管理聊天历史记录和截断的过程。

关于截断的快速说明:这是获取消息历史记录并不断缩小范围以保持在语言模型上下文窗口内的过程。有很多不同的方法可以做到这一点,事实上 ChatGPT 有一种自定义方法,但这里没有灵丹妙药,因为您最终总是不得不忽略您关心的重要信息。这就是为什么通过 langchain 的嵌入和内存如此有用。

比较工具🔍

我要提到的langchain的最后核心部分之一是动态比较模型和提示的能力。当尝试评估哪种模型更适合特定任务时,这非常有用。例如,您可能希望设置多个 GPT 3.5-turbo 和 GPT-4 模型来切换不同的系统消息,并使用比较工具来查看哪个输出更适合您的用例。这需要一些工作,但它是 kalt 在生产环境中对不同设置进行 A/B 测试的有用方法之一。

每个人都喜欢快速工程。好吧,肮脏的秘密是没有人真正喜欢即时工程,这有点麻烦。我只是希望模型能够按照预期的方式工作并执行我想要的操作。但生活并不完美,有时你必须自己做一些工作。这就是评估器的作用,它是 langchains 评估模块的一部分。它有一些不同的操作函数,例如“PairwiseStringEvalChain”(文档中的更多详细信息)。

他们甚至有一个基准测试模板笔记本,乍一看似乎是我将在自己的工作流程中使用的东西。一个快速的随机想法:模型本身通常比我们更擅长及时调整。有时深奥、详细、清晰的提示对我们来说并不容易想出来,但模型确实可以做得很好。如果您遇到提示问题,请尝试要求 GPT-4 与您一起迭代改进提示。

结束语🎙️

首先,我希望这有用。自从我忙于其他一百件事以来,我一直忽略尝试 langchain,我很高兴我终于有时间检查它(尽管是在度假时远离这 100 件事)。我的总体看法是 langchain 绝对可以解决当今的问题。我的前瞻性陈述是,我想象 LLM API 随着时间的推移会做越来越多的事情,这将使 langchain 的用处大大降低。它也完全有可能最终成为法学硕士的接口,因为人们想要有意义的平台无关设置。有一点是肯定的,Harrison 和 langchain 社区迄今为止在构建他们所拥有的东西方面已经做了一项令人难以置信的工作,它显然提供了价值,我很高兴他们正在做这项工作。

智写AI介绍

智写AI是免费万能的ai写作聊天机器人。ai免费帮你写作文、写论文、写材料、写文案、周报月报、公务员材料、行政报告、写英语作文、写小说剧本、写短视频脚本、写营销文案等等,还能写代码。它能教你python、java、C#、C、javscript、Golang编程、系统架构设计、系统开发。它还能教你简历制作、简历模版,给你做心理咨询、给你讲故事、陪你玩文字游戏等。