h2oGPT
如果你喜欢这个项目,请将右上角的★变为⭐!
使用h2oGPT,一个Apache V2开源项目,查询和总结你的文档,或仅与本地私有GPT LLMs聊天。
在线演示
视频演示
https://github.com/h2oai/h2ogpt/assets/2249614/2f805035-2c85-42fb-807f-fd0bca79abc6
特点
- 私有的离线数据库,支持各种文档(PDFs、Excel、Word、图片、视频帧、YouTube、音频、代码、文本、Markdown等)
- 持久数据库(Chroma、Weaviate或内存中的FAISS)使用精确的嵌入(instructor-large、all-MiniLM-L6-v2等)
- 高效地利用上下文,使用指令调优的LLMs(无需LangChain的few-shot方法)
- 并行摘要和提取,使用13B LLaMa2模型可达到每秒80个tokens的输出
- HYDE(假设文档嵌入)基于LLM响应进行增强检索
- 语义分块以更好地分割文档(需要GPU)
- 多样的模型支持(LLaMa2、Mistral、Falcon、Vicuna、WizardLM,支持AutoGPTQ、4-bit/8-bit、LORA等)
- GPU支持来自HF和LLaMa.cpp的GGML模型,CPU支持使用HF、LLaMa.cpp和GPT4ALL模型
- Attention Sinks支持任意长度生成(LLaMa-2、Mistral、MPT、Pythia、Falcon等)
- Gradio UI或CLI支持所有模型的流式处理
- 通过UI上传和查看文档(控制多个协作或个人收藏)
- 视觉模型 LLaVa、Claude-3、Gemini-Pro-Vision、GPT-4-Vision
- 图像生成 Stable Diffusion(sdxl-turbo、sdxl、SD3)和PlaygroundAI(playv2)
- 语音识别 使用Whisper进行流式音频转换
- 语音合成 使用MIT许可证的Microsoft Speech T5进行多语音流式音频转换
- 语音合成 使用MPL2许可证的TTS包括语音克隆和流式音频转换
- AI助手语音控制模式 用于免提控制h2oGPT聊天
- 比拼模式 UI支持同时对比多个模型
- 轻松下载模型文件,通过UI控制模型如LLaMa.cpp
- 身份验证 UI通过用户/密码或Google OAuth进行验证
- 状态保存 UI通过用户/密码进行保存
- 开放Web UI 使用h2oGPT作为后端通过OpenAI代理
- 支持流式聊天完成、视觉模型、文档问答、语音识别、语音合成、图像生成、身份验证和状态保存。参见启动文档。
- Linux、Docker、macOS和Windows支持
- 推理服务器 支持 oLLaMa、HF TGI服务器、vLLM、Gradio、ExLLaMa、Replicate、Together.ai、OpenAI、Azure OpenAI、Anthropic、MistralAI、Google和Groq
- 符合OpenAI标准
- 服务器代理API(h2oGPT可作为OpenAI服务器的替代品)
- 支持聊天和文本完成(流式和非流式)、音频转录(语音识别)、音频生成(语音合成)、图像生成和嵌入
- JSON模式 通过代码块提取支持任何模型。还支持MistralAI的JSON模式,Claude-3通过严格的Schema进行函数调用,OpenAI通过JSON模式,vLLM通过guided_json进行严格的Schema。
- 网页搜索 集成聊天和文档问答
- 代理 支持搜索、文档问答、Python代码、CSV框架(实验性,目前最佳支持OpenAI)
- 评估 使用奖励模型进行性能评估
- 质量 保持超过1000个单元和集成测试,耗时超过4 GPU小时
开始使用
安装h2oGPT
推荐在Linux、Windows和MAC上使用Docker以获得完整功能。Linux脚本也具有完整功能,而Windows和MAC脚本功能不如使用Docker。
Collab演示
资源
文档指南
开发
- 要创建用于训练和生成的开发环境,请按照安装说明进行操作。
- 要在您的数据上微调任何LLM模型,请按照微调说明进行操作。
- 要运行h2oGPT测试:
或调整运行pip install requirements-parser pytest-instafail pytest-random-order playsound==1.3.0 conda install -c conda-forge gst-python -y sudo apt-get install gstreamer-1.0 pip install pygame GPT_H2O_AI=0 CONCURRENCY_COUNT=1 pytest --instafail -s -v tests # 用于已在运行的本地服务器上的openai服务器测试 pytest -s -v -n 4 openai_server/test_openai_server.py::test_openai_client
tests/test4gpus.sh
以并行运行测试。
鸣谢
- 一些训练代码基于2023年3月24日版本的Alpaca-LoRA。
- 使用了OpenAssistant创建的高质量数据。
- 使用了EleutherAI提供的基础模型。
- 使用了LAION创建的OIG数据。
为什么选择H2O.ai?
我们的创客在H2O.ai构建了多个世界级的机器学习、深度学习和人工智能平台:
- 企业级的#1开源机器学习平台H2O-3
- 世界上最好的自动机器学习平台H2O Driverless AI
- 无代码深度学习平台H2O Hydrogen Torch
- 基于深度学习的文档处理平台Document AI
我们还构建了用于部署和监控的平台,以及用于数据整合和治理的平台:
- H2O MLOps 用于大规模部署和监控模型
- 与AT&T合作开发的H2O Feature Store
- 开源低代码AI应用开发框架Wave 和Nitro
- 开源Python库datatable (H2O Driverless AI特征工程的引擎)
我们的许多客户正在H2O AI Cloud中企业范围内大规模地创建和部署模型:
我们很自豪地有超过25名(全球280名中的)Kaggle Grandmasters将H2O视为他们的家,包括三位曾登上世界第一的Kaggle Grandmasters。
免责声明
在使用本库中提供的大型语言模型之前,请仔细阅读本免责声明。使用该模型即表示您同意以下条款和条件。
- 偏见和冒犯性内容:大型语言模型是基于多样化的互联网文本数据训练的,这些数据可能包含偏见、种族主义、冒犯性或其他不当内容。使用该模型即表示您承认并接受生成的内容有时可能会表现出偏见或产生冒犯性或不当内容。本库的开发者不支持、不赞成或不推广任何此类内容或观点。
- 限制:大型语言模型是基于AI的工具,而非人类。它可能会生成错误的、无意义的或无关的响应。用户有责任批判性地评估生成的内容,并自行决定使用。
- 自担风险:使用该大型语言模型的用户必须对因使用该工具可能产生的任何后果承担全部责任。本库的开发者和贡献者不对因使用或误用提供的模型而造成的任何损害、损失或伤害承担责任。
- 伦理考虑:鼓励用户负责任地、合乎道德地使用该大型语言模型。通过使用该模型,您同意不将其用于推广仇恨言论、歧视、骚扰或任何形式的非法或有害活动的目的。
- 问题报告:如果您遇到由大型语言模型生成的任何偏见、冒犯性或其他不当内容,请通过提供的渠道向库的维护者报告。您的反馈将有助于改进模型并减轻潜在问题。
- 免责声明的变更:本库的开发者保留随时修改或更新本免责声明的权利,恕不另行通知。用户有责任定期查看免责声明,以了解任何更改。
通过使用本库提供的大型语言模型,您同意接受并遵守本免责声明中列出的条款和条件。如果您不同意本免责声明的任何部分,请不要使用该模型及其生成的任何内容。