# GPT2 原作者:Andrej Karpathy @ https://github.com/karpathy/llm.c ## 背景 GPT 很酷,能不能在我自己的电脑上跑一个呢?当然可以! ![](show.gif) 请按照下面的指示来完成自己的 GPT2 吧! ## 安装依赖 完成本题需要 GNU Make、GCC、Python3。请先使用你的 Linux 发行版的包管理器完成安装。 例如,如果你是 Ubuntu,可以使用下面的命令完成安装。 ```bash sudo apt install build-essential python3 ``` 接着你需要安装 `tiktoken` Python 包,可以使用下面的命令完成安装。 ```bash make install ``` ## 下载并检查模型 [这里](https://alist.yaossg.com/share/model/gpt2_124M.bin)有我提供的 GPT2 的预训练模型,请下载后把该模型放在本仓库目录下,并执行下面的命令进行检查。 ```bash $ make check Checking your model... Model is OK ``` 如果不出意外,会出现上面的结果,表示模型正常。 ## 编译 如果你需要调试你的程序,可以使用下面的命令进行编译。 ```bash make debug ``` 调试完毕后用这个编译更快的版本! ```bash make release ``` ## 运行 完成编译之后,就可以运行你的程序了! ```bash make run ``` 如果你非常懒,可以用下面这个命令一键编译运行: ```bash make ``` ## 目标 你可能已经发现了,你的程序可能并没有我演示的跑的那么快(~~神机请忽略~~)。 你的目标就是优化该程序的性能,在保证结果不变的情况下更快的完成文本的补全。 我会使用一些测试点来评测你的程序的正确性和执行时间。期待更高的效率和更多样的优化方案。 此外,请在 wp 中回答下面的问题: - 什么是阿姆达尔定律?根据阿姆达尔定律,我们应该把优化的重点放在哪里? - 你的优化方案和思路是什么?优化的效果受到哪些因素影响?