发布于 2025-03-18 40 阅读
0

如何使用 Ollama 和 Open WebUI 在本地运行 Llama 3

我是 Llama 的忠实粉丝。Meta 发布其 LLM 开源版本对整个科技界来说都是一大福利,而且其宽松的许可证允许大多数中小型企业使用其 LLM,几乎没有任何限制(当然是在法律允许的范围内)。他们最新发布的版本是备受期待的 Llama 3。

Llama 3 有两种规模:80 亿和 700 亿个参数。这种模型是在大量文本数据上训练的,可用于各种任务,包括生成文本、翻译语言、编写不同类型的创意内容以及以信息丰富的方式回答您的问题。Meta 称 Llama 3 是目前​​最好的开放模型之一,但它仍在开发中。以下是与 Mistral 和 Gemma 相比的 8B 模型基准(根据 Meta)。

基准

这就引出了一个问题:我,作为普通人,如何在我的计算机上本地运行这些模型?

开始使用 Ollama

这就是Ollama 的作用所在!Ollama 是一款免费的开源应用程序,它允许您在自己的计算机上运行各种大型语言模型,包括 Llama 3,即使资源有限。Ollama 利用 llama.cpp 的性能提升,这是一个开源库,旨在让您以相对较低的硬件要求在本地运行 LLM。它还包括一种包管理器,允许您仅使用一个命令即可快速有效地下载和使用 LLM。

第一步是安装 Ollama。它支持所有 3 个主要操作系统,其中Windows 为“预览版”(测试版更贴切的说法)。

安装完成后,打开终端。在所有平台上,命令都是相同的。



ollama run llama3


等待几分钟,下载并加载模型,然后开始聊天!它应该会带你进入类似于此的聊天提示。



ollama run llama3
>>> Who was the second president of the united states?
The second President of the United States was John Adams. He served from 1797 to 1801, succeeding
George Washington and being succeeded by Thomas Jefferson.

>>> Who was the 30th?
The 30th President of the United States was Calvin Coolidge! He served from August 2, 1923, to March 4,
1929.

>>> /bye


您可以在此终端聊天中整天聊天,但如果您想要更类似 ChatGPT 的东西怎么办?

打开 WebUI

Open WebUI 是一个可扩展的、自托管的 UI,完全在Docker内部运行。它可以与 Ollama 或其他兼容 OpenAI 的 LLM 一起使用,例如 LiteLLM 或我自己的Cloudflare Workers 的 OpenAI API

假设您的计算机上已经在运行Docker和 Ollama,安装非常简单。



docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main


只需转到http://localhost:3000,创建一个帐户,然后开始聊天!

OpenWebUI 示例

如果您之前没有运行过 Llama 3,则必须先下载一些模型才能开始聊天。最简单的方法是单击左下角的姓名后单击设置图标。

设置

然后点击模式左侧的“模型”,然后粘贴来自Ollama 注册表的模型名称。以下是我使用过的一些推荐用于一般用途的模型。

  • llama3

  • mistral

  • llama2

模型设置页面

Ollama API

如果您想将 Ollama 集成到自己的项目中,Ollama 既提供自己的 API,也提供与 OpenAI 兼容的 API。这些 API 会自动将本地保存的 LLM 加载到内存中,运行推理,然后在一定超时后卸载。您必须先提取要使用的任何模型,然后才能通过 API 运行模型,这可以通过命令行轻松完成。



ollama pull mistral


Ollama API

Ollama 有自己的 API,还提供一些适用于 Javascript 和 Python 的SDK 。

以下是如何使用 API 进行简单的文本生成推理。



curl http://localhost:11434/api/generate -d '{
  "model": "mistral",
  "prompt":"Why is the sky blue?"
}'


以下是如何使用 API 进行聊天生成推理的方法。



curl http://localhost:11434/api/chat -d '{
  "model": "mistral",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'


将参数替换model为您想要使用的任何模型。有关更多信息,请参阅官方 API 文档。

OpenAI 兼容 API

您还可以使用 Ollama 作为 OpenAI 库的替代品(取决于用例)。以下是他们文档中的一个示例。



# Python
from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1/',

    # required but ignored
    api_key='ollama',
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            'role': 'user',
            'content': 'Say this is a test',
        }
    ],
    model='mistral',
)


这也适用于 Javascript。



// Javascript

import OpenAI from 'openai'

const openai = new OpenAI({

  baseURL: 'http://localhost:11434/v1/',

// required but ignored

  apiKey: 'ollama',

})

const chatCompletion = await openai.chat.completions.create({

  messages: [{ role: 'user', content: 'Say this is a test' }],

  model: 'llama2',

})




结论

Meta 的 Llama 3 发布及其大型语言模型 (LLM) 技术的开源标志着科技界的一个重要里程碑。现在,这些先进的模型可以通过 Ollama 和 Open WebUI 等本地工具访问,普通人可以发挥其巨大的潜力来生成文本、翻译语言、创作创意作品等。此外,API 的可用性使开发人员能够将 LLM 无缝集成到新项目中或增强现有项目。最终,通过 Llama 3 等开源计划实现 LLM 技术的民主化,将开启广阔的创新可能性领域,并激发科技行业的创造力。