Java架构师的AI转型之路(下):模型层与平台化架构
Javaæ¶æå¸çAI转åä¹è·¯ï¼ä¸ï¼ï¼æ¨¡åå±ä¸å¹³å°åæ¶æ
è¿æ±é¾847 2026-08-21 0 é 读12åéç³»åæç« ï¼æ»ç¯ · ä¸ç¯ · ä¸ç¯ · ä¸ç¯
æ¥ä¸ç¯
å¨ä¸ç¯ä¸ï¼æè¯¦ç»æè§£äº Phase 2 ç宿è¿ç¨ââä»Agentåºç¡ï¼ReAct/Tool Useï¼å°å¤Agentåä½ï¼LangGraphç¶ææºï¼ï¼ä»äººå·¥å®¡æ ¸èç¹å°Javaä¾§çæå¡æ²»çéæã
å¦æä½ è·çåå°äºè¿ä¸æ¥ï¼é£ä¹ç°å¨ä½ å·²ç»è½è®©AIèªä¸»å®æå¤æä»»å¡äºã
ä½ä½ä¸ºä¸ä¸ªæ¶è´¹è ï¼å¾å¿«ä¼åæä¸æ ·æè¯å°ä¸ä¸ªé®é¢ï¼
æä»¬ä¸å¯è½è®©ææè¯·æ±é½èµ° GPTï¼å¤ªè´µäºï¼èä¸å¾å¤æ¶åæ ¹æ¬ä¸éè¦é£ä¹å¼ºç模åï¼
äºæ¯è¿å ¥ Phase 3ââæ¨¡åå±ä¸å¹³å°åãè¿ä¹æ¯æ´ä¸ªè½¬åç"åæ°´å²"ï¼ä»"ç¨AIå项ç®"å级å°"为æ´ä¸ªç»ç»è®¾è®¡AIåºç¡è®¾æ½"ã
æ¬ææ¯ç³»åæç« çä¸ç¯ï¼ä¹æ¯ç»ç« ã
ä¸ã模åéåï¼ä¸ºä»ä¹"ä¸ä¸ªæ¨¡åæå¤©ä¸"æ¯éç
å¾å¤å¢éåå¼å§ç¨AIæ¶ï¼ææäººçé»è®¤éæ©é½æ¯ GPT æ Claudeãè¿æ¯æè´µç"ææ¿"ã
ä¸åä»»å¡å¯¹æ¨¡åè½åç鿱差å¼å·¨å¤§ï¼
| ä»»å¡ç±»å | æéè½å | æ¨è模å | 忬¡ææ¬ï¼ä¼°ç®ï¼ |
|---|---|---|---|
| ç®åé®ç/åç±» | åºç¡çè§£ | Qwen / GLM | Â¥0.001-0.01 |
| 代ç çæ/è¡¥å ¨ | 代ç è½å | DeepSeek / CodeLlama | Â¥0.01-0.05 |
| 夿æ¨ç/åæ | 深度æè | GPT / Claude | Â¥0.1-0.5 |
| 夿¨¡æ/è§è§ | 徿çè§£ | GPT / Qwen | Â¥0.2-1.0 |
| é¿ææ¡£æè¦ | é¿ä¸ä¸æ | Claudeï¼200Kçªå£ï¼ | Â¥0.1-0.3 |
| éèä¸ä¸é®ç | é¢åç¥è¯ | å¾®è°åçé¢å模å | åå³äºé¨ç½²æ¹å¼ |
å·®è·æ¯ 100 åã å¦æä½ è®©ææè¯·æ±é½èµ°æè´µç模åï¼ä¸å¹´ä¸æ¥ææ¬å¯è½æ¯ç¾ä¸çº§å«çã
1.1 æºè½è·¯ç±ï¼ç¨"å°æ¨¡åååçï¼å¤§æ¨¡ååç»å®¡"
è¿éç设计æè·¯åé´äºè´è½½åè¡¡ç®æ³ï¼
ç¨æ·è¯·æ±
â
âââââââââââââââââââââââââââââââ
â æ¨¡åè·¯ç±ç½å
³ â
â â
â â æå¾åç±»ï¼å°æ¨¡å/Qwenï¼ â â å¤æè¿æ¯ä»ä¹ç±»åçä»»å¡
â â¡ å¤æåº¦è¯ä¼° â â ç®å/ä¸ç/夿
â ⢠路ç±å³ç â
â ââ ç®å â Qwen â âï¼ä¾¿å®ï¼å»¶è¿ä½ï¼
â ââ ä¸ç â DeepSeek â âï¼æ§ä»·æ¯é«ï¼
â ââ 夿 â GPT â âï¼å¼ºï¼ä½è´µï¼
â â
â ⣠é级çç¥ â â 主模åæäºèªå¨åå¤ç¨
âââââââââââââââââââââââââââââââ
â
è¿åç»æ
1.2 è·¯ç±ç½å ³ä»£ç å®ç°
# model_router.py
import openai
from enum import Enum
class TaskComplexity(Enum):
SIMPLE = "simple" # åç±»ãçé®çãå
³é®è¯æå
MEDIUM = "medium" # 代ç çæãæè¦ãç¿»è¯
COMPLEX = "complex" # 夿¥æ¨çãåææ¥åãåæåä½
# 模åé
ç½®
MODEL_CONFIG = {
TaskComplexity.SIMPLE: {
"model": "qwen",
"max_tokens": 512,
"temperature": 0.3,
"cost_per_1k": 0.001, # å
},
TaskComplexity.MEDIUM: {
"model": "deepseek",
"max_tokens": 2048,
"temperature": 0.5,
"cost_per_1k": 0.014,
},
TaskComplexity.COMPLEX: {
"model": "gpt",
"max_tokens": 4096,
"temperature": 0.7,
"cost_per_1k": 0.3,
},
}
class ModelRouter:
def __init__(self):
self.client = openai.OpenAI()
self.classifier = self._init_classifier()
def _init_classifier(self):
"""ç¨å°æ¨¡ååæå¾åç±»ï¼æå¿«æä¾¿å®"""
return openai.OpenAI() # å®é
å¯ç¨æ¬å°é¨ç½²çQwen
def classify_task(self, user_message: str) -> TaskComplexity:
"""夿任å¡å¤æåº¦"""
prompt = f"""å°ä»¥ä¸ç¨æ·è¯·æ±å类为 simple/medium/complexï¼
- simple: ç®åé®çãåç±»ãå
³é®è¯æåãæ ¼å¼å
- medium: 代ç çæãææ¡£æè¦ãæ°æ®æåãç¿»è¯
- complex: 夿¥æ¨çãæ·±åº¦åæãåæåä½ãæ¥åçæ
ç¨æ·è¯·æ±ï¼{user_message}
åªè¾åºåç±»ç»æï¼simple/medium/complexï¼ï¼ä¸è¦å
¶ä»å
容ã"""
response = self.classifier.chat.completions.create(
model="qwen",
messages=[{"role": "user", "content": prompt}],
max_tokens=10,
temperature=0,
)
result = response.choices[0].message.content.strip().lower()
if "simple" in result: return TaskComplexity.SIMPLE
if "complex" in result: return TaskComplexity.COMPLEX
return TaskComplexity.MEDIUM
def route(self, user_message: str) -> str:
"""ä¸»è·¯ç±æ¹æ³"""
complexity = self.classify_task(user_message)
config = MODEL_CONFIG[complexity]
print(f"[è·¯ç±å³ç] ä»»å¡ç±»å: {complexity.value} â æ¨¡å: {config['model']} â é¢ä¼°ææ¬: Â¥{config['cost_per_1k']}/1k tokens")
try:
response = self.client.chat.completions.create(
model=config["model"],
messages=[{"role": "user", "content": user_message}],
max_tokens=config["max_tokens"],
temperature=config["temperature"],
)
return response.choices[0].message.content
except Exception as e:
# é级ï¼ä¸»æ¨¡å失败 â åå°å¤ç¨æ¨¡å
print(f"[é级] 主模å失败: {e}ï¼åæ¢å¤ç¨æ¨¡å")
return self._fallback(user_message)
def _fallback(self, user_message: str) -> str:
"""é级çç¥ï¼ç¨æç¨³å®ç模åå
åº"""
response = self.client.chat.completions.create(
model="qwen", # å½äº§å¤§æ¨¡åï¼ç¨³å®æ§å¥½
messages=[{"role": "user", "content": user_message}],
max_tokens=2048,
)
return response.choices[0].message.content
# 使ç¨
router = ModelRouter()
result = router.route("帮æåæä¸ä¸è¿æ®µJava代ç çæ§è½ç¶é¢...")
print(result)
è¿ä¸ªè·¯ç±ç½å ³åºç¨åæµè¯åç°ï¼æä»¬çAIè°ç¨ææ¬éä½äºçº¦ 60%å·¦å³ï¼èæä»¬æç¥å°çåçè´¨éå 乿²¡æä¸éã
äºã模åå¾®è°ï¼è®©AIçæ£"æè¡"ï¼ç¬¬21-24å¨ï¼
éç¨å¤§æ¨¡åæå¤§çé®é¢æ¯ï¼å®ä¸æä½ çä¸å¡ã
æ¯å¦ä½ é®å®"ç¾çº¦ç¶æä¸º2çè´¦æ·æä¹å¤ç"ï¼å®ä¸ç¥éå¨ä½ çç³»ç»é"2"代表"å·²ç¾çº¦å¾ æ¿æ´»"ã
2.1 å¾®è°æ¹æ¡éå
| æ¹æ¡ | ææ¬ | ææ | éç¨åºæ¯ |
|---|---|---|---|
| Prompt Engineering | é¶ææ¬ | ä¸è¬ | ç®ååºæ¯ |
| RAGï¼æ£ç´¢å¢å¼ºï¼ | ä½ | è¾å¥½ | ç¥è¯å¯éå |
| LoRAå¾®è° | ä¸ï¼ä¸å¼ 4090ï¼ | 好 | é¢åéé |
| QLoRAå¾®è° | ä½ï¼æ¶è´¹çº§æ¾å¡ï¼ | 好 | 个人/å°å¢é |
| å ¨éå¾®è° | æé«ï¼å¤å¼ A100ï¼ | æå¥½ | 大å/ç¹æ®é¢å |
å»ºè®®éæ©ï¼QLoRAââå¨ä¸å¼ RTX 4090ä¸å°±è½è·ï¼ææ¬å¯æ§ï¼æææ¥è¿å ¨éå¾®è°ã
2.2 æ°æ®åå¤ï¼ç¨ä½ çä¸å¡ææ¡£é æ°æ®ï¼ä» ä¾åèï¼
# prepare_sft_data.py
import json
import re
def create_sft_dataset(business_docs: list, output_file: str):
"""
ä»ä¸å¡ææ¡£ä¸æé SFTï¼Supervised Fine-Tuningï¼æ°æ®
æ¹æ³ï¼ç¨GPTçæé®ç对ï¼äººå·¥å®¡æ ¸åç¨äºå¾®è°
"""
sft_data = []
for doc in business_docs:
# æ¹æ³1ï¼ç¨å¤§æ¨¡åèªå¨çæQA对
prompt = f"""åºäºä»¥ä¸ä¸å¡ææ¡£ï¼çæ10个é®ç对ï¼JSONæ ¼å¼ï¼ï¼
è¦æ±ï¼
1. é®é¢è¦è¦çææ¡£ä¸çæ ¸å¿ä¸å¡æ¦å¿µåæµç¨
2. çæ¡è¦åç¡®ã宿´
3. å
å«ä¸äºé¶è¡ä¸å¡ä¸ä¸æ¯è¯
ææ¡£å
容ï¼
{doc['content'][:3000]}
è¾åºæ ¼å¼ï¼{{"qa_pairs": [{{"question": "...", "answer": "..."}}]}}"""
# è°ç¨GPTçæï¼è¿éçç¥APIè°ç¨ä»£ç ï¼
qa_pairs = call_gpt4o(prompt)
for qa in qa_pairs:
sft_data.append({
"instruction": qa["question"],
"input": "",
"output": qa["answer"]
})
# ä¿å为JSONLæ ¼å¼ï¼LLaMA-Factoryæ åæ ¼å¼ï¼
with open(output_file, 'w', encoding='utf-8') as f:
for item in sft_data:
f.write(json.dumps(item, ensure_ascii=False) + ' ')
print(f"çæ {len(sft_data)} æ¡SFTæ°æ® â {output_file}")
# 使ç¨ï¼ç¨ä½ èªå·±é¡¹ç®çè±æä¸å¡ææ¡£ï¼
# business_docs = load_business_docs("/path/to/docs")
# create_sft_dataset(business_docs, "finance_sft_data.jsonl")
2.3 ç¨LLaMA-Factoryå¾®è°Qwenï¼è¿é以æ§çæ¬Qwen2.5-7B-Instruct为ä¾ï¼
# å®è£
LLaMA-Factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
# å夿°æ®ï¼æ¾å¨ data/ ç®å½ä¸ï¼
# ç¼è¾ data/finance_sft_data.jsonl
# åå¡QLoRAå¾®è°ï¼4090å³å¯ï¼
CUDA_VISIBLE_DEVICES=0 llamafactory-cli train \
--model_name_or_path Qwen/Qwen2.5-7B-Instruct \
--stage sft \
--do_train \
--finetuning_type lora \
--lora_target q_proj,v_proj \
--dataset_dir ./data \
--dataset finance_sft_data \
--template qwen \
--output_dir ./output/qwen2.5-finance-lora \
--cutoff_len 2048 \
--per_device_train_batch_size 4 \
--gradient_accumulation_steps 4 \
--lr_scheduler_type cosine \
--logging_steps 10 \
--save_steps 100 \
--eval_steps 100 \
--warmup_ratio 0.1 \
--max_steps 500 \
--fp16 True \
--quantization_bit 4 \
--quantization_method bnb
# åå¹¶LoRAæé
llamafactory-cli export \
--model_name_or_path Qwen/Qwen2.5-7B-Instruct \
--adapter_name_or_path ./output/qwen2.5-finance-lora \
--template qwen \
--export_dir ./output/qwen2.5-finance-merged \
--export_quantization_bit 16
2.4 å¾®è°ææå¯¹æ¯
| æµè¯éï¼50é¢éèQAï¼ | éç¨Qwen2.5-7B | å¾®è°åQwen2.5-7B | æå |
|---|---|---|---|
| åçåç¡®ç | 62% | 89% | +27% |
| ä¸ä¸æ¯è¯æ£ç¡®ä½¿ç¨ç | 55% | 92% | +37% |
| å¹»è§çï¼ç¼é ä¿¡æ¯ï¼ | 18% | 5% | -13% |
| å¹³åTokenæ¶è | 320 | 280 | -12% |
å¾®è°åçæ¨¡åå¨éèé¢åé®çä¸ï¼æææ¥è¿GPT-4oï¼ä½æ¨çææ¬åªæå®ç1/50ã
ä¸ãä¼ä¸AIå¹³å°å®æ´æ¶æè®¾è®¡ï¼ç¬¬25-27å¨ï¼
å°è¿éï¼ä½ å·²ç»å ·å¤äºè®¾è®¡ä¼ä¸çº§AIå¹³å°çææç»ä»¶ãä¸é¢æ¯ææç»è¾åºçæ¶ææ¹æ¡ï¼
3.1 å ¨æ¯æ¶æå¾
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â ä¼ä¸AIå¹³å°å
¨æ¯æ¶æ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â åºç¨å± â
â âââ æºè½å®¢æ âââ ææ¡£å©æ âââ 代ç 婿 âââ æ°æ®åæ â
â âââ èªå®ä¹åºç¨ï¼ä½ä»£ç æå»ºï¼ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Agentç¼æå±ï¼LangGraph/Dify/èªç ï¼ â
â âââ å¤Agentåä½ âââ 工使µå¼æ âââ äººå·¥å®¡æ ¸èç¹ â
â âââ Agentå¸åºï¼å¯å¤ç¨Agent模æ¿ï¼ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â æ¨¡åæå¡å± â
â âââ æ¨¡åè·¯ç±ç½å
³ï¼æä»»å¡/ææ¬/å»¶è¿æºè½é模åï¼ â
â âââ æ¨¡åæ¨çé群ï¼vLLM/TGIï¼æ¯æå¤æ¨¡åå¹¶åï¼ â
â âââ æ¨¡åå¾®è°æµæ°´çº¿ï¼æ°æ®âè®ç»âè¯ä¼°âé¨ç½²ï¼ â
â âââ æ¨¡å注åä¸å¿ï¼æ¨¡åçæ¬/ç°åº¦/ABæµè¯ï¼ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â RAG/ç¥è¯å± â
â âââ ææ¡£è§£æï¼PDF/Word/Excel/å¾çOCRï¼ â
â âââ åéåæå¡ï¼Embedding模å管çï¼ â
â âââ åéæ°æ®åºï¼Milvuséç¾¤ï¼ â
â âââ Rerankæå¡ â
â âââ ç¥è¯å¾è°±ï¼Neo4j - æ ¸å¿ä¸å¡å®ä½å
³ç³»ï¼ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Javaæå¡æ²»çå±ï¼Spring Cloudï¼ â
â âââ API Gatewayï¼é´æ/éæµ/审计/è®¡è´¹ï¼ â
â âââ ç¨æ·ä¸ç§æ·ç®¡ç â
â âââ é级ä¸çæï¼Sentinel/Resilience4jï¼ â
â âââ é
ç½®ä¸å¿ï¼Nacos/Apolloï¼ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â åºç¡è®¾æ½å± â
â âââ K8s + Dockerï¼ä½ å·²æç»éªï¼ â
â âââ GPUèµæºè°åº¦ï¼KubeFlow/Volcanoï¼ â
â âââ æ¨¡ååå¨ï¼MinIO/S3ï¼ â
â âââ çæ§ï¼Prometheus + Grafana + LLMä¸ç¨çæ§ï¼ â
â âââ CI/CDï¼ä½ å·²æDevOpsç»éªï¼ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â å®å
¨ä¸æ²»çå± â
â âââ ç§æ·é离 âââ æ°æ®è±æ âââ Prompt注å
¥é²å¾¡ â
â âââ 审计æ¥å¿ âââ å
å®¹å®¡æ ¸ âââ æ¨¡åè¾åºåè§æ£æ¥ â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
3.2 åå±èè´£ä¸ä½ çç»éªæ å°
| æ¶æå± | æ ¸å¿èè´£ | ä½ çå·²æç»éª | éè¦æ°å¦ |
|---|---|---|---|
| åºç¨å± | é¢åä¸å¡çåè½äº¤ä» | å¤å¹´ç§¯ç´¯ä¸å¡çè§£å | AI交äºè®¾è®¡ |
| Agentç¼æå± | å¤Agentåä½ã工使µ | 工使µå¼æç»éª | LangGraph |
| 模åæå¡å± | 模åè·¯ç±ãæ¨çãå¾®è° | â | vLLM/å¾®è°æµæ°´çº¿ |
| RAG/ç¥è¯å± | ç¥è¯æ£ç´¢å¢å¼º | æç´¢å¼æç»éª | åéæ°æ®åº/Embedding |
| Javaæå¡æ²»çå± | é´æ/éæµ/é级/审计 | â æ ¸å¿å£å | Spring AI |
| åºç¡è®¾æ½å± | K8s/GPU/CI-CD | DevOpsç»éª | GPUè°åº¦ |
| å®å ¨æ²»çå± | æ°æ®è±æ/åè§/审计 | éèå®å ¨ç»éª | AIç¹æå®å ¨ |
注æç"Javaæå¡æ²»çå±"ââè¿ä¸æ´å±æ¯ä½ä¸ºJavaç åç»éªçç´æ¥åç°ã å¾å¤åççAIå·¥ç¨å¸å¹¶æªå ·å¤è¿äºç§¯ç´¯ï¼èè¿æ°æ°æ¯ä¼ä¸å¨ç产ç¯å¢ä¸æçéçé¨åã
åãè½å°ä¸å½±ååï¼ä»å¦ä¹ å°äº§åºï¼Phase 4ï¼
4.1 éä¸ä¸ªçå®åºæ¯ç«¯å°ç«¯è½å°
æä¸å¼å§éçæ¯**"æºè½è¿ç»´å©æ"**ââè¿ä¹æ¯ç»åæèªå·±é¡¹ç®ç»éªå彿¶å¯æä½å±é¢ï¼è§£å³ä¸ä¸ªçå®çç¹ï¼
è¿ç»´äººåæ¯å¤©è¦æ¥å¤§éçæ¥å¿ãçæ§ææ ãåè¦ä¿¡æ¯ï¼å½åçæ¹å¼æ¯ç»å½å¤ä¸ªç³»ç»ãåSQLæ¥æ°æ®åºãç¿»Grafanaçæ¿ãå¹³åå®ä½ä¸ä¸ªé®é¢è¦20-30åéçè³æ´é¿ã
AI婿çç®æ ï¼ç¨èªç¶è¯è¨æé®ï¼30ç§å ç»åºæ ¹å åæåå¤ç½®å»ºè®®ã
4.2 ç³»ç»æ¶æ
è¿ç»´äººåï¼èªç¶è¯è¨æé®ï¼
â
ââââââââââââââââââââââââââââââââââââ
â Java API Gateway â
â é´æ â éæµ â 审计 â è·¯ç± â
ââââââââââââââ¬ââââââââââââââââââââââ
â
ââââââââââââââââââââââââââââââââââââ
â Agentç¼æå¼æï¼LangGraphï¼ â
â â
â ââââââââââ ââââââââââ ââââââ â
â â æå¾ â ââ è§å ââ âæ§è¡ â â
â â è¯å« â â æ¥éª¤ â âAgentâ â
â ââââââââââ ââââââââââ ââââ¬ââ â
â â â
â ââââââââââ ââââââââââ ââââââ â
â â æ¥å¿ â â ææ â âSQL â â
â â æ£ç´¢ â â æ¥è¯¢ â âæ§è¡ â â
â ââââââââââ ââââââââââ ââââââ â
â â â
â ââââââââââââââââââââââââââââââ â
â â LLM æ ¹å åæ + å»ºè®®çæ â â
â ââââââââââââââââââââââââââââââ â
ââââââââââââââââââââââââââââââââââââ
â
è¿ååæç»æ
4.3 ææéªè¯
å 鍿µè¯2å¨åï¼æ°æ®å¦ä¸ï¼
| ææ | æ¹é å | æ¹é å | æå |
|---|---|---|---|
| å¹³åé®é¢å®ä½æ¶é´ | 25åé | 3åé | 88%â |
| è·¨ç³»ç»æ¥è¯¢æ¬¡æ° | 5-8次 | 1次 | 80%â |
| è¿ç»´äººå满æåº¦ | 3.2/5 | 4.6/5 | 44%â |
| 误å¤ç | åºçº¿ | <5% | â |
äºã12个æè½¬åç»æå¤ç
5.1 æå ¥äº§åºæ¯
| 维度 | æå ¥ | äº§åº |
|---|---|---|
| æ¶é´ | æ¯å¤©1-2å°æ¶ï¼æç»12个æ â 600å°æ¶ | 宿´çAI平尿¶æè½å |
| éé± | GPUäºèµæºçº¦5000å + 模åAPI约3000å | ä¸ä¸ªç产级AIé¡¹ç® + ææ¯åç |
| æºä¼ææ¬ | çºç²äºé¨å伿¯å危乿¶é´ | è䏿¹åè´¨çå级 |
5.2 å¼ä¸å¼å¾ï¼
å 人èå¼ã ä½å®¢è§ç°ç¶æä¸ï¼
-
å¸åºç¨ç¼ºæ§ï¼è½åJavaæ¶æç人å¾å¤ï¼è½åAIå·¥ç¨ç人ä¹å¾å¤ï¼ä½æ¢è½è®¾è®¡ä¼ä¸çº§AI平尿¶æãåæé¢å级ä¸å¡åJavaçæç人ï¼å¤æ¯éºè§ã
-
èªèµå¤©è±æ¿ï¼AIæ¶æå¸çèªèµä¸ä½æ°æ¯çº¯Javaæ¶æå¸é«30%-50%çè³æ´å¤ï¼ä¸å²ä½å¢éè¿å¿«äºä¼ ç»å¼åå²ä½ã
-
ä¸å¯æ¿ä»£æ§ï¼AIä¸ä¼æ¿ä»£æ¶æå¸ï¼ä½ä¼ç¨AIçæ¶æå¸ä¼æ¿ä»£ä¸ä¼ç¨çãè¿ä¸ªè¶å¿å¨æªæ¥3-5å¹´åªä¼å éã
5.3 åä¸åæï¼
å¯ä¸åæçæ¯ï¼æ²¡ææ´æ©å¼å§ã
2023年大模åååºæ¥æ¶ï¼æè¿è§å¾"è¿ä¸å°±æ¯ä¸ªè天æºå¨äººå"ã妿彿¶å°±å¼å§æ·±å ¥ç ç©¶ï¼ç°å¨å¯è½å°±ä¸ä¼è¿ä¹è¢«å¨äºï¼å 为没æå¯æ¿åºæçå®é AI项ç®ç»éªï¼ã
使¢ä¸ªè§åº¦æ³ï¼ç°å¨å¼å§ï¼ä¹ä¸æãå ä¸ºå¤§å¤æ°ä¼ä¸è¿å¨"æä¹æAIç¨èµ·æ¥"çé¶æ®µï¼çæ£ç¼ºçæ¯è½æå®å·¥ç¨åãå¹³å°åãè§æ¨¡åç人ââèè¿ï¼æ°æ°æ¯ä¸ä¸ª14年马çç»éªçç¨æ¦ä¹å°å§ã
å ãç»åè¡Javaçæåä¸å¥è¯
æªæ¥çææ¯æ¶æï¼ä¸å®æ¯"ä¼ ç»æ¶æè½å à AIå·¥ç¨è½å"çå¤åä½ã
纯Javaæ¶æå¸ä¸ä¼æ¶å¤±ï¼ä½ä¼è¢«"ä¼ç¨AIçæ¶æå¸"æå¼å·¨å¤§å·®è·ï¼çº¯AIå·¥ç¨å¸ä¹ä¼éå°å¤©è±æ¿ï¼å 为ä¼ä¸çº§çå¤æç³»ç»æ°¸è¿éè¦æ¶ææç»´æ¥é©¾é©ã
èæ¥æ±ååçæä»¬ï¼å¯ä»¥åä¸ä¸ª"两æ¡è ¿èµ°è·¯"ç人ã
转åä¸é¾ï¼é¾çæ¯å¼å§ãä»ä»å¤©èµ·ï¼ç»èªå·±å®ä¸ä¸ª90天çå°ç®æ ï¼è·éä¸ä¸ªRAGç³»ç»ï¼å°è£ ä¸ä¸ªAgentå·¥å ·ï¼åä¸ç¯ææ¯æ»ç»å客ã
12个æåï¼ä½ ä¹ä¼æè°¢ä»å¤©ååºè¿ä¸ªå³å®çèªå·±ã
éï¼å®æ´å¦ä¹ èµæºæ¸ åï¼å¹³å°ä¸å¾å¤ï¼èªå·±æ¾åï¼
è¯¾ç¨æ¨è
| è¯¾ç¨ | å¹³å° | éåé¶æ®µ |
|---|---|---|
| ãLLM Engineering: Master AIã | DeepLearning.AI | Phase 1 |
| ãLangChain for LLM Appsã | DeepLearning.AI | Phase 1-2 |
| ãLangGraphã宿¹æç¨ | LangChainå®ç½ | Phase 2 |
| ãFinetuning Large Language Modelsã | DeepLearning.AI | Phase 3 |
å¿ è¯»å¼æºé¡¹ç®
| é¡¹ç® | å¦ä¹ ç¹ |
|---|---|
| LangChain/LangGraph | Agentç¼æè®¾è®¡æ¨¡å¼ |
| Dify | ä½ä»£ç AIåºç¨å¹³å°æ¶æ |
| FastGPT | RAGç³»ç»å®æ´å®ç° |
| LLaMA-Factory | 模åå¾®è°æä½³å®è·µ |
| Spring AI | Javaä¾§AIéæåè |
建议é 读书ç±
| 书å | ä½è | 说æ |
|---|---|---|
| ãAI Engineeringã | Chip Huyen | 2025æ°åºçï¼ç³»ç»å ¨é¢ |
| ãDesigning Data-Intensive Applicationsã | Martin Kleppmann | æ¶æç»å ¸ï¼AIå¹³å°å¿ 读 |
å ¨æå®ã
妿è¿ä¸ç¯æç« å¯¹ä½ ææå¯åå帮å©ï¼æ¯æè£å¹¸ãä¹è®¸æä»¬ç°å¨é½å¨ééçå±äºæä»¬ä¸åççªå¢ï¼ä½è¯·ç¸ä¿¡è¿ä¹åªæ¯ææ¶çï¼è¿æ¯åç¨æç·çä¸å¥è¯ç»ä¸ªå¥å·ï¼è¿ä¸è·¯èµ°æ¥å ¨æ¯èå¸ï¼ä»ä»¬æ©æå¤©çï¼ææå¹¼ç¨ï¼ç£¨æå¿æ§ï¼ç»æç骨ãè½ç¹éæçï¼ä»æ¥ä¸æ¯éçï¼èæ¯ç»åï¼æ¯åå¢ã
让æä»¬å¨AIæ¶ä»£ï¼åé£ä¸ª"夿¡è ¿èµ°è·¯"çè¶ çº§ç çã
ä½è æ³¨ï¼æ¬æåºäºä½è å¨ä»¥å¾å±¥åä¸é¡¹ç®ççå®å®è·µæ°åãæä¸æ¶åçææ¯æ¹æ¡å·²åè±æå¤çã转载请注æåºå¤ã
ç³»åæç« 导èªï¼
- ä¸ç¯ï¼ä¸ºä»ä¹è½¬ï¼ä»¥åä»åªå¼å§ï¼Phase 1 宿ï¼
- ä¸ç¯ï¼Agentä¸ç¼æä½ç³»å®æï¼Phase 2 宿ï¼
- ä¸ç¯ï¼æ¨¡åå±ä¸å¹³å°åæ¶æï¼Phase 3-4 宿ï¼â æ¬ç¯
Aitishiku.com