进阶 lmql.ai 2026-10-11 18:10:44 · 29 阅读

第33章 LMQL 开发环境搭建指南

第33章 开发环境

LMQL 核心开发入门指南。

支持 GPU 的 Anaconda 环境

要在本地搭建支持 GPU 的 LMQL 开发 conda 环境,运行以下命令:

```bash # 准备 conda 环境 conda env create -f scripts/conda/requirements.yml -n lmql conda activate lmql

# 在当前 shell 中注册 `lmql` 命令 source scripts/activate-dev.sh ```

INFO 操作系统:支持 GPU 的 LMQL 版本已在 Ubuntu 22.04 + CUDA 12.0,以及通过 WSL2 运行 CUDA 11.7 的 Windows 10 上测试通过。无 GPU 版本(见下文)已在 Ubuntu 22.04、macOS 13.2 Ventura,以及通过 WSL2 运行的 Windows 10 上测试通过。

无 GPU 的 Anaconda 开发环境

本节介绍如何搭建不依赖本地 GPU 的 LMQL 开发环境。注意,无本地 GPU 支持的 LMQL 只能使用 API 集成的模型,如 openai/gpt-3.5-turbo-instruct。

运行以下命令搭建 conda 环境:

```bash # 准备 conda 环境 conda env create -f scripts/conda/requirements-no-gpu.yml -n lmql-no-gpu conda activate lmql-no-gpu

# 在当前 shell 中注册 `lmql` 命令 source scripts/activate-dev.sh ```

使用 Nix

如果你安装了 Nix,即使没有预先安装任何依赖,也可以直接调用 LMQL!我们在基于 ARM 的 macOS 和基于 Intel 的 Linux 上测试过 Nix 支持;欢迎为其他平台提交 bug 修复和贡献。

flake 中的大多数 target 都有多个变体:

- default target(`nix run github:eth-sri/lmql#playground`、`nix run github:eth-sri/lmql#python`、`nix run github:eth-sri/lmql#lmtp-server`、`nix develop github:eth-sri/lmql#lmql`)会下载所有可选依赖以获得最大灵活性;这些 target 也可以用 `-all` 后缀(playground-all、python-all、lmtp-server-all)。 - `-basic` target 只支持 OpenAI(以及未来任何不需要可选依赖的模型)。 - `-hf` target 只支持 OpenAI 和 Hugging Face 模型。 - `-replicate` target 只保证支持通过 Replicate 远程调用的 Hugging Face 模型。(实际上目前也可能支持本地 Hugging Face 模型,但这一点可能会变化)。 - `-llamaCpp` target 只保证支持 llama.cpp。(同样,实际上也可能支持 Hugging Face)。

在以上所有情况中,`github:eth-sri/lmql` 都可以替换为本地文件系统路径。因此如果你已检出 LMQL 源码,可以在其中使用 `nix run .#playground` 来运行该源码树中的 playground/调试器。

评论 (0)