前言

最近,AI领域的新名词层出不穷:LLM、RAG、Agent、知识图谱、多模态……很多小伙伴被这些术语搞得晕头转向,感觉每个字都认识,但连在一起就不知道是什么意思了。

今天这篇文章我就用一张“AI知识图谱”,把这些核心概念串起来,用最通俗的语言和代码示例,帮你一次性搞懂它们是什么、有什么用、怎么用。

希望对你会有所帮助。

一、AI知识图谱:把“黑话”变成一张图

先来看这张AI核心概念关系图,它会成为我们今天的导航地图:

image

这张图就是AI领域的“知识图谱”——它不是零散的知识点,而是把各个概念之间的关系连接起来,让你一目了然。

下面,我们就从最基础的概念开始,逐个击破。

二、核心概念逐个拆解

2.1 机器学习 vs 深度学习

一句话解释:机器学习是让计算机从数据中“学习规律”,深度学习是机器学习的一种,它模仿人脑的神经网络结构。

通俗理解

  1. 机器学习:就像你教孩子认识苹果——你给他看10个苹果,他总结出“红色的、圆的水果是苹果”。
  2. 深度学习:你直接给孩子看10000张图片,让他的“大脑神经网络”自己去发现苹果的特征,不用你告诉他什么是“红色”和“圆形”。

代码示例(用Java的Weka库做简单机器学习):

// 机器学习示例:用决策树判断天气是否适合打网球
import weka.core.Instances;
import weka.classifiers.trees.J48;

publicclass MachineLearningDemo {
    public static void main(String[] args) throws Exception {
        // 训练数据:天气情况 -> 是否打网球
        // Outlook, Temperature, Humidity, Windy, Play
        String data = "@relation weather\n" +
            "@attribute outlook {sunny,overcast,rainy}\n" +
            "@attribute temperature real\n" +
            "@attribute humidity real\n" +
            "@attribute windy {TRUE,FALSE}\n" +
            "@attribute play {yes,no}\n" +
            "@data\n" +
            "sunny,85,85,FALSE,no\n" +
            "sunny,80,90,TRUE,no\n" +
            "overcast,83,86,FALSE,yes\n" +
            "rainy,70,96,FALSE,yes";
        
        Instances instances = new Instances(new StringReader(data));
        instances.setClassIndex(instances.numAttributes() - 1);
        
        // 训练决策树模型
        J48 tree = new J48();
        tree.buildClassifier(instances);
        
        System.out.println("决策树模型:" + tree);
        // 模型可以预测:新的一天[rainy,68,80,TRUE] -> 会输出yes/no
    }
}

使用场景:推荐系统、垃圾邮件过滤、股票预测。

优点:能自动从数据中发现规律,不需要人工编写复杂规则。

缺点:需要大量高质量数据,模型可能过拟合。

2.2 大语言模型(LLM)

一句话解释:一种通过海量文本训练出来的、能理解和生成人类语言的巨型神经网络。

通俗理解:LLM就像一个读过整个互联网的人,你问它什么,它都能聊上几句。但它不知道你的私人信息,因为那些不在它的“阅读材料”里。

常见的LLM:GPT-4、Claude、文心一言、通义千问、DeepSeek。

代码示例(调用OpenAI API):

// 使用OkHttp调用大模型API
import okhttp3.*;

publicclass LLMDemo {
    public static void main(String[] args) throws Exception {
        OkHttpClient client = new OkHttpClient();
        
        String json = "{\n" +
            "  \"model\": \"gpt-3.5-turbo\",\n" +
            "  \"messages\": [{\"role\": \"user\", \"content\": \"什么是大语言模型?\"}]\n" +
            "}";
        
        Request request = new Request.Builder()
            .url("https://api.openai.com/v1/chat/completions")
            .header("Authorization", "Bearer YOUR_API_KEY")
            .post(RequestBody.create(json, MediaType.parse("application/json")))
            .build();
        
        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}

使用场景:智能客服、内容生成、代码辅助、翻译。

优点:理解能力强,能处理各种自然语言任务。

缺点:会产生“幻觉”(编造事实),成本高,不掌握私有数据。

2.3 RAG(检索增强生成)

一句话解释:让LLM在回答问题前,先去你的知识库里“查资料”,再根据资料回答。

通俗理解:LLM本身是个“学霸”,但他只学过公共教材。RAG就是让他在考试前,先翻翻你的公司内部资料,再用自己的话总结出来。这样他既能回答专业问题,又不会胡说八道。

工作原理图

image

代码示例(Spring AI Alibaba实现):

@Service
publicclass RAGService {
    
    @Autowired
    private VectorStore vectorStore;  // 向量数据库,存公司文档
    
    @Autowired
    private ChatClient chatClient;
    
    public String ask(String question) {
        // 1. 检索相关文档
        List<Document> docs = vectorStore.similaritySearch(
            SearchRequest.query(question).withTopK(3)
        );
        
        // 2. 把文档内容拼成上下文
        String context = docs.stream()
            .map(Document::getContent)
            .collect(Collectors.joining("\n"));
        
        // 3. 让LLM基于上下文回答
        return chatClient.prompt()
            .system("请基于以下资料回答:" + context)
            .user(question)
            .call()
            .content();
    }
}

使用场景:企业知识库问答、智能客服、法律条文查询。

优点:答案可溯源、知识实时更新、防止幻觉。

缺点:多了一步检索,延迟增加;检索质量决定答案质量。

2.4 Agent(智能体)

一句话解释:一个能自主规划任务、调用工具、执行操作的AI程序。

通俗理解:普通LLM是“顾问”——你问它怎么办,它给你建议。Agent是“员工”——你给它一个目标,它会自己想办法完成,包括查资料、写代码、发邮件、甚至调用其他系统。

Agent的思考-行动循环(ReAct模式)

image

代码示例(使用Spring AI Alibaba的ReactAgent):

// 定义一个工具:查询天气
@Component
publicclass WeatherTool {
    @Tool(description = "查询指定城市的天气")
    public String getWeather(@P("城市名") String city) {
        // 模拟调用天气API
        return city + "今天晴天,25°C";
    }
}

// 创建Agent
ReactAgent agent = ReactAgent.builder()
    .name("助手")
    .model(chatModel)
    .tools(new WeatherTool())  // 给Agent配工具
    .build();

// 用户只需说目标,Agent自己决定用哪个工具
String result = agent.call("我想知道北京今天能不能穿短袖?");
// Agent会:思考 → 调用天气工具 → 拿到天气 → 给出穿衣建议

使用场景:自动化客服、代码自动修复、行程规划、数据报表生成。

优点:能自主完成复杂任务,减少人工介入。

缺点:Token消耗大,可能陷入死循环,需要精心设计。

2.5 知识图谱(Knowledge Graph)

一句话解释:用“实体-关系-实体”的三元组形式,把知识连接成一张网。

通俗理解:传统的知识库是一堆文档(像一堆散落的书),知识图谱是一张“关系地图”(像地铁线路图)。你能沿着关系线从“高血压”走到“布洛芬”,再到“禁忌”,从而推理出“高血压患者不能吃布洛芬”。

三元组示例

  1. (高血压, 症状, 头晕)
  2. (高血压, 禁用药物, 布洛芬)
  3. (布洛芬, 属于, NSAID类药物)

代码示例(使用Jena构建RDF知识图谱):

import org.apache.jena.rdf.model.*;
import org.apache.jena.vocabulary.RDF;

publicclass KnowledgeGraphDemo {
    public static void main(String[] args) {
        // 创建空模型
        Model model = ModelFactory.createDefaultModel();
        
        // 定义实体和关系(URI)
        String ns = "http://example.com/medical/";
        Resource hypertension = model.createResource(ns + "Hypertension");
        Resource ibuprofen = model.createResource(ns + "Ibuprofen");
        Property contraindicated = model.createProperty(ns + "contraindicated");
        
        // 添加三元组:高血压 禁忌 布洛芬
        model.add(hypertension, contraindicated, ibuprofen);
        
        // 查询:高血压禁忌什么药物?
        StmtIterator stmts = model.listStatements(hypertension, contraindicated, (RDFNode) null);
        while (stmts.hasNext()) {
            Statement stmt = stmts.next();
            System.out.println("禁忌药物:" + stmt.getObject());
        }
    }
}

使用场景:医疗诊断辅助、反欺诈(挖掘资金关系网)、智能推荐。

优点:支持多跳推理,关系清晰,可解释性强。

缺点:构建成本高,需要领域专家参与。

2.6 多模态(Multimodal)

一句话解释:同时处理文本、图像、音频、视频等多种类型的数据。

通俗理解:以前的AI只能“看文字”或“看图片”,多模态AI就像人一样,既能看懂文字,也能看懂图片,还能听懂声音。你可以给它一张图问“这是什么”,也可以让它“根据这张图写一段描述”。

代码示例(调用多模态模型API):

// 使用通义千问的多模态能力
public class MultimodalDemo {
    public static void main(String[] args) {
        String prompt = "描述这张图片的内容";
        String imageUrl = "https://example.com/cat.jpg";
        
        // 调用DashScope API(通义千问)
        // 实际请求需要构造JSON,包含image和text
        // 示例省略HTTP细节
    }
}

使用场景:自动驾驶(图像+雷达)、视频理解、图文生成、语音助手。

优点:更接近人类的感知方式,应用场景更广。

缺点:模型更大、计算成本更高、训练数据更难获取。

2.7 微调(Fine-tuning)

一句话解释:在预训练的大模型基础上,用少量特定领域的数据继续训练,让模型适应你的业务场景。

通俗理解:大模型像一个读过万卷书的通才,什么都懂一点,但不够专。微调就像让这个通才去参加某个行业的岗前培训——给他看你们公司的内部资料,让他变成这个领域的专家。比如,让通用LLM学习法律条文后,变成法律咨询助手。

代码示例(使用Hugging Face的Java调用,伪代码示意):

// 微调通常需要Python环境,Java可通过HTTP调用微调服务
// 以下为伪代码示意微调请求
POST /v1/fine-tune
{
  "model": "gpt-3.5-turbo",
  "training_data": "company_qa.jsonl",
  "epochs": 3,
  "learning_rate": 0.00002
}

使用场景:定制客服机器人、特定领域问答、代码生成模型适配公司代码风格。

优点:让模型更懂你的业务,回答更精准。

缺点:需要一定量的标注数据,训练成本较高(比RAG贵)。

2.8 向量数据库与Embedding

2.8.1 Embedding(嵌入)

一句话解释:把文字、图片等转换成一组数字(向量),让计算机能计算“相似度”。

通俗理解:想象把“苹果”、“香蕉”、“汽车”这三个词放到一个二维坐标系里,“苹果”和“香蕉”因为都是水果,距离近;“苹果”和“汽车”距离远。Embedding就是把这个“坐标”算出来。例如“国王-男人+女人≈女王”。

代码示例(使用Java调用Embedding模型):

// 调用OpenAI的Embedding API
String text = "人工智能";
Request request = new Request.Builder()
    .url("https://api.openai.com/v1/embeddings")
    .post(RequestBody.create("{\"model\":\"text-embedding-ada-002\",\"input\":\""+text+"\"}", JSON))
    .build();
// 返回的embedding是一个float数组,如[0.012, -0.345, ...]

2.8.2 向量数据库

一句话解释:专门存储和检索向量的数据库,支持“给定一个向量,找出最相似的K个向量”。

通俗理解:想象你有一个巨大的仓库,里面放满了带坐标的物品。向量数据库就是能根据你给的坐标,快速找出离它最近的几个物品。RAG中的“查资料”就是靠它完成的。

常用向量数据库:Milvus、Qdrant、pgvector、Chroma。

代码示例(使用pgvector):

CREATE TABLE documents (id SERIAL, embedding VECTOR(768));
CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops);
SELECT * FROM documents ORDER BY embedding <=> '[0.1,0.2,...]' LIMIT 5;

使用场景:RAG、推荐系统、图像相似度搜索。

优点:检索速度快(毫秒级),支持海量数据。

缺点:需要额外组件,不如传统数据库简单。

2.9 工具调用(Tool Use)

一句话解释:让Agent能够调用外部函数或API,执行实际操作。

通俗理解:Agent光会想不行,还得会动手。工具调用就是给它配的“手”——可以查询数据库、发邮件、调用第三方API。比如,用户问“帮我订明天去上海的机票”,Agent会调用“查询航班”工具和“预订”工具。

代码示例(已在2.4的WeatherTool中展示,这里再补充一个更复杂的):

@Tool(description = "发送邮件")
public String sendEmail(@P("收件人") String to, @P("主题") String subject, @P("内容") String body) {
    // 实际调用邮件发送服务
    emailService.send(to, subject, body);
    return "邮件已发送";
}

优点:极大扩展Agent能力,让AI从“动口”变成“动手”。

缺点:需要安全控制,防止恶意调用。

2.10 ReAct模式

一句话解释:Agent的“思考-行动-观察”循环,让AI能像人一样边想边做。

通俗理解:ReAct是Reason(推理)+ Act(行动)的缩写。就像你做菜时,先想菜谱(思考),然后切菜炒菜(行动),再看看熟没熟(观察),如果没熟就继续翻炒。这个循环直到任务完成。

已在2.4的图中展示,这里补充一个更详细的解释:

代码示例(伪代码展示ReAct循环):

while (!taskCompleted) {
    // 思考
    String thought = llm.think(goal, history);
    // 决定行动(如调用工具)
    String action = llm.decideAction(thought);
    // 执行行动
    String observation = execute(action);
    // 记录结果
    history.add(thought, action, observation);
}

优点:让Agent能灵活应对变化,自动调整计划。

缺点:可能陷入无限循环,需要设置最大迭代次数。

2.11 实体识别(NER)与关系抽取(RE)

2.11.1 实体识别(Named Entity Recognition, NER)

一句话解释:从文本中识别出人名、地名、组织名、时间等关键信息。

通俗理解:给一段文字,NER就像荧光笔一样,把“张三”(人名)、“北京”(地名)、“阿里巴巴”(组织名)标记出来。

代码示例(使用Stanford CoreNLP Java库):

import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.ling.CoreAnnotations;

Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
String text = "张三在北京的阿里巴巴工作";
CoreDocument doc = new CoreDocument(text);
pipeline.annotate(doc);
for (CoreEntityMention em : doc.entityMentions()) {
    System.out.println(em.text() + " -> " + em.entityType());
}
// 输出:张三 -> PERSON,北京 -> LOCATION,阿里巴巴 -> ORGANIZATION

2.11.2 关系抽取(Relation Extraction, RE)

一句话解释:从文本中抽取出实体之间的关系,比如“张三是阿里巴巴的员工”。

通俗理解:NER找到了“张三”和“阿里巴巴”,RE则识别出他们之间的关系是“工作于”。

代码示例(使用预训练RE模型,伪代码):

// 输入两个实体,判断关系
String relation = reModel.predict("张三", "阿里巴巴");
System.out.println(relation); // "works_at"

使用场景:构建知识图谱、信息检索、智能问答。

优点:自动从非结构化文本中提取结构化知识。

缺点:准确率依赖模型,复杂关系难以抽取。

2.12 文生图/文生视频

一句话解释:根据文字描述生成图片或视频。

通俗理解:你输入“一只猫坐在月亮上”,AI就能画出一张符合描述的图。代表模型:Stable Diffusion、DALL-E、Sora。

代码示例(调用Stable Diffusion API):

// 伪代码:发送POST请求生成图片
POST /generate
{
  "prompt": "一只猫坐在月亮上,卡通风格",
  "width": 512,
  "height": 512
}
// 返回图片URL或base64

使用场景:创意设计、游戏素材生成、广告制作。

优点:极大降低视觉内容创作门槛。

缺点:可能生成不符合预期的内容,版权问题需注意。

三、AI术语关系总结表

image

四、如何使用这些技术?

在实际项目中,这些技术往往是组合使用的:

image

经典组合案例

  1. 企业智能助手 = Agent(调度)+ RAG(查文档)+ LLM(生成答案)+ 工具调用(发邮件、创建工单)
  2. 医疗问诊系统 = 知识图谱(药品-疾病关系)+ NER(识别症状实体)+ RE(抽取症状-疾病关系)+ LLM(对话)
  3. 智能客服 = RAG(FAQ检索)+ Agent(多轮对话)+ 工具调用(查询订单状态)

总结

AI知识图谱不仅是一个技术概念,更是我们理解AI世界的“导航图”。

通过这张图,我们能够看清LLM、RAG、Agent、知识图谱、多模态这些看似孤立的术语之间的内在联系:

  1. LLM是大脑,负责理解和生成语言。
  2. RAG是外挂知识库,让大脑能查资料。
  3. Agent是手脚,让大脑能做事。
  4. 知识图谱是记忆网络,让大脑能推理关系。
  5. 多模态是感官,让大脑能看能听。

此外,我们还深入了解了:

  1. Fine-tuning:让通用模型变成领域专家。
  2. Embedding & 向量数据库:实现语义搜索的基石。
  3. 工具调用 & ReAct:让AI真正“动手干活”。
  4. NER & RE:从文本中构建知识图谱的利器。
  5. 文生图/文生视频:开启AI创作新时代。

希望这篇文章希望能帮你建立起AI领域的“知识图谱”,不再被那些“黑话”吓倒。

最后修改:2026 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏