模型概述
模型特點
模型能力
使用案例
🚀 H2OVL-Mississippi-800M模型
H2OVL-Mississippi-800M是H2O.ai推出的一款緊湊而強大的視覺語言模型,擁有8億參數。儘管模型規模較小,但它在文本識別方面表現出色,在OCRBench的文本識別部分表現卓越,超越了該領域中許多更大的模型。該模型基於H2O-Danube語言模型的強大架構構建,通過無縫集成視覺和語言任務,擴展了其功能。
[📜 H2OVL-Mississippi論文] [🤗 HF演示] [🚀 快速開始]

✨ 主要特性
- 參數規模適度:擁有8億參數,在性能和效率之間取得平衡,適用於OCR和文檔處理。
- 訓練數據豐富:在1900萬圖像文本對上進行訓練,專注於OCR、文檔理解以及圖表和表格解釋,針對卓越的OCR性能進行了優化。

📚 詳細文檔
多基準測試中相似規模模型的性能比較 - OpenVLM排行榜
模型 | 參數 (B) | 平均得分 | MMBench | MMStar | MMMUVAL | Math Vista | Hallusion | AI2DTEST | OCRBench | MMVet |
---|---|---|---|---|---|---|---|---|---|---|
Qwen2-VL-2B | 2.1 | 57.2 | 72.2 | 47.5 | 42.2 | 47.8 | 42.4 | 74.7 | 797 | 51.5 |
H2OVL-Mississippi-2B | 2.1 | 54.4 | 64.8 | 49.6 | 35.2 | 56.8 | 36.4 | 69.9 | 782 | 44.7 |
InternVL2-2B | 2.1 | 53.9 | 69.6 | 49.8 | 36.3 | 46.0 | 38.0 | 74.1 | 781 | 39.7 |
Phi-3-Vision | 4.2 | 53.6 | 65.2 | 47.7 | 46.1 | 44.6 | 39.0 | 78.4 | 637 | 44.1 |
MiniMonkey | 2.2 | 52.7 | 68.9 | 48.1 | 35.7 | 45.3 | 30.9 | 73.7 | 794 | 39.8 |
MiniCPM-V-2 | 2.8 | 47.9 | 65.8 | 39.1 | 38.2 | 39.8 | 36.1 | 62.9 | 605 | 41.0 |
InternVL2-1B | 0.8 | 48.3 | 59.7 | 45.6 | 36.7 | 39.4 | 34.3 | 63.8 | 755 | 31.5 |
PaliGemma-3B-mix-448 | 2.9 | 46.5 | 65.6 | 48.3 | 34.9 | 28.7 | 32.2 | 68.3 | 614 | 33.1 |
H2OVL-Mississippi-0.8B | 0.8 | 43.5 | 47.7 | 39.1 | 34.0 | 39.0 | 29.6 | 53.6 | 751 | 30.0 |
DeepSeek-VL-1.3B | 2.0 | 39.6 | 63.8 | 39.9 | 33.8 | 29.8 | 27.6 | 51.5 | 413 | 29.2 |
🚀 快速開始
安裝依賴
pip install transformers torch torchvision einops timm peft sentencepiece flash_attn
示例演示
import torch
from transformers import AutoConfig, AutoModel, AutoTokenizer
# 設置模型和分詞器
model_path = 'h2oai/h2ovl-mississippi-800m'
config = AutoConfig.from_pretrained(model_path, trust_remote_code=True)
config.llm_config._attn_implementation = 'flash_attention_2'
model = AutoModel.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
config=config,
low_cpu_mem_usage=True,
trust_remote_code=True).eval().cuda()
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True, use_fast=False)
generation_config = dict(max_new_tokens=2048, do_sample=True)
# 純文本對話
question = 'Hello, how are you?'
response, history = model.chat(tokenizer, None, question, generation_config, history=None, return_history=True)
print(f'用戶: {question}\n助手: {response}')
# 單張圖像示例
image_file = './examples/image.jpg'
question = '<image>\n讀取圖像中的文本。'
response, history = model.chat(tokenizer, image_file, question, generation_config, history=None, return_history=True)
print(f'用戶: {question}\n助手: {response}')
📚 詳細文檔
JSON提取的提示工程
概述
本指南演示瞭如何創建提示以提取信息並將其轉換為結構化的JSON輸出。從基本示例開始,逐步過渡到更復雜的JSON結構,包括處理表格和圖表圖像中的數據。目標是幫助用戶設計可用於各種應用程序(如自然語言處理、聊天機器人或從視覺輸入中提取數據)的有效提示。
目錄
入門指南
要開始從圖像中提取JSON數據,必須清楚瞭解要提取的視覺內容以及所需JSON輸出的結構。以下示例將指導您如何構建提示以實現這一目標。
示例1:從圖像中提取簡單信息
假設場景:您有一張包含基本信息(如“姓名”、“出生日期”和“地址”)的表單圖像。 提示:
從表單圖像中提取詳細信息並將其結構化為JSON格式:
{
"name": "",
"date_of_birth": "",
"address": ""
}
預期輸出:
{
"name": "John Doe",
"date_of_birth": "1990-01-01",
"address": "1234 Elm Street, Springfield"
}
示例2:從圖像中提取嵌套信息
假設場景:您有一張包含詳細個人信息(包括聯繫信息和緊急聯繫人)的表單圖像。 提示:
從表單中提取信息並按以下格式進行格式化:
{
"personal_details": {
"name": "",
"age": 0,
"gender": ""
},
"contact": {
"phone": "",
"email": ""
},
"emergency_contact": {
"name": "",
"relation": "",
"phone": ""
}
}
預期輸出:
{
"personal_details": {
"name": "Sarah Connor",
"age": 35,
"gender": "Female"
},
"contact": {
"phone": "555-1234",
"email": "sarah.connor@example.com"
},
"emergency_contact": {
"name": "Kyle Reese",
"relation": "Friend",
"phone": "555-5678"
}
}
示例3:從圖像中提取列表和數組
假設場景:您有一張列出多個事件、其時間和地點的日程安排圖像。 提示:
從日程安排圖像中提取事件詳細信息並將其結構化為JSON:
{
"events": [
{
"name": "",
"time": "",
"location": ""
}
]
}
預期輸出:
{
"events": [
{
"name": "Morning Meeting",
"time": "09:00 AM",
"location": "Conference Room 1"
},
{
"name": "Lunch Break",
"time": "12:00 PM",
"location": "Cafeteria"
},
{
"name": "Project Update",
"time": "02:00 PM",
"location": "Conference Room 2"
}
]
}
示例4:從圖像中提取表格數據
表格圖像通常包含需要解析並轉換為JSON的結構化數據。以下示例演示瞭如何處理表格數據提取。 假設場景:您有一張列出產品名稱、價格和數量的表格圖像。 提示:
從表格圖像中提取數據並將其格式化為JSON:
{
"products": [
{
"product_name": "",
"price": "",
"quantity": 0
}
]
}
預期輸出:
{
"products": [
{
"product_name": "Apples",
"price": "$2",
"quantity": 10
},
{
"product_name": "Bananas",
"price": "$1",
"quantity": 20
},
{
"product_name": "Oranges",
"price": "$3",
"quantity": 15
}
]
}
示例5:從圖像中提取圖表數據
圖表包含需要準確提取的元數據和數據點。以下是如何構建提示以從圖像中提取圖表數據的方法。 假設場景:您有一張顯示月度銷售數據的柱狀圖圖像。 提示:
從圖像中提取柱狀圖的詳細信息,包括標題、軸標籤和數據點,並將其格式化為JSON:
{
"chart": {
"title": "",
"x_axis": "",
"y_axis": "",
"data_points": [
{
"label": "",
"value": 0
}
]
}
}
預期輸出:
{
"chart": {
"title": "Monthly Sales Report",
"x_axis": "Months",
"y_axis": "Sales (in $)",
"data_points": [
{
"label": "January",
"value": 500
},
{
"label": "February",
"value": 600
},
{
"label": "March",
"value": 700
}
]
}
}
最佳實踐
- 明確清晰:在提示中明確定義所需的鍵和結構,以避免歧義。
- 提供示例:提供示例輸出,以便系統理解預期格式。
- 考慮變化:考慮視覺數據中可能的變化,並確保提示能夠適應這些變化。
- 從簡單開始:從簡單的結構開始,根據需要逐步增加複雜性。
- 測試和迭代:通過測試優化提示,以確保輸出的準確性和一致性。
📄 許可證
本項目採用Apache-2.0許可證。
致謝
我們感謝OpenGVLab的InternVL團隊的研究和代碼庫,我們在此基礎上進行了構建和擴展。我們也感謝LLaVA團隊和Monkey團隊在改進多模態模型方面的見解和技術。
免責聲明
在使用本倉庫中提供的大語言模型之前,請仔細閱讀本免責聲明。您使用該模型即表示您同意以下條款和條件。
- 偏差和冒犯性:大語言模型在各種互聯網文本數據上進行訓練,這些數據可能包含有偏見、種族主義、冒犯性或其他不適當的內容。使用此模型即表示您承認並接受生成的內容有時可能表現出偏差或產生冒犯性或不適當的內容。本倉庫的開發者不認可、支持或推廣任何此類內容或觀點。
- 侷限性:大語言模型是基於AI的工具,而非人類。它可能會產生不正確、無意義或不相關的響應。用戶有責任批判性地評估生成的內容並自行決定是否使用。
- 風險自擔:使用此大語言模型的用戶必須對使用該工具可能產生的任何後果承擔全部責任。本倉庫的開發者和貢獻者不對因使用或濫用所提供模型而導致的任何損害、損失或傷害承擔責任。
- 道德考量:鼓勵用戶負責任和道德地使用大語言模型。使用此模型即表示您同意不將其用於促進仇恨言論、歧視、騷擾或任何形式的非法或有害活動。
- 問題報告:如果您遇到大語言模型生成的任何有偏見、冒犯性或其他不適當的內容,請通過提供的渠道向倉庫維護者報告。您的反饋將有助於改進模型並減輕潛在問題。
- 免責聲明變更:本倉庫的開發者保留隨時修改或更新本免責聲明的權利,無需事先通知。用戶有責任定期查看免責聲明,以瞭解任何變更。
使用本倉庫中提供的大語言模型即表示您同意接受並遵守本免責聲明中規定的條款和條件。如果您不同意本免責聲明的任何部分,您應避免使用該模型及其生成的任何內容。








