欢迎来到LLM-API项目!这个项目为您打开了大型语言模型(LLMs)的激动人心的世界,提供了一个多功能的API,让您可以轻松地在不同的消费级硬件配置上运行各种LLMs。无论您喜欢在Docker容器中还是直接在本地机器上运行这些强大的模型,这个解决方案都能适应您的偏好。
使用LLM-API,您只需要一个简单的YAML配置文件就可以开始。该应用程序通过自动下载您选择的模型并无缝执行来简化流程。一旦启动,模型就可以通过统一且直观的API访问。
还有一个类似OpenAI风格的客户端,使得利用您选择的LLM的功能变得容易。您可以在llm-api-python找到Python版本。
除此之外,还有一个LangChain集成,进一步扩展了LLM-API的可能性和潜在应用。您可以在langchain-llm-api探索这个集成。
无论您是开发者、研究人员还是爱好者,LLM-API项目都简化了大型语言模型的使用,使其强大功能和潜力对所有人都触手可及。
我们邀请LLM爱好者、开发者、研究人员和创造者加入这个不断成长的社区。您的贡献、想法和反馈对塑造LLM-API的未来至关重要。无论您想在改进核心功能、开发新的集成还是提出改进建议方面进行合作,您的专业知识都将备受欢迎。
要在本地机器上运行LLM-API,您必须有一个正常运行的Docker引擎。以下步骤概述了运行LLM-API的过程:
config.yaml文件,按照下面描述的配置(使用config.yaml.example中的示例)。models_dir: /models # 容器内的目录
model_family: llama # 也可以是`gptq_llama`或`huggingface`
setup_params:
key: value
model_params:
key: value
setup_params和model_params是特定于模型的,请参见下面的模型特定配置。
您可以使用以LLM_API_为前缀的环境变量覆盖上述任何配置,例如:LLM_API_MODELS_DIR=/models
docker run -v $PWD/models/:/models:rw -v $PWD/config.yaml:/llm-api/config.yaml:ro -p 8000:8000 --ulimit memlock=16000000000 1b5d/llm-api
此命令启动一个Docker容器,挂载您的本地模型目录、配置文件,并映射8000端口以访问API。
或者,您可以使用此存储库中提供的docker-compose.yaml文件,并使用Docker Compose运行应用程序。执行以下命令:
docker compose up
在首次运行时,LLM-API将根据您config.yaml文件中setup_params定义的配置从Hugging Face下载模型。然后,它会相应地命名本地模型文件。后续运行将引用相同的本地模型文件并将其加载到内存中以实现无缝操作。
LLM-API提供了一套适用于所有大型语言模型(LLMs)的标准端点。这些端点使您能够有效地与模型交互。以下是主要端点:
{ "prompt": "法国的首都是什么?", "params": { // 额外参数... } }
{ "prompt": "法国的首都是什么?", "params": { // 附加参数... } }
{ "text": "法国的首都是什么?" }
通常可以使用transformer的AutoConfig、AutoModelForCausalLM和AutoTokenizer进行推理的模型可以使用model_family: huggingface配置运行,以下是一个示例(运行一个MPT模型):
models_dir: /models
model_family: huggingface
setup_params:
repo_id: <repo_id>
tokenizer_repo_id: <repo_id>
trust_remote_code: True
config_params:
init_device: cuda:0
attn_config:
attn_impl: triton
model_params:
device_map: "cuda:0"
trust_remote_code: True
torch_dtype: torch.bfloat16
通过以下方法利用LLM-API的灵活性来配置各种属性:
在config_params中传递特定的配置属性以微调AutoConfig。这些属性允许您进一步定制语言模型的行为。
通过在model_params中指定参数直接修改模型的参数。这些参数会被传递到AutoModelForCausalLM.from_pretrained和AutoTokenizer.from_pretrained初始化调用中。
以下是如何在generate(或agenerate)端点中使用参数的示例,但请记住,您可以传递transformer的GenerationConfig接受的任何参数:
POST /generate
curl --location 'localhost:8000/generate' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "巴黎的首都是什么",
"params": {
"max_length": 25,
"max_new_tokens": 25,
"do_sample": true,
"top_k": 40,
"top_p": 0.95
}
}'
如果您希望使用GPU加速推理,1b5d/llm-api:latest-gpu镜像就是为此目的设计的。使用Compose运行Docker镜像时,请考虑使用专门的Compose文件来支持GPU:
docker compose -f docker-compose.gpu.yaml up
注意:目前GPU镜像仅支持linux/amd64架构
通过在本地config.yaml文件中配置模型使用,可以简化在CPU上使用Llama的过程。以下是可能的配置:
models_dir: /models
model_family: llama
setup_params:
repo_id: user/repo_id
filename: ggml-model-q4_0.bin
model_params:
n_ctx: 512
n_parts: -1
n_gpu_layers: 0
seed: -1
use_mmap: True
n_threads: 8
n_batch: 2048
last_n_tokens_size: 64
lora_base: null
lora_path: null
low_vram: False
tensor_split: null
rope_freq_base: 10000.0
rope_freq_scale: 1.0
verbose: True
确保指定repo_id和filename参数,以指向托管所需模型的Hugging Face仓库。应用程序随后会为您处理下载。
在此模式下运行可以使用Docker镜像1b5d/llm-api:latest,还提供了几个镜像以支持不同的BLAS后端:
1b5d/llm-api:latest-openblas1b5d/llm-api:latest-cublas1b5d/llm-api:latest-clblast1b5d/llm-api:latest-hipblas以下示例演示了可以发送到Llama生成和异步生成端点的各种参数:
POST /generate
curl --location 'localhost:8000/generate' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "巴黎的首都是什么",
"params": {
"suffix": null 或 字符串,
"max_tokens": 128,
"temperature": 0.8,
"top_p": 0.95,
"logprobs": null 或 整数,
"echo": False,
"stop": ["\Q"],
"frequency_penalty": 0.0,
"presence_penalty": 0.0,
"repeat_penalty": 1.1,
"top_k": 40,
}
}'
使用AutoAWQ实现支持AWQ量化,以下是一个示例配置
models_dir: /models
model_family: autoawq
setup_params:
repo_id: <仓库ID>
tokenizer_repo_id: <仓库ID>
filename: <模型文件名>
model_params:
trust_remote_code: False
fuse_layers: False
safetensors: True
device_map: "cuda:0"
要运行此模型,需要支持GPU的Docker镜像 1b5d/llm-api:latest-gpu
docker run --gpus all -v $PWD/models/:/models:rw -v $PWD/config.yaml:/llm-api/config.yaml:ro -p 8000:8000 1b5d/llm-api:latest-gpu
或者你可以使用本仓库中提供的docker-compose.gpu.yaml文件:
docker compose -f docker-compose.gpu.yaml up
重要提示:在GPU上运行Llama或Llama 2之前,请确保在主机上安装了NVIDIA驱动程序。你可以通过执行以下命令来验证NVIDIA环境:
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi
你应该看到一个显示当前NVIDIA驱动程序版本和相关信息的表格,确认设置正确。
使用GPTQ-for-LLaMa 4位量化运行Llama模型时,你可以使用专门为此目的设计的Docker镜像 1b5d/llm-api:latest-gpu,作为默认镜像的替代选择。你可以使用单独的Docker Compose文件运行此模式:
docker compose -f docker-compose.gpu.yaml up
或者直接运行容器:
docker run --gpus all -v $PWD/models/:/models:rw -v $PWD/config.yaml:/llm-api/config.yaml:ro -p 8000:8000 1b5d/llm-api:latest-gpu
重要提示:llm-api:x.x.x-gptq-llama-cuda 和 llm-api:x.x.x-gptq-llama-triton 镜像已被废弃。当需要GPU支持时,请切换到 1b5d/llm-api:latest-gpu 镜像
示例配置文件:
models_dir: /models
model_family: gptq_llama
setup_params:
repo_id: user/repo_id
filename: <model.safetensors 或 model.pt>
model_params:
group_size: 128
wbits: 4
cuda_visible_devices: "0"
device: "cuda:0"
示例请求:
POST /generate
curl --location 'localhost:8000/generate' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "巴黎的首都是什么",
"params": {
"temp": 0.8,
"top_p": 0.95,
"min_length": 10,
"max_length": 50
}
}'
llama.cpp提供Python绑定库。

AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。


AI数字人视频创作平台
Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号