在本文中,我们将探索五个生成式 AI 项目,帮助您构建并强化您的机器学习与数据科学作品集。通过这些项目,您将加深对前沿技术(如 Stable Diffusion、Segment Anything、LangChain 、Alpaca-LoRA 等)的理解。
无论您是刚接触生成式 AI,还是已有一定经验,这些项目都能为您提供实用技能,助您在求职与面试中脱颖而出。
您可以通过阅读《什么是 GPT-4,它为何重要? 》来了解 GPT 系列(包括 GPT-1、GPT-2、GPT-3 和 GPT-4)。您也可以在另一篇文章中查看更多AI 项目 。
1. StableSAM:结合 Segment Anything 的 Stable Diffusion 补画
在该项目中,您将使用 Meta 的 segment-anything 、Hugging Face 的 diffusers ,以及 Gradio,创建一个可以更改背景、面部、衣物或任意所选区域的应用。它只需要图像、选区和提示词。
适用场景:
StableSAM 非常适合从事数字营销、设计与娱乐行业的创意人员。它允许用户精准编辑图像的特定部分,非常适合更换背景、变更服装或修改宣传素材中的对象。对于爱好者而言,它也是无需高级设计技能即可定制图像的绝佳工具。
您将学习的技能:
使用 Stable Diffusion 实现图像补画流水线
使用 Meta 的 Segment Anything Model(SAM)进行图像分割
使用 Gradio 创建交互式 Web 应用
使用 Hugging Face diffusers 进行模型部署
创建 Stable Diffusion 补画流水线
我们将使用 stabilityai/stable-diffusion-2-inpainting · Hugging Face 上可用的 diffuser 与模型权重创建 Stable Diffusion 补画流水线。随后,我们将其添加到 CUDA 以启用 GPU 加速。
定义图像掩码与补画函数
图像掩码函数使用 SAM Predictor 创建。它接收图像、所选图像区域以及一个 is_backgroud 布尔值,以生成掩码图像与分割结果。
之后,补画函数使用 Stable Diffusion 补画流水线来更改图像的选定部分。该流水线需要输入图像、掩码图像、分割图像、提示词与反向提示词。
创建 Gradio 界面
您将创建一行,并添加三个图像模块。对于最小可用产品,您需要再添加一行并放置提交按钮。随后,您需要修改输入图像对象以选择像素、生成掩码与分割,并为提交按钮添加动作以运行补画函数。
Gradio 学习起来相当容易。您可以通过阅读 Gradio 文档 掌握全部内容。
StableSAM 的改进版本
StableSAM 的改进版本可在 Hugging Face 获取,其中包含使用 ControlNet 的自定义补画流水线。它采用 Runway ML Stable Diffusion Inpainting,而非 Stability AI。
如您所见,最终版本的应用界面简洁,包含分割模块、清除按钮、背景选项与反向提示词。
资源:
2. Alpaca-LoRA:用极少资源构建类 ChatGPT 聊天机器人
Alpaca-LoRA 提供了使用单块 GPU 创建专用类 ChatGPT 聊天机器人的全部必要组件。在该项目中,我们将了解初始设置、训练、推理脚本,以及在 CPU 上运行推理的原生客户端。
适用场景:
本项目非常适合希望构建定制化对话式 AI 系统的人士。无论您是为小型企业创建客服机器人,还是构建个人助手,Alpaca-LoRA 都能以有限算力高效训练专用聊天机器人。该项目也非常适合在预算受限的情况下试验语言模型微调。
您将学习的技能:
在单块 GPU 上使用 LoRA 微调语言模型
设置并使用 Stanford Alpaca 数据集
在低资源环境(如树莓派)中运行推理脚本
部署基于 Gradio 的聊天机器人界面
理解 LLaMA 等大型语言模型的训练与优化方式
本地环境搭建
克隆仓库:tloen/alpaca-lora
使用 pip install -r requirements.txt 安装依赖
若 bitsandbytes 无法正常工作,请从源码 安装。
训练
本部分我们将查看可在 LLaMA 模型上运行、基于清洗后的 Stanford Alpaca 模型进行微调的脚本。
您可以查看仓库以调整超参数,从而获得更好的性能。
python finetune. py \
- - base_model 'decapoda-research/llama-7b-hf' \
- - data_path 'yahma/alpaca-cleaned' \
- - output_dir './lora-alpaca' 技术支持
推理
推理脚本从 Hugging Face 读取基础 LLaMA 模型并加载 LoRA 权重,以运行 Gradio 界面。
python generate. py \
- - load_8bit \
- - base_model 'decapoda-research/llama-7b-hf' \
- - lora_weights 'tloen/alpaca-lora-7b' 技术支持
您也可以使用 alpaca.cpp 在 CPU 或 4GB 内存的树莓派 4 上运行 alpaca 模型。此外,您可以使用 Alpaca-LoRA-Serve 创建如下面所示的 ChatGPT 风格界面。
资源:
3. 使用 LangChain 与 ChatGPT 实现 PDF 交互自动化
利用 LangChain 的 PDF 加载器、OpenAI Embeddings 与 GPT-3.5,创建您自己的 ChatPDF 克隆。您将构建一个可以与书籍、法律文档与其他重要 PDF 文档进行对话的聊天机器人。
适用场景:
本项目适用于自动化以文档为中心的工作流程,例如分析研究论文、法律合同或财务报告。您可以构建一个回答 PDF 文档特定问题的聊天机器人,这对法律、学术或商业智能等需要处理大量文本的行业尤为有用。
您将学习的技能:
使用 LangChain 的 PyPDFLoader 加载与处理 PDF 文档
使用 OpenAIEmbeddings 创建嵌入并对文档数据进行向量化
使用 Chroma 构建用于文档查询的向量数据库
将 ChatGPT 与向量化数据集成以进行问答
使用 Gradio 开发简易 PDF 聊天机器人界面
加载文档
我们将使用 LangChain 文档加载器来加载 PDF 并读取其内容。
from langchain. document_loaders import PyPDFLoader
pdf_path = "./paper.pdf"
loader = PyPDFLoader( pdf_path)
pages = loader. load_and_split( )
print ( pages[ 0 ] . page_content) 技术支持
创建嵌入与向量化
我们将使用 LangChain API 中的 OpenAIEmbeddings 类创建嵌入。随后,将这些嵌入传递给 Chroma 类,为 PDF 文档创建向量数据库。
from langchain. embeddings import OpenAIEmbeddings
from langchain. vectorstores import Chroma
embeddings = OpenAIEmbeddings( )
vectordb = Chroma. from_documents( pages, embedding= embeddings, persist_directory= "." )
vectordb. persist( ) 技术支持
查询 PDF
我们将使用 ChatVectorDBChain 类,通过生成的向量数据库与 ChatGPT 交互。
from langchain. chains import ChatVectorDBChain
from langchain. llms import OpenAI
pdf_qa = ChatVectorDBChain. from_llm(
OpenAI( temperature= 0.9 , model_name= "gpt-3.5-turbo" ) ,
vectordb,
return_source_documents= True ,
)
query = "What is the VideoTaskformer?"
result = pdf_qa( { "question" : query, "chat_history" : "" } )
print ( "Answer:" )
print ( result[ "answer" ] ) 技术支持
下一步在视频教程中未提及。您可以使用 Gradio 框架创建一个 Web 应用,并与同事和朋友分享。
资源:
4. Bing-GPT 语音助手
构建您的 AI 驱动个人助手,就像 J.A.R.V.I.S 一样。为此,您将需要 OpenAI API、文本转语音库、语音识别库与生成式 AI。
适用场景:
Bing-GPT 语音助手非常适合构建可语音控制的 AI 个人助手,能够处理设置提醒、回答问题或控制智能家居设备等任务。该项目还可拓展用于业务自动化、创建语音客服解决方案,或为残障人士构建无障碍 AI 工具。
您将学习的技能:
使用 OpenAI 的 API 生成聊天机器人回复
使用 Whisper 与 Polly 实现语音合成与识别
设置唤醒词检测以实现语音交互
使用 EdgeGPT 与 ChatGPT 构建混合式 AI 助手
在 Python 中集成文本转语音与语音识别技术
加载必要库后,您需要提供 OpenAI API 密钥:
openai. api_key = "[paste your OpenAI API key here]" 技术支持
唤醒词
创建唤醒词函数以激活 AI。在该示例中,开发者使用的是 “'bing” 或 “gpt”。
语音合成
语音合成功能提供文本转语音推理。您可以通过 boto3 访问 Polly(文本转语音),并使用 pydub 播放音频。
使用 Whisper 转写
语音识别由 openai/whisper 完成。您只需了解其 API 并将其添加到您的应用中即可。
使用 EdgeGPT 的聊天机器人
最后,您将使用 acheong08/EdgeGPT 与 OpenAI API 创建聊天机器人。若用户使用唤醒词 “bing”,则使用 EdgeGPT 模型,否则使用 ChatGPT 模型。
如果您在寻找更简洁的语音助手实现,请查看 OpenAI Whisper、ChatGPT、TTS 与 Gradio Web UI 。
资源:
5. 端到端数据科学项目
在该项目中,我们将使用 ChatGPT 开发端到端的贷款审批分类应用。我们只需要访问 ChatGPT 界面,以及一台可运行代码的个人电脑。
适用场景:
该项目面向希望借助 AI 构建完整机器学习流水线的准数据科学家。您将学习如何使用 ChatGPT 规划、执行并部署机器学习模型,是任何数据科学作品集的有力补充。可将该项目用于预测贷款审批、客户流失或欺诈检测等任务。
您将学习的技能:
使用 ChatGPT 协助进行探索性数据分析(EDA)
自动化特征工程与数据预处理任务
在 ChatGPT 协助下构建并调优机器学习模型
使用 Gradio 创建机器学习 Web 应用
项目规划
在规划阶段,我们将描述数据集与期望目标。有时答案并不完美,但您可以通过追加提示来微调回复。
随后,我们将开始按照简要计划逐步实施。
探索性数据分析(EDA)
我们将请 ChatGPT 生成用于加载数据集并执行探索性数据分析的 Python 代码,包含多种可视化方法。您甚至可以让它解释结果。
特征工程
我们让 ChatGPT 编写特征工程代码,令人惊喜的是,它能基于现有特征创建两个新特征。这意味着 AI 已经相当理解该数据集。
预处理与数据均衡
我们拥有一个类别不平衡的数据集,本部分将使用 ChatGPT 生成预处理与类别均衡的代码。
模型选择
我们仅通过指定机器学习模型,请 ChatGPT 编写模型选择代码。运行代码后,我们将选取表现最佳的模型。
超参数调优与模型评估
为提升性能,我们将请 ChatGPT 编写用于超参数调优与模型评估的 Python 代码,并保存表现最佳的模型。
使用 Gradio 创建 Web 应用
我们将请 ChatGPT 使用已保存的模型与预处理步骤编写 Gradio 应用代码。AI 理解了输入特征与输出结果,最终我们得到一个可正常运行的 Web 应用。
在 Spaces 上部署 Web 应用
最后一步,我们请 ChatGPT 指导在 space 上部署 Web 应用。它给出了可在几分钟内完成部署的步骤。
该项目还将传授编写高效提示词的技巧,这在各个领域都越来越重要。
资源:
结语
这只是生成式 AI 模型未来发展的一个起点。开源社区正努力开发各种工具,帮助您构建任何类型的 AI。您甚至可以使用这些工具来创建 AGI(通用人工智能);请查看 Auto-GPT (面向创建完全自主的 GPT-4 的实验性开源项目)与 babyagi (AI 驱动的任务管理系统)。
在本文中,我们涵盖了各水平读者都能理解且启动门槛较低的项目。它们都使用任何人都可使用的开源工具、模型、数据集与软件包。
如果您刚接触 ChatGPT,建议参加我们的 Introduction to ChatGPT 课程。或者,如果您已熟悉生成式 AI,您可以通过查阅内容全面的 数据科学版 ChatGPT 速查表 来提升提示词编写能力,或查看以下资源:
在本文中,我们将探索五个生成式 AI 项目,帮助您构建并强化您的机器学习与数据科学作品集。通过这些项目,您将加深对前沿技术(如 Stable Diffusion、Segment Anything、LangChain、Alpaca-LoRA 等)的理解。
无论您是刚接触生成式 AI,还是已有一定经验,这些项目都能为您提供实用技能,助您在求职与面试中脱颖而出。
您可以通过阅读《什么是 GPT-4,它为何重要?》来了解 GPT 系列(包括 GPT-1、GPT-2、GPT-3 和 GPT-4)。您也可以在另一篇文章中查看更多AI 项目。
1. StableSAM:结合 Segment Anything 的 Stable Diffusion 补画
在该项目中,您将使用 Meta 的 segment-anything、Hugging Face 的 diffusers,以及 Gradio,创建一个可以更改背景、面部、衣物或任意所选区域的应用。它只需要图像、选区和提示词。
适用场景:
StableSAM 非常适合从事数字营销、设计与娱乐行业的创意人员。它允许用户精准编辑图像的特定部分,非常适合更换背景、变更服装或修改宣传素材中的对象。对于爱好者而言,它也是无需高级设计技能即可定制图像的绝佳工具。
您将学习的技能:
创建 Stable Diffusion 补画流水线
我们将使用 stabilityai/stable-diffusion-2-inpainting · Hugging Face 上可用的 diffuser 与模型权重创建 Stable Diffusion 补画流水线。随后,我们将其添加到 CUDA 以启用 GPU 加速。
定义图像掩码与补画函数
图像掩码函数使用 SAM Predictor 创建。它接收图像、所选图像区域以及一个
is_backgroud布尔值,以生成掩码图像与分割结果。之后,补画函数使用 Stable Diffusion 补画流水线来更改图像的选定部分。该流水线需要输入图像、掩码图像、分割图像、提示词与反向提示词。
创建 Gradio 界面
您将创建一行,并添加三个图像模块。对于最小可用产品,您需要再添加一行并放置提交按钮。随后,您需要修改输入图像对象以选择像素、生成掩码与分割,并为提交按钮添加动作以运行补画函数。
Gradio 学习起来相当容易。您可以通过阅读 Gradio 文档掌握全部内容。
StableSAM 的改进版本
StableSAM 的改进版本可在 Hugging Face 获取,其中包含使用 ControlNet 的自定义补画流水线。它采用 Runway ML Stable Diffusion Inpainting,而非 Stability AI。
如您所见,最终版本的应用界面简洁,包含分割模块、清除按钮、背景选项与反向提示词。
资源:
2. Alpaca-LoRA:用极少资源构建类 ChatGPT 聊天机器人
Alpaca-LoRA 提供了使用单块 GPU 创建专用类 ChatGPT 聊天机器人的全部必要组件。在该项目中,我们将了解初始设置、训练、推理脚本,以及在 CPU 上运行推理的原生客户端。
适用场景:
本项目非常适合希望构建定制化对话式 AI 系统的人士。无论您是为小型企业创建客服机器人,还是构建个人助手,Alpaca-LoRA 都能以有限算力高效训练专用聊天机器人。该项目也非常适合在预算受限的情况下试验语言模型微调。
您将学习的技能:
本地环境搭建
pip install -r requirements.txt安装依赖训练
本部分我们将查看可在 LLaMA 模型上运行、基于清洗后的 Stanford Alpaca 模型进行微调的脚本。
您可以查看仓库以调整超参数,从而获得更好的性能。
推理
推理脚本从 Hugging Face 读取基础 LLaMA 模型并加载 LoRA 权重,以运行 Gradio 界面。
您也可以使用 alpaca.cpp 在 CPU 或 4GB 内存的树莓派 4 上运行 alpaca 模型。此外,您可以使用 Alpaca-LoRA-Serve 创建如下面所示的 ChatGPT 风格界面。
资源:
3. 使用 LangChain 与 ChatGPT 实现 PDF 交互自动化
利用 LangChain 的 PDF 加载器、OpenAI Embeddings 与 GPT-3.5,创建您自己的 ChatPDF 克隆。您将构建一个可以与书籍、法律文档与其他重要 PDF 文档进行对话的聊天机器人。
适用场景:
本项目适用于自动化以文档为中心的工作流程,例如分析研究论文、法律合同或财务报告。您可以构建一个回答 PDF 文档特定问题的聊天机器人,这对法律、学术或商业智能等需要处理大量文本的行业尤为有用。
您将学习的技能:
加载文档
我们将使用 LangChain 文档加载器来加载 PDF 并读取其内容。
创建嵌入与向量化
我们将使用 LangChain API 中的
OpenAIEmbeddings类创建嵌入。随后,将这些嵌入传递给Chroma类,为 PDF 文档创建向量数据库。查询 PDF
我们将使用
ChatVectorDBChain类,通过生成的向量数据库与 ChatGPT 交互。下一步在视频教程中未提及。您可以使用 Gradio 框架创建一个 Web 应用,并与同事和朋友分享。
资源:
4. Bing-GPT 语音助手
构建您的 AI 驱动个人助手,就像 J.A.R.V.I.S 一样。为此,您将需要 OpenAI API、文本转语音库、语音识别库与生成式 AI。
适用场景:
Bing-GPT 语音助手非常适合构建可语音控制的 AI 个人助手,能够处理设置提醒、回答问题或控制智能家居设备等任务。该项目还可拓展用于业务自动化、创建语音客服解决方案,或为残障人士构建无障碍 AI 工具。
您将学习的技能:
加载必要库后,您需要提供 OpenAI API 密钥:
唤醒词
创建唤醒词函数以激活 AI。在该示例中,开发者使用的是 “'bing” 或 “gpt”。
语音合成
语音合成功能提供文本转语音推理。您可以通过 boto3 访问 Polly(文本转语音),并使用 pydub 播放音频。
使用 Whisper 转写
语音识别由 openai/whisper 完成。您只需了解其 API 并将其添加到您的应用中即可。
使用 EdgeGPT 的聊天机器人
最后,您将使用 acheong08/EdgeGPT 与 OpenAI API 创建聊天机器人。若用户使用唤醒词 “bing”,则使用 EdgeGPT 模型,否则使用 ChatGPT 模型。
如果您在寻找更简洁的语音助手实现,请查看 OpenAI Whisper、ChatGPT、TTS 与 Gradio Web UI。
资源:
5. 端到端数据科学项目
在该项目中,我们将使用 ChatGPT 开发端到端的贷款审批分类应用。我们只需要访问 ChatGPT 界面,以及一台可运行代码的个人电脑。
适用场景:
该项目面向希望借助 AI 构建完整机器学习流水线的准数据科学家。您将学习如何使用 ChatGPT 规划、执行并部署机器学习模型,是任何数据科学作品集的有力补充。可将该项目用于预测贷款审批、客户流失或欺诈检测等任务。
您将学习的技能:
项目规划
在规划阶段,我们将描述数据集与期望目标。有时答案并不完美,但您可以通过追加提示来微调回复。
随后,我们将开始按照简要计划逐步实施。
探索性数据分析(EDA)
我们将请 ChatGPT 生成用于加载数据集并执行探索性数据分析的 Python 代码,包含多种可视化方法。您甚至可以让它解释结果。
特征工程
我们让 ChatGPT 编写特征工程代码,令人惊喜的是,它能基于现有特征创建两个新特征。这意味着 AI 已经相当理解该数据集。
预处理与数据均衡
我们拥有一个类别不平衡的数据集,本部分将使用 ChatGPT 生成预处理与类别均衡的代码。
模型选择
我们仅通过指定机器学习模型,请 ChatGPT 编写模型选择代码。运行代码后,我们将选取表现最佳的模型。
超参数调优与模型评估
为提升性能,我们将请 ChatGPT 编写用于超参数调优与模型评估的 Python 代码,并保存表现最佳的模型。
使用 Gradio 创建 Web 应用
我们将请 ChatGPT 使用已保存的模型与预处理步骤编写 Gradio 应用代码。AI 理解了输入特征与输出结果,最终我们得到一个可正常运行的 Web 应用。
在 Spaces 上部署 Web 应用
最后一步,我们请 ChatGPT 指导在 space 上部署 Web 应用。它给出了可在几分钟内完成部署的步骤。
该项目还将传授编写高效提示词的技巧,这在各个领域都越来越重要。
资源:
结语
这只是生成式 AI 模型未来发展的一个起点。开源社区正努力开发各种工具,帮助您构建任何类型的 AI。您甚至可以使用这些工具来创建 AGI(通用人工智能);请查看 Auto-GPT(面向创建完全自主的 GPT-4 的实验性开源项目)与 babyagi(AI 驱动的任务管理系统)。
在本文中,我们涵盖了各水平读者都能理解且启动门槛较低的项目。它们都使用任何人都可使用的开源工具、模型、数据集与软件包。
如果您刚接触 ChatGPT,建议参加我们的 Introduction to ChatGPT 课程。或者,如果您已熟悉生成式 AI,您可以通过查阅内容全面的 数据科学版 ChatGPT 速查表来提升提示词编写能力,或查看以下资源: