h2oGPT:一个基于H2O.ai生态系统的开源可商用大语言模型
像OpenAI、Google、Anthropic、Microsoft、Cohere、Meta、Stability.AI、AI21 Labs等AI巨头公司在LLMs的开发和整合方面取得了领先地位。然而,以上公司都没有提供真正的开源可商业应用的大语言模型,有些甚至没有提供模型训练微调的入口。新版本在推理能力上提升了42%,最高支持32k上下文均对外开源,TigerBot-7B号称已达到OpenAI同样
一、前言
像OpenAI、Google、Anthropic、Microsoft、Cohere、Meta、Stability.AI、AI21 Labs等AI巨头公司在LLMs的开发和整合方面取得了领先地位。然而,以上公司都没有提供真正的开源可商业应用的大语言模型,有些甚至没有提供模型训练微调的入口。
目前大家对GPT模型追捧的热度似乎开始进入一个比较平稳冷静的状态,但是对于一些开源的LLM大模型几乎差不多一两周都能爆发一条吸人眼球的新闻热点出来,都在争抢LLMs排行榜,国内的大语言模型也不甘示弱:
- 清华和智普AI联合推出的ChatGLM2、新版本在推理能力上提升了42%,最高支持32k上下文,ChatGLM2-6B权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。
- 虎博科技推出了多模态大语言模型TigerBot,包含70亿参数和1800亿参数两个版本,均对外开源,TigerBot-7B号称已达到OpenAI同样大小模型综合表现的 96%。
大概在4月份左右首次在本地部署体并验了清华发布的第一代 ChatGLM 6B 模型,在当时来讲,以LLaMa为首的一些开源LLM模型层出不穷,鱼龙混杂,实际上这些模型离完全达到生产应用的效果还有比较大的距离,且大部分模型部署和训练对于GPU的要求非常高,一般人可能有点望尘莫及就放弃了,然而很多个人或者企业可能都希望能有一个对中文支持不错的开源模型,可以通过本地微调或者建立向量库的方式来构建企业级的轻量AI应用。
ChatGLM发布之后,对于本地部署轻量化模型它确实不失为一种不错的选择,因为其授权的原因,虽然代码开源,但是模型权重只对学术研究完全开放,个人或者企业商用需要得到许可。想拿到这个许可证可能也不容易。
幸运的是,H2O.ai发布了真正免费、开源可商用的模型h2oGPT,使得在本地训练私有化LLM模型和构建商业AI应用成为了可能。
二、H2O.ai
H2O.ai在过去的十年中构建了几个世界一流的机器学习、深度学习和人工智能平台,其中大部分是开源软件(建立在现有的开源软件之上),并赢得了全球客户的信任。我们理想地位于为全球的企业、组织和个人提供开源的GPT生态系统。
H2O.ai推出了h2oGPT,这是一个基于生成预训练变换器(GPTs)的LLMs的开源代码库套件,旨在创建世界上最好的真正开源的替代闭源方法。在与令人难以置信且不可阻挡的开源社区合作的同时,我们开源了几个经过精细调整的h2oGPT模型,参数从70亿到400亿不等,可在完全宽松的Apache 2.0许可下进行商业使用。我们的发布中还包括使用自然语言进行100%私密文档搜索。
H2O.ai 发布的所有内容都基于完全许可的数据和模型(例外情况是明确标记为仅用于研究的基于LLaMa的模型),所有代码都是开源的。这样,更多企业和商业产品可以在没有法律问题的情况下获得更广泛的访问权,扩大对尖端AI的使用,并遵守许可要求。
开源语言模型有助于推动人工智能的发展,并使其更加可访问和可信。它们降低了进入门槛,使人们和团体能够根据自己的需求定制这些模型。这种开放性增加了创新、透明度和公平性。需要一种开源策略来公平分享人工智能的好处,H2O.ai将继续推动人工智能和LLMs的民主化。
三、H2O.ai LLM 开源生态
H2O.ai的开源LLM生态系统目前包括以下组件:
- 代码、数据和模型:提供了完全允许商业使用的代码,以及经过策划的微调数据和参数在70到200亿微调模型。
- 最先进的微调技术:提供了高效的微调代码,包括针对性的数据准备、提示工程和计算优化,可以在普通硬件或企业服务器上几小时内微调具有高达200亿参数(甚至更大的模型即将推出)的LLM。使用低秩近似(LoRA)和数据压缩等技术可以节省数个数量级的计算资源。
- h2oGPT聊天机器人:提供了在GPU服务器上运行多租户聊天机器人的代码,具有易于共享的端点和Python客户端API,可以用于评估和比较微调LLM的性能。
- 使用VectorDB的文档聊天:提供了一个功能齐全的基于自然语言的文档搜索系统,使用向量数据库和提示工程。这个系统是完全离线的,无需互联网连接。
- H2O LLM Studio:由世界顶级Kaggle大师创建的无代码LLM微调框架,使得微调和评估LLM更加容易。H2O LLM Studio让每个人都能够进行LLM微调,包括对私有数据和服务器上的大型开源LLM(如h2oGPT等)进行微调。
3.1、Hugging Face上的h2oGPT模型
H2O.ai 将开源的模型放在了 Hugging Face 的仓库上。其中一些重要的模型包括:
- h2oai/h2ogpt-oasst1-falcon-40b
- h2oai/h2ogpt-oig-oasst1-falcon-40b
- h2oai/h2ogpt-oasst1-512-20b
- h2oai/h2ogpt-oasst1-512-12b
- h2oai/h2ogpt-oig-oasst1-512-6_9b
- h2oai/h2ogpt-gm-oasst1-en-2048-falcon-40b-v1
- h2oai/h2ogpt-gm-oasst1-en-1024-20b
- h2oai/h2ogpt-gm-oasst1-en-2048-falcon-7b-v2
- h2oai/h2ogpt-research-oasst1-512-30b (非商业用途)
- h2oai/h2ogpt-research-oasst1-512-65b (非商业用途)
要在Python中使用这些模型非常简单:
!pip install transformers==4.29.2
!pip install accelerate==0.19.0
!pip install torch==2.0.1
!pip install einops==0.6.1
import torch
from transformers import pipeline, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("h2oai/h2ogpt-oasst1-falcon-40b", padding_side="left")
generate_text = pipeline(model="h2oai/h2ogpt-oasst1-falcon-40b",
tokenizer=tokenizer, torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto", prompt_type="human_bot")
res = generate_text("Why is drinking water so healthy?", max_new_tokens=100)
print(res[0]["generated_text"])
输出结果:
>>> Drinking water is healthy because it helps to keep your body hydrated and functioning
>>> properly. It also helps to flush out toxins and waste from the body, which can help >>> to improve your overall health. Additionally, drinking water can help to regulate
>>> your body temperature, which can help to prevent dehydration and heat exhaustion.
3.2、ChatBot 聊天机器人
h2oGPT 包含了一个基于Gradio的简单聊天机器人GUI和客户端/服务器API。
python generate.py --base_model=h2oai/h2ogpt-oasst1-512-12b
聊天机器人的功能包括:
- 支持来自 Hugging Face 的任何开源LLM
- 无需互联网访问的离线模式
- 比较任意两个模型
- 支持在任何LLM之上使用LoRA适配器权重
- 多GPU分片
- 使用基于人类反馈训练的奖励模型自动评分回答
- 4位量化选项
- 自动从多次来回对话中扩展上下文
3.3、私密文档聊天
众所周知,LLM(大型语言模型)可能会产生幻觉或虚构回答,参见《 On the Dangers of Stochastic Parrots 》。目前,研究人员正在积极探索在什么条件下会出现这种情况以及如何控制它。一种将LLM与现实联系起来的方法是为任何查询提供源内容作为上下文。查询和源内容被嵌入,并使用向量数据库估计相似度。h2oGPT包括FAISS内存和Chroma持久向量数据库,依靠经过指导调优的LLM根据源内容的前k个块的上下文来回答问题。
python generate.py --base_model=h2oai/h2ogpt-research-oasst1-512-30b --langchain_mode=wiki_full
文档聊天的功能包括:
- 基于事实的文档问答
- 预加载了20GB的维基百科状态
- 离线模式,无需互联网访问
- 持久数据库与向量嵌入
- 能够处理各种文档类型
3.4、无代码微调与 H2O LLM Studio
H2O LLM Studio 是一个开源框架,提供了一个无代码图形用户界面(GUI)和一个命令行界面(CLI),用于微调 LLMs。它允许用户在不需要任何编码经验的情况下,使用各种超参数训练和调整最先进的 LLMs。它支持各种先进的微调技术,如低秩适应(LoRA)和 8 位模型训练,具有低内存占用。该软件允许用户可视化地跟踪和比较模型性能,并提供了一个与模型聊天的选项,以获得即时的性能反馈。此外,它还便于将模型导出到 Hugging Face Hub,与社区分享。
H2O LLM 工作室的最新更新包括将实验配置存储在 YAML 格式中,并增加了支持数据中嵌套对话的功能。系统要求包括 Ubuntu 16.04+ 和 NVIDIA GPU,驱动程序版本 >= 470.57.02。该软件还支持 Docker,便于部署,并且期望 CSV 输入,至少有两列 - 一列用于指令列,另一列用于模型的期望答案。
启动 H2O LLM 工作室很容易:
H2O LLM Studio 的特点包括:
- 无需任何编码经验,就可以轻松有效地微调LLM
- 使用专门为大型语言模型设计的图形用户界面(GUI)使用各种超参数微调任何LLM
- 使用最新的微调技术,如低秩适配(LoRA)和8位模型训练,具有低内存占用
- 使用先进的评估指标来判断模型生成的答案
- 以可视化的方式跟踪和比较你的模型性能。此外,还可以使用Neptune集成。
- 与你的模型聊天,并获得你的模型性能的即时反馈
- 轻松地将你的模型导出到Hugging Face Hub,并与社区分享
四、项目地址
• h2oGPT https://github.com/h2oai/h2ogpt
• H2O LLM Studio https://github.com/h2oai/h2o-llmstudio
• H2O.ai on Hugging Face https://huggingface.co/h2oai
如果你对这篇文章感兴趣,而且你想要了解更多关于AI领域的实战技巧,可以关注「技术狂潮AI」公众号。在这里,你可以看到最新最热的AIGC领域的干货文章和案例实战教程。
更多推荐
所有评论(0)