openchat

GitHub
5.5k 435 中等 1 次阅读 昨天Apache-2.0语言模型
AI 解读 由 AI 自动生成,仅供参考

OpenChat 是一个致力于推动开源语言模型发展的创新项目,旨在利用混合质量的数据训练出高性能的对话模型。它主要解决了传统大模型训练过度依赖昂贵且稀缺的高质量标注数据这一难题,通过独特的 C-RLFT(条件强化学习微调)策略,让模型能够直接从无需偏好标签的混杂数据中高效学习。

得益于这一技术突破,OpenChat 在仅拥有 70 亿至 80 亿参数量的情况下,便能展现出媲美 ChatGPT 的卓越性能,甚至在代码生成、数学推理及综合基准测试中实现超越。其显著优势在于极高的部署效率,普通用户仅需一张消费级显卡(如 RTX 3090)即可在本地流畅运行,大大降低了使用门槛。此外,该项目保持快速迭代,最新推出的基于 Llama 3 架构的版本进一步提升了整体表现,并明确支持商业免费使用。

OpenChat 非常适合希望低成本私有化部署大模型的开发者、需要高效基座模型进行二次研究的研究人员,以及追求高性能但受限于硬件资源的普通技术爱好者。无论是构建智能客服、辅助编程工具,还是探索大模型应用边界,OpenChat 都提供了一个强大且易用的开源选择。

使用场景

一家初创公司的后端团队需要在单张消费级显卡(如 RTX 3090)上部署私有化代码助手,以辅助开发人员快速生成和修复业务逻辑代码,同时严格保障数据不出域。

没有 openchat 时

  • 硬件门槛高:想要获得接近 ChatGPT 的代码能力,通常必须租用昂贵的云端 A100/H800 集群或购买多卡服务器,初创团队预算难以承受。
  • 数据利用难:团队内部积累了大量未经人工偏好标注的混合质量历史代码日志,因缺乏精细清洗和打标资源,这些宝贵数据只能被闲置浪费。
  • 响应延迟大:调用外部公有云 API 存在网络波动和高延迟问题,且敏感业务代码上传至第三方模型存在严重的数据泄露合规风险。
  • 微调效果差:尝试使用传统指令微调(SFT)处理混合质量数据时,模型容易“学坏”,导致输出不稳定,无法在复杂逻辑任务中达到生产级可用标准。

使用 openchat 后

  • 单机即可部署:借助 openchat 基于 C-RLFT 策略优化的 7B/8B 模型,团队直接在单张 RTX 3090 上跑通了媲美 ChatGPT 的代码助手,大幅降低硬件成本。
  • 变废为宝:openchat 能够直接从无偏好标签的混合质量数据中学习,团队将原本闲置的历史代码库转化为训练燃料,显著提升了模型对自家业务场景的理解。
  • 本地实时响应:模型完全本地化运行,消除了网络延迟,实现了毫秒级的代码补全与纠错反馈,同时确保核心代码资产永远留在内网。
  • 性能越级表现:得益于独特的离线强化学习策略,openchat 在 HumanEval 等代码基准测试中得分超越众多大参数模型,即使面对复杂算法题也能给出高质量解答。

openchat 让中小企业得以用消费级硬件和原始数据,构建出具备商业级竞争力的私有化大语言模型应用。

运行环境要求

操作系统
  • Linux
  • Windows (via WSL)
GPU
  • 必需 NVIDIA GPU
  • 支持消费级显卡(如 RTX 3090, 4090)
  • 需安装 CUDA
  • 20 系列或更旧的显卡需指定 --dtype float16(不支持 bfloat16)
内存

未说明

依赖
notes1. Windows 用户需通过 WSL (Ubuntu 22.04) 运行。 2. 推荐使用 conda 创建 Python 3.11 环境以避免包兼容性问题。 3. API 服务器基于 vLLM 优化,兼容 OpenAI API 协议。 4. 多卡部署需使用 Ray 并设置 tensor-parallel-size 参数。
python3.11
pytorch
vLLM
ochat
openchat hero image

快速开始

OpenChat:利用混合质量数据推进开源语言模型发展

💻在线演示 | 🤗Huggingface | 📃论文 | 💭Discord

  • OpenChat 是一个创新的 开源语言模型 库,采用受离线强化学习启发的 C-RLFT 策略进行微调。
  • 我们的模型无需偏好标签即可从混合质量的数据中学习,在性能上可与 ChatGPT 相媲美,即便是仅需 消费级显卡(如 RTX 3090) 即可运行的 7B 参数模型也能达到这一水平。
  • 尽管我们的方法简单,但我们致力于开发高性能、具备商业可行性的开源大型语言模型,并在此愿景上不断取得重大进展。

DOI

✨ 新闻

阅读更多

🏷️ 基准测试 - OpenChat 3.6

基准测试复现

注意:请在本仓库的根目录下运行以下命令。

python -m ochat.evaluation.run_eval --condition "GPT4 Correct" --model openchat/openchat-3.6-8b-20240522 --eval_sets fs_cothub/mmlu fs_cothub/gsm8k fs_cothub/math
python -m ochat.evaluation.run_eval --condition "GPT4" --model openchat/openchat-3.6-8b-20240522 --eval_sets zs/gpqa

HumanEval 使用官方的 EvalPlus 仓库 进行运行。

🏷️ 基准测试 - OpenChat 3.5

模型 参数量 平均得分 MT-Bench HumanEval BBH MC AGIEval TruthfulQA MMLU GSM8K BBH CoT
OpenChat-3.5-0106 7B 64.5 7.8 71.3 51.5 49.1 61.0 65.8 77.4 62.2
ChatGPT (三月)* ???B 61.5 7.94 48.1 47.6 47.1 57.7 67.3 74.9 70.1
OpenHermes 2.5 7B 59.3 7.54 48.2 49.4 46.5 57.5 63.8 73.5 59.9
OpenOrca Mistral 7B 52.7 6.86 38.4 49.4 42.9 45.9 59.3 59.1 58.1
Zephyr-β^ 7B 34.6 7.34 22.0 40.6 39.0 40.8 39.8 5.1 16.0
Mistral 7B - 6.84 30.5 39.0 38.0 - 60.1 52.2 -
开源SOTA** 13B-70B 61.4 7.71 73.2 49.7 41.7 62.3 63.7 82.3 41.4
WizardLM 70B WizardCoder 34B Orca 13B Orca 13B Platypus2 70B WizardLM 70B MetaMath 70B Flan-T5 11B

🔥 OpenChat-3.5-0106 (7B) 现在在所有4项基准测试上都超过了Grok-0 (33B),并且在平均分和3/4的基准测试上也超过了Grok-1 (314B)。

许可证 参数量 平均得分 MMLU HumanEval MATH GSM8k
OpenChat-3.5-0106 Apache-2.0 7B 61.0 65.8 71.3 29.3 77.4
Grok-0 专有 33B 44.5 65.7 39.7 15.7 56.8
Grok-1 专有 314B 55.8 73 63.2 23.9 62.9
评估详情 *: ChatGPT (三月)的结果来自GPT-4技术报告、Chain-of-Thought Hub以及我们的评估。

^: Zephyr-β经常无法遵循少样本CoT指令,这很可能是因为它只经过聊天数据对齐,而没有接受少样本数据的训练。

**: Mistral和开源SOTA的结果取自指令微调模型论文及官方仓库中报告的数据。

所有模型均以聊天模式进行评估(例如应用相应的对话模板)。所有零样本基准测试均采用与AGIEval论文和Orca论文相同的设置。CoT任务使用与Chain-of-Thought Hub相同的配置,HumanEval则通过EvalPlus进行评估,MT-bench则使用FastChat运行。要复现我们的结果,请按照以下说明操作。

复现基准测试

推理与编码:

注意:请在本仓库的根目录下运行以下命令。

python -m ochat.evaluation.run_eval --condition "GPT4 Correct" --model openchat/openchat-3.5-0106 --eval_sets coding fs_cothub/bbh fs_cothub/mmlu zs/agieval zs/bbh_mc_orca zs/truthfulqa_orca
python ochat/evaluation/view_results.py
python ochat/evaluation/convert_to_evalplus.py

然后所有humaneval代码样本都会被放置在ochat/evaluation/evalplus_codegen中。使用以下命令,通过Docker作为沙箱来评估名为samples.jsonl的单个代码样本。

docker run -v $(pwd):/app ganler/evalplus:latest --dataset humaneval --samples samples.jsonl

数学推理:

注意:请在本仓库的根目录下运行以下命令。

python -m ochat.evaluation.run_eval --condition "Math Correct" --model openchat/openchat-3.5-0106 --eval_sets fs_cothub/gsm8k zs/math
python ochat/evaluation/view_results.py

MT-Bench:

请先启动本地API服务器,然后下载FastChat并运行以下命令。

注意:由于非零温度和GPT-4 API随时间的变化,结果可能会有所差异。

cd fastchat/llm_judge
python gen_api_answer.py --model openchat-3.5-0106 --max-tokens 4096 --parallel 128 --openai-api-base http://localhost:18888/v1
python gen_judgment.py --model-list openchat-3.5-0106 --parallel 8 --mode single

⬇️ 安装

[!NOTE] 运行OpenChat需要pytorchCUDA

pip

pip3 install ochat

[!IMPORTANT] 如果您在使用pip时遇到包兼容性问题,请尝试下面的conda方法,或查看此问题

conda

conda create -y --name openchat python=3.11
conda activate openchat

pip3 install ochat

Windows (WSL 1.x, Ubuntu-22.04)

sudo apt update
sudo apt install build-essential

sudo apt install -y curl
curl -o miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash miniconda.sh

# 如果以下conda命令不起作用,请重启WSL终端

conda create -y --name openchat python=3.11
conda activate openchat

pip3 install ochat

从源码安装

克隆本仓库,并以可编辑模式从源码安装openchat
git clone https://github.com/imoneoi/openchat
cd openchat

pip3 install --upgrade pip  # 启用PEP 660支持
pip3 install -e .  # 可编辑模式,您可以在此克隆的仓库中进行修改

🚀 部署API服务器

⚡ 我们的API服务器已准备好用于生产环境,并且兼容OpenAI API协议。它经过vLLM的高度优化,可以动态批处理请求。

📎 注意:对于不支持bfloat16的20系或更早的GPU,请在服务器参数中添加--dtype float16

目前支持的模型列表

模型类型 模型仓库 许可证
openchat_3.6 openchat/openchat-3.6-8b-20240522 Llama 3
openchat_3.5 openchat/openchat-3.5-0106 Apache 2.0

对于单个 GPU(例如 RTX 3090、4090)

python -m ochat.serving.openai_api_server --model MODEL_REPO

对于多个 GPU(张量并行)

# N 是张量并行的 GPU 数量
python -m ochat.serving.openai_api_server --model MODEL_REPO --engine-use-ray --worker-use-ray --tensor-parallel-size N

使用 -h 查看更多设置

python -m ochat.serving.openai_api_server --model MODEL_REPO -h
部署为在线服务

如果想要将服务器部署为在线服务,可以使用 --api-keys sk-KEY1 sk-KEY2 ... 来指定允许的 API 密钥,并使用 --disable-log-requests --disable-log-stats --log-file openchat.log 仅将日志记录到文件中。出于安全考虑,我们建议在服务器前面使用一个 HTTPS 网关

请求示例

启动后,服务器会在 localhost:18888 监听请求,并且兼容 OpenAI ChatCompletion API 规范

💡 默认模式(GPT4 Correct):最适合编码、聊天和一般任务

curl http://localhost:18888/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_TYPE",
    "messages": [{"role": "user", "content": "你是一个名为 OpenChat 的大型语言模型。请写一首诗来描述你自己"}]
  }'

🧮 数学推理模式:专为解决数学问题而设计

curl http://localhost:18888/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_TYPE",
    "condition": "Math Correct",
    "messages": [{"role": "user", "content": "10.3 − 7988.8133 = "}]
  }'

🌐 Web UI - OpenChat-UI

启动 API 服务器后,OpenChat 提供了一个易于交互的用户界面。点击此处查看 Web UI

🤗 使用 Transformers 进行推理

[!WARNING] 建议使用我们优化后的 API 服务器进行部署。使用 Transformers 进行推理会更慢。

💡 默认模式(GPT4 Correct):最适合编码、聊天和一般任务

GPT4 Correct 用户: 你好<|end_of_turn|>GPT4 Correct 助手: 你好<|end_of_turn|>GPT4 Correct 用户: 你今天怎么样?<|end_of_turn|>GPT4 Correct 助手:

🧮 数学推理模式:专为解决数学问题而设计

Math Correct 用户: 10.3 − 7988.8133=<|end_of_turn|>Math Correct 助手:

⚠️ 注意:请记住将 <|end_of_turn|> 设置为生成结束标记。

默认的(GPT4 Correct)模板也可以作为集成的 tokenizer.chat_template 使用,这样就不需要手动指定模板了。

🛠️ 训练

OpenChat 的训练系统采用无填充训练和 Multipack Sampler,相比传统的填充训练,速度提升了 3~10倍

选择基础模型

OpenChat 支持 Llama 3 和 Mistral 模型。请先根据需求选择一个基础模型。每个基础模型都有对应的权重仓库、模型类型和推荐的每 GPU 批量大小,如下表所示,这些信息应填写到后续说明中的 BASE_REPOMODEL_TYPEBATCH_SIZE 中。

基础模型 大小 权重(含 EOT 标记) 模型类型 推荐的每 GPU 批量大小(8xA100 80GB)
Llama 3 8B imone/Llama-3-8B-fixed-special-embedding openchat_3.6 40960
Mistral 7B imone/Mistral_7B_with_EOT_token openchat_v3.2_mistral 77824

注意:OpenChat 的对话模板需要 <|eot_id|>, <|start_header_id|>, <|end_header_id|>(Llama 3)或 <|end_of_turn|>(Mistral)特殊标记。指定的基础模型必须包含这些标记,并已初始化嵌入。我们提供的权重是在原始基础权重基础上添加了这些标记并进行了嵌入初始化。如果您想手动添加,可以使用 scripts 目录下的 init_special_embedding_llama3.pymistral_add_tokens.py

安装 DeepSpeed 和 Flash Attention

首先,请确保您的环境中可用 CUDA 的 nvcc 编译器。如果不可用,请安装与 PyTorch 版本匹配的 CUDA 工具包。

接下来,安装构建依赖项:

pip install packaging ninja

最后,安装相关包:

pip install deepspeed flash-attn

准备数据

要使用 OpenChat 训练器,需将 SFT 数据准备成 JSON Lines 格式,其中每行对应一个 Conversation 对象:

class Message(BaseModel):
    role: str     # 必须是 "user" 或 "assistant"
    content: str  # 消息内容
    weight: Optional[float] = None  # 此消息的损失权重。通常用户为 0,助手为 1,以仅监督助手的回答


class Conversation(BaseModel):
    items: List[Message]  # 对话中的所有消息
    condition: str = ""  # C-RLFT 条件,可以是任意字符串或空。
    system: str = ""  # 此对话的系统提示

对于基本的 SFT,将人类消息的 weight 设为 0,助手回复的 weight 设为 1

SFT 示例:

{"items":[{"role":"user","content":"你好","weight":0.0},{"role":"assistant","content":"嗨","weight":1.0},{"role":"user","content":"你今天怎么样?","weight":0.0},{"role":"assistant","content":"我很好。","weight":1.0}],"system":""}
{"items":[{"role":"user","content":"你是谁?","weight":0.0},{"role":"assistant","content":"我是 OpenChat。","weight":1.0}],"system":"你是一个名为 OpenChat 的 helpful 助手。"}

对于 C-RLFT,condition 应设置为对话所属的类别(例如 GPT3GPT4)。人类消息的 weight 设为 0,助手回复的 weight 设为 w,其中 w 是该类别的权重(例如,GPT30.1GPT41,如我们在 C-RLFT 论文中所述)。

C-RLFT 示例:

{"items":[{"role":"user","content":"什么是 C-RLFT?","weight":0.0},{"role":"assistant","content":"C-RLFT 是一种利用混合质量数据改进开源 LLM 的方法。","weight":1.0}],"condition":"GPT4","system":""}
{"items":[{"role":"user","content":"什么是 C-RLFT?","weight":0.0},{"role":"assistant","content":"我不知道。","weight":0.1}],"condition":"GPT3","system":""}

数据集的预分词

接下来,你需要使用以下命令对数据集进行预分词(请指定一个文件名作为 PRETOKENIZED_DATA_OUTPUT_PATH 来存储预分词后的数据集):

python -m ochat.data.generate_dataset --model-type MODEL_TYPE --model-path BASE_REPO --in-files data.jsonl --out-prefix PRETOKENIZED_DATA_OUTPUT_PATH

启动 OpenChat 训练器

现在你可以使用下面的命令启动 OpenChat 训练器。

  • 13B 模型需要八张配备 80GB 显存的 A/H100 显卡。
  • 7B 模型可以使用四张配备 80GB 显存的 A/H100 显卡,或者八张配备 40GB 显存的 A/H100 显卡来训练。

对于超参数,我们建议首先将批大小设置为推荐值。如果出现显存不足(OOM)的情况,可以尝试将其调整为显存所能容纳的最大值,并且确保该值是 2048 的倍数。其他超参数已作为默认值精心选择。此外,学习率会根据 反平方根法则 自动确定。

训练命令(点击展开)
NUM_GPUS=8

deepspeed --num_gpus=$NUM_GPUS --module ochat.training_deepspeed.train \
          --model_path BASE_REPO \
          --data_prefix PRETOKENIZED_DATA_OUTPUT_PATH \
          --save_path PATH_TO_SAVE_MODEL \
          --batch_max_len BATCH_SIZE \
          --epochs 5 \
          --save_every 1 \
          --deepspeed \
          --deepspeed_config ochat/training_deepspeed/deepspeed_config.json

你可以在 PATH_TO_SAVE_MODEL 中找到所有 epoch 的检查点。然后你可以评估每个 epoch,并选择表现最好的模型。

局限性

基础模型的局限性:尽管 OpenChat 具备先进的能力,但它仍然受到其基础模型固有局限性的约束。这些局限性可能会影响模型在以下方面的表现:

  • 复杂推理
  • 数学和算术任务
  • 编程挑战

编造不存在的信息:OpenChat 有时可能会生成并不存在或不准确的信息,这也被称为“幻觉”。用户应意识到这种可能性,并对从模型获得的任何关键信息进行核实。

安全性:OpenChat 有时可能会生成有害、仇恨言论、带有偏见的回复,或者回答不安全的问题。在需要安全且经过审核的响应的应用场景中,务必采取额外的人工智能安全措施。

许可证

代码以 Apache License 2.0 协议发布。

引用

@article{wang2023openchat,
  title={OpenChat: Advancing Open-source Language Models with Mixed-Quality Data},
  author={Wang, Guan and Cheng, Sijie and Zhan, Xianyuan and Li, Xiangang and Song, Sen and Liu, Yang},
  journal={arXiv preprint arXiv:2309.11235},
  year={2023}
}

💌联系方式

项目负责人:

  • Guan Wang [imonenext at gmail dot com]
  • Alpay Ariyak [aariyak at wpi dot edu]

主要贡献者:

  • Xianyuan Zhan(清华大学)
  • Qiying Yu(清华大学)
  • Changling Liu(GPT Desk Pte. Ltd.)
  • LDJ
  • AutoMeta(Alignment Lab AI)

赞助方:

特别感谢:

版本历史

3.6.12024/05/24
3.6.02024/05/24
3.5.22024/03/09
3.5.12023/12/13
3.5.02023/11/02
3.2.22023/09/18
3.2.12023/09/14
3.2.02023/09/04
3.1.22023/08/03
3.1.12023/08/01
3.1.02023/07/31
OpenChat-v12023/07/07
pre-release2023/07/02

常见问题

相似工具推荐

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

141.5k|★★☆☆☆|今天
开发框架Agent语言模型

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|今天
语言模型图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|昨天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|3天前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

75k|★★★☆☆|今天
语言模型图像开发框架