AI大模型到底有没有智能?一篇文章给你讲明明白白

生成式人工智能 (GenAI[1] ) 和大语言模型 (LLM [2] ),这两个词汇想必已在大家的耳边萦绕多时。它们如惊涛骇浪般席卷了整个科技界,登上了各大新闻头条。ChatGPT,这个神奇的对话助手,也许已成为你形影不离的良师益友。

然而,在这场方兴未艾的 GenAI 革命背后,有一个谜题久久萦绕在人们心头:这些模型的智能究竟从何而来? 本文将为您揭开谜底,解析生成式文本模型的奥秘。我们将抛开晦涩艰深的数学,用通俗易懂的语言,带您走进这个神奇的算法世界。让我们撕下 “魔法” 的面纱,看清其中的计算机科学本质。

LLM 的真面目

首先,我们要破除一个常见的误区。许多人误以为,这些模型是真的能够与人对话,回答人们的各种问题。然而,它们真正的能力远没有想象的那么复杂——它们所做的,不过是根据输入的文本,预测下一个词语 (更准确地说,是下一个 token)。

Token,这个看似简单的概念,却是揭开 LLM 神秘面纱的钥匙。让我们由此出发,步步深入,一探究竟。

Token,这些文本的积木、语言的原子,正是 LLM 理解世界的基石。对我们而言,token 不过是单词、标点、空格的化身,但在 LLM 的眼中,它们是精简而高效的信息编码。有时,一个 token 可能代表一串字符,长短不一;有时,它可能是孤零零的一个标点符号。

LLM 的词汇表,就是这些 token 的集合,啥都有,样样全。这其中的奥秘,要追溯到 BPE 算法[3] 。BPE 算法是如何炼制出这些 tokens 的?这个问题,值得我们细细探究。但在此之前,只需记住:GPT-2 模型[4] ,这个自然语言处理界的明星,它的词汇表中有 50,257 个 token。

在 LLM 的世界里,每个 token 都有一个独一无二的数字身份证。而 Tokenizer,就是文本和 token 之间的 “翻译官”,将人类的语言转化为 LLM 能理解的编码,也将 LLM 的思维解码为人类的文字。如果你熟悉 Python,不妨亲自与 token 打个照面。只需安装 OpenAI 的 tiktoken 包:

代码语言:javascript

**复制

$ pip install tiktoken

然后在 Python 中尝试以下操作:

代码语言:javascript

**复制

>>> import tiktoken
>>> encoding = tiktoken.encoding_for_model("gpt-2")

>>> encoding.encode("The quick brown fox jumps over the lazy dog.")
[464, 2068, 7586, 21831, 18045, 625, 262, 16931, 3290, 13]

>>> encoding.decode([464, 2068, 7586, 21831, 18045, 625, 262, 16931, 3290, 13])
'The quick brown fox jumps over the lazy dog.'

>>> encoding.decode([464])
'The'
>>> encoding.decode([2068])
' quick'
>>> encoding.decode([13])
'.'

在这个实验中,我们可以看到,对于 GPT-2 而言,token 464 表示单词 “The”,token 2068 表示 “quick” (含前导空格),token 13 则表示句点。

由于 token 是算法生成的,有时会出现一些奇怪的现象。比如,同一个单词 “the” 的三个变体在 GPT-2 中被编码成了不同的 token:

代码语言:javascript

**复制

>>> encoding.encode('The'
[464]
>>> encoding.encode('the')
[1169]
>>> encoding.encode(' the')
[262]

BPE 算法并不总是将完整的单词映射为 token。事实上,不太常用的单词可能无法成为单独的 token,需要用多个 token 组合编码,比如这个 “Payment”,就要化身为 “Pay” 和 “ment” 的组合:

代码语言:javascript

**复制

>>> encoding.encode("Payment")
[19197, 434]

>>> encoding.decode([19197])
'Pay'
>>> encoding.decode([434])
'ment'

【一一AGI大模型学习 所有资源获取处一一】

①人工智能/大模型学习路线

②AI产品经理入门指南

③大模型方向必读书籍PDF版

④超详细海量大模型实战项目

⑤LLM大模型系统学习教程

⑥640套-AI大模型报告合集

⑦从0-1入门大模型教程视频

⑧AGI大模型技术公开课名额

预测下一个 Token

语言模型就像一个 “水晶球”,给它一串文字,它就能预言下一个最可能出现的词语。这是它的看家本领。但模型并非真的手眼通天,它的预言能力其实基于扎实的概率计算。让我们一起掀开这层神秘的面纱,看看背后的真相。

如果你懂一点 Python,我们可以用几行代码来窥探语言模型的预言过程:

代码语言:javascript

**复制

predictions = get_token_predictions(['The', ' quick', ' brown', ' fox'])

这个 get_token_predictions 函数就是我们的 “水晶球”。它接受一个 token 列表作为输入,这些 token 来自用户提供的 prompt。在这个例子中,我们假设每个单词都是一个独立的 token。当然,在实际使用中,每个 token 都有一个对应的数字 ID,但为了简单起见,我们这里直接用单词的文本形式。

函数的返回结果是一个庞大的数据结构,里面记录了词汇表中每个 token 出现在输入文本之后的概率。以 GPT-2 模型为例,它的词汇表包含 50,257 个 token,因此返回值就是一个 50,257 维的概率分布。

现在再来重新审视一下这个例子。如果我们的语言模型训练有素,面对 “The quick brown fox[5] ” 这样一个烂大街的句子片段,它很可能会预测下一个词是 “jumps”,而不是 “potato” 之类风马牛不相及的词。在这个概率分布中,“jumps” 的概率值会非常高,而 “potato” 的概率值则接近于零。

The quick brown fox jumps over the lazy dog (相应中文可简译为 “快狐跨懒狗”,完整翻译则是 “敏捷的棕色狐狸跨过懒狗”) 是一个著名的英语全字母句,常用于测试字体显示效果和键盘是否故障。此句也常以 “quick brown fox” 做为指代简称。

当然,语言模型的预测能力并非与生俱来,而是通过日积月累的训练得来的。在漫长的训练过程中,模型如饥似渴地汲取海量文本的营养,逐渐茁壮成长。训练结束时,它已经具备了应对各种文本输入的能力,可以利用积累的知识和经验,计算出任意 token 序列的下一个 token 概率。

现在是不是觉得语言模型的预测过程没那么神奇了?它与其说是魔法,不如说是一个基于概率的计算过程。这个过程虽然复杂,但并非不可理解。我们只要掌握了基本原理,就可以揭开它的神秘面纱,走近它,了解它。

长文本生成的奥秘

由于语言模型每次只能预测下一个 token 会是什么,因此生成完整句子的唯一方法就是在循环中多次运行该模型。每一轮迭代都会从模型返回的概率分布中选择一个新的 token,生成新的内容。然后将这个新 token 附加到下一轮中输入给模型的文本序列末尾,如此循环往复,直到生成足够长度的文本。

我们来看一个更完整的 Python 伪代码,展示具体的实现逻辑:

代码语言:javascript

**复制

def generate_text(prompt, num_tokens, hyperparameters):
    tokens = tokenize(prompt)
    for i in range(num_tokens):
        predictions = get_token_predictions(tokens)
        next_token = select_next_token(predictions, hyperparameters)
        tokens.append(next_token)
    return ''.join(tokens)

其中,generate_text() 函数接受一个用户输入的提示词 (prompt) 文本作为参数,这可以是一个问题或其他任意文本。

tokenize() 辅助函数使用类似 tiktoken 的分词库将提示文本转换成一系列等效的 token(token) 序列。在 for 循环内部,get_token_predictions() 函数调用语言模型来获取下一个 token 的概率分布,这一步与前面的示例类似。

select_next_token() 函数根据上一步得到的下个 token 概率分布,选择最合适的 token 来延续当前的文本序列。最简单的做法是选择概率最高的 token,在机器学习中被称为贪婪选择 (greedy selection)。更好的做法是用符合模型给出概率分布的随机数生成器来选词,这样可以让生成的文本更丰富多样。如果用同样的输入多次运行模型,这种方法还可以让每次产生的回应都略有不同。

为了让 token 选择过程更加灵活可控,可以用一些超参数 (hyperparameter) 来调整语言模型返回的概率分布,这些超参数作为参数传递给文本生成函数。通过调整超参数,你可以控制 token 选择的 “贪婪程度”。如果你用过大语言模型,你可能比较熟悉名为 temperature 的超参数。提高 temperature 的值可以让 token 的概率分布变得更加平缓,增加选中概率较低 token 的机会,从而让生成的文本显得更有创意和变化。此外,常用的还有 top_ptop_k 两个超参数,它们限定从概率最高的前 k 个或概率超过阈值 p 的 token 中进行选择,以平衡多样性和连贯性。

选定了一个新 token 后,循环进入下一轮迭代,将新 token 添加到原有文本序列的末尾,作为新一轮的输入,再接着生成下一个 token。num_tokens 参数控制循环的迭代轮数,决定要生成的文本长度。但需要注意的是,由于语言模型是逐词预测,没有句子或段落的概念,生成的文本常常会在句子中途意外结束。为了避免这种情况,我们可以把 num_tokens 参数视为生成长度的上限而非确切值,当遇到句号、问号等标点符号时提前结束生成过程,以保证文本在语义和语法上的完整性。

如果你已经读到这里且充分理解了以上内容,那么恭喜你!现在你对大语言模型的基本工作原理有了一个高层次的认识。如果你想进一步了解更多细节,我在下一节会深入探讨一些更加技术性的话题,但会尽量避免过多涉及晦涩难懂的数学原理。

模型训练

遗憾的是,不借助数学语言来讨论模型训练实际上是很困难的。这里先展示一种非常简单的训练方法。

既然 LLM 的任务是预测某些词后面跟随的词,那么一个简单的模型训练方式就是从训练数据集中提取所有连续的词对,并用它们来构建一张概率表。

让我们用一个小型词表和数据集来演示这个过程。假设模型的词表包含以下 5 个词:

代码语言:javascript

**复制

['I', 'you', 'like', 'apples', 'bananas']

为了保持示例简洁,我不打算将空格和标点符号视为独立的词。

我们使用由三个句子组成的训练数据集:

  • I like apples
  • I like bananas
  • you like bananas

我们可以构建一个 5x5 的表格,在每个单元格中记录 “该单元格所在行的词” 后面跟随 “该单元格所在列的词” 的次数。下面是根据数据集中三个句子得到的表格:

-Iyoulikeapplesbananas
I2
you1
like12
apples
bananas

这个表格应该不难理解。数据集中包含两个 “I like” 实例,一个 “you like” 实例,一个 “like apples” 实例和两个 “like bananas” 实例。

现在我们知道了每对词在训练集中出现的次数,就可以计算每个词后面跟随其他词的概率了。为此,我们将表中每一行的数字转换为概率值。例如,表格中间行的 “like” 后面有一次跟随 “apples”,两次跟随 “bananas”。这意味着在 33.3%的情况下 “like” 后面是 “apples”,剩下 66.7%的情况下是 “bananas”。

下面是计算出所有概率后的完整表格。空单元格代表 0%的概率。

-Iyoulikeapplesbananas
I100%
you100%
like33.3%66.7%
apples25%25%25%25%
bananas25%25%25%25%

“I”、“you” 和 “like” 这几行的概率很容易计算,但 “apples” 和 “bananas” 带来了问题。由于数据集中没有这两个词后面接其他词的例子,它们存在训练数据的空白。为了确保模型即使面对未见过的词也能做出预测,我决定将 “apples” 和 “bananas” 的后续词概率平均分配给其他四个可能的词。这种做法虽然可能产生不自然的结果,但至少能防止模型在遇到这两个词时陷入死循环。

训练数据存在 “空洞” 的问题对语言模型的影响不容忽视。在真实的大语言模型中,由于训练语料极其庞大,这些空洞通常表现为局部覆盖率偏低,而不是整体性的缺失,因而不太容易被发现。语言模型在这些训练不足的领域或话题上会产生片面、错误或前后不一致的预测结果,但通常会以一种难以感知的形式表现出来。这就是语言模型有时会产生 “幻觉[6]” 的原因之一,所谓幻觉,就是指生成的文本表面上读起来通顺流畅,但实际包含了事实错误或前后矛盾的内容。

借助上面给出的概率表,你现在可以自己想象一下 get_token_predictions() 函数会如何实现。用 Python 伪代码表示大致如下:

代码语言:javascript

**复制

def get_token_predictions(input_tokens):
    last_token = input_tokens[-1]
    return probabilities_table[last_token]

是不是比想象的要简单?该函数接受一个单词序列作为输入,也就是用户提示。它取这个序列的最后一个单词,然后返回概率表中与之对应的那一行。

举个例子,如果用 ['you', 'like'] 来调用这个函数,它会返回 “like” 所在的行,其中 “apples” 有 33.3%的概率接在后面组成句子,而 “bananas” 占剩下的 66.7%。有了这些概率信息,之前展示的 select_next_token() 函数在三分之一的情况下应该选择 “apples”。

当 “apples” 被选为 “you like” 的续词时,“you like apples” 这个句子就形成了。这是一个在训练数据中不存在的全新句子,但它却非常合理。希望这个例子能帮你认识到,语言模型其实只是在重复使用和拼凑它在训练过程中学到的各种模式碎片,就能组合出一些看似原创的想法或概念

上下文窗口

上一节内容我使用马尔可夫链[7] 的方法训练了一个小语言模型。这种方法存在一个问题:它的上下文窗口只有一个标记,也就是说,模型在预测下一个词时,只考虑了输入序列的最后一个词,而忽略了之前的所有内容。这导致生成的文本缺乏连贯性和一致性,常常前后矛盾,逻辑跳跃。

为了提高模型的预测质量,一种直观的思路是扩大上下文窗口的大小,比如增加到 2 个标记。但这样做会导致概率表的规模急剧膨胀。以我之前使用的 5 个标记的简单词表为例,将上下文窗口增加到 2 个标记,就需要在原有的 5 行概率表基础上,额外增加 25 行来覆盖所有可能的双词组合。如果进一步扩大到 3 个标记,额外的行数将达到 125 行。可以预见,随着上下文窗口的增大,概率表的规模将呈指数级爆炸式增长

更重要的是,即使将上下文窗口扩大到 2 个或 3 个标记,其改进效果仍然非常有限。要使语言模型生成的文本真正做到前后连贯、逻辑通顺,实际上需要一个远大于此的上下文窗口。只有足够大的上下文,新生成的词才能与之前较远处提及的概念、思想产生联系,从而赋予文本连续的语义和逻辑

举个实际的例子,OpenAI 开源的 GPT-2 模型采用了 1024 个标记的上下文窗口。如果仍然沿用马尔可夫链的思路来实现这一尺度的上下文,以 5 个标记的词表为例,仅覆盖 1024 个词长度的所有可能序列,就需要高达 5^1024 行的概率表。这是一个天文数字,我在 Python 中计算了这个值的具体大小,读者可以向右滚动来查看完整的数字:

代码语言:javascript

**复制

>>> pow(5, 1024)
55626846462680034577255817933310101605480399511558295763833185422180110870347954896357078975312775514101683493275895275128810854038836502721400309634442970528269449838300058261990253686064590901798039126173562593355209381270166265416453973718012279499214790991212515897719252957621869994522193843748736289511290126272884996414561770466127838448395124802899527144151299810833802858809753719892490239782222290074816037776586657834841586939662825734294051183140794537141608771803070715941051121170285190347786926570042246331102750604036185540464179153763503857127117918822547579033069472418242684328083352174724579376695971173152319349449321466491373527284227385153411689217559966957882267024615430273115634918212890625

这段 Python 代码示例生成了一个庞大的表格,但即便如此,它也只是整个表格的一小部分。因为除了当前的 1024 个 token 长度的序列,我们还需要生成更短的序列,譬如 1023 个、1022 个 token 的序列,一直到只包含 1 个 token 的序列。这样做是为了确保在输入数据 token 数量不足的情况下,模型也能妥善处理较短的序列。马尔可夫链虽然是一个有趣的文本生成方法,但在可扩展性方面确实存在很大的问题。

如今,1024 个 token 的上下文窗口已经不那么出色了。GPT-3 将其扩大到了 2048 个 token,GPT-3.5 进一步增加到 4096 个。GPT-4 一开始支持 8192 个 token 的上下文,后来增加到 32000 个,再后来甚至达到了 128000 个 token!目前,开始出现支持 100 万以上 token 的超大上下文窗口模型,使得模型在进行 token 预测时,能够拥有更好的一致性和更强的记忆能力。

总而言之,尽管马尔可夫链为我们提供了一种正确的思路来思考文本生成问题,但其固有的可扩展性不足,使其难以成为一个可行的、能够满足实际需求的解决方案。面对海量文本数据,我们需要寻求更加高效和可扩展的文本生成方法。

从马尔可夫链到神经网络

显然,我们必须摒弃使用概率表的想法。对于一个合理大小的上下文窗口,所需的表格大小将远超内存限制。我们可以用一个函数来代替这个表格,该函数能够通过算法生成近似的下一个词出现概率,而无需将其存储在一个巨大的表格中。这正是神经网络擅长的领域。

神经网络是一种特殊的函数,它接收一些输入,经过计算后给出输出。对于语言模型而言,输入是代表提示信息的词,输出是下一个可能出现的词及其概率列表。神经网络之所以特殊,是因为除了函数逻辑之外,它们对输入进行计算的方式还受到许多外部定义参数的控制。

最初,神经网络的参数是未知的,因此其输出毫无意义。神经网络的训练过程就是要找到那些能让函数在训练数据集上表现最佳的参数,并假设如果函数在训练数据上表现良好,它在其他数据上的表现也会相当不错。

在训练过程中,参数会使用一种叫做反向传播[8] 的算法进行迭代调整,每次调整的幅度都很小。这个算法涉及大量数学计算,我们在这里就不展开了。每次参数调整后,神经网络的预测都会变得更准一些。参数更新后,网络会用训练数据集重新评估,结果为下一轮调整提供参考。这个过程会反复进行,直到函数能够在训练数据上很好地预测下一个词。

为了让你对神经网络的规模有个概念,GPT-2 模型有大约 15 亿个参数,GPT-3 增加到了 1750 亿,而 GPT-4 据说有 1.76 万亿个参数。在当前硬件条件下,训练如此规模的神经网络通常需要几周或几个月的时间。

有趣的是,由于参数数量巨大,并且都是通过漫长的迭代过程自动计算出来的,我们很难理解模型的工作原理。训练完成的大语言模型就像一个难以解释的黑箱,因为模型的大部分 “思考” 过程都隐藏在海量参数之中。即使是训练它的人,也很难说清其内部的运作机制。

层、Transformer 与 Attention 机制

你可能好奇神经网络函数内部进行了哪些神秘的计算。在精心调校的参数帮助下,它可以接收一系列输入标记,并以某种方式输出下一个标记出现的合理概率。

神经网络被配置为执行一系列操作,每个操作称为一个 “层” 。第一层接收输入并对其进行转换。转换后的输入进入下一层,再次被转换。这一过程持续进行,直到数据到达最后一层并完成最终转换,生成输出或预测结果。

机器学习专家设计出不同类型的层,对输入数据进行数学转换。他们还探索了组织和分组层的方法,以实现期望的结果。有些层是通用的,而另一些则专门处理特定类型的输入数据,如图像,或者在大语言模型中的标记化文本。

目前在大语言模型的文本生成任务中最流行的神经网络架构被称为 “Transformer[9]”。使用这种架构的模型被称为 GPT,即 “生成式预训练 Transformer”,也就是 Generative Pre-Trained Transformers[10]。

Transformer 模型的独特之处在于其执行的 “Attention[11] ” 层计算。这种计算允许模型在上下文窗口内的标记之间找出关系和模式,并将其反映在下一个标记出现的概率中。Attention 机制最初被用于语言翻译领域,作为一种找出输入序列中对理解句子意义最重要的标记的方法。这种机制赋予了现代语言模型在基本层面上 “理解” 句子的能力,它可以关注 (或集中 “注意力” 于) 重要词汇或标记,从而更好地把握句子的整体意义。正是这一机制,使 Transformer 模型在各种自然语言处理任务中取得了巨大成功。

大语言模型到底有没有智能?

通过上面的分析,你心中可能已经有了一个初步的判断:大语言模型在生成文本时是否表现出了某种形式的智能?

我个人并不认为大语言模型具备推理或提出原创想法的能力,但这并不意味着它们一无是处。得益于对上下文窗口中 token 进行的精妙计算,大语言模型能够捕捉用户输入中的模式,并将其与训练过程中学习到的相似模式匹配。它们生成的文本大部分来自训练数据的片段,但将词语 (实际上是 token) 组合在一起的方式非常复杂,在许多情况下产生了感觉原创且有用的结果

不过,考虑到大语言模型容易产生幻觉,我不会信任任何将其输出直接提供给最终用户而不经过人工验证的工作流程。

未来几个月或几年内出现的更大规模语言模型是否能实现类似真正智能的能力?鉴于 GPT 架构的诸多局限性,我觉得这不太可能发生,但谁又说的准呢,也许将来出现一些创新手段,我们就能实现这一目标。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解
  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望
阶段3:AI大模型应用架构实践
  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景
学习计划:
  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/756516.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024夏促steam商店加载失败、steam无法加载活动怎么办

今年的夏季促销活动终于开始了,一般夏季促销大多是去年和今年的热门游戏,不过也会有不少经典游戏参与活动,都是较低的价格出售。因为最近高考结束,考虑到会有不少新玩家前来入手游戏,为了让大家能顺利找到喜欢的游戏&a…

TIA博途WinCC通过VB脚本从 Excel中读取数据的具体方法介绍

TIA博途WinCC通过VB脚本从 Excel中读取数据的具体方法介绍 添加 一个PLC,设置PLC的IP地址,如下图所示, 添加全局DB块,新建几个变量,如下图所示, 在数据块中添加了 tag1 …… tag6 ,共 6 个浮点数类型的变量,用来接收通过 WinCC 从 Excel 文件中读取的数据。 添加 HMI…

【C++】类和对象(六)

文章目录 二、static成员概念面试题一个题目 三、友元友元函数说明 友元类 四、内部类(了解)概念:注意:特性: 五、匿名对象 书接上回: 【C】类和对象(五)隐式类型转换 二、static成员 01_31 03 12 01 概…

电脑文件kernel32.dll缺失要怎么处理?怎么才能一键修复kernel32.dll文件

关键系统文件kernel32.dll的缺失,这种情况不仅会导致系统运行不稳定,甚至可能完全无法启动某些应用程序。kernel32.dll 是一个至关重要的动态链接库文件,它与Windows操作系统的多个基本操作相关联,包括内存管理、进程和线程的控制…

制造业包括哪些?需要堡垒机吗?

制造业-国民经济的主体,是立国之本、兴国之器、强国之基,一个关系着大家吃穿住行的行业,一个与大家息息相关的行业。但大家对于制造业还有很多不了解,有小伙伴在问,制造业包括哪些?需要堡垒机吗&#xff1f…

ZABBIX-7.0LTS在线部署部署教程

ZABBIX-7.0LTS在线部署部署教程 环境: 操作系统: ubuntu 22.04zabbix-server版本: 7.0LTS系统配置[需结合监控的业务量提供配置]: 建议2C(CPU)8G(运行) 100GB(存储)架构:LNMP 第一步: 系统初始化 1.配置…

虚拟机装入kali linux

VMware 首先需要先安装VMware Workstation Pro可以根据这篇文章来下载VMware 下载kali linux Installer Images VS Virtual Machines Installer Images(安装镜像)Virtual Machines(虚拟机) 直接访问硬件,定制内核…

数据结构03 链表的基本操作【C++数组模拟实现】

前言:本节内容主要了解链表的基本概念及特点,以及能够通过数组模拟学会链表的几种基本操作,下一节我们将通过STL模板完成链表操作,可以通过专栏进入查看下一节哦~ 目录 单链表及其特点 完整链表构成 完整链表简述 创建单链表 …

“实时数据大屏2k、4k、8k”这样做【高级前端必备技能之一】

🔥废话不多先上效果图 🔥划重点 新手程序员需要注意以下几点: 我们需要进行充分的技术调研,进行技术选型产品,UI,再三确认效果图是否确定,避免后续出现返工的情况 不能拿到效果图之后&#x…

『SD』AI绘画,不会写提示词怎么办?

提示词 有没有想过,为什么你用 SD 生成的猫是长这样的。 而其他人可以生成这样的猫。 虽然生成的都是猫,但猫与猫之间还是有差距的。 如果你的提示词只是“cat”,那大概率就会出现本文第一张图的那个效果。而如果你加上一些形容词&#xff…

【涵子来信】——社交宝典:克服你心中的内向,世界总有缺陷

内向,你是内向的吗?想必每个人不同,面对的情形也是不同的。 暑假是一个很好的机会,我是可以去多社交社交。但是,面对着CSDN上这么多技术人er,那么,我的宝典,对于大家,有…

【刷题】初步认识深搜(DFS)

送给大家一句话: 拥有希望的人,和漫天的星星一样,是永远不会孤独的。 -- 《星游记》 初步认识深搜(DFS) dfs算法二叉树中的深搜Leetcode 129. 求根节点到叶节点数字之和题目描述算法思路 Leetcode 814. 二叉树剪枝题…

poi-tl 生成 word 文件(插入文字、图片、表格、图表)

文章说明 本篇文章主要通过代码案例的方式,展示 poi-tl 生成 docx 文件的一些常用操作,主要涵盖以下内容 : 插入文本字符(含样式、超链接)插入图片插入表格引入标签(通过可选文字的方式,这种方…

英国牛津大学博士后职位—统计学

牛津大学(University of Oxford),简称“牛津”(Oxford),位于英国牛津,是一所公立研究型大学,采用传统学院制。是罗素大学集团成员,被誉为“金三角名校”、“G5超级精英大…

python 第6册 辅助excel 002 批量创建非空白的 Excel 文件

---用教授的方式学习 此案例主要通过使用 while 循环以及 openpyxl. load_workbook()方法和 Workbook 的 save()方法,从而实现在当前目录中根据已经存在的Excel 文件批量创建多个非空白的Excel 文件。当运行此案例的Python 代码(A002.py 文件&#xff0…

论文阅读_优化RAG系统的检索

英文名称: The Power of Noise: Redefining Retrieval for RAG Systems 中文名称: 噪声的力量:重新定义RAG系统的检索 链接: https://arxiv.org/pdf/2401.14887.pdf 作者: Florin Cuconasu, Giovanni Trappolini, Federico Siciliano, Simone Filice, Cesare Campag…

MyBatis Plus条件构造器使用

1Wrapper: 条件构造抽象类,最顶端父类 1.1 AbstractWrapper: 用于查询条件封装,生成 sql 的 where 条件 1.2 QueryWrapper: Entity 对象封装操作类,不是用lambda语法 1.3 UpdateWrapper: Update…

[Go 微服务] go-micro + consul 的使用

文章目录 1.go-micro 介绍2.go-micro 的主要功能3.go-micro 安装4.go-micro 的使用4.1 创建服务端4.2 配置服务端 consul4.3 生成客户端 5.goodsinfo 服务5.1 服务端开发5.2 客户端开发 1.go-micro 介绍 Go Micro是一个简化分布式开发 的微服务生态系统,该系统为开…

java热部署idea插件「jrebel安装教程」

告别漫长的项目重启等待,让开发像写诗一样流畅~ jrebel安装包下载 jrebel版本需要下比较老的版本,我用的是22.4.1的版本(如果不差钱,可以支持一下正版,直接选择最新的版本即可) 下载地址:传送门…

Python逻辑控制语句 之 判断语句--if else结构

1.if else 的介绍 if else :如果 ... 否则 .... 2.if else 的语法 if 判断条件: 判断条件成立,执行的代码 else: 判断条件不成立,执行的代码 (1)else 是关键字, 后⾯需要 冒号 (2)存在冒号…