2024 应用开发趋势展望
- 趋势:构建者崛起(X-as-a-Service)、平台工程、AI增强开发、生成式AI民主化、智能应用、全栈JavaScript、边缘函数、JavaScript友好无服务器平台,聚焦业务逻辑,全栈单语言使小团队能实现更多。
- 案例:2023 TiDB Hackathon展示程序员可短时间内完成复杂应用(开发、测试、发布),体现上述趋势的实践效果。
AI 应用与探索的旅程
- 挑战:Prompt Engineering初期Text2Query效果尚可,但准确性瓶颈(约50%),调整Prompt易产生副作用。
- 原因:Language Models是少样本学习者,gpt-3.5-turbo支持4,096 tokens,gpt-4-0125-preview支持128,000 tokens,但Prompt无法涵盖所有知识和例子,问题与Prompt上下文关联度不确定。
- 解决方案:使用Embedding和Vector技术,将文档和私有数据转化为向量,通过相似度计算搜索语义相近对象。
- 改进:动态生成Prompt,扩展知识库通过问题相关性/相似度取回知识,持续更新领域知识(用户点赞或管理员添加)。
- 效果:Text2Query准确度从51.48%提升至75.46%。
- 技术:RAG(检索增强生成),部分解决LLM数据过时和“幻觉”问题,使用LangChain和LLamaIndex。
向量搜索浅谈
- 目标:让Vector成为SQL原生类型,支持Where条件过滤、Join语句和聚合语句,支持二级索引和向量索引共存。
- 技术:
- KNN(精确最近邻):O(NK)时间复杂度。
- ANN(近似最近邻):TopN查询,期待查询时效接近TP(<100ms)。
- Hash-based:LSH(碰撞多,不适合高维)。
- Tree-based:KD-Tree、Annoy。
- Graph-based:HNSW、DiskANN。
- Cluster-based:IVF-Flat(构建快,内存少,查询慢,召回率受边缘问题影响)。
- Faiss:PQ(高维有损压缩,减少内存使用但召回率下降)。
- HNSW(多层图结构,快速定位,支持高并发,构建慢,内存占用大)。
- 性能:IVF-Flat和HNSW是常用索引类型,各有优缺点。
RAG Demo with TiDB Vecgtor
- 描述:基于TiDB Serverless向量存储功能的RAG应用(WIP)。
- 功能:内置网页爬虫的对话搜索,可嵌入对话搜索小部件。
- 架构:MySQL+Vector DB(多轮次) vs TiDB(单轮次)。
- 链接:Private-Preview tidb.cloud/ai。