Generative AI for Beginners - 微软开源课程,用于从零开始构建生成式AI应用
如果你最近在社交媒体上看到ChatGPT、Midjourney等AI工具的惊艳表现,心中涌起一个念头:“我也想学这个,但从哪里开始?”那么微软的这份开源课程正是为你准备的。Generative AI for Beginners是一个包含21节课程的完整学习路径,由微软的AI专家团队精心设计,专为想要进入生成式AI领域的开发者打造。不需要深厚的机器学习背景,不需要昂贵的硬件设备,只需要你具备基本的编程知识,就能通过这份课程逐步掌握提示工程、检索增强生成、智能体构建等核心技能,最终能够独立构建自己的生成式AI应用。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | generative-ai-for-beginners |
| GitHub地址 | https://github.com/microsoft/generative-ai-for-beginners |
| 项目描述 | 21 Lessons, Get Started Building with Generative AI |
| 作者 | microsoft |
| 开源协议 | MIT License |
| Stars | 108643 |
| Forks | 58241 |
| 支持平台 | Windows / macOS / Linux / Web |
| 最后更新 | 2026-03-29 |
一、项目介绍
Generative AI for Beginners是微软推出的一套开源课程,旨在帮助开发者从零开始学习生成式AI技术。与市面上充斥的碎片化教程不同,这是一套系统化的学习方案,共包含21节课,每节课都围绕一个具体主题展开,从理论讲解到动手实践环环相扣。
课程的设计理念非常务实:你不需要成为AI研究员,就能开始构建AI应用。课程重点放在如何利用现有的AI模型和API来解决问题,而不是从头训练模型。这意味着你可以在较低的技术门槛下快速上手,将精力集中在应用层的创新上。
课程内容涵盖生成式AI的方方面面:从基础的提示工程、文本生成、图像生成,到进阶的检索增强生成、智能体构建、模型微调,再到应用落地的评估指标、部署策略和安全性考虑。每一课都包含以下标准结构:
- 理论学习:通俗易懂的概念讲解
- 代码示例:可以直接运行的Python代码
- 练习题:巩固所学知识的动手任务
- 扩展阅读:深入学习的资源链接
值得一提的是,课程特别强调实践性。每一课都配有Jupyter Notebook格式的代码文件,你可以在本地或云端运行这些代码,边学边练。课程还使用了Azure AI服务作为示例,但代码设计具有通用性,你可以轻松适配到其他AI服务商。
二、核心优势
- 零基础友好,循序渐进
课程从最基础的概念讲起,比如“什么是生成式AI”和“大型语言模型如何工作”。即使你对机器学习一无所知,也能轻松跟上。随着课程深入,难度逐步提升,但始终保持在开发者能够掌握的范围内。 - 21节完整课程,系统化学习
不是零散的博客文章或短视频,而是一套完整的课程体系。21节课覆盖了从入门到精通的完整路径,每节课大约需要1-2小时完成,你可以按照自己的节奏学习。 - 代码优先,动手实践
每一课都包含可运行的代码示例,使用Python编写。课程假设你具备基础的Python知识,但不会要求太高。代码注释详尽,逻辑清晰,可以直接复制运行并修改实验。 - 微软官方出品,质量保障
由微软的AI专家和Azure团队共同打造,内容准确、权威。课程会持续更新,跟进生成式AI领域的最新发展。目前已有超过10万星标,是GitHub上最受欢迎的AI学习资源之一。 - 多语言支持,覆盖主流技术
课程以Python为主,但会介绍多种AI服务的API调用方式。同时,课程内容不绑定特定云服务商,学到的知识可以应用于OpenAI、Azure OpenAI、Anthropic等不同平台。 - 社区活跃,学习有伴
超过10万的星标和5万多的分支意味着这是一个极其活跃的开源项目。你可以在Issues区提问、在Discussions中讨论,甚至参与课程的翻译和改进。学习过程中遇到问题,大概率已经有人问过并得到了解答。
三、适用场景
- 想入门AI开发的程序员
如果你已经熟悉编程(Python、JavaScript或类似语言),但对AI领域感到陌生,这份课程是最理想的起点。它会带你跨越“从0到1”的门槛,让你理解AI应用的构建方式,并能够动手实现第一个AI应用。 - 产品经理和技术决策者
对于需要理解AI技术边界和可能性的产品经理,课程的前半部分(提示工程、文本生成、图像生成)能够快速建立对AI能力的直观认识。你可以通过课程了解哪些应用场景是可行的,哪些技术方案是成熟的。 - 创业者和独立开发者
生成式AI正在催生大量创业机会。这份课程可以帮助你快速掌握核心技术,用最小的成本验证想法。课程中关于检索增强生成和智能体构建的内容,对于构建真正的AI产品至关重要。 - 教育和培训从业者
如果你需要教授他人生成式AI知识,这份课程提供了完整的大纲、示例代码和练习题目。MIT开源协议允许你在教学或培训中使用这些材料,大大降低了课程开发成本。 - 企业开发团队
对于计划将AI能力集成到产品中的企业团队,课程提供了从概念验证到生产部署的全流程指导。特别是关于评估指标、安全考量和应用设计的章节,对于企业级应用开发极具参考价值。
四、安装教程
这份课程本身不需要“安装”,你只需要准备好开发环境,克隆代码库即可开始学习。
1. 环境准备
确保你的系统已安装Python 3.8或更高版本:
python --version如果没有安装,请从 python.org 下载并安装。
2. 克隆课程仓库
打开终端,执行以下命令:
git clone https://github.com/microsoft/generative-ai-for-beginners.git
cd generative-ai-for-beginners3. 创建Python虚拟环境
为了隔离依赖,建议为课程创建独立的虚拟环境:
Windows:
python -m venv venv
venv\Scripts\activatemacOS/Linux:
python3 -m venv venv
source venv/bin/activate4. 安装依赖
进入任意一个课程的代码目录,安装所需依赖。以第一课为例:
cd 01-introduction-to-generative-ai
pip install -r requirements.txt如果你的网络环境需要代理,可以使用以下命令:
pip install -r requirements.txt --proxy http://your-proxy:port5. 配置API密钥
课程中的代码需要调用AI服务的API。你可以选择使用OpenAI的API或Azure OpenAI服务。在项目根目录创建一个 .env 文件:
touch .env编辑 .env 文件,添加你的API密钥:
# 如果使用OpenAI
OPENAI_API_KEY=sk-你的密钥
# 如果使用Azure OpenAI
AZURE_OPENAI_ENDPOINT=https://你的资源名.openai.azure.com/
AZURE_OPENAI_KEY=你的密钥6. 验证环境
运行第一课的示例代码,确认一切正常:
cd 01-introduction-to-generative-ai
python prompt_basics.py如果你能看到AI的响应输出,说明环境配置成功。
7. 在线学习选项
如果你不想在本地配置环境,也可以使用在线学习方式:
- 在GitHub仓库中直接阅读课程材料(Markdown格式)
- 使用GitHub Codespaces一键打开开发环境
- 在Azure上创建免费的计算实例运行代码
五、使用示例
课程包含丰富的代码示例,这里精选几个代表性案例,展示你将学到什么。
示例1:提示工程基础
这是课程第一课的内容,教你如何设计有效的提示词:
# 01-introduction-to-generative-ai/prompt_basics.py
import openai
from dotenv import load_dotenv
import os
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
def simple_prompt(prompt):
"""基础提示词调用"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# 示例1:直接提问
result1 = simple_prompt("什么是生成式AI?用一句话解释")
print("直接提问:", result1)
# 示例2:带约束的提示
result2 = simple_prompt("""
请用以下格式回答:
- 名称:[AI模型名称]
- 主要功能:[一句话描述]
- 适合场景:[列出3个场景]
主题:ChatGPT
""")
print("\n带约束的提示:\n", result2)
# 示例3:思维链提示
result3 = simple_prompt("""
请一步步思考:
1. 用户想要一个生日礼物推荐
2. 用户是15岁的男孩,喜欢科技产品
3. 预算在500元以内
4. 给出3个推荐并说明理由
""")
print("\n思维链提示:\n", result3)示例2:检索增强生成
这是课程中非常实用的一个模块,展示了如何让AI访问外部知识库:
# 07-retrieval-augmented-generation/rag_example.py
import openai
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 模拟知识库
knowledge_base = [
"微软的Azure OpenAI服务提供了GPT-4、GPT-3.5等模型",
"提示工程是设计有效提示词以优化AI输出的技术",
"检索增强生成结合了信息检索和文本生成的优势",
"生成式AI可以用于文本创作、代码生成、图像生成等任务",
"微调是在特定数据上继续训练预训练模型的过程"
]
def retrieve_relevant_context(query, documents, top_k=2):
"""检索与查询最相关的内容"""
vectorizer = TfidfVectorizer()
doc_vectors = vectorizer.fit_transform(documents)
query_vector = vectorizer.transform([query])
similarities = cosine_similarity(query_vector, doc_vectors)[0]
top_indices = similarities.argsort()[-top_k:][::-1]
return [documents[i] for i in top_indices]
def rag_answer(question):
"""使用RAG回答用户问题"""
# 1. 检索相关上下文
relevant_docs = retrieve_relevant_context(question, knowledge_base)
context = "\n".join(relevant_docs)
# 2. 构建增强提示
prompt = f"""
基于以下信息回答问题:
相关信息:
{context}
问题:{question}
请确保答案仅基于提供的信息。
"""
# 3. 调用模型生成答案
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
# 测试
question = "什么是检索增强生成?"
answer = rag_answer(question)
print(f"问题: {question}")
print(f"答案: {answer}")示例3:构建AI智能体
课程中关于智能体的内容展示了如何让AI自主调用工具:
# 15-building-agents/weather_agent.py
import openai
import json
import requests
class SimpleAgent:
def __init__(self):
self.tools = {
"get_weather": self.get_weather,
"calculate": self.calculate
}
def get_weather(self, city):
"""模拟获取天气信息"""
# 实际应用中可调用真实天气API
weather_data = {
"北京": "晴天,25度",
"上海": "多云,22度",
"深圳": "小雨,28度"
}
return weather_data.get(city, "天气信息暂不可用")
def calculate(self, expression):
"""计算数学表达式"""
try:
result = eval(expression)
return f"计算结果: {result}"
except:
return "表达式无效"
def decide_tool(self, user_input):
"""让AI决定使用哪个工具"""
prompt = f"""
用户输入: {user_input}
可用工具:
- get_weather: 查询天气,参数为城市名称
- calculate: 计算数学表达式,参数为表达式字符串
请以JSON格式输出你的决策:
{{"tool": "工具名称", "params": "参数", "reason": "决策原因"}}
如果不需要工具,输出:{{"tool": "none", "response": "直接回答"}}
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0
)
return json.loads(response.choices[0].message.content)
def run(self, user_input):
"""运行智能体"""
decision = self.decide_tool(user_input)
if decision.get("tool") == "none":
return decision.get("response", "我无法回答这个问题")
tool_name = decision["tool"]
params = decision["params"]
if tool_name in self.tools:
result = self.tools[tool_name](params)
return f"工具执行结果: {result}"
else:
return "无法识别的工具"
# 测试智能体
agent = SimpleAgent()
print(agent.run("北京今天天气怎么样?"))
print(agent.run("帮我计算 123 + 456"))
print(agent.run("你好,很高兴见到你"))示例4:图像生成应用
课程也涵盖多模态内容,这是图像生成的示例:
# 09-image-generation/image_gen_app.py
import openai
import requests
from PIL import Image
from io import BytesIO
def generate_image(prompt, size="1024x1024"):
"""使用DALL-E生成图像"""
response = openai.Image.create(
prompt=prompt,
n=1,
size=size
)
image_url = response['data'][0]['url']
return image_url
def download_and_display_image(url):
"""下载并显示图像"""
response = requests.get(url)
img = Image.open(BytesIO(response.content))
img.show()
return img
# 生成图像
prompts = [
"一只穿着宇航服的猫在月球上散步,卡通风格",
"未来城市中的绿色花园,赛博朋克风格",
"水彩画风格的宁静湖面,周围是秋天的树林"
]
for i, prompt in enumerate(prompts):
print(f"生成图像 {i+1}: {prompt}")
image_url = generate_image(prompt)
print(f"图像URL: {image_url}")
# download_and_display_image(image_url) # 取消注释即可显示图像示例5:评估与优化
课程最后部分包含评估AI应用质量的方法:
# 20-evaluation-and-metrics/evaluate.py
import openai
from typing import List, Dict
class AIEvaluator:
def __init__(self):
self.evaluation_criteria = {
"相关性": "回答是否与问题直接相关",
"准确性": "回答中的信息是否准确",
"完整性": "回答是否覆盖了问题的关键点",
"清晰度": "回答是否易于理解"
}
def evaluate_response(self, question: str, response: str) -> Dict[str, float]:
"""评估AI回答的质量"""
prompt = f"""
请评估以下AI回答的质量,按照1-5分打分:
问题: {question}
回答: {response}
评分标准:
- 相关性: {self.evaluation_criteria['相关性']}
- 准确性: {self.evaluation_criteria['准确性']}
- 完整性: {self.evaluation_criteria['完整性']}
- 清晰度: {self.evaluation_criteria['清晰度']}
请以JSON格式输出分数,例如:
{{"相关性": 4, "准确性": 5, "完整性": 3, "清晰度": 4}}
"""
result = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0
)
try:
import json
scores = json.loads(result.choices[0].message.content)
return scores
except:
return {"error": "评估失败"}
def compare_responses(self, question: str, responses: List[str]) -> Dict:
"""比较多个回答的质量"""
results = {}
for i, response in enumerate(responses):
scores = self.evaluate_response(question, response)
results[f"response_{i+1}"] = {
"scores": scores,
"average": sum(scores.values()) / len(scores)
}
# 找出最佳回答
best = max(results.items(), key=lambda x: x[1]["average"])
results["best"] = best[0]
return results
# 使用示例
evaluator = AIEvaluator()
question = "什么是生成式AI?"
responses = [
"生成式AI是一种人工智能技术,可以创建新的内容。",
"生成式AI指的是能够根据训练数据生成新内容的人工智能模型,包括文本、图像、音乐等。它通过学习数据中的模式和结构,创造出全新的、原创的内容,而不是简单地重复已有数据。",
"就是能自己创造东西的AI。"
]
comparison = evaluator.compare_responses(question, responses)
print(json.dumps(comparison, indent=2, ensure_ascii=False))六、常见问题
- 问题:我没有机器学习背景,能学会吗?
解决方案:完全可以。课程的设计初衷就是面向没有AI背景的开发者。前几节课会详细介绍必要的概念和原理,但重点放在如何使用现成的API,而不是从头训练模型。你只需要具备基础的Python编程能力即可。 - 问题:课程需要付费的API密钥吗?
解决方案:课程的大部分示例都设计为可以用免费或低成本的方式运行。OpenAI和Azure OpenAI都提供免费试用额度,足够完成课程中的练习。如果你不想使用付费服务,也可以选择开源模型(如通过Ollama运行本地模型),课程中有专门的章节介绍替代方案。 - 问题:课程更新频率如何?
解决方案:作为微软官方维护的开源项目,课程会定期更新。每次主要AI模型发布新版本时,课程都会同步更新相关内容。你可以在GitHub上关注项目,获取更新通知。目前项目活跃度很高,Issues和PR响应迅速。 - 问题:课程有中文版吗?
解决方案:有的。由于课程的受欢迎程度,社区已经完成了完整的中文翻译。你可以在GitHub仓库中找到translations/zh-cn目录,或者通过官方文档网站选择中文语言。所有21节课都已翻译完成,与英文版同步更新。 问题:学完课程后能做什么?
解决方案:完成课程后,你将具备独立构建生成式AI应用的能力。你可以:- 构建自己的聊天机器人或AI助手
- 开发基于文档的问答系统
- 创建内容生成工具
- 设计能够调用外部工具的AI智能体
- 将AI能力集成到现有应用
课程最后有一个“毕业项目”模块,引导你将所学知识整合成一个完整应用。
- 问题:课程会涉及法律和伦理问题吗?
解决方案:会的。课程专门有一节关于AI应用的安全、伦理和法律考虑。内容包括:数据隐私、内容审核、偏见识别、版权问题、透明度和可解释性等。这些都是构建负责任的AI应用必须掌握的知识。
七、总结
Generative AI for Beginners是一份诚意满满的礼物,送给每一个想要踏入生成式AI领域的开发者。它没有故弄玄虚的数学公式,没有昂贵的硬件要求,只有21节精心设计的课程、数百个可运行的代码示例、以及一个热情活跃的学习社区。
这份课程最可贵的地方在于它的实用性和可及性。你不需要成为AI研究员,不需要发表论文,只需要有探索新技术的热情,就能在几个星期内从零基础到能够独立构建AI应用。课程中每个概念都有代码佐证,每个知识点都有动手练习,确保你真正掌握,而不仅仅是“听说过”。
对于初学者来说,最难的不是学习,而是不知道从何学起。Generative AI for Beginners解决了这个问题——它为你规划好了完整的路径,你只需要按部就班地走完。如果你已经准备好开始这段旅程,现在就可以去GitHub克隆这个项目,打开第一课的Jupyter Notebook,写下你人生中第一个AI应用的代码。
21节课学完,最大的感受是微软真的在认真做开源教育。课程质量、更新频率、社区活跃度都无可挑剔。感谢所有贡献者,你们在做一件很有价值的事情。
课程中关于模型微调的内容虽然只有一节,但把核心概念讲得很清楚。以前以为微调很复杂,现在知道在什么场景下需要微调,以及大概的流程是什么。
我是在GitHub Codespaces里学的这门课,不用本地配置环境,打开浏览器就能跑代码。对于只想先体验一下的人来说,这种方式特别友好。
课程里的代码质量很高,符合Python最佳实践。变量命名清晰,函数拆分合理,注释也很到位。光看代码就能学到很多编程技巧,不只是AI知识。
课程不仅教你怎么调用API,还教你如何设计提示词、如何评估质量、如何部署应用。这是一个完整的知识体系,不是那种只会复制粘贴的教程。