NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割

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

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

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

1、开始使用 Ollama

这就是Ollama登场的地方! Ollama 是一款免费的开源应用程序,允许你在自己的计算机上运行各种大型语言模型,包括 Llama 3,即使资源有限。 Ollama 利用了 llama.cpp 的性能提升,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 的东西怎么办?

2、Open WebUI

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

假设你的计算机上已经运行了 Docker 和 Ollama,安装Open WebUI非常简单:

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,创建一个帐户,然后开始聊天!

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

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

  • llama3
  • mistral
  • llama2

4、Ollama API

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

ollama pull mistral

4.1 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 文档以获取更多信息。

4.2 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',
})

5、结束语

Meta 的 Llama 3 的发布及其大型语言模型 (LLM) 技术的开源标志着技术社区的一个重要里程碑。 现在,通过 Ollama 和 Open WebUI 等本地工具可以访问这些先进的模型,普通个人可以挖掘其巨大潜力来生成文本、翻译语言、创作创意写作等。

此外,API 的可用性使开发人员能够将 LLM 无缝集成到新项目或增强现有项目。 最终,LLM 技术通过 Llama 3 等开源项目实现民主化,释放了广阔的创新可能性,并激发了科技行业的创造力。


原文链接:How to Run Llama 3 Locally with Ollama and Open WebUI

BimAnt翻译整理,转载请标明出处