发布于 2026-01-06 0 阅读
0

TinyLlama LLM:在 Google Colab 上实施 11 亿模型的逐步指南

TinyLlama LLM:在 Google Colab 上实施 11 亿模型的逐步指南

大型语言模型(LLM)是一种先进的人工智能程序,旨在理解、生成和处理人类语言。它基于海量的文本数据进行训练,能够辅助完成诸如回答问题、撰写文章、翻译语言甚至进行创意写作等任务。由于其能够理解上下文并生成连贯且与上下文相关的回复,LLM 可应用于从聊天机器人到研究工具等各种场景。

在本教程中,您将学习以下内容:

  • TinyLlama简介及概述

  • 了解系统需求

  • 逐步实施

介绍

在快速发展的语言模型技术领域,TinyLlama 脱颖而出,成为众多优秀选择之一。本指南专为数据科学家、人工智能爱好者和求知欲强的学习者量身打造,旨在揭开拥有 11 亿参数的 TinyLlama 模型部署的神秘面纱。TinyLlama 兼具强大的功能和紧凑的体积,重新定义了机器学习的预期,并可在本地和云端环境(例如 Google Colab)中灵活部署。
阅读本文后,您将深入了解如何在 Google Colab 上设置和使用 TinyLlama 来开展项目或探索。我们将提供详细的路线图,指导您如何在不同的用例中最大限度地发挥 TinyLlama 的各项功能。文末附有所有提及的资源和工具的链接,方便您查阅。

TinyLlama概述及其意义

TinyLlama 不仅仅是一个 AI 模型,更是生成式 AI 领域的创新标杆。它基于惊人的 3 万亿个代币进行训练,并与众多基于 Llama 框架的项目实现了无缝集成。TinyLlama 架构紧凑而强大,仅包含 11 亿个参数,使其成为计算资源有限的应用的理想解决方案。
值得一提的是,它与 Llama 2 共享相同的架构和分词器,从而确保了高质量和稳定的性能。TinyLlama 的一个显著应用场景是内容生成,其效率和准确性在该领域备受赞誉。

TinyLlama 项目的目标是使用 3 万亿个代币预训练一个 11 亿 Llama 模型。通过适当的优化,我们可以在“仅仅”90 天内使用 16 个 A100-40G GPU 实现这一目标🚀🚀 - TinyLlama 团队。

了解技术要求

在深入学习 TinyLlama 的大型语言模型 (LLM) 时,我必须提及一些基本工具和环境设置,特别是对于使用 macOS 的用户(我使用的是 MacBook Pro M1)。虽然安装过程类似,但本教程将以 macOS 为例。
下面我将带您了解一些关键的安装步骤及其用途:

首先是 Python。这种功能强大的编程语言是许多应用程序的基石,包括数据分析和机器学习。在 macOS 上安装 Python 最简单的方法是通过 Homebrew。只需打开终端并输入命令即可brew install python。如果您不喜欢 Homebrew,也可以直接从python.org下载 Python。

接下来是 Jupyter Notebook。对于任何从事编程、数据科学或只是想尝试 Python 的人来说,这都是一款非常棒的工具。它允许你创建包含实时代码和可视化效果的文档。我使用 Python 的包管理器在我的 Mac 上安装了 Jupyter,方法是pip install notebook在终端中运行 `python setup.py install`。启动它非常简单,只需输入 ` python setup.py install` 即可jupyter notebook。另一种安装和使用 Python 的方法是使用Anaconda。点击链接并按照步骤操作即可。

Google Colab 是另一个宝藏工具。它是一项云服务,无需任何设置即可提供 Jupyter Notebook 环境。它尤其适合共享项目和免费访问 GPU。访问Google Colab即可使用。

其他一些技术要求:

系统内存:最低 550MB。RAM
最高 3.8GB 以获得最佳性能。
平台:兼容 Google Colab 和使用 VScode 运行 Jupyter Notebook 或 Python 文件的本地环境。Google
帐户:访问 Google Colab 需要此帐户。Google
Colab 版本:免费版用于开发(支持 CPU 和 GPU),专业版用于高强度计算。

借助这些工具和技巧,在 macOS 系统上为 LLM 搭建一个强大而灵活的工作环境将变得轻松高效。

分步实施指南

我将使用 Colab,首先从 CPU 开始。要在两种运行时环境之间切换,请转到界面右侧。您应该会看到类似“连接”的选项。点击它,您会看到下图所示的界面,选择“更改运行时类型”,此时会弹出一个模态框,然后选择您需要的运行时环境,CPU 或 GPU。在本教程中,您可以使用其中任何一种。

更改运行时环境

选择 CPU 或 T4 GPU 环境

之后,我们就可以安装所需的工具和库了。

实施方案/方法 1

!CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
Enter fullscreen mode Exit fullscreen mode
!pip3 install huggingface-hub

Enter fullscreen mode Exit fullscreen mode

笔记:

!CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
Enter fullscreen mode Exit fullscreen mode

我们需要使用这种方法,因为它会llama.cpp使用 CMake 和系统自带的 C 编译器(必需)从源代码构建,并将库安装到此 Python 包旁边。llama-cpp-python 支持这些后端,可以在安装前设置 CMAKE_ARGS 环境变量来启用它们。

让我们安装完成此任务所需的模型。我们使用的是最新发布的 1.1B 参数 V1.0 聊天完成模型。

!huggingface-cli download TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Enter fullscreen mode Exit fullscreen mode

下一步是导入 Python 绑定。llama.cpp

from llama_cpp import Llama
Enter fullscreen mode Exit fullscreen mode

接下来是从 Llama 配置 LLM,包括模型路径和其他必需参数。

llm = Llama(model_path="./tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf",
            n_ctx=2048,
            n_threads=8,
            n_gpu_layers=35)

Enter fullscreen mode Exit fullscreen mode

该方法的最后一步是调用并使用聊天完成功能。


llm.create_chat_completion(
      messages = [
        {
          "role": "system",
          "content": "You are story writing assistant"

        },
        {
          "role": "user",
          "content": "Write an extensive story about Life as a young Adult"
        }
      ]
)

Enter fullscreen mode Exit fullscreen mode

就是这样!实现起来就这么简单。

如果您按照本教程一步一步操作,运行上述命令应该会返回下图所示的响应,包括返回的全部内容。

回复

回复中还将包含结果的其他细节。

'finish_reason': 'length'}],
'usage': {'prompt_tokens': 36,
'completion_tokens': 476, 'total_tokens': 512}}

Enter fullscreen mode Exit fullscreen mode

完整的代码如下,我将在本文末尾添加该项目的 GitHub 链接。

方法 1 的完整代码

实施/方法 2

我会在这里添加所有需要的代码,然后你可以在本地运行,也可以在 Google Colab 中运行。流程基本相同,只有细微差别。

#There is always an issue of "ImportError: Using `low_cpu_mem_usage=True` or a `device_map` requires Accelerate: `pip install accelerate`"
#so use the command below to install accelerare from the package manager.


!pip -qqq install bitsandbytes accelerate


import torch
from transformers import pipeline

pipe = pipeline("text-generation", model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", torch_dtype=torch.bfloat16, device_map="auto")

# We use the tokenizer's chat template to format each message - see https://huggingface.co/docs/transformers/main/en/chat_templating
messages = [
    {
        "role": "system",
        "content": "You are a friendly chatbot who always responds in the style of a pirate",
    },
    {"role": "user", "content": "How many helicopters can a human eat in one sitting?"},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95)
print(outputs[0]["generated_text"])

Enter fullscreen mode Exit fullscreen mode

如果您按照上述步骤操作,您应该会得到一个包含全部内容的、看起来像下面的结果。

方法二结果

GitHub链接

结论

总之,TinyLlama 展现了人工智能的进步,在高性能和资源效率之间实现了平衡。其 11 亿个参数使其适用于从 Google Colab 到本地部署的各种应用场景,确保新手和经验丰富的用户都能轻松上手。极低的硬件要求进一步提升了其易用性,为各个领域的创新人工智能交互和应用打开了大门。本指南重点介绍了 TinyLlama 在聊天自动补全和其他人工智能任务中的实用性,并得到了 GitHub 和 HuggingFace 等平台上的强大社区支持。随着人工智能的不断发展,TinyLlama 已成为这一发展历程中一款实用而强大的工具,使更先进的机器学习模型能够被更广泛的用户群体所接受。

感谢阅读!🦙🦙🦙🚀🚀🚀

继续学习,祝你编程愉快!

你可以在LinkedIn和Twitter上找到我(X)

参考

TinyLlama GitHub 项目

TinyLlama-1.1B-Chat-v1.0 on HuggingFace

TinyLlama 基地

llama.cpp 的 Python 绑定

TinyLlama 游乐场

文章来源:https://dev.to/_ken0x/tinyllama-llm-a-step-by-step-guide-to-implementing-the-11b-model-on-google-colab-1pjh