Apache Doris 4.0 AI 能力揭秘(一):AI 函数之 LLM 函数介绍

基于Apache Doris构建知识图谱增强RAG系统:从文档处理到智能问答 1. 先搞清楚这个方案到底解决了什么问题 如果你正在搭建一个基于大模型的问答系统,尤其是需要处理企业文档、技术手册这类内部知识,那你肯定遇到过两个核心痛点:一是传统的RAG(检索增强生成)方案,面对复杂的、涉及多个实体和关系的查询时,回答容易变得零散、不准确;二是技术栈太杂,向量库、关系型数据库、图数据库各管一摊,开发和运维成本高。 这篇文章要讲的,就是如何用 Apache Doris (或它的云托管版 SelectDB )作为统一的数据底座,从零搭建一个完整的RAG系统,并且更进一步,引入 知识图谱 来增 阅读详情

在数据日益密集的当下,我们总在寻求更高效、更智能的数据分析工具。随着大语言模型(LLM)的兴起,如何将这些前沿的 AI 能力与日常的数据分析工作相结合,已然成为一个极具探索价值的方向。

基于此,我们在 Apache Doris 4.0 版本中实现了一系列 LLM 函数。这使得数据分析能够凭借简洁的 SQL 语句,直接调用大语言模型开展文本处理工作。无论是从文本中精准提取重要信息,还是对评论进行细致的情感分类,亦或生成精炼的文本摘要,皆可在数据库内部无缝完成。

应用场景

在即将发布的 4.0 版本中,Apache Doris LLM 函数可应用的场景包括但不限于:

  • 智能反馈:自动识别用户意图、情感。
  • 内容审核:批量检测并处理敏感信息,保障合规。
  • 用户洞察:自动分类、摘要用户反馈。
  • 数据治理:智能纠错、提取关键信息,提升数据质量。

所有大语言模型必须在 Doris 外部提供,并且支持文本分析。此外,所有 LLM 函数调用结果和成本取决于外部 LLM 供应商及其所使用的模型。

函数支持

  • LLM_CLASSIFY:在给定的标签中提取与文本内容匹配度最高的单个标签字符串。
  • LLM_EXTRACT:根据文本内容,为每个给定标签提取相关信息。
  • LLM_FILTER: 判断文本内容是否正确,返回值为 bool 类型。
  • LLM_FIXGRAMMAR:修复文本中的语法、拼写错误。
  • LLM_GENERATE:基于参数内容生成内容。
  • LLM_MASK: 根据标签,将原文中的敏感信息用[MASKED]进行替换处理。
  • LLM_SENTIMENT:分析文本情感倾向,返回值为positive、negative、neutral、mixed其中之一。
  • LLM_SIMILARITY:判断两文本的语义相似度,返回值为 0 - 10 之间的浮点数,值越大代表语义越相似。
  • LLM_SUMMARIZE:对文本进行高度总结概括。
  • LLM_TRANSLATE:将文本翻译为指定语言。

LLM 配置相关参数

Doris 通过资源机制对 LLM API 的访问进行集中管理,旨在确保密钥安全与权限可控。目前可选择的参数如下:

  • type: 必填,且必须为 llm ,作为 llm 的类型标识。
  • llm.provider_type: 必填,外部 LLM 厂商类型。
  • llm.endpoint: 必填,LLM API 接口地址。
  • llm.model_name: 必填,模型名称。
  • llm_api_key: 除llm.provider_type = local的情况外必填,API 密钥。
  • llm.temperature: 可选,控制生成内容的随机性,取值范围为 0 到 1 的浮点数。默认值为 -1,表示不设置该参数。
  • llm.max_tokens: 可选,限制生成内容的最大 token 数。默认值为 -1,表示不设置该参数。Anthropic 默认值为 2048。
  • llm.max_retries: 可选,单次请求的最大重试次数。默认值为 3。
  • llm.retry_delay_second: 可选,重试的延迟时间(秒)。默认值为 0。

厂商支持

目前直接支持的厂商有:OpenAI、Anthropic、Gemini、DeepSeek、Local(Ollama 等)、MoonShot、MiniMax、Zhipu、Qwen、Baichuan。

若有不在上列的厂商,但其 API 格式与 OpenAI/Anthropic/Gemini 相同的,在填入参数 llm.provider_type 时可直接选择三者中格式相同的厂商。原因是厂商选择只影响 Doris 内部所构建的 API 格式。

快速上手

为了帮助用户尽快上手,我们准备了一些示例 Demo,以下示例均为最小实现:

01 配置 LLM 资源

示例一:

CREATE RESOURCE 'openai_example'
PROPERTIES (    
    'type' = 'llm',    
    'llm.provider_type' = 'openai',    
    'llm.endpoint' = 'https://api.openai.com/v1/responses',    
    'llm.model_name' = 'gpt-4.1',    
    'llm.api_key' = 'xxxxx'
);

示例二:

CREATE RESOURCE 'deepseek_example'
PROPERTIES (    
    'type'='llm',    
    'llm.provider_type'='deepseek',    
    'llm.endpoint'='https://api.deepseek.com/chat/completions',    
    'llm.model_name' = 'deepseek-chat',    
    'llm.api_key' = 'xxxxx'
);

02 设置默认资源(可选)

SET default_llm_resource='llm_resource_name';

03 执行 SQL 查询

case1:

假设存在如下数据表,表中存储了与数据库相关的文档内容:

CREATE TABLE doc_pool (    
    id  BIGINT,    
    c   TEXT
) DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 10
PROPERTIES (    
    "replication_num" = "1"
);

若需筛选与 Doris 相关性最高的 10 条记录,可采用如下查询:

SELECT    
    c,    
    CAST(LLM_GENERATE(CONCAT('Please score the relevance of the following document content to Apache Doris, with a floating-point number from 0 to 10, output only the score. Document:', c)) AS DOUBLE) AS score
FROM doc_pool 
ORDER BY score DESC 
LIMIT 10;

该查询将利用 LLM 生成每条文档内容与 Apache Doris 的相关性评分,并按得分降序筛选前 10 条结果。

+---------------------------------------------------------------------------------------------------------------+-------+
| c                                                                                                             | score |
+---------------------------------------------------------------------------------------------------------------+-------+
| Apache Doris is a lightning-fast MPP analytical database that supports sub-second multidimensional analytics. |   9.5 |
| In Doris, materialized views can automatically route queries, saving significant compute resources.           |   9.2 |
| Doris's vectorized execution engine boosts aggregation query performance by 5–10×.                            |   9.2 |
| Apache Doris Stream Load supports second-level real-time data ingestion.                                      |   9.2 |
| Doris cost-based optimizer (CBO) generates better distributed execution plans.                                |   8.5 |
| Enabling the Doris Pipeline execution engine noticeably improves CPU utilization.                             |   8.5 |
| Doris supports Hive external tables for federated queries without moving data.                                |   8.5 |
| Doris Light Schema Change lets you add or drop columns instantly.                                             |   8.5 |
| Doris AUTO BUCKET automatically scales bucket count with data volume.                                         |   8.5 |
| Using Doris inverted indexes enables second-level log searching.                                              |   8.5 |
+---------------------------------------------------------------------------------------------------------------+-------+

case2:

该表模拟招聘场景的候选人简历和职业要求:

CREATE TABLE candidate_profiles (
    candidate_id INT,
    name         VARCHAR(50),
    self_intro   VARCHAR(500)
)
DUPLICATE KEY(candidate_id)
DISTRIBUTED BY HASH(candidate_id) BUCKETS 1
PROPERTIES (
    "replication_num" = "1"
); 

CREATE TABLE job_requirements (
    job_id   INT,
    title    VARCHAR(100),
    jd_text  VARCHAR(500)
)
DUPLICATE KEY(job_id)
DISTRIBUTED BY HASH(job_id) BUCKETS 1
PROPERTIES (
    "replication_num" = "1"
); 

INSERT INTO candidate_profiles VALUES 
(1, 'Alice', 'I am a senior backend engineer with 7 years of experience in Java, Spring Cloud and high-concurrency systems.'), 
(2, 'Bob',   'Frontend developer focusing on React, TypeScript and performance optimization for e-commerce sites.'), 
(3, 'Cathy', 'Data scientist specializing in NLP, large language models and recommendation systems.'); 

INSERT INTO job_requirements VALUES 
(101, 'Backend Engineer', 'Looking for a senior backend engineer with deep Java expertise and experience designing distributed systems.'), 
(102, 'ML Engineer',      'Seeking a data scientist or ML engineer familiar with NLP and large language models.');

可以通过 LLM_FILTER 将职业要求和候选人简介进行语义匹配,快速筛选出合适的候选人。

SELECT    
    c.candidate_id, c.name,    
    j.job_id, j.title
FROM candidate_profiles AS c
JOIN job_requirements AS j
WHERE LLM_FILTER(CONCAT('Does the following candidate self-introduction match the job description?',                 
    'Job: ', j.jd_text, ' Candidate: ', c.self_intro));

输出结果参考:

+--------------+-------+--------+------------------+
| candidate_id | name  | job_id | title            |
+--------------+-------+--------+------------------+
|            3 | Cathy |    102 | ML Engineer      |
|            1 | Alice |    101 | Backend Engineer |
+--------------+-------+--------+------------------+

case3:

该表模拟保险公司的理赔申请数据

CREATE TABLE claims (
    claim_id INT COMMENT '索赔编号',
    policy_id INT COMMENT '保单编号',
    claim_date DATE COMMENT '索赔日期',
    incident_description VARCHAR(1000) COMMENT '事故描述'
) DUPLICATE KEY(claim_id)
DISTRIBUTED BY HASH(claim_id) BUCKETS 5
PROPERTIES (
    "replication_num" = "1"
);

CREATE TABLE policies (
    policy_id INT COMMENT '保单编号',
    policy_type VARCHAR(50) COMMENT '保单类型',
    insured_item VARCHAR(255) COMMENT '承保物品/对象'
) DUPLICATE KEY(policy_id)
DISTRIBUTED BY HASH(policy_id) BUCKETS 5
PROPERTIES (
    "replication_num" = "1"
);

INSERT INTO claims VALUES
(1, 101, '2025-08-18', '昨天下午三点左右,我在东三环辅路开车时,与前车发生了追尾。'),
(2, 102, '2025-08-18', '上周五在公司楼下,我不小心扭伤了脚踝,需要理赔医疗费用。'),
(3, 103, '2025-08-18', '8月17日夜里家中管道破裂,导致部分家具被水浸泡。'),
(4, 104, '2025-08-18', '晚上喝酒后开车回家与其他车辆发生了碰撞。'),
(5, 105, '2025-08-18', '早上8点,在去上班的路上,发现车辆停放时被刮擦。');


INSERT INTO policies VALUES
(101, '车险', '宝马 X5'),
(102, '健康险', '个人意外险'),
(103, '家财险', '住宅房屋'),
(104, '车险', '丰田 凯美瑞'),
(105, '车险', '奥迪 A8');

可以利用 LLM_CLASSIFY 函数对事件性质进行智能分类,并通过 LLM_FILTER 函数对事件进行有效性校验,以筛选出符合理赔标准的有效事件。

SELECT
    c.claim_id,
    c.incident_description,
    llm_classify(c.incident_description, ['交通事故', '人身意外', '财产损失', '其他']) AS incident_category
FROM claims AS c
JOIN policies AS p ON c.policy_id = p.policy_id
WHERE
    p.policy_type = '车险' AND LLM_FILTER(CONCAT('下列情形是否支持保险赔偿:', c.incident_description));

输出结果参考:

+----------+-----------------------------------------------------------------------------------------+-------------------+
| claim_id | incident_description                                                                    | incident_category |
+----------+-----------------------------------------------------------------------------------------+-------------------+
|        1 | 昨天下午三点左右,我在东三环辅路开车时,与前车发生了追尾。                                        | 交通事故           |
|        5 | 早上8点,在去上班的路上,发现车辆停放时被刮擦。                                                 | 财产损失           |
+----------+-----------------------------------------------------------------------------------------+-------------------+

设计原理

01 函数执行流程

01 函数执行流程.png

02 资源化管理

Doris 将 LLM 能力抽象为资源(Resource),统一管理各种大模型服务(如 OpenAI、DeepSeek、Moonshot、本地模型等)。每个资源都包含了厂商、模型类型、API Key、Endpoint 等关键信息,简化了多模型、多环境的接入和切换,同时也保证了密钥安全和权限可控。

03 兼容主流大模型

由于厂商之间的 API 格式存在差异,Doris 为每种服务都实现了请求构造、鉴权、响应解析等核心方法,让 Doris 能够根据资源配置,动态选择合适的实现,无需关心底层 API 的差异。用户只需声明提供厂商,Doris 就能自动完成不同大模型服务的对接和调用。

总结

Apache Doris 4.0 的 LLM 函数为数据分析与智能应用场景注入了强大的能力,覆盖智能反馈、内容审核、用户洞察和数据治理等多领域需求。通过灵活的资源化管理和对主流大模型(如 OpenAI、Anthropic、DeepSeek 等)的广泛兼容,Doris 提供了一站式的智能分析解决方案,极大简化了复杂模型的接入与使用流程。无论是高效的语义匹配、情感分析,还是自动化内容生成与数据优化,Doris LLM 函数都能以高性能、低成本的方式助力企业释放数据潜能。

现在就行动!

参与 Apache Doris 4.0 内测,体验 “SQL +AI” 的颠覆性组合,让数据分析从“被动查询”迈向“主动洞察”。

养龙虾--Apache Doris MCP Server:让大模型直接“读懂“你的数据库 Apache Doris MCP Server v0.6.0 是一个基于Python和FastAPI构建的企业级数据AI接入层,实现了MCP(Model Context Protocol)协议,为Apache Doris数据库提供标准化接口。核心功能包括:自然语言转SQL(NL2SQL)、30+企业级数据工具、高性能查询引擎(支持ADBC协议)、完善的安全认证体系(Token/JWT/OAuth)和多租户隔离。该版本新增热重载配置管理、目录联合支持等特性,适用于数据分析师、数据工程师等不同角色的需求,支持H 阅读详情

相关推荐

基于Apache Doris与SelectDB构建RAG及知识图谱增强的智能问答系统实战

这次我们来看一个基于 Apache Doris 和 SelectDB 构建的 AI 应用实战项目。它不是一个单一的模型或工具,而是一套完整的、可落地的技术方案,核心目标是解决大模型在回答复杂、专业问题时面临的“知识幻觉”和“信息碎片化”难题。简单说,就是教你如何用 Doris 这个高性能数据库,搭建一个从基础检索增强生成(RAG)到知识图谱增强的智能问答系统。 这个方案最值得关注的点在于,它没有停留在概念层面,而是提供了从环境准备、数据处理、向量入库、知识图谱构建到最终问答生成的完整代码流程。对于开发者而言

culuo8053的博客 415

Apache Doris 4.0 的 AI 功能(LLM 函数 + 向量索引)与 Cloudera CDP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)融合

摘要:Apache Doris 4.0与Cloudera CDP 7.3(或类CMP平台)可通过架构协同实现AI数据平台融合。CDP作为数据湖底座负责存储治理,Doris 4.0提供LLM函数和向量索引等AI分析能力,二者通过Hive Catalog实现元数据互通,Spark/Flink Connector完成数据同步。在Kerberos环境下需配置安全认证,建议独立部署而非打包为Parcel。该方案融合了CDP的数据治理优势和Doris的实时AI分析能力,构建"数据湖+智能引擎"的混合

yumgpkpm的专栏 1090

Mongodb操作与Java(四)MongoTemplate的使用

MongoTemplate的使用

A乐神的博客 3437

Apache Doris 4.0 版本正式发布:全面升级 AI 与搜索能力,强化离线计算

当前版本支持的语法功能:与括号分组多字段搜索:在一个search()中对多个字段做布尔组合后续版本会持续迭代以支持以下语法功能:短语前缀通配符正则范围列表管道化组合:通过 char filter、tokenizer 与多个 token filter 的链式配置,构建自定义文本处理流程。组件复用:常用的 tokenizer 和 filter 可在多个 analyzer 中共享,减少重复定义,降低维护成本。

SelectDB 1331

Linux内核支持串口屏,linux串口触摸屏设计总结

Linux serial touch 设计总结概述:最近在做嵌入式linux下串口触摸屏设计,遇到一些问题,经过查找资料和请教同事,总算把问题解决了,事后有把linux相关的内核代码仔细看了一遍,为了有点成果,特别写了个总结。如有任何问题请联系yxj_5421@http://www.doczj.com/doc/87b94b1e227916888486d76d.html,转载请标明出处。系统资源:L...

weixin_39935903的博客 1296

Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践

Apache Doris LLM Function 作为数据库技术与人工智能深度融合的创新实践,标志着数据分析领域向智能化方向演进的重要里程碑。通过将大语言模型能力原生集成到 SQL 执行引擎中,有效解决了传统数据分析架构中 AI 能力集成的技术挑战。从技术架构层面来看,LLM Function 采用资源池化管理和 SQL 原生集成的设计理念,实现了 AI 处理能力与数据查询的无缝融合。十大核心函数覆盖了文本分析、内容生成、数据处理等主要应用场景,为企业级智能化数据分析提供了完整的技术工具集。

SelectDB 1385

ros_control硬件接口实战:从零构建机器人控制框架

本文详细介绍了ros_control硬件接口在机器人控制框架中的核心作用与实践方法。通过解析硬件接口类型、实现标准接口、构建主控制循环及自定义功能扩展,帮助开发者从零构建高效的机器人控制系统,提升硬件与ROS的协同效率。

lstm7chronicler的博客 498

Apache Doris AI 能力揭秘(四):HSAP 一体化混合搜索与分析架构全解

AI 时代正在重塑数据库的角色。过去,数据库主要为人类分析者提供报表与查询能力;而现在,越来越多的查询来自智能代理(Agent),它们会自动检索知识、过滤数据、组合多种信号,并将数据库作为 “实时信息源” 支撑推理与决策。

SelectDB 1284

ZED2双目相机运行VINS-FUSION初试

基于ZED2运行VINS-MONO的经验,在运行VINS-FUSION前有几点tips想跟大家分享,应该能在运行的过程中避免一些踩坑吧。 TIPs 1)关于zed2标定 开始使用Kalibr进行相机单目/双目及联合标定,虽然重投影误差最高也就5个像素,但实际使用效果却并不好,故建议大家相机内参还是从ZED2相机发布出的topic获取或可尝试/usr/local/zed/settings文件下的参数文档 另,启动ZED2.launch的时候,会有一个相机(一般是左目)和IMU的轴系转换关系Camera-IMU

xiaojinger_123的博客 5355

opencv+nvcodec实现视频硬解码

最近遇到一个新项目,AI推理在上,为了方便和节省成本的考虑决定研究下模块。根据官网的说法显卡具有独立的和模块,所以理论上和是独立互不干涉的。以前的项目都只是把显卡当成推理工具,没有将它的功能利用起来,本身也是一种浪费。事实真的有这么丝滑吗?看到这里,如果你真的觉得是白叫的那就真的是了,事实究竟如何,请听我娓娓道来。NVCODEC全称是 NVIDIA VIDEO CODEC,是NVIDIA为绝大多数显卡配置的硬件编解码单元。不一定是所有显卡都有,一般来讲越新的显卡硬件编解码就越强,支持的格式也就越新。

jiexijihe945的博客 1万+

Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座

在全球 290 位开发者的协作下,Apache Doris 在 2024 年完成了 7000+ 次代码提交,并发布了 22 个版本,实现在实时分析、湖仓一体和半结构化数据分析等核心场景的技术突破及创新。2025 年,社区将秉承“以场景驱动创新” 的核心理念,

SelectDB 1918

CPU 访问外设的两种核心机制:MMIO(Memory-Mapped I/O) 和 DMA(Direct Memory Access)

BAR和DMA是计算机系统中两种关键的数据传输机制:BAR(基址寄存器)用于CPU与设备间的控制通信,映射设备寄存器便于配置操作;而DMA(直接内存访问)允许设备直接读写系统内存,无需CPU参与大量数据传输。典型场景如NVMe SSD读取数据时,CPU通过BAR下发指令,设备通过DMA高效传输数据到主机内存,最后中断通知CPU。虽然BAR能映射大内存空间,但仍无法替代DMA的高效数据传输功能,两者各司其职——BAR负责控制,DMA专注数据传输,共同实现高性能的硬件交互。

MHD0815的博客 237

Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析

借助AI_AGG与EMBED函数,Apache Doris 拥有了了强大的智能分析能力,极大地拓展了数据分析与智能应用的边界。AI_AGG通过其动态预聚合机制,将非结构化文本的智能聚合分析带入数据库,轻松应对海量用户评论、日志分析等场景。而EMBED函数则与 Doris 的向量函数无缝集成,提供从文本到语义向量、再到相似度检索的一站式解决方案,极大简化了问答系统、内容推荐等应用的开发。

SelectDB 1129

苹果生态最佳搭档:Mac mini + OpenClaw + iPhone 远程控制

本文详细介绍如何通过iPhone远程控制Mac mini上的OpenClaw应用,打造高效苹果生态工作流。内容包括:1) 苹果生态整合优势,包括AirDrop、Handoff等功能对比;2) Mac mini配置步骤,涵盖SSH/VNC设置、网络优化及Docker部署OpenClaw;3) iPhone端SSH/VNC客户端选择与Tailscale内网穿透配置;4) 详细SSH密钥设置与连接测试方法。通过这套方案,用户可实现跨设备无缝控制OpenClaw应用,提升远程工作效率。(149字)

一键难忘的博客 791

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Apache Doris 4.0 的 AI 功能(LLM 函数 + 向量索引)与 Cloudera CDP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)操作指南和脚本

本文详细介绍了在启用Kerberos+TLS安全机制的Cloudera CDP7.3环境下部署Apache Doris 4.0,并实现与云端LLM服务集成的完整方案。内容包括:1)Doris集群的Kerberos主体创建和Keytab配置;2)Doris FE/BE节点的安装与参数设置;3)Hive Catalog的Kerberos+TLS认证配置;4)云端LLM服务(如阿里云Qwen)的API集成方法;5)AI功能测试案例及安全建议,推荐使用本地代理服务保护API密钥。该方案实现了数据湖治理与实时智能分析

yumgpkpm的专栏 1562

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

AI 能力揭秘(五):Apache Doris 原生向量检索的设计及实现

随着大模型和多模态 AI 的快速发展,向量已成为文本、图像、音视频等多元数据的通用语义表示。在这种背景下,检索增强生成(RAG)技术成为连接私有知识与大模型的核心桥梁,而高效的向量检索则是其关键支柱。 与将向量检索视为独立外挂服务的方案不同,Apache Doris 4.0 选择将向量检索能力深度集成于其 MPP 分析型数据库内核。实现向量检索与 SQL 计算、实时分析和事务保障的无缝融合。 本文旨在深入剖析 Doris 向量检索的系统级设计与工程实践,展示其如何在性能、易用性与规模扩展之间取得的平衡。

SelectDB 879

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Apache Doris 4.0.2 版本正式发布

亲爱的社区小伙伴们,**Apache Doris 4.0.2 版本已正式发布。**此版本新增了在 AI & Search、函数、物化视图、Lakehouse 等方面的功能,并同步进行了多项优化改进及问题修复,欢迎下载体验!

SelectDB 1161

Apache Doris 4.0 AI 函数实战:SQL 直连 DeepSeek 等主流大模型完整落地排坑教程

Apache Doris 4.0 重磅推出原生 AI 函数(AI Function)直接在 SQL 语句内部调用外部大语言模型(LLM),完成各类非结构化文本智能分析,无需把数据导出到 Python、Java 等外部程序做中转处理,真正实现「数据分析 + AI 处理」同一条 SQL 闭环执行Apache Doris。Doris 导出数据 → 外部服务调用大模型 API → 结果写回 Doris,链路冗长、数据一致性差、网络开销高、运维复杂;一条 SQL 完成查询 + AI 计算。

weixin_73593530的博客 617

Apache Doris 4.0 的 AI 功能(LLM 函数 + 向量索引)与 Cloudera CDP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)在**商业银行的实

摘要:国有商业银行实施Apache Doris 4.0与Cloudera CMP混合架构,重点解决实时分析、AI增强和安全合规需求。Doris提供LLM函数和向量索引支持,CDP作为数据底座,需完成鲲鹏ARM适配、数据集成、AI功能部署和安全治理。实施风险包括ARM架构稳定性、LLM延迟和向量索引内存占用,建议采用商业发行版和量化压缩。典型应用场景包括智能风控和知识库问答,实施周期6-9个月,需优先考虑国产大模型和商业支持保障SLA。

yumgpkpm的专栏 911

04_Doris AI函数全解:在SQL中直接调用大模型

摘要: Apache Doris 4.0创新性地将大模型能力封装为SQL函数(如AI_CLASSIFY、AI_SIMILARITY等),实现零胶水代码的AI集成。通过Resource机制统一管理多模型配置(OpenAI/DeepSeek/Ollama等),支持批量处理优化吞吐量。典型场景包括电商评论分类(多级标签匹配)、情感分析、文本摘要等,使开发者能通过简单SQL直接调用GPT-4、Claude等模型,将传统350ms+的复杂流程简化为201ms的数据库原生操作,大幅降低AI应用门槛。

模界 | AI工程化实践者 489

Apache Doris 4.x 生产环境部署文档

本文档提供了Apache Doris 4.x生产环境部署指南,重点介绍了4.0.2版本的新特性与部署方案。文档对比了Doris 2.x到4.x的版本演进,详细说明了4.x版本在AI智能中枢、向量检索和混合检索方面的突破性功能。针对3节点物理机+NAS环境,推荐采用存算一体架构以优化性能,并提供了完整的集群规划表,包括服务器配置、角色分配和端口规划。同时文档还列出了所需的软件资源清单,包含Doris内核、Java环境和客户端工具,方便用户快速获取部署所需资源。

李指导的博客 1492

07_Doris AI 能力企业级实践:字节跳动 DataMind 案例深度剖析

摘要: 字节跳动DataMind作为Doris AI能力的工业级验证案例,展示了Apache Doris在企业级AI应用中的优势。DataMind解决了字节内部知识管理的痛点,通过统一存储架构实现了混合搜索(Hybrid Search),集成了Faiss的HNSW/IVF_PQ双算法支持,创新性地提出了Tablet-level BM25全局统计方案解决分布式IDF计算问题,并实现了Bitmap与Faiss IDSelector的高效集成。其技术贡献包括:5000万文档规模下HNSW参数调优(P99延迟&lt

模界 | AI工程化实践者 678

Hadoop鲲鹏一体机Apache Doris 4.0 的 AI 功能(LLM 函数 + 向量索引)与 Cloudera CDP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM

摘要:华为鲲鹏KunpengCMP湖仓一体机整合Hadoop生态核心组件(HDFS/YARN/HBase/Hive/Spark3),提供一站式大数据解决方案。该平台具备Ranger权限控制、Atlas元数据管理等企业级功能,支持Kerberos认证和性能调优。其亮点在于一键部署、自动配置及可视化监控,显著降低运维复杂度。特别适合对数据安全、处理效率和运维便捷性有高要求的企业用户,实现快速构建稳定的大数据平台。(149字)

yumgpkpm的专栏 272

为什么今天值得重新比较 Apache Doris 和 StarRocks?

当业务同时涉及高频更新、半结构化数据、日志检索、多数据源与向量 / AI 工作负载时,Doris 与 StarRocks 的能力差异会显著放大。Doris 正从分析库扩展为统一数据平台(Analytics + Search + AI)。文中性能数字均引用公开基准(ClickBench / JSONBench / LAION),不代表单一 SQL 维度优劣。

SelectDB 510

【保姆级教程】手把手教你使用Doris+DeepSeek打造专属AI助手,零基础小白收藏这篇就够了!

本文详细介绍如何将Apache Doris高性能数据库与DeepSeek大语言模型结合,通过RAG技术构建个人或企业专属AI知识库。从术语解释到方案设计,再到完整代码实现,手把手指导读者搭建智能问答系统。该方案能有效解决大模型时效性不足和企业知识盲区问题,显著提升回答准确率,避免AI幻觉,为用户提供高质量本地知识库解决方案。

2401_85325557的博客 766
上一篇: Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
下一篇: 谁才是多快好省的数据分析选择:SelectDB vs. ClickHouse vs. Snowflake
SelectDB技术团队
博客等级 码龄4年 2119粉丝 483原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SelectDB技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值