如何使用 Ollama 在本地运行 Llama 3 并打开 WebUI

2025-05-28

如何使用 Ollama 在本地运行 Llama 3 并打开 WebUI

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

Llama 3 有两种规模:80 亿和 700 亿个参数。这类模型基于海量文本数据进行训练,可用于各种任务,包括生成文本、翻译语言、撰写不同类型的创意内容以及以信息丰富的方式解答您的问题。Meta 将 Llama 3 誉为目前最好的开源模型之一,但它仍在开发中。以下是 80 亿个参数的模型基准测试结果,并与 Mistral 和 Gemma 进行了比较(根据 Meta 的数据)。

基准测试

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

Ollama 入门

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

第一步是安装 Ollama。它支持所有 3 个主流操作系统,Windows 系统目前处于“预览版”(beta 版更贴切的说法)。

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



ollama run llama3


Enter fullscreen mode Exit fullscreen mode

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



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


Enter fullscreen mode Exit fullscreen mode

您可以在此终端聊天中整天聊天,但如果您想要更像 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


Enter fullscreen mode Exit fullscreen mode

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

OpenWebUI 示例

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

设置

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

  • llama3
  • mistral
  • llama2

模型设置页面

Ollama API

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



ollama pull mistral


Enter fullscreen mode Exit fullscreen mode

Ollama API

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

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



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


Enter fullscreen mode Exit fullscreen mode

以下是如何使用 API 进行聊天生成推断。



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


Enter fullscreen mode Exit fullscreen mode

将参数替换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',
)


Enter fullscreen mode Exit fullscreen mode

这也适用于 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',
})

Enter fullscreen mode Exit fullscreen mode




结论

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

文章来源:https://dev.to/timesurgelabs/how-to-run-llama-3-locally-with-ollama-and-open-webui-297d
PREV
构建 Web 应用程序:Next.js 项目结构综合指南
NEXT
不要错过 CSS 变量