欢迎来到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-openblas
1b5d/llm-api:latest-cublas
1b5d/llm-api:latest-clblast
1b5d/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绑定库。一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模 型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快 速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号