模型训练
SWIFT库
https://github.com/modelscope/swift
Swift是一个提供LLM模型轻量级训练和推理的开源框架。Swift提供的主要能力是efficient tuners,tuners是运行时动态加载到模型上的额外结构,在训练时将原模型的参数冻结,只训练tuner部分,这样可以达到快速训练、降低显存使用的目的。比如,最常用的tuner是LoRA。
在这个框架中提供了以下特性:
- 具备SOTA特性的Efficient Tuners:用于结合大模型实现轻量级(在商业级显卡上,如RTX3080、RTX3090、RTX4090等)训练和推理,并取得较好效果
- 使用ModelScope Hub的Trainer:基于transformers trainer提供,支持LLM模型的训练,并支持将训练后的模型上传到ModelScope Hub中
-
可运行的模型Examples:针对热门大模型提供的训练脚本和推理脚本,并针对热门开源数据集提供了预处理逻辑,可直接运行使用
AI模型平台
HuggingFace
HuggingFace 是一家提供预训练模型和深度学习工具的公司,它的Transformers库是NLP领域最流行的工具之一。它提供了多种预训练模型以及训练和微调这些模型的工具。
ModelScope
- 丰富的预训练SOTA模型:覆盖NLP、CV、Audio等多领域的具有竞争力的SOTA模型,更有行业领先的多模态大模型,全部免费开放下载以及使用。
- 多元开放的数据集:汇集行业和学术热门的公开数据集,更有阿里巴巴集团贡献的专业领域数据集等你来探索。
- 一行代码使用模型推理能力:提供基于模型的本地推理接口,以及线上模型推理预测服务,方便开发者快速验证与使用。
- 十行代码快速构建专属行业模型:十几行代码实现对预训练模型的微调训练(finetune),方便开发者基于行业数据集快速构建专属行业模型。
- 即开即用的在线开发平台:一键开启在线Notebook实训平台,集成官方镜像免除环境安装困扰,链接澎湃云端算力,体验便捷的交互式编程。
工作流
LangChain
LangChain 是一个用于构建和部署与语言模型交互的应用程序的库。它提供了一系列的工具和接口,使得开发者能够更容易地将大型语言模型整合到他们的系统和应用中。
- LangChain是2023年最潮的大语言模型应用开发框架。
- LangChain能轻松管理与语言模型的交互,并将多个组件链接在一起。
- LangChain使用模块化的框架,将LLM与其他数据源连接起来,创建功能丰富的应用程序。
- LangChain和微软的Semantic Kernel是类似的工具,用于构建基于大语言模型的应用程序。
- LangChain和Semantic Kernel的区别在于开发者使用的编程模型和工具集。
- LangChain适用于开发人员和组织想要构建由LLM支持的应用程序的场景。
- LangChain可以用于构建聊天机器人、问答系统、信息检索工具等。
Prompt Flow
Prompt Flow 微软提供的一套简化基于 LLM 的人工智能应用的端到端开发周期的开发工具。它涵盖了从创意、原型制作、测试、评估、部署到监控的全过程。它使得提示(prompt)工程变得更加容易,并使开发者能够构建高质量的 LLM 应用。
-
Prompt Flow是微软整合LangChain和Semantic Kernel的编程方法。
-
Prompt flow 比Flowise、Langflow更适合程序员。
- 通过VSCode 插件,Prompt flow 可以实现工作流配置的可视化。
以下是可视化、低代码LLM工作流开发工具:
Flowise
Flowise 是一个AI工作流可视化管理工具,它帮助开发者以低代码的方式组织和执行机器学习的任务流。它可能包含模型训练、数据处理、模型评估等多个环节的自动化管理。基于Node.js实现。
- Flowise是一个基于LangChain.js的无代码图形界面(UI)工具。
- Flowise利用React-Flow技术,提供拖放组件和聊天框功能,使用户能够轻松构建LLM应用程序。
Langflow
和Flowise一样,是个AI工作流可视化管理工具。基于Python实现。
我倾向于选择Langflow,这样需要依赖的环境会简单一些。
Flowise VS Langflow : https://www.bilibili.com/video/BV1ZP411B76E
前端工具
Gradio
提供了模型调参、对话的前端组件。在开发时用来调试demo,在生产环境中没啥用。
Streamlit
Streamlit 是一个快速创建数据应用的开源库。通过简化前端开发的复杂性,它允许研究人员和开发者快速将数据脚本转换为可分享的Web应用程序。非常适合于快速原型制作和数据展示。
数据检索
Llama Index
LlamaIndex - Data Framework for LLM Applications
Llama Index 是一个专注于上下文学习(in-context learning)的开源工具包。它通过提供各种数据加载器和序列化工具,使得处理和分割数据变得简单。此外,它还提供了创建嵌入和索引的能力,以及内置的提示和其他工程实现,以减轻从头开始创建的工作量。
它能帮助我们以最佳实践去做 in-context learning:提供了各种数据加载器,以统一格式序列化文档/知识,例如 PDF、维基百科、Notion、Twitter 等等,这样我们可以无需自行处理预处理、将数据分割为片段等操作。
它还可以帮助我们创建嵌入(以及其他形式的索引),并以一行代码的方式在内存中或向量数据库中存储嵌入。它内置了提示和其他工程实现,因此我们无需从头开始创建和研究。
支持的向量存储库:Vector Stores - LlamaIndex
Milvus
Milvus 是一个开源的向量数据库,用于存储和检索大量向量数据。它支持多种相似性度量标准,如欧氏距离和余弦相似性,并可以与多种机器学习框架集成。
ChromaDB
ChromaDB 是一个专门为向量数据设计的开源数据库。它允许用户存储和查询大规模的向量数据集,非常适合于机器学习模型中嵌入向量的存储和检索。ChromaDB 的优化使得它可以快速处理高维数据的近邻搜索。
Pinecone
Pinecone 是一个即服务型(SaaS)的向量数据库,专为机器学习和AI应用设计。它提供了一个简单易用的API,可以轻松地进行大规模的向量搜索。
Weaviate
Weaviate 是一个基于图的向量搜索引擎,支持自然语言理解的查询。它结合了全文搜索和向量搜索的功能,使其在处理复杂查询时表现出色。
参考资料