LlamaChat 是一款原生 macOS 应用,用于在 Mac 本地与 LLaMA、Alpaca 和 GPT4All 等模型进行聊天。
用途: 在 Mac 上本地运行并对话 LLaMA 系列模型,无需依赖云端服务。应用基于 llama.cpp 和 llama.swift 构建,模型推理在本地完成。
主要能力:
- 开箱即用支持 LLaMA、Alpaca 和 GPT4All 模型;对 Vicuna、Koala 等模型的支持即将推出。
- 支持多种模型格式:可添加原始 .pth PyTorch 检查点或 .ggml 格式的 LLaMA 模型。
- 模型转换:如果添加的是原始 PyTorch 检查点,可在应用内将其转换为与 LlamaChat 和 llama.cpp 兼容的 .ggml 文件。
- 聊天历史:聊天历史在应用内持久保存,聊天历史和模型上下文均可随时清除。
- 趣味头像:内置 7 个趣味头像,可用于聊天源。
- 高级源命名:使用特殊逻辑为聊天源生成有趣名称。
- 上下文调试:可在信息弹窗中查看当前聊天对应的模型上下文,便于机器学习爱好者调试。
使用方式: 应用要求 macOS 13 Ventura,以及 Intel 或 Apple Silicon 处理器。 可直接下载包含最新版本的 .dmg 安装包。 从源码构建时需注意:LlamaChat 包含用于自动更新的 Sparkle,如果应用未签名,Sparkle 将加载失败,因此构建和运行时应使用有效的签名证书。另外,Debug 构建下模型推理速度非常慢,从源码构建时需将 LlamaChat > Edit Scheme... > Run 中的 Build Configuration 设为 Release。 使用 .pth 格式导入 LLaMA 模型时,应在转换流程中选择合适的参数规模目录(如 7B、13B 等),该目录包含 consolidated.NN.pth 和 params.json 文件;按照 LLaMA 模型发布要求,父目录应包含 tokenizer.model。
适用场景与模型准备: LlamaChat 不附带任何模型文件,需要用户根据各自条款和条件从相应来源获取模型。 使用 .ggml 文件时需确保文件是最新的。如果遇到问题,可能需要使用 llama.cpp 的转换脚本:GPT4All 模型可能需要使用 convert-gpt4all-to-ggml.py;Alpaca 模型可能需要使用 convert-unversioned-ggml-to-ggml.py;可能还需要使用 migrate-ggml-2023-03-30-pr613.py。更多信息可查看 llama.cpp 仓库。
贡献与许可: 欢迎提交 Pull Request 和 Issue,但需始终遵守行为准则。LlamaChat 完全使用 Swift 和 SwiftUI 构建,底层使用 llama.swift 进行推理和模型操作;项目主要采用 MVVM,并大量使用 Combine 和 Swift Concurrency。LlamaChat 基于 MIT 许可证授权。