这里直接选用h2oGPT的论文摘要部分:建立在大型语言模型 (LLM) 之上的应用程序,如 GPT-4,由于其在自然语言处理方面的人类水平的能力,代表着人工智能的一场革命。然而,它们也带来了许多重大风险,例如存在有偏见的、私人的或有害的文本,以及未经授权包含受版权保护的材料。我们介绍了 h2oGPT,这是一套开放源代码的代码库,用于基于生成性预训练transformer (GPT) 创建和使用 LLM。该项目的目标是创建世界上最好的、真正的开源方法,以替代封闭源代码方法。作为令人难以置信和不可阻挡的开源社区的一部分,我们与令人难以置信的和不可阻挡的开源社区合作,开源了几个经过微调的 h2oGPT 模型,参数从 70 亿到 400 亿,准备在完全许可的 Apache2.0 许可证下用于商业使用。我们的版本中包括使用自然语言的 100 XMATHX PC 私人文档搜索。开源语言模型有助于推动人工智能的发展,使其更容易获得和值得信任。它们降低了进入门槛,允许个人和团体根据自己的需求定制这些模式。这种公开性增加了创新、透明度和公平性。需要一个开源战略来公平地分享人工智能的好处,而 H.O.ai 将继续使人工智能和 LLMS 民主化。
中英文论文:
想要论文的同学可以在公众号后台留言。
其他可私有化布署的大模型案例:
LocalAI——一款可在消费级硬件上本地运行 LLMs的AI应用
localGPT——一款100%本地布署且支持LangChain的应用
h2oGPT
• h2oGPT 文档问答演示[1]
• 🤗 h2oGPT 聊天演示 1[2]
• 🤗 h2oGPT 聊天演示 2[3]
观看这些 YouTube 视频:
• 100% 离线 ChatGPT 替代方案?[4]
• 终极开源 LLM 对决(测试 6 个模型)- 令人惊讶的结果![5]
• 超快速的 Falcon 40b 🚀 无审查、开源、完全托管、与文档对话[6]
如有问题、讨论或者只是聊聊天,欢迎加入我们的 Discord !
h2oGPT 是一个大型语言模型(LLM)的微调框架和带有文档问答能力的聊天界面。文档可以通过提供与指令相关的上下文来帮助 LLM 避免虚构。h2oGPT 是完全自由的 Apache V2 开源项目,用于完全私密和安全地使用 LLM 和文档嵌入进行文档问答。
欢迎加入我们,提出问题或创建 PR,为打造最好的微调 LLM、聊天界面和文档问答框架做出贡献!
如果你喜欢这个项目,请将 ★ 变成 ⭐(右上角)!
• 支持的操作系统和硬件[7]
• Apache V2 ChatBot 集成 LangChain[8]
• Apache V2 数据准备代码、训练代码和模型[9]
• 路线图[10]
• 入门指南[11] •TLDR 安装和运行[12] •GPU (CUDA)[13] •CPU[14] •MACOS[15] •Windows 10/11[16] •CLI 聊天[17] •Gradio UI[18] •客户端 API[19] •连接推理服务器[20] •Python Wheel[21]
• 开发[22]
• 帮助[23] •支持的 LangChain 文件类型[24] •CLI 数据库控制[25] •为什么选择 h2oGPT 进行文档问答[26] •常见问题解答[27] •有用的链接[28] •微调[29] •Docker[30] •Triton[31]
• 致谢[32]
• 为什么选择 H2O.ai?[33]
• 免责声明[34]
支持的操作系统和硬件
[35]
Docker
GPU 模式需要通过 torch 和 transformers 支持 CUDA。6.9B(或12GB)模型使用8GB(或13GB)的GPU内存。使用8位或4位精度可以进一步将内存需求减少到大约6.5GB,当对文档进行提问时(参见低内存模式[36])。
CPU 模式使用 GPT4ALL 和 LLaMa.cpp,例如 gpt4all-j,在典型的使用中需要大约14GB的系统内存。
GPU 和 CPU 模式在多种 NVIDIA GPU 上测试通过,适用于 Ubuntu 18-22,但任何现代 Linux 变体都应该可以运行。MACOS 支持在运行 Monterey v12.3.1 的 MacBook Pro 上使用 CPU 模式进行测试。
集成了 LangChain 的 Apache V2 ChatBot
•LangChain [37] 集成,支持聊天机器人和流式响应 •使用 Chroma 的持久化 数据库或者使用 FAISS 的内存数据库 •根据查询对原始内容的链接和得分进行排序 •私密 的离线数据库,支持各种类型的文档(PDF、图片等)(详情请参见支持的数据类型[38]) •可以通过聊天机器人将文档上传到共享空间或仅允许在临时空间使用 •控制数据源和提供给 LLM 的上下文 •使用经过指导调优的 LLM 高效利用上下文(无需多个示例) •提供客户端-服务器控制的API •支持各种 HF 模型的CPU 和 GPU ,以及使用 GPT4ALL 和 LLaMa cpp 的CPU 支持 •支持Linux、MAC 和 Windows
使用轻量级、柔和色彩的界面与猫图片进行对话:
带有 H2O.ai 颜色的暗黑模式:
Apache V2 数据准备代码、训练代码和模型
•支持多种模型(h2oGPT、WizardLM、Vicuna、OpenAssistant 等) •完全商业化的 Apache V2 代码、数据和模型 •对大型开源指令数据集进行高质量的数据清洗 •LoRA 和 QLoRA(低秩近似)高效的 4 位、8 位和 16 位微调和生成 •构建在普通或企业 GPU 上的大型模型(最多 65B 参数)(单节点或多节点) •使用基于 RLHF 的奖励模型评估性能
https://user-images.githubusercontent.com/6147661/232924684-6c0e2dfb-2f24-4098-848a-c3e4396f29f6.mov
所有开源数据集和模型都发布在 🤗 H2O.ai 的 Hugging Face 页面[39] 上。
此外,还可以查看 H2O LLM Studio[40],这是我们的无代码 LLM 微调框架!
Roadmap
•将代码和生成的 LLM 与下游应用程序和低代码/无代码平台集成 •为 h2oGPT 聊天机器人添加搜索和其他 API •在万亿标记上进行更大模型的高性能分布式训练 •提升模型的代码补全、推理和数学能力,确保事实正确性,最小化虚构现象,并避免重复输出 •添加其他工具,如搜索功能 •添加用于 SQL 和 CSV 问答的代理
入门指南
首先,您需要一个 Python 3.10 环境。如需帮助安装 Python 3.10 环境,请参阅安装 Python 3.10 环境[41]。在较新的 Ubuntu 系统上,可以通过以下方式安装环境:
sudo apt-get install -y build-essential gcc python3.10-dev
virtualenv -p python3 h2ogpt
source h2ogpt/bin/activate
通过以下命令检查您的安装情况:
python --version # 应显示为 3.10.xx
pip --version # 应显示为 pip 23.x.y ... (python 3.10)
在某些系统上,pip
仍然引用系统上的版本,此时可以使用 python -m pip
或 pip3
替代 pip
,或尝试使用 python3
替代 python
。
TLDR
在安装 Python 3.10 环境之后:
git clone https://github.com/h2oai/h2ogpt.git
cd h2ogpt
# 修复可能存在的环境问题
pip uninstall -y pandoc pypandoc pypandoc-binary
# 安装所需的依赖项(包括 langchain、gpt4all 等)
for fil in requirements.txt reqs_optional/requirements_optional_langchain.txt reqs_optional/requirements_optional_gpt4all.txt reqs_optional/requirements_optional_langchain.gpllike.txt reqs_optional/requirements_optional_langchain.urls.txt ; do pip install -r $fil ; done
# 可选:安装用于支持 docx、pptx、ArXiv 等的软件包
sudo apt-get install -y libmagic-dev poppler-utils tesseract-ocr libreoffice
# 可选:用于支持 unstructured package
python -m nltk.downloader all
将所有文档放在 user_path
目录中,或在用户界面中上传。
使用 GPU 的用户界面(至少需要 24GB 的显存)并进行流式处理:
python generate.py --base\_model=h2oai/h2ogpt-oasst1-512-12b --load\_8bit=True --score\_model=None --langchain\_mode='UserData' --user\_path=user\_path
使用 CPU 的用户界面:
python generate.py --base\_model='llama' --prompt\_type=wizard2 --score\_model=None --langchain\_mode='UserData' --user\_path=user\_path
Development
•要创建一个用于训练和生成的开发环境,请按照安装说明[42]进行操作。
•要在您的数据上对任何 LLM 模型进行微调,请按照微调说明[43]进行操作。
•要创建用于部署的容器,请按照Docker 说明[44]进行操作。
•要运行 h2oGPT 的测试,请运行 pip install requirements-parser ; pytest -s -v tests client/tests
。
帮助
•支持 Flash Attention,请参阅Flash Attention[45]。 •用于推理的Docker[46]。 •常见问题解答[47]。 •LangChain 的 README[48]。 •更多链接[49],包括上下文、竞争对手、模型和数据集。
致谢
•一些训练代码基于Alpaca-LoRA[50]的 3 月 24 日版本。 •使用了OpenAssistant[51]提供的高质量数据。 •使用了EleutherAI[52]的基础模型。 •使用了由LAION[53]创建的 OIG 数据集。
为什么选择 H2O.ai?
我们在 H2O.ai[54] 的创造者们构建了多个世界一流的机器学习、深度学习和人工智能平台:
•面向企业的 #1 开源机器学习平台 H2O-3[55] •全球最佳的自动机器学习平台 H2O Driverless AI[56] •无代码深度学习平台 H2O Hydrogen Torch[57] •基于深度学习的文档处理平台 Document AI[58]
我们还构建了用于部署和监控、数据整理和治理的平台:
•H2O MLOps[59] 用于大规模部署和监控模型 •与 AT&T 共同构建的开源无代码 AI 应用开发框架 Wave[60] 和 Nitro[61] •开源 Python 库 datatable[62](H2O Driverless AI 特征工程的引擎)
我们的许多客户都在 H2O AI Cloud[63] 中创建模型并以企业级和大规模部署:
•多云或本地部署
• 托管云服务 (SaaS)[64]
• 混合云[65]
• AI Appstore[66]
我们为有超过 25 位(全球 280 位)Kaggle Grandmasters[67]在 H2O.ai 公司工作,其中三位 Kaggle Grandmasters 曾获得世界第一的排名。
免责声明
在使用本存储库中提供的大型语言模型之前,请仔细阅读本免责声明。您使用该模型即表示您同意以下条款和条件。
•偏见和冒犯性内容:大型语言模型是基于各种互联网文本数据训练的,其中可能包含偏见、种族主义、冒犯性或其他不适当的内容。通过使用该模型,您承认并接受生成的内容有时可能存在偏见,或产生冒犯或不适当的内容。本存储库的开发者不赞同、支持或宣传任何此类内容或观点。 •限制:大型语言模型是基于人工智能的工具,而不是人类。它可能会产生不正确、无意义或不相关的回复。用户有责任对生成的内容进行批判性评估,并自行决定是否使用。 •自担风险:使用该大型语言模型的用户必须对因使用该工具而产生的任何后果承担全部责任。本存储库的开发者和贡献者不承担因使用或滥用提供的模型而导致的任何损害、损失或伤害。 •遵守伦理:鼓励用户负责任地和道德地使用大型语言模型。通过使用该模型,您同意不将其用于促进仇恨言论、歧视、骚扰或任何形式的非法或有害活动。 •报告问题:如果您遇到大型语言模型生成的具有偏见、冒犯性或其他不适当内容,请通过提供的渠道向存储库维护人员报告。您的反馈将有助于改进模型并减轻潜在问题。 •免责声明的变更:本存储库的开发者保留在任何时候修改或更新本免责声明的权利,无需事先通知。用户有责任定期查阅免责声明以了解任何更改。
通过使用本存储库中提供的大型语言模型,您同意接受并遵守本免责声明中概述的条款和条件。如果您不同意本免责声明的任何部分,您应避免使用该模型及其生成的任何内容。
References
[1]
h2oGPT 文档问答演示: https://gpt.h2o.ai/
[2]
🤗 h2oGPT 聊天演示 1: https://huggingface.co/spaces/h2oai/h2ogpt-chatbot
[3]
🤗 h2oGPT 聊天演示 2: https://huggingface.co/spaces/h2oai/h2ogpt-chatbot2
[4]
100% 离线 ChatGPT 替代方案?: https://www.youtube.com/watch?v=Coj72EzmX20
[5]
终极开源 LLM 对决(测试 6 个模型)- 令人惊讶的结果!: https://www.youtube.com/watch?v=FTm5C\_vV\_EY
[6]
超快速的 Falcon 40b 🚀 无审查、开源、完全托管、与文档对话: https://www.youtube.com/watch?v=H8Dx-iUY49s
[7]
支持的操作系统和硬件: #supported-os-and-hardware
[8]
Apache V2 ChatBot 集成 LangChain: #apache-v2-chatbot-with-langchain-integration
[9]
Apache V2 数据准备代码、训练代码和模型: #apache-v2-data-preparation-code-training-code-and-models
[10]
路线图: #roadmap
[11]
入门指南: #getting-started
[12]
TLDR 安装和运行: #tldr
[13]
GPU (CUDA): docs/README_GPU.md
[14]
CPU: docs/README_CPU.md
[15]
MACOS: docs/README_MACOS.md#macos
[16]
Windows 10/11: docs/README_WINDOWS.md
[17]
CLI 聊天: docs/README_CLI.md
[18]
Gradio UI: docs/README_GRADIOUI.md
[19]
客户端 API: docs/README_CLIENT.md
[20]
连接推理服务器: docs/README_InferenceServers.md
[21]
Python Wheel: docs/README_WHEEL.md
[22]
开发: #development
[23]
帮助: #help
[24]
支持的 LangChain 文件类型: docs/README_LangChain.md#supported-datatypes
[25]
CLI 数据库控制: docs/README_LangChain.md#database-creation
[26]
为什么选择 h2oGPT 进行文档问答: docs/README_LangChain.md#what-is-h2ogpts-langchain-integration-like
[27]
常见问题解答: docs/FAQ.md
[28]
有用的链接: docs/LINKS.md
[29]
微调: docs/FINETUNE.md
[30]
Docker: docs/INSTALL-DOCKER.md
[31]
Triton: docs/TRITON.md
[32]
致谢: #acknowledgements
[33]
为什么选择 H2O.ai?: #why-h2oai
[34]
免责声明: #disclaimer
[35]
: https://raw.githubusercontent.com/h2oai/h2ogpt/main/LICENSE
[36]
低内存模式: docs/FAQ.md#low-memory-mode
[37]
LangChain : docs/README_LangChain.md
[38]
支持的数据类型: docs/README_LangChain.md#supported-datatypes
[39]
🤗 H2O.ai 的 Hugging Face 页面: https://huggingface.co/h2oai/
[40]
H2O LLM Studio: https://github.com/h2oai/h2o-llmstudio
[41]
安装 Python 3.10 环境: docs/INSTALL.md#install-python-environment
[42]
安装说明: docs/INSTALL.md
[43]
微调说明: docs/FINETUNE.md
[44]
Docker 说明: docs/INSTALL-DOCKER.md
[45]
Flash Attention: docs/INSTALL.md
[46]
Docker: docs/INSTALL-DOCKER.md#containerized-installation-for-inference-on-linux-gpu-servers
[47]
常见问题解答: docs/FAQ.md
[48]
LangChain 的 README: docs/README_LangChain.md
[49]
链接: docs/LINKS.md
[50]
Alpaca-LoRA: https://github.com/tloen/alpaca-lora/
[51]
OpenAssistant: https://open-assistant.io/
[52]
EleutherAI: https://www.eleuther.ai/
[53]
LAION: https://laion.ai/blog/oig-dataset/
[54]
H2O.ai: https://h2o.ai
[55]
H2O-3: https://github.com/h2oai/h2o-3
[56]
H2O Driverless AI: https://h2o.ai/platform/ai-cloud/make/h2o-driverless-ai/
[57]
H2O Hydrogen Torch: https://h2o.ai/platform/ai-cloud/make/hydrogen-torch/
[58]
Document AI: https://h2o.ai/platform/ai-cloud/make/document-ai/
[59]
H2O MLOps: https://h2o.ai/platform/ai-cloud/operate/h2o-mlops/
[60]
Wave: https://wave.h2o.ai/
[61]
Nitro: https://nitro.h2o.ai/
[62]
datatable: https://github.com/h2oai/datatable/
[63]
H2O AI Cloud: https://h2o.ai/platform/ai-cloud/
[64]
托管云服务 (SaaS): https://h2o.ai/platform/ai-cloud/managed
[65]
混合云: https://h2o.ai/platform/ai-cloud/hybrid
[66]
AI Appstore: https://docs.h2o.ai/h2o-ai-cloud/
[67]
Kaggle Grandmasters: https://h2o.ai/company/team/kaggle-grandmasters/