随着科技的飞速发展,人工智能(AI)已经从科幻小说的幻想变成了现实世界中不可或缺的一部分。最近,斯坦福大学研究人员推出的Octopus v2模型,不仅在性能上超越了GPT-4,而且能够在智能手机等移动设备上运行,这标志着我们向移动生产力工具的新时代迈出了重要一步。

打开网易新闻 查看精彩图片

在智能手机普及的今天,人们越来越依赖这些小巧的设备来完成日常工作和生活中的各种任务。然而,传统的云环境下的大型语言模型虽然性能高,但存在隐私和成本方面的担忧。

Octopus v2的出现,解决了这些痛点,它能够在保持高准确性的同时,显著降低延迟,为用户提供快速且安全的智能服务。

Octopus v2的革命性突破:1. 20亿参数的设备上语言模型

Octopus v2是一个具有20亿参数的设备上语言模型,专为提升自动工作流程中的API调用性能而设计。它通过优化模型结构和训练方法,实现了在设备上的高效运行,减少了对云服务的依赖。

2. 显著降低延迟

Octopus v2模型在延迟上减少了约35倍,这意味着用户即使在没有网络连接的情况下,也能够享受到快速的智能服务。

3. 高准确性

实验结果显示,Octopus v2在准确性上达到了99.524%,这在移动设备上的AI模型中是前所未有的。

4. 功能令牌的引入

研究人员通过引入特殊的功能令牌,使得模型能够更直接地映射功能描述到特定的令牌,从而减少了理解上下文所需的数据量。

5. 能耗降低

这项技术的核心在于提高了模型的运行效率,同时降低了能耗,使得智能助手能够在各种边缘设备上运行。

打开网易新闻 查看精彩图片

Octopus v2的应用场景:

Octopus v2模型的应用场景非常广泛,包括但不限于:

1.智能手机

在智能手机上,Octopus v2可以作为一个全功能的智能助手,帮助用户管理日程、发送邮件、获取天气信息等。

2.汽车

在汽车上,Octopus v2可以用于导航、播放音乐、控制车内温度等,提升驾驶体验。

3.VR头盔

在虚拟现实(VR)领域,Octopus v2可以提供更加沉浸式的交互体验,如虚拟导游、游戏角色互动等。

4.个人电脑

在个人电脑上,Octopus v2可以作为一个强大的生产力工具,帮助用户自动化文档编辑、数据分析等工作。

研究亮点与技术细节:研究亮点

  • 提出一种新的方法,使得设备上的模型准确性和延迟上超越了GPT-4。

  • 通过引入新的特殊的令牌和微调方法,显著提高了功能调用的性能。

技术细节
  • 设备上模型(On-device model):直接在用户的设备上运行的人工智能模型。

  • API调用(API calling):模型通过编程接口(API)来执行特定的任务或功能。

  • 延迟(Latency):从发出请求到收到响应所经历的时间。

  • 功能令牌(Functional tokens):在模型训练中引入的特殊标记,用于表示特定的功能或操作。

打开网易新闻 查看精彩图片

数据集与模型开发:

为了训练、验证和测试阶段采用高质量数据集,研究团队用三个关键阶段创建数据集:

  1. 生成相关的查询及其关联的函数调用参数;

  2. 由适当的函数组件生成不相关的查询;

  3. 通过Google Gemini实现二进制验证支持。

研究团队编写了20个Android API描述,用于训练模型。例如,一个用于获取趋势新闻的API描述如下:

def get_trending_news (category=None, region='US', language='en', max_results=5):

"""

Fetches trending news articles based on category, region, and language.

Parameters:

- category (str, optional): News category to filter by, by default use None for all categories. Optional to provide.

- region (str, optional): ISO 3166-1 alpha-2 country code for region-specific news, by default, uses 'US'. Optional to provide.

- language (str, optional): ISO 639-1 language code for article language, by default uses 'en'. Optional to provide.

- max_results (int, optional): Maximum number of articles to return, by default, uses 5. Optional to provide.

Returns:

- list [str]: A list of strings, each representing an article. Each string contains the article's heading and URL.

"""

模型训练与评估

该研究采用Google Gemma-2B模型作为框架中的预训练模型,并采用两种不同的训练方法:完整模型训练和LoRA模型训练。

在完整模型训练中,使用AdamW优化器,学习率设置为5e-5,warm-up的step数设置为10,采用线性学习率调度器。

LoRA模型训练采用与完整模型训练相同的优化器和学习率配置,LoRA rank设置为16,并将LoRA应用于以下模块:q_proj、k_proj、v_proj、o_proj、up_proj、down_proj。其中,LoRA alpha参数设置为32。

对于两种训练方法,epoch数均设置为3。使用以下代码,就可以在单个GPU上运行

Octopus-V2-2B模型:

from transformers import AutoTokenizer, GemmaForCausalLMimport torchimport time

def inference (input_text):

start_time = time.time ()

input_ids = tokenizer (input_text, return_tensors="pt").to (model.device)

input_length = input_ids ["input_ids"].shape [1]

outputs = model.generate (

input_ids=input_ids ["input_ids"],

max_length=1024,

do_sample=False)

generated_sequence = outputs [:, input_length:].tolist ()

res = tokenizer.decode (generated_sequence [0])

end_time = time.time ()

return {"output": res, "latency": end_time - start_time}

model_id = "NexaAIDev/Octopus-v2"

tokenizer = AutoTokenizer.from_pretrained (model_id)

model = GemmaForCausalLM.from_pretrained (

model_id, torch_dtype=torch.bfloat16, device_map="auto"

)

input_text = "Take a selfie for me with front camera"

nexa_query = f"Below is the query from the users, please call the correct function and generate the parameters to call the function.\n\nQuery: {input_text} \n\nResponse:"

start_time = time.time () print ("nexa model result:\n", inference (nexa_query)) print ("latency:", time.time () - start_time,"s")

Octopus v2模型的推出,不仅为智能助手的发展打开了新的大门,也为未来的人工智能技术提供了新的可能性。

它在准确性和延迟上超越GPT-4,并且能够在各种边缘设备上部署,这无疑将极大地推动AI技术的普及和应用。

随着技术的不断进步,我们可以预见,未来每个人的智能手机都将成为一个强大的生产力工具,帮助我们更高效地完成工作,享受更加智能化的生活。

论文地址:https://arxiv.org/abs/2404.01744

模型主页:https://huggingface.co/NexaAIDev/Octopus-v2

欢迎加入星球一起讨论学习!

都看到这里了感觉得还不错,随手点个赞、在看、转发三连支持一下吧。