天天看點

h2oGPT:一個基于H2O.ai生态系統的開源可商用大語言模型

作者:閃耀之星AK

一、前言

像OpenAI、Google、Anthropic、Microsoft、Cohere、Meta、Stability.AI、AI21 Labs等AI巨頭公司在LLMs的開發和整合方面取得了領先地位。然而,以上公司都沒有提供真正的開源可商業應用的大語言模型,有些甚至沒有提供模型訓練微調的入口。

目前大家對GPT模型追捧的熱度似乎開始進入一個比較平穩冷靜的狀态,但是對于一些開源的LLM大模型幾乎差不多一兩周都能爆發一條吸人眼球的新聞熱點出來,都在争搶LLMs排行榜,國内的大語言模型也不甘示弱:

  • 清華和智普AI聯合推出的ChatGLM2、,ChatGLM2-6B權重對學術研究完全開放,在獲得官方的書面許可後,亦允許商業使用。
  • 虎博科技推出了多模态大語言模型TigerBot,包含70億參數和1800億參數兩個版本,。

大概在4月份左右首次在本地部署體并驗了清華釋出的第一代 ChatGLM 6B 模型,在當時來講,以LLaMa為首的一些開源LLM模型層出不窮,魚龍混雜,實際上這些模型離完全達到生産應用的效果還有比較大的距離,且大部分模型部署和訓練對于GPU的要求非常高,一般人可能有點望塵莫及就放棄了,然而很多個人或者企業可能都希望能有一個對中文支援不錯的開源模型,可以通過本地微調或者建立向量庫的方式來建構企業級的輕量AI應用。

ChatGLM釋出之後,對于本地部署輕量化模型它确實不失為一種不錯的選擇,因為其授權的原因,雖然代碼開源,但是模型權重隻對學術研究完全開放,個人或者企業商用需要得到許可。想拿到這個許可證可能也不容易。

幸運的是,H2O.ai釋出了真正免費、開源可商用的模型h2oGPT,使得在本地訓練私有化LLM模型和建構商業AI應用成為了可能。

h2oGPT:一個基于H2O.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            
h2oGPT:一個基于H2O.ai生态系統的開源可商用大語言模型
h2oGPT:一個基于H2O.ai生态系統的開源可商用大語言模型

聊天機器人的功能包括:

  • 支援來自 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 工作室很容易:

h2oGPT:一個基于H2O.ai生态系統的開源可商用大語言模型
h2oGPT:一個基于H2O.ai生态系統的開源可商用大語言模型

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

繼續閱讀