Microsoft-Generative AI for Beginners
Course Setup
- clone代码:https://github.com/microsoft/generative-ai-for-beginners
- 安装minicoda:https://docs.anaconda.com/miniconda/
Introduction to Generative AI and LLMs
LLM如何工作
- 分词器,文本到数字:大型语言模型接收文本作为输入并生成文本作为输出。 然而,作为统计模型,它们对数字的处理效果对比起文本序列的处理效果要好得多。 这就是为什么模型的每个输入在被核心模型使用之前都由分词器处理。 标记是一段文本——由可变数量的字符组成,因此标记器的主要任务是将输入分割成标记数组。 然后,每个令牌都映射有一个令牌索引,该索引是原始文本块的整数编码。
- 预测输出标记:给定 n 个标记作为输入(最大 n 因模型而异),模型能够预测一个标记作为输出。 然后,该标记会以扩展窗口模式合并到下一次迭代的输入中,从而获得一个(或多个)句子作为答案,生成结果有更好的用户体验。 这解释了为什么如果您曾经使用过 ChatGPT,您可能会注意到有时它在生成结果时在句子中间出现停顿。
- 选择过程,概率分布:模型根据其在当前文本序列之后出现的概率来选择输出标记。 这是因为该模型预测了根据其训练计算出的所有可能的“下一个标记”的概率分布。 然而,并不总是从结果分布中选择概率最高的标记。 这种选择增加了一定程度的随机性,模型以非确定性方式运行——对于相同的输入,我们不会得到完全相同的输出。 添加这种程度的随机性是为了模拟人类创造性思维的过程,您可以使用称为温度的模型参数进行调整。
Exploring and comparing different LLMs
Embedding
LLMs 还可以根据其产生的输出进行分类。
嵌入是一组可以将文本转换为数字形式的模型,称为嵌入,它是输入文本的数字表示。 嵌入使机器更容易理解单词或句子之间的关系,并且可以用作其他模型的输入,例如分类模型或对数值数据具有更好性能的聚类模型。 嵌入模型通常用于迁移学习,其中为有大量数据的代理任务构建模型,然后将模型权重(嵌入)重新用于其他下游任务。 此类别的一个示例是 OpenAI 嵌入。
检索增强生成 (RAG, Retrieval Augmented Generation)
LLMs 有一个限制,即他们只能使用训练期间使用过的数据来生成答案。 这意味着他们对训练过程后发生的事情一无所知,并且无法访问非公开信息(例如公司数据)。 这可以通过 RAG 来克服,RAG 是一种考虑提示长度限制的技术,以文档块的形式使用外部数据来增强提示。 矢量数据库工具(例如 Azure 向量搜索)支持此功能,可检索有用的信息来自各种预定义数据源的块并将它们添加到提示上下文中。
当企业没有足够的数据、足够的时间或资源来微调 LLMs,但仍希望提高特定工作负载的性能并减少幻觉的风险(即对现实的神秘化或有害的风险)时,此技术非常有用
微调模型
微调是一个利用迁移学习使模型“适应”下游任务或解决特定问题的过程。 与少样本学习和 RAG 不同,它会生成一个新模型,并更新权重和偏差。 它需要一组训练示例,其中包含单个输入(提示)及其关联的输出(完成)。
如果出现以下情况,这将是首选方法:
- 使用微调模型。 企业希望使用经过微调能力较差的模型(例如嵌入模型)而不是高性能模型,从而获得更具成本效益和快速的解决方案。
- 考虑延迟。 延迟对于特定用例很重要,因此不可能使用很长的提示,或者应该从模型中学习的示例数量不符合提示长度限制。
- 保持最新状态。 企业拥有大量高质量的数据和真实标签,以及随着时间的推移保持这些数据最新所需的资源。
矢量/向量:基于大小又有方向的量。
矢量图:根据数学工时绘制的图像,放大不会失真(不像普通图片是直接由像素点直接组成)。
Using Generative AI Responsibly
Understanding Prompt Engineering Fundamentals
Creating Advanced Prompts
Building Text Generation Applications
Building Chat Applications
Building Search Apps Vector Databases
- 什么是embedding:
- 余弦相似度:余弦相似度是两个向量之间相似度的度量。
在进行搜索时会对输入文本进行embedding,然后通过对向量数据库中的向量进行按余弦相似度对结果进行排序,余弦相似度最高的文本片段与查询最相似。
Building Image Generation Applications
Building Low Code AI Applications
Integrating External Applications with Function Calling
Designing UX for AI Applications
Securing Your Generative AI Applications
The Generative AI Application Lifecycle
Retrieval Augmented Generation (RAG) and Vector Databases
Open Source Models and Hugging Face
AI Agents
Fine-Tuning LLMs
Refence
Microsoft-Generative AI for Beginners
https://mikeygithub.github.io/2024/08/09/yuque/Microsoft-Generative AI for Beginners/