Skip to content

AI

什么是AI

AI(Artificial Intelligence,人工智能)是指让机器(尤其是计算机系统)模拟人类智能过程的技术。

核心能力:

  • 学习:从数据中获取知识和规律
  • 推理:运用规则推导出结论
  • 感知:理解图像、声音、文字等输入
  • 决策:基于分析做出判断或预测

AI的三个层次:

层次定义示例
弱人工智能(ANI)专注于特定任务的AI人脸识别、语音助手、推荐系统
强人工智能(AGI)具备人类通用智能尚未实现,ChatGPT等大模型是雏形
超人工智能(ASI)超越人类智能理论阶段

底层怎么实现的

1. 机器学习(ML)核心流程

原始数据 → 数据预处理 → 特征工程 → 模型训练 → 模型评估 → 部署推理

2. 神经网络的数学原理

最简单的神经元(感知机):

输出 = 激活函数( Σ(权重ᵢ × 输入ᵢ) + 偏置 )

其中:
- 权重(weight):决定输入的重要性
- 偏置(bias):调整激活阈值
- 激活函数:引入非线性,如ReLU、Sigmoid、Tanh

3. 训练过程(反向传播)

前向传播:输入 → 隐藏层 → 输出 → 计算损失
反向传播:损失 → 梯度计算 → 更新权重
迭代优化:重复以上步骤,直到损失最小化

4. 大语言模型(LLM)的特殊架构

Transformer 核心机制:自注意力(Self-Attention)

输入序列 → 位置编码 → 多头注意力 → 前馈网络 → 输出

关键突破:通过注意力机制捕捉长距离依赖关系

技术栈分层:

层次技术说明
硬件层GPU、TPU、NPU并行计算加速
框架层PyTorch、TensorFlow、JAX深度学习开发框架
模型层Hugging Face、vLLM模型库和推理引擎
应用层LangChain、LlamaIndexAgent和RAG应用开发

业务使用场景

各领域应用对照表

领域应用场景典型案例
电商个性化推荐、智能客服、销量预测亚马逊推荐、阿里小蜜
金融风控反欺诈、量化交易、智能投顾蚂蚁集团CTU、彭博终端
医疗医学影像诊断、药物研发、病历分析腾讯觅影、AlphaFold
制造业缺陷检测、预测性维护、智能排产特斯拉工厂、西门子MindSphere
内容行业AIGC文案、视频生成、智能翻译ChatGPT、Midjourney、DeepL
安全领域人脸识别、异常检测、舆情监控海康威视、天眼系统

开发中的常见场景

java
// 1. 文本分类(垃圾邮件识别)
// 2. 实体抽取(合同关键信息提取)
// 3. 代码生成(GitHub Copilot类应用)
// 4. NL2SQL(自然语言转SQL查询)
// 5. 智能文档问答(企业内部知识库RAG)

常用的组件及说明

AI应用开发框架

名称类型说明
LangChainAgent/RAG框架最流行的LLM应用开发框架,支持链式调用和工具集成
LlamaIndexRAG框架专注于文档索引和检索增强生成
Semantic KernelAgent框架微软出品,与LangChain类似,支持多语言(C#/Python/Java)
Dify低代码平台可视化AI工作流编排,开箱即用的RAG能力
FastAPIAPI框架Python后端框架,AI模型部署首选
Gradio演示框架快速构建AI模型Web演示界面

大语言模型(LLM)

模型厂商特点
GPT-4/GPT-5OpenAI综合能力最强,闭源
Claude 3.5/4Anthropic长上下文、安全性高
Gemini谷歌多模态原生
DeepSeek-V3/R1深度求索开源、推理能力强、性价比高
Qwen 2.5阿里中文优化,支持长上下文
Llama 3Meta开源生态最完善

部署推理框架

名称说明
vLLM高性能LLM推理引擎,PagedAttention技术
TensorRT-LLMNVIDIA官方推理优化框架
Ollama本地一键运行开源模型
SGLang高效结构化生成框架

用Java实现

1. Spring AI 集成OpenAI

xml
<!-- pom.xml -->
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    <version>1.0.0-M4</version>
</dependency>
yaml
# application.yml
spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
      base-url: ${OPENAI_BASE_URL}
      chat:
        options:
          model: gpt-4
          temperature: 0.7
java
@Service
public class AIService {
    
    @Autowired
    private OpenAiChatModel chatModel;
    
    // 基础对话
    public String chat(String message) {
        ChatResponse response = chatModel.call(
            new Prompt(message)
        );
        return response.getResult().getOutput().getContent();
    }
    
    // 带系统提示词
    public String chatWithSystem(String userMessage) {
        List<Message> messages = List.of(
            new SystemMessage("你是一个Java技术专家,用中文回答"),
            new UserMessage(userMessage)
        );
        return chatModel.call(new Prompt(messages))
            .getResult().getOutput().getContent();
    }
}

2. Java调用Ollama本地模型

xml
<dependency>
    <groupId>io.ollama</groupId>
    <artifactId>ollama4j</artifactId>
    <version>1.0.75</version>
</dependency>
java
public class OllamaExample {
    public static void main(String[] args) throws Exception {
        OllamaConnection connection = 
            new OllamaConnection(new OllamaHttpClient("http://localhost:11434"));
        
        OllamaClient client = new OllamaClient(connection);
        
        // 设置模型(需先下载:ollama pull deepseek-coder)
        client.setModel("deepseek-coder");
        
        // 生成回复
        String response = client.generate("用Java写一个单例模式");
        System.out.println(response);
    }
}

3. Java + LangChain4j

xml
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-open-ai</artifactId>
    <version>1.0.0-beta1</version>
</dependency>
java
public class RAGExample {
    public static void main(String[] args) {
        // 创建嵌入模型
        EmbeddingModel embeddingModel = 
            new OpenAiEmbeddingModel(OpenAiEmbeddingModelConfig.builder()
                .apiKey(System.getenv("OPENAI_API_KEY"))
                .build());
        
        // 创建向量存储(内存版)
        EmbeddingStore<TextSegment> store = 
            new InMemoryEmbeddingStore<>();
        
        // 构建RAG链
        ChatLanguageModel model = OpenAiChatModel.withApiKey(
            System.getenv("OPENAI_API_KEY")
        );
        
        String answer = model.chat(
            "根据文档回答:Spring AI是什么?"
        );
    }
}

4. NL2SQL 实现(阿里Spring AI Alibaba)

xml
<dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-nl2sql</artifactId>
    <version>1.0.0</version>
</dependency>
java
@RestController
public class NL2SQLController {
    
    @Autowired
    private NL2SQLService nl2sqlService;
    
    @PostMapping("/chat2sql")
    public String chat2sql(@RequestParam String question) {
        // 自然语言转SQL
        String sql = nl2sqlService.generateSQL(question);
        // 执行SQL并生成自然语言回复
        return nl2sqlService.executeAndExplain(sql);
    }
}

用Python实现

1. 基础LLM调用(OpenAI)

python
from openai import OpenAI

client = OpenAI(
    api_key="your-api-key",
    base_url="https://api.openai.com/v1"
)

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "你是一个Java面试官"},
        {"role": "user", "content": "说说Spring Boot和Spring的区别"}
    ],
    temperature=0.7
)

print(response.choices[0].message.content)

2. LangChain 快速上手

python
from langchain_openai import ChatOpenAI
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

# 初始化模型
llm = ChatOpenAI(model="gpt-4", temperature=0.7)

# 添加记忆
memory = ConversationBufferMemory()

# 创建对话链
conversation = ConversationChain(
    llm=llm,
    memory=memory
)

# 多轮对话
print(conversation.predict(input="你好,我是张三"))
print(conversation.predict(input="我叫什么名字?"))  # 会记住

3. RAG(检索增强生成)实现

python
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.chains import RetrievalQA

# 1. 加载文档
loader = TextLoader("./knowledge.txt")
documents = loader.load()

# 2. 切分文档
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = text_splitter.split_documents(documents)

# 3. 向量化并存储
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(docs, embeddings)

# 4. 构建RAG问答链
qa_chain = RetrievalQA.from_chain_type(
    llm=ChatOpenAI(),
    retriever=vectorstore.as_retriever()
)

# 5. 问答
answer = qa_chain.invoke("根据文档,Spring AI支持哪些功能?")

4. 本地模型(Ollama + LangChain)

python
from langchain_community.llms import Ollama

# 确保已运行:ollama run deepseek-coder:6.7b
llm = Ollama(model="deepseek-coder:6.7b")

response = llm.invoke("用Python实现快速排序")
print(response)

5. FastAPI部署模型

python
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from openai import OpenAI

app = FastAPI(title="AI服务API")

class ChatRequest(BaseModel):
    message: str
    model: str = "gpt-4"

class ChatResponse(BaseModel):
    reply: str
    tokens_used: int

client = OpenAI()

@app.post("/chat", response_model=ChatResponse)
async def chat(request: ChatRequest):
    try:
        response = client.chat.completions.create(
            model=request.model,
            messages=[{"role": "user", "content": request.message}]
        )
        return ChatResponse(
            reply=response.choices[0].message.content,
            tokens_used=response.usage.total_tokens
        )
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

# 启动:uvicorn main:app --reload

6. 图像识别(Hugging Face)

python
from transformers import pipeline

# 加载预训练模型
classifier = pipeline("image-classification", 
                      model="google/vit-base-patch16-224")

# 识别图片
result = classifier("cat.jpg")
print(result)  # [{'label': 'tabby cat', 'score': 0.89}]

Java vs Python AI开发生态对比

维度PythonJava
模型训练✅ 绝对主流(PyTorch/TF)❌ 极少使用
模型推理✅ 成熟(vLLM/TGI)⚠️ 可用(DeepSpeed Java/ONNX)
RAG应用✅ LangChain/LlamaIndex⚠️ LangChain4j(生态较新)
企业集成⚠️ 需要适配层✅ Spring AI原生支持
微服务部署⚠️ FastAPI可以✅ Spring Cloud全家桶
学习曲线平缓陡峭

选型建议:

  • 研究/训练/快速原型 → Python
  • 企业级Java微服务集成AI能力 → Spring AI + Java
  • 高性能推理服务 → Python(vLLM)或 C++/Rust

快速学习资源

类型名称地址
课程李沐《动手学深度学习》https://zh.d2l.ai
课程Fast.aihttps://www.fast.ai
博客Lilian Weng的博客https://lilianweng.github.io
文档LangChain官方文档https://python.langchain.com
文档Spring AI官方文档https://spring.io/projects/spring-ai
社区Hugging Facehttps://huggingface.co

这份文档涵盖了:
1. **AI概念**:定义和三个层次
2. **底层原理**:神经网络数学原理 + Transformer架构
3. **业务场景**:各行业应用 + 开发场景
4. **组件清单**:框架、模型、部署工具
5. **Java实现**:Spring AI + Ollama4j + LangChain4j + NL2SQL
6. **Python实现**:OpenAI API + LangChain + RAG + FastAPI + HF

可以直接复制到你的.md文件中使用。需要我补充某个具体模块吗?

最后更新于: