fastllm是一个纯C++实现的多平台高性能大型模型推理库,无第三方依赖。
部署交流QQ群:831641348
推荐使用cmake编译,需要预先安装gcc、g++(建议9.4或更高版本)、make和cmake(建议3.23或更高版本)。
GPU编译需要预先安装CUDA编译环境,建议使用尽可能新的CUDA版本。
使用以下命令编译:
bash install.sh -DUSE_CUDA=ON # 编译GPU版本 # bash install.sh -DUSE_CUDA=ON -DCUDA_ARCH=89 # 可以指定CUDA架构,如4090使用89架构 # bash install.sh # 仅编译CPU版本
其他平台的编译可参考文档: TFACC平台
假设我们的模型位于"~/Qwen2-7B-Instruct/"目录。
编译完成后可以使用以下demo:
# OpenAI API服务器 # 需要安装依赖:pip install -r requirements-server.txt # 这里在8080端口开启了一个模型名为qwen的服务器 python3 -m ftllm.server -t 16 -p ~/Qwen2-7B-Instruct/ --port 8080 --model_name qwen # 使用float16精度的模型对话 python3 -m ftllm.chat -t 16 -p ~/Qwen2-7B-Instruct/ # 在线量化为int8模 型对话 python3 -m ftllm.chat -t 16 -p ~/Qwen2-7B-Instruct/ --dtype int8 # WebUI # 需要安装依赖:pip install streamlit-chat python3 -m ftllm.webui -t 16 -p ~/Qwen2-7B-Instruct/ --port 8080
以上demo均可使用--help参数查看详细参数说明,详细参数说明可参考参数说明。
目前支持的模型列表请参见:模型列表
一些早期的HuggingFace模型无法直接读取,可以参考模型转换转换为fastllm格式的模型。
可以自定义模型结构,具体请参见自定义模型。
# 进入fastllm/build-fastllm目录
# 命令行聊天程序,支持打字机效果
./main -p ~/Qwen2-7B-Instruct/
# 简易WebUI,使用流式输出 + 动态批处理,可多路并发访问
./webui -p ~/Qwen2-7B-Instruct/ --port 1234
Windows下的编译推荐使用CMake GUI + Visual Studio,在图形界面中完成。
如编译中遇到问题,尤其是Windows下的编译,可参考FAQ。
# 创建模型 from ftllm import llm model = llm.model("~/Qwen2-7B-Instruct/") # 生成回复 print(model.response("你好")) # 流式生成回复 for response in model.stream_response("你好"): print(response, flush=True, end="")
此外,还可以设置CPU线程数等内容,详细API说明请参见ftllm。 此包不包含低级API,如需使用更高级功能,请参考Python绑定API
# 使用--device参数设置多卡调用 #--device cuda:1 # 设置单一设备 #--device "['cuda:0', 'cuda:1']" # 将模型平均部署在多个设备上 #--device "{'cuda:0': 10, 'cuda:1': 5, 'cpu': 1} # 将模型按不同比例部署在多个设备上
from ftllm import llm # 支持以下三种方式,需在模型创建前调用 llm.set_device_map("cuda:0") # 将模型部署在单一设备上 llm.set_device_map(["cuda:0", "cuda:1"]) # 将模型平均部署在多个设备上 llm.set_device_map({"cuda:0" : 10, "cuda:1" : 5, "cpu": 1}) # 将模型按不同比例部署在多个设备上
import pyfastllm as llm # 支持以下方式,需在模型创建前调用 llm.set_device_map({"cuda:0" : 10, "cuda:1" : 5, "cpu": 1}) # 将模型按不同比例部署在多个设备上
// 支持以下方式,需在模型创建前调用 fastllm::SetDeviceMap({{"cuda:0", 10}, {"cuda:1", 5}, {"cpu", 1}}); // 将模型按不同比例部署在多个设备上
Docker运行需要本地安装NVIDIA Runtime,并将默认runtime设置为nvidia
sudo apt-get install nvidia-container-runtime
编辑/etc/docker/daemon.json文件:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia" // 添加此行即可
}
models
chatglm2-6b-fp16.flm
chatglm2-6b-int8.flm
DOCKER_BUILDKIT=0 docker compose up -d --build
# PC上编译需下载NDK工具 # 也可尝试在手机上编译,termux中可使用cmake和gcc(无需NDK) mkdir build-android cd build-android export NDK=<your_ndk_directory> # 如果手机不支持,请移除"-DCMAKE_CXX_FLAGS=-march=armv8.2a+dotprod"(大多数新手机都支持) cmake -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23 -DCMAKE_CXX_FLAGS=-march=armv8.2a+dotprod .. make -j
chmod 777 main授权./main --help

免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


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


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


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


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


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


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号