生成式人工智能/大语言模型

使用 StarCoder2 释放您的 LLM 编码潜力

编码在数字时代至关重要,但它也可能繁琐且耗时。正因如此,许多开发者都在寻找方法,借助 NVIDIA DLSS 3 和 NVIDIA DLSS 3,大型语言模型 (LLM)。这些模型基于经许可的 GitHub 存储库中的大量代码进行训练,并且无需人工干预即可生成、分析和记录代码。

在本文中,我们将探索使用 StarCoder2 的代码 LLM 的最新进展。StarCoder2 是一种新的社区模型,支持数百种编程语言,并提供一流的准确性。然后,我们尝试使用 NVIDIA AI 基础模型和端点,使用分步指令对其进行自定义,并将其部署到生产环境中。

StarCoder2

StarCoder2,由 BigCode 与 NVIDIA 合作,是面向开发者的非常先进的代码 LLM.您可以使用模型的功能快速构建应用程序,包括代码完成、自动填充、高级代码摘要以及使用自然语言检索相关代码片段。

StarCoder2 系列包括 3B、7B 和 15B 参数模型,让您可以灵活地选择适合您用例和计算资源的模型。本文将重点介绍 15B 模型。

性能

在热门的编程基准测试中,15B 模型的性能优于领先的开放代码 LLM,并在同类产品中提供卓越的性能。作为参考,原始 Starcoder 的准确率为 30%.StarCoder2 性能非常适合企业应用,因为它在优化生产成本的同时提供卓越的推理能力。

Starcoder2 15B model benchmark shows that the model provides high performance at both Pass@1 and Pass@10 with accuracy at 46% and 65% respectively.
图 1.StarCoder2 15B 在 HumanEval 基准测试中提供更高的准确性

凭借 16000 个令牌的上下文长度,Starcoder 模型可以处理更长的代码库和详细的编码指令,更好地了解代码结构,并提供改进的代码文档。

接受负责任的培训,面向所有人

这些模型使用负责任的来源数据进行训练,这些数据来自 GitHub 的许可数据,包含 1 万亿个令牌。这包括 600 多种编程语言、Git 提交、GitHub 问题和 Jupyter Notebooks.模型在整个过程(包括来源、处理和翻译)中完全透明。此外,个人可以将其代码排除在模型之外。

StarCoder2 模型根据 BigCode Open RAIL-M 许可证公开提供,可确保免版税分发,并简化公司将模型集成到其用例和产品中的流程。

体验 StarCoder2

StarCoder2 是 NVIDIA AI 基础模型和端点 提供对社区和 NVIDIA 构建的一系列精心策划的生成式 AI 模型的访问权限,以便在企业应用程序中体验、自定义和部署。

StarCoder2 可以在 NVIDIA AI 游乐园和其他领先模型(例如 Nemotron-3, Mixtral 8X7B, Lama 70B 以及 稳定扩散

模型提供。NeMo格式,可借助 NVIDIA NeMo 轻松自定义,并针对性能进行了优化,NVIDIA TensorRT-LLM

使用 TensorRT-LLM 优化模型

NVIDIA 使用 TensorRT-LLM 优化了模型。TensorRT – LLM 是一个开源库,用于定义、优化和执行用于推理的大型语言模型。这使您能够在推理期间实现更高的吞吐量和更低的延迟,同时降低生产中的计算成本。

通过优化注意力机制、模型并行性技术(如 Tensor Parallelism 和 Pipeline Parallelism)、动态批处理、量化等实现的。如需查看优化的完整列表或了解更多信息,请参阅 TensorRT-LLM GitHub

通过图形用户界面体验模型

现在,您可以直接在浏览器中使用简单的 Playground 用户界面体验 StarCoder2 NGC 目录 查看在完全加速的堆栈上运行的个模型生成的结果。

Screenshot of the Starcoder 2 15B model running in the NGC catalog user interface, where the model understands user prompts and generates code based on the input.
图 2.通过用户提示生成代码的 Starcoder2 模型示例t

使用 API

如果您想使用 API 测试模型,我们可为您提供帮助。登录 NGC 目录后,您可以访问 NVIDIA Cloud Credits.这些 Credits 可让您将应用程序连接到 API 端点,并大规模体验模型。

您可以使用能够向 StarCoder2 AI 游乐园的端点发出 REST 请求的任何语言或框架。以下示例使用 Python 以及请求库。继续之前,请确保您拥有能够执行 Python 代码的环境,例如 Jupyter Notebook。

获取 NGC 目录 API 密钥

在“API”选项卡上,选择生成密钥.如果您尚未注册,系统会提示您注册或登录。

在代码中设置 API 密钥:

# Will be used to issue requests to the endpoint 
API_KEY = “nvapi-xxxx“

发送推理请求

Starcoder2 可用于代码完成,以提高开发者的工作效率,生成接下来的几行给定的部分编写代码。

import requests

invoke_url = "https://api.nvcf.nvidia.com/v2/nvcf/pexec/functions/835ffbbf-4023-4cef-8f48-09cb5baabe5f"
fetch_url_format = "https://api.nvcf.nvidia.com/v2/nvcf/pexec/status/"

headers = {
    "Authorization": "Bearer {}".format(API_KEY),
    "Accept": "application/json",
}

payload = {
  "prompt": "X_train, y_train, X_test, y_test = train_test_split(X, y, test_size=0.1) #Train a logistic regression model, predict the labels on the test set and compute the accuracy score",
  "temperature": 0.1,
  "top_p": 0.7,
  "max_tokens": 512,
  "seed": 42,
  "stream": False
}

# re-use connections
session = requests.Session()

response = session.post(invoke_url, headers=headers, json=payload)

while response.status_code == 202:
    request_id = response.headers.get("NVCF-REQID")
    fetch_url = fetch_url_format + request_id
    response = session.get(fetch_url, headers=headers)

response.raise_for_status()
response_body = response.json()
# The response body contains additional metadata along with completion text. Visualizing just the completion.
print(response_body['choices'][0]['text'])

在本示例中,Starcoder2 会生成 Python 代码,以按照提示训练逻辑回归模型,并提高测试集的计算准确率。

自定义并拥有您的模型

我们明白了。大多数企业不会按原样使用模型。您需要使用您的领域和公司特定的专业语言训练模型,以便模型可以提供高精度结果。 NVIDIA 可以使用 NeMo 轻松自定义模型。

模型已经转换为.nemo格式,使您能够利用各种 NeMo 功能,包括简化的 LLM 数据管护、RLHF 等热门自定义技术,以及可在任何地方部署的容器化软件。

您可以在本视频中找到使用高效参数微调 (PEFT) 技术自定义此模型的演示,notebook

随时随地满怀信心地进行部署

我们 NVIDIA Triton 推理服务器 是一个开源 AI 模型服务平台,可简化和加速 AI 推理工作负载在生产中的部署。它帮助企业降低模型服务基础设施的复杂性,缩短在生产中部署新 AI 模型所需的时间,并提高 AI 推理和预测能力。

NVIDIA Triton 推理服务器是 NVIDIA AI Enterprise 的一部分,具有企业级支持、安全性、稳定性和可管理性。借助 Triton 推理服务器,您可以在本地或任何 CSP 部署 StarCoder2 模型。

这个 notebook 详细说明如何使用 TensorRT-LLM 进行优化,以及如何使用 Triton 推理服务器部署模型。

使用企业级 AI 软件部署模型

当 AI 模型准备好为业务运营部署时,安全性、可靠性和企业支持至关重要。

NVIDIA AI Enterprise 是一个端到端软件平台,可让每个企业都能使用生成式 AI,为生成式 AI 基础模型提供最快、最高效的运行时。它包括具有企业级安全性、支持和稳定性的 AI 框架、库和工具,可确保大规模从原型到生产的平稳过渡。

开始使用

通过用户界面或 API 试用 StarCoder2 模型,如果这适合您的应用,请使用 TensorRT-LLM 优化模型,并使用 NVIDIA NeMo

如果您要构建企业应用程序,请注册 免费的评估软件 访问 NVIDIA AI Enterprise 的框架和企业级支持,将您的应用程序投入生产。

 

Tags