彻底改变您的数据安全游戏:快速无缝部署本地大语言模型,实现无与伦比的隐私!
2023年是人工智能领域加速发展的一年。除了健壮的商业上可用的大型语言模型之外,还出现了许多值得称赞的开源方案,例如Llama2、Codellama、Mistral和Vicuna。虽然商业大模型ChatGPT、Bard和Claude等拥有强大的功能,但它们带来了相关的成本和固有的安全问题。在必须确保数据安全的特定场景中,考虑部署本地大型语言模型是一种可行的选择。
在本文中,我将介绍如何使用Ollama来运行Llama2和其他大型语言模型。
目前ollama只支持macOS和Linux, Windows平台正在开发中。我们可以访问这个链接下载特定平台的ollama。
macOS版本下载完成后,解压缩“olama -darwin.zip”文件。随后,双击Ollama可执行文件启动安装过程。
在安装过程中,系统将提示您决定是否将Ollama应用程序移动到系统的Applications目录。在这个例子中,我选择移动到应用程序:
请按照软件安装指南逐步进行安装。
要运行Llama2,只需在终端中执行命令?ollama run llama2
?。执行此命令后,Llama2模型将被自动下载:
除了Llama2模型,Ollama还支持多种模型。您可以通过访问模型存储库来探索模型的全面列表。
注意:运行3B机型至少应该有8gb内存,运行7B机型至少应该有16gb内存,运行13B机型至少应该有32gb内存。
成功下载模型后,您可以与llama2模型进行交互:
Ollama CLI
利用Ollama CLI,您可以毫不费力地对模型执行各种操作。这些操作包括创建、拉取、删除或复制模型等。
创建一个模型
ollama create example -f Modelfile
拉取一个模型
ollama pull llama2
该命令还可以用于更新本地模型。只有diff会被拉动。
删除模型
ollama rm llama2
复制模型
ollama cp llama2 my-llama2
除了上述命令之外,Ollama CLI还提供了其他各种命令。执行?ollama --help
?命令可以查看完整的命令列表:
(base) ? ~ ollama --help
Large language model runner
Usage:
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version version for ollama
如果不希望直接在终端中与大型语言模型交互,可以使用命令?ollama serve
?启动本地服务器。一旦这个命令成功运行,你就可以通过REST API与本地语言模型进行交互:???????
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt":"Why is the sky blue?"
}'
在实际项目中,我们可以利用封装在langchainjs中的ChatOllama对象有效地与Ollama进行交互。
ChatOllama
Ollama支持JSON模式,支持从大型语言模型中强制执行有效的JSON输出。现在,让我们深入研究如何利用封装在langchainjs中的ChatOllama对象来实现文本翻译功能。
初始化ChatOllama项目
mkdir ChatOllama
npm init -y
2. 安装langchainjs???????
npm install -S langchain # or
yarn add langchain # or
pnpm add langchainjs
3. 创建索引。???????
import { ChatOllama } from "langchain/chat_models/ollama";
import { ChatPromptTemplate } from "langchain/prompts";
const prompt = ChatPromptTemplate.fromMessages([
[
"system",
`You are an expert translator. Format all responses as JSON objects with two keys: "original" and "translated".`,
],
["human", `Translate "{input}" into {language}.`],
]);
const model = new ChatOllama({
baseUrl: "http://localhost:11434", // Default value
model: "llama2", // Default value
format: "json",
});
const chain = prompt.pipe(model);
const result = await chain.invoke({
input: "I love programming",
language: "German",
});
console.log(result);
随后,在项目根目录下,打开终端,执行命令?node index.mjs
?。成功运行上述命令后,终端将输出如下结果:
除了实现文本翻译功能之外,您还可以探索大量不同的功能。例如,您可以开发检索增强生成(Retrieval Augmented Generation, RAG)应用程序来有效地完成信息检索。
本文概述了如何使用Ollama在本地快速部署开源大型语言模型。它还引入了封装在langchainjs中的ChatOllama对象,用于实现文本翻译功能。此外,Ollama支持自定义模型,允许以GGUF格式导入模型。如果您对自定义模型感兴趣,您可以探索“自定义您自己的模型”部分中的内容。
如果您在使用过程中遇到任何问题,建议您首先查阅由Ollama提供的FAQ文档。
欢迎关注微信公众号:文本魔术,了解更多?