What’s LLM

Table of Contents

生成式 AI 对于内容创作者来说, 既是机遇, 也是挑战。
LLM(Large Langage Model) 大语言模型之火愈演愈㤠。
国外的 ChatGPT, 国内的 Kimi 几乎成了与搜索引擎一样必不可少的工具。

AI 不但能理解我们的问题, 理解大篇幅的文本, 还能长篇累牍的生成大块文章, 还能生成图像, 视频, 音频, 这一天来得好快。

现在我写文章, 每当词穷之际, 就会求助于 LLM, 写程序, 忘了函数用法, 也不再查手册, 而去问 LLM, 但是它们是怎么做到的呢。

  1. 通过文本生成 token

想想婴儿是怎么学语言的吧, 词汇是基础 , token 就是 LLM 的词汇, BPE(Byte Paire Encoding) 算法广泛用于 LLM , 从给定的数据集中生成 token

  1. 通过 token 进行预测

以这句练打字常用的句子为例

the quick brown fox jumps over the lazy dog

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

当 LLM 拿到 the quick brown fox 这四个词时, 它根据之前看过的内容所做的训练, 会判断出接下来大概率会是 "jumps" 这个单词

  1. 生成长文本

LLM 能预测出接下来的 token, 那么生成一个句子就可以循环多次调用 LLM 来预测下一个词汇(token), 伪代码如下

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() 函数将 prompt 用 titoken 或类似的库转换为等价的 token list
  • get_token_predictions() 调用 AI model 取得下一个 token 的候选者的概率
  • select_next_token() 取得下一个 token 的候选者的预测概率, 从中选择一个最合适的, 这里应用预训练的模型和一些算法, 例如 "greedy selection" (贪心选择算法), 也可随机选择一个概率高的 token , 这样针对相同的 prompt, LLM 也能给出不同的响应

参考资料

https://blog.miguelgrinberg.com/post/how-llms-work-explained-without-math

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: 程序人生