Phi-3-mini-4k-instruct 的功能测试

news2024/12/23 17:42:31

Model card 介绍

Phi-3-Mini-4K-Instruct 是一个 3.8B 参数、轻量级、最先进的开放模型,使用 Phi-3 数据集进行训练,其中包括合成数据和经过过滤的公开可用网站数据,重点是 高品质和推理密集的属性。 该型号属于 Phi-3 系列,Mini 版本有 4K 和 128K 两种变体,这是它可以支持的上下文长度(以令牌为单位)。

该模型经历了训练后过程,其中结合了监督微调和针对指令遵循和安全措施的直接偏好优化。 当根据测试常识、语言理解、数学、代码、长上下文和逻辑推理的基准进行评估时,Phi-3 Mini-4K-Instruct 在参数少于 130 亿的模型中展示了强大且最先进的性能。

资源和技术文档:

  • Phi-3 Microsoft Blog
  • Phi-3 Technical Report
  • Phi-3 on Azure AI Studio
  • Phi-3 GGUF: 4K
  • Phi-3 ONNX: 4K

预期用途

主要用例

该模型旨在用于英语的商业和研究用途。 该模型适用于需要以下功能的应用:

  1. 内存/计算受限环境
  2. 延迟限制场景
  3. 强大的推理能力(尤其是代码、数学和逻辑)

我们的模型旨在加速语言和多模式模型的研究,用作生成人工智能驱动功能的构建块。

用例注意事项

我们的模型并非针对所有下游目的而专门设计或评估。 开发人员在选择用例时应考虑语言模型的常见限制,并在特定下游用例中使用之前评估和减轻准确性、安全性和复杂性,特别是对于高风险场景。 开发人员应了解并遵守与其用例相关的适用法律或法规(包括隐私、贸易合规法等)。

本模型卡中包含的任何内容均不应解释为或视为对该模型发布所依据的许可的限制或修改。

如何使用

Phi-3 Mini-4K-Instruct 已集成到 Transformer 的开发版本 (4.40.0) 中。 在通过 pip 发布正式版本之前,请确保您正在执行以下操作之一:

  • 加载模型时,确保 trust_remote_code=True 作为 from_pretrained() 函数的参数传递。
  • 将本地 Transformer 更新到开发版本:pip uninstall -y transformers && pip install git+https://github.com/huggingface/transformers.  前面的命令是从源克隆和安装的替代方法。

电流互感器版本可以通过以下方式验证:pip list | grep transformers.

Phi-3 Mini-4K-Instruct 也可用于  HuggingChat.

分词器

Phi-3 Mini-4K-Instruct 支持高达 32064 个令牌的词汇量。 分词器 文件已经提供了可用于下游微调的占位符标记,但它们也可以扩展到模型的词汇量大小。

聊天格式

鉴于训练数据的性质,Phi-3 Mini-4K-Instruct 模型最适合使用如下聊天格式进行提示。 您可以使用通用模板将提示作为问题提供,如下所示:

<|user|>\nQuestion <|end|>\n<|assistant|>

例如:

<|system|>
You are a helpful AI assistant.<|end|>
<|user|>
How to explain Internet for a medieval knight?<|end|>
<|assistant|>

其中模型在 <|assistant|> 之后生成文本。 如果出现少量提示,则提示格式可以如下:

<|system|>
You are a helpful AI assistant.<|end|>
<|user|>
I am going to Paris, what should I see?<|end|>
<|assistant|>
Paris, the capital of France, is known for its stunning architecture, art museums, historical landmarks, and romantic atmosphere. Here are some of the top attractions to see in Paris:\n\n1. The Eiffel Tower: The iconic Eiffel Tower is one of the most recognizable landmarks in the world and offers breathtaking views of the city.\n2. The Louvre Museum: The Louvre is one of the world's largest and most famous museums, housing an impressive collection of art and artifacts, including the Mona Lisa.\n3. Notre-Dame Cathedral: This beautiful cathedral is one of the most famous landmarks in Paris and is known for its Gothic architecture and stunning stained glass windows.\n\nThese are just a few of the many attractions that Paris has to offer. With so much to see and do, it's no wonder that Paris is one of the most popular tourist destinations in the world."<|end|>
<|user|>
What is so great about #1?<|end|>
<|assistant|>

示例推理代码

此代码片段展示了如何快速开始在 GPU 上运行模型:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

torch.random.manual_seed(0)

model = AutoModelForCausalLM.from_pretrained(
    "microsoft/Phi-3-mini-4k-instruct", 
    device_map="cuda", 
    torch_dtype="auto", 
    trust_remote_code=True, 
)
tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-4k-instruct")

messages = [
    {"role": "system", "content": "You are a helpful digital assistant. Please provide safe, ethical and accurate information to the user."},
    {"role": "user", "content": "Can you provide ways to eat combinations of bananas and dragonfruits?"},
    {"role": "assistant", "content": "Sure! Here are some ways to eat bananas and dragonfruits together: 1. Banana and dragonfruit smoothie: Blend bananas and dragonfruits together with some milk and honey. 2. Banana and dragonfruit salad: Mix sliced bananas and dragonfruits together with some lemon juice and honey."},
    {"role": "user", "content": "What about solving an 2x + 3 = 7 equation?"},
]

pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
)

generation_args = {
    "max_new_tokens": 500,
    "return_full_text": False,
    "temperature": 0.0,
    "do_sample": False,
}

output = pipe(messages, **generation_args)
print(output[0]['generated_text'])

某些应用程序/框架可能在对话开始时不包含 BOS 令牌 (<s>)。 请确保包含它,因为它提供更可靠的结果。

负责任的人工智能考虑因素

与其他语言模型一样,Phi 系列模型的行为方式可能不公平、不可靠或具有攻击性。 需要注意的一些限制行为包括:

  • 服务质量:Phi 模型主要根据英文文本进行训练。 英语以外的语言的性能会更差。 训练数据中代表性较少的英语语言品种可能会比标准美式英语表现更差。
  • 伤害的表征和刻板印象的延续:这些模型可能会过度或低估某些群体的代表性,消除某些群体的代表性,或强化贬低或负面的刻板印象。 尽管训练后具有安全性,但由于不同群体的代表性水平不同或反映现实世界模式和社会偏见的训练数据中负面刻板印象示例的普遍存在,这些限制可能仍然存在。
  • 不当或攻击性内容:这些模型可能会产生其他类型的不当或攻击性内容,这可能导致在没有针对用例的额外缓解措施的情况下,不适合在敏感环境中部署。
  • 信息可靠性:语言模型可以生成无意义的内容或捏造听起来合理但不准确或过时的内容。
  • 代码范围有限:大部分 Phi-3 训练数据基于 Python,并使用常用包,例如“打字、数学、随机、集合、日期时间、itertools”。 如果模型生成的 Python 脚本使用其他包或其他语言的脚本,我们强烈建议用户手动验证所有 API 使用情况。

开发人员应采用负责任的人工智能最佳实践,并负责确保特定用例符合相关法律法规(例如隐私、贸易等)。 需要考虑的重要领域包括:

  • 分配:如果没有进一步的评估和额外的去偏差技术,模型可能不适合可能对法律地位或资源或生活机会的分配(例如:住房、就业、信贷等)产生重大影响的场景。
  • 高风险场景:开发人员应评估在高风险场景中使用模型的适用性,在这些场景中,不公平、不可靠或令人反感的输出可能会造成极高的成本或导致伤害。 这包括在准确性和可靠性至关重要的敏感或专家领域提供建议(例如:法律或健康建议)。 应根据部署上下文在应用程序级别实施其他保护措施。
  • 错误信息:模型可能会产生不准确的信息。 开发人员应遵循透明度最佳实践,并告知最终用户他们正在与人工智能系统进行交互。 在应用程序级别,开发人员可以构建反馈机制和管道,以在特定于用例的上下文信息中进行地面响应,这种技术称为检索增强生成(RAG)。
  • 有害内容的生成:开发人员应评估其上下文的输出,并使用适合其用例的可用安全分类器或自定义解决方案。
  • 滥用:可能存在其他形式的滥用,例如欺诈、垃圾邮件或恶意软件制作,开发人员应确保其应用程序不违反适用的法律和法规。

训练模型

  • 架构:Phi-3 Mini-4K-Instruct 有 3.8B 参数,是一个密集的仅解码器 Transformer 模型。 该模型通过监督微调 (SFT) 和直接偏好优化 (DPO) 进行微调,以确保符合人类偏好和安全准则。
  • 输入:文本。 它最适合使用聊天格式的提示。
  • 上下文长度:4K 令牌
  • GPU:512 H100-80G
  • 培训时间:7天
  • 训练数据:3.3T 代币
  • 输出:响应输入生成的文本
  • 日期:我们的模型在 2024 年 2 月至 4 月期间接受训练
  • 状态:这是在离线数据集上训练的静态模型,截止日期为 2023 年 10 月。随着我们改进模型,可能会发布调整模型的未来版本。

数据集

我们的训练数据包括多种来源,总计 3.3 万亿个代币,并且是以下内容的组合

  1. 公开的文档经过严格的质量筛选,精选出高质量的教育数据和代码;
  2. 新创建的合成“教科书式”数据,用于教授数学、编码、常识推理、世界常识(科学、日常活动、心理理论等);
  3. 高质量的聊天格式监督数据涵盖各种主题,以反映人类在不同方面的偏好,例如遵循指令、诚实、诚实和乐于助人。

微调

此处提供了带有 TRL 和 Accelerate 模块的多 GPU 监督微调 (SFT) 的基本示例。

基准测试

我们报告了 Phi-3-Mini-4K-Instruct 在标准开源基准上的结果,衡量模型的推理能力(常识推理和逻辑推理)。 我们与 Phi-2、Mistral-7b-v0.1、Mixtral-8x7b、Gemma 7B、Llama-3-8B-Instruct 和 GPT-3.5 进行比较。

所有报告的数字都是通过完全相同的管道生成的,以确保这些数字具有可比性。 由于评估中的选择略有不同,这些数字可能与其他公布的数字有所不同。

按照现在的标准,我们在温度为 0 时使用少样本提示来评估模型。提示和样本次数是 Microsoft 评估语言模型的内部工具的一部分,特别是我们没有对 Phi 的管道进行优化 -3。 更具体地说,我们不会更改提示、选择不同的少数样本、更改提示格式或对模型进行任何其他形式的优化。

每个基准列出了 k 镜头示例的数量。

Phi-3-Mini-4K-In
3.8b
Phi-3-Small
7b (preview)
Phi-3-Medium
14b (preview)
Phi-2
2.7b
Mistral
7b
Gemma
7b
Llama-3-In
8b
Mixtral
8x7b
GPT-3.5
version 1106
MMLU
5-Shot
68.875.378.256.361.763.666.568.471.4
HellaSwag
5-Shot
76.778.783.253.658.549.871.170.478.8
ANLI
7-Shot
52.855.058.742.547.148.757.355.258.1
GSM-8K
0-Shot; CoT
82.586.490.861.146.459.877.464.778.1
MedQA
2-Shot
53.858.269.840.949.650.060.562.263.4
AGIEval
0-Shot
37.545.049.729.835.142.142.045.248.4
TriviaQA
5-Shot
64.059.173.345.272.375.267.782.285.8
Arc-C
10-Shot
84.990.791.975.978.678.382.887.387.4
Arc-E
10-Shot
94.697.198.088.590.691.493.495.696.3
PIQA
5-Shot
84.287.888.260.277.778.175.786.086.6
SociQA
5-Shot
76.679.079.468.374.665.573.975.968.3
BigBench-Hard
0-Shot
71.775.082.559.457.359.651.569.768.32
WinoGrande
5-Shot
70.882.581.254.754.255.66562.068.8
OpenBookQA
10-Shot
83.288.486.673.679.878.682.685.886.0
BoolQ
0-Shot
77.682.986.5--72.266.080.977.679.1
CommonSenseQA
10-Shot
80.280.382.669.372.676.27978.179.6
TruthfulQA
10-Shot
65.068.174.8--52.153.063.260.185.8
HumanEval
0-Shot
59.159.154.747.028.034.160.437.862.2
MBPP
3-Shot
53.871.473.760.650.851.567.760.277.8

软件

  • PyTorch
  • DeepSpeed
  • Transformers
  • Flash-Attention

硬件

请注意,默认情况下,Phi-3-mini 模型使用闪存注意力,这需要某些类型的 GPU 硬件才能运行。 我们在以下 GPU 类型上进行了测试:

英伟达 A100
英伟达A6000
英伟达 H100

如果您想在以下平台上运行模型:

NVIDIA V100 或更早一代 GPU:使用 attn_implementation="eager" 调用 AutoModelForCausalLM.from_pretrained()
CPU:使用GGUF量化模型4K
GPU、CPU 和移动设备上的优化推理:使用 ONNX 模型 4K

跨平台支持
ONNX 运行时生态系统现在支持跨平台和硬件的 Phi-3 Mini 模型。 您可以在此处找到优化的 Phi-3 Mini-4K-Instruct ONNX 模型。

优化的 Phi-3 模型也以 ONNX 格式发布,可跨设备(包括服务器平台、Windows、Linux 和 Mac 桌面以及移动 CPU)在 CPU 和 GPU 上与 ONNX Runtime 一起运行,并具有最适合每个目标的精度 。 DirectML 支持让开发人员能够跨 AMD、Intel 和 NVIDIA GPU 为 Windows 设备大规模提供硬件加速。
ONNX Runtime 与 DirectML 一起为一系列 CPU、GPU 和移动设备上的 Phi-3 提供跨平台支持。

以下是我们添加的一些优化配置:

  1. int4 DML 的 ONNX 模型:通过 AWQ 量化为 int4
  2. 适用于 fp16 CUDA 的 ONNX 模型
  3. int4 CUDA 的 ONNX 模型:通过 RTN 量化为 int4
  4. 适用于 int4 CPU 和移动设备的 ONNX 模型:通过 RTN 量化为 int4

这是技术报告。

!pip install llama-index llama-index-llms-huggingface llama-index-embeddings-huggingface transformers accelerate bitsandbytes llama-index-readers-web matplotlib flash-attn
hf_token = "hf_"

设置 数据

from llama_index.readers.web import BeautifulSoupWebReader

url = "https://www.theverge.com/2023/9/29/23895675/ai-bot-social-network-openai-meta-chatbots"

documents = BeautifulSoupWebReader().load_data([url])

LLM

from llama_index.llms.huggingface import HuggingFaceLLM


def messages_to_prompt(messages):
    prompt = ""
    system_found = False
    for message in messages:
        if message.role == "system":
            prompt += f"<|system|>\n{message.content}<|end|>\n"
            system_found = True
        elif message.role == "user":
            prompt += f"<|user|>\n{message.content}<|end|>\n"
        elif message.role == "assistant":
            prompt += f"<|assistant|>\n{message.content}<|end|>\n"
        else:
            prompt += f"<|user|>\n{message.content}<|end|>\n"

    # trailing prompt
    prompt += "<|assistant|>\n"

    if not system_found:
        prompt = (
            "<|system|>\nYou are a helpful AI assistant.<|end|>\n" + prompt
        )

    return prompt


llm = HuggingFaceLLM(
    model_name="microsoft/Phi-3-mini-4k-instruct",
    model_kwargs={
        "trust_remote_code": True,
    },
    generate_kwargs={"do_sample": True, "temperature": 0.1},
    tokenizer_name="microsoft/Phi-3-mini-4k-instruct",
    query_wrapper_prompt=(
        "<|system|>\n"
        "You are a helpful AI assistant.<|end|>\n"
        "<|user|>\n"
        "{query_str}<|end|>\n"
        "<|assistant|>\n"
    ),
    messages_to_prompt=messages_to_prompt,
    is_chat_model=True,
)
Loading checkpoint shards:   0%|          | 0/2 [00:00<?, ?it/s]
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
from llama_index.core import Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

Settings.llm = llm
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

Index Setup 指数设置

from llama_index.core import VectorStoreIndex

vector_index = VectorStoreIndex.from_documents(documents)
from llama_index.core import SummaryIndex

summary_index = SummaryIndex.from_documents(documents)

有用的导入/日志记录

from llama_index.core.response.notebook_utils import display_response
import logging
import sys

logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

基本查询引擎

紧凑(默认)Compact (default)

query_engine = vector_index.as_query_engine(response_mode="compact")

response = query_engine.query("How do OpenAI and Meta differ on AI tools?")

display_response(response)
Batches:   0%|          | 0/1 [00:00<?, ?it/s]
WARNING:transformers_modules.microsoft.Phi-3-mini-4k-instruct.240d36176caf025230489b7a56e895d9e5b845f7.modeling_phi3:You are not running the flash-attention implementation, expect numerical differences.
You are not running the flash-attention implementation, expect numerical differences.

Final Response:

OpenAI 和 Meta 在使用人工智能工具的方法上有所不同。 OpenAI 倾向于将其产品展示为生产力工具,专注于完成工作的简单实用程序。 另一方面,从事娱乐业务的 Meta 开发了自己的生成人工智能和语音用途,为其消息应用程序创建了 28 个个性驱动的聊天机器人。 这些聊天机器人的声音来自 Charli D'Amelio、Dwyane Wade、Kendall Jenner、MrBeast、Snoop Dogg、Tom Brady 和 Paris Hilton 等名人。 虽然 OpenAI 的 ChatGPT 主要是用于生成文本的语言模型,但 Meta 的 AI 工具更专注于通过个性驱动的聊天机器人创建引人入胜且有趣的交互。

细化 refine

query_engine = vector_index.as_query_engine(response_mode="refine")

response = query_engine.query("How do OpenAI and Meta differ on AI tools?")

display_response(response)

Batches: 0%| | 0/1 [00:00<?, ?it/s]

Final Response:

OpenAI 和 Meta 对 AI 工具有不同的看法。 OpenAI 主要专注于创建作为生产力辅助工具的人工智能工具,帮助用户更有效地完成任务。 例如,他们对 ChatGPT 的最新更新引入了语音功能,使该工具更易于使用和通用。 另一方面,以娱乐业务而闻名的Meta,则以独特的方式开发了AI工具。 他们推出了 28 个个性驱动的聊天机器人,其中包括 Charli D'Amelio 和 Tom Brady 等名人的声音,用于他们的消息应用程序中。 这些聊天机器人旨在提供独特且引人入胜的用户体验。

树总结

query_engine = vector_index.as_query_engine(response_mode="tree_summarize")

response = query_engine.query("How do OpenAI and Meta differ on AI tools?")

display_response(response)

Batches: 0%| | 0/1 [00:00<?, ?it/s]

Final Response:

OpenAI 和 Meta 在使用人工智能工具的方法上有所不同。 OpenAI 倾向于将其产品展示为生产力工具,专注于完成工作的简单实用程序。 另一方面,从事娱乐业务的 Meta 开发了自己的生成人工智能和语音用途,为其消息应用程序创建了 28 个个性驱动的聊天机器人。 这些聊天机器人的声音来自 Charli D'Amelio、Dwyane Wade、Kendall Jenner、MrBeast、Snoop Dogg、Tom Brady 和 Paris Hilton 等名人。 虽然 OpenAI 的 ChatGPT 主要是用于各种任务的语言模型,但 Meta 的 AI 工具更专注于通过其消息应用程序提供娱乐和个性化体验。

路由器查询引擎

from llama_index.core.tools import QueryEngineTool, ToolMetadata

vector_tool = QueryEngineTool(
    vector_index.as_query_engine(),
    metadata=ToolMetadata(
        name="vector_search",
        description="Useful for searching for specific facts.",
    ),
)

summary_tool = QueryEngineTool(
    summary_index.as_query_engine(response_mode="tree_summarize"),
    metadata=ToolMetadata(
        name="summary",
        description="Useful for summarizing an entire document.",
    ),
)

单选择器

from llama_index.core.query_engine import RouterQueryEngine

query_engine = RouterQueryEngine.from_defaults(
    [vector_tool, summary_tool], select_multi=False
)

response = query_engine.query("What was mentioned about Meta?")

display_response(response)
INFO:llama_index.core.query_engine.router_query_engine:Selecting query engine 0: Useful for searching for specific facts..
Selecting query engine 0: Useful for searching for specific facts..
Batches:   0%|          | 0/1 [00:00<?, ?it/s]

Final Response:
​​​​​​​
Meta 是一家主要从事娱乐业务的公司,它也在构建 LLM(大型语言模型),并发现了自己在生成人工智能和语音方面的用途。 他们推出了 28 个用于消息应用程序的个性化聊天机器人,Charli D'Amelio、Dwyane Wade、Kendall Jenner、MrBeast、Snoop Dogg、Tom Brady 和 Paris Hilton 等名人为这些聊天机器人配音。

多重选择器

from llama_index.core.query_engine import RouterQueryEngine

query_engine = RouterQueryEngine.from_defaults(
    [vector_tool, summary_tool],
    select_multi=True,
)

response = query_engine.query(
    "What was mentioned about Meta? Summarize with any other companies mentioned in the entire document."
)

display_response(response)
INFO:llama_index.core.query_engine.router_query_engine:Selecting query engine 1: Useful for summarizing an entire document, which is needed to provide a summary about Meta and any other companies mentioned..
Selecting query engine 1: Useful for summarizing an entire document, which is needed to provide a summary about Meta and any other companies mentioned..

Final Response:

据周三透露,娱乐行业公司 Meta 正在开发自己的生成人工智能和语音用途。 他们推出了 28 个用于 Meta 消息应用程序的个性驱动聊天机器人,Charli D'Amelio、Dwyane Wade、Kendall Jenner、MrBeast、Snoop Dogg、Tom Brady 和 Paris Hilton 等名人都为这项工作献出了自己的力量。 这些聊天机器人带有简短且常常令人尴尬的描述,Meta 计划将其人工智能角色放置在其产品的每个主要表面上,有可能将社交信息转变为部分合成的社交网络。

文件中提到的另一家公司OpenAI倾向于将其产品定位为生产力工具,而Meta则涉足娱乐业务。 OpenAI 的 ChatGPT 已经发展成为一种更有用的工具,其语音功能可能会导致更具同理心和参与度的社交网络。 该文件还提到了人工智能生成图像的潜力,Meta 的消息应用程序引入了新的贴纸。

该文件还简要介绍了

子问题查询引擎

from llama_index.core.tools import QueryEngineTool, ToolMetadata

vector_tool = QueryEngineTool(
    vector_index.as_query_engine(),
    metadata=ToolMetadata(
        name="vector_search",
        description="Useful for searching for specific facts.",
    ),
)

summary_tool = QueryEngineTool(
    summary_index.as_query_engine(response_mode="tree_summarize"),
    metadata=ToolMetadata(
        name="summary",
        description="Useful for summarizing an entire document.",
    ),
)
import nest_asyncio

nest_asyncio.apply()
from llama_index.core.query_engine import SubQuestionQueryEngine

query_engine = SubQuestionQueryEngine.from_defaults(
    [vector_tool, summary_tool],
    verbose=True,
)

response = query_engine.query(
    "What was mentioned about Meta? How Does it differ from how OpenAI is talked about?"
)

display_response(response)
Generated 3 sub questions.
[vector_search] Q: What are the key points mentioned about Meta in documents?
Batches:   0%|          | 0/1 [00:00<?, ?it/s]
[vector_search] A: 1. Meta is building large language models (LLMs) and generative AI, similar to OpenAI.

2. Meta has developed 28 personality-driven chatbots for its messaging apps, featuring voices of celebrities like Charli D'Amelio, Dwyane Wade, Kendall Jenner, MrBeast, Snoop Dogg, Tom Brady, and Paris Hilton.

3. Meta's chatbots are designed to have brief and often cringe-worthy character descriptions, with MrBeast's Zach being described as "MrBeast, the guy who will roast you because he cares."

4. Meta's chatbots are intended to provide users with a taste of interacting with AI, allowing them to get a feel for AI Snoop Dogg before any potential issues are ironed out.

5. Meta's chatbots are seen as a step towards a synthetic social network, where AI characters will be present on every major surface of the company's products, including Facebook pages, Instagram accounts, and messaging inboxes.

6.
[vector_search] Q: What are the key points mentioned about OpenAI in documents?
Batches:   0%|          | 0/1 [00:00<?, ?it/s]
[vector_search] A: 1. OpenAI announced the latest updates for ChatGPT, including a feature that allows users to interact with its large language model via voice.

2. The addition of a voice to ChatGPT gives it a hint of personality, making it feel more powerful as a mobile app and potentially more empathetic and helpful.

3. OpenAI's products are typically presented as productivity tools, but the company is also exploring uses for generative AI and voices in the entertainment industry.

4. OpenAI has developed 28 personality-driven chatbots for use in Meta's messaging apps, with celebrity voices lending their personalities to the bots.

5. The voice feature for ChatGPT is currently rolling out to ChatGPT Plus subscribers, with free users expected to gain access in the future.
[summary] Q: How does Meta differ from OpenAI in terms of mentioned facts?
[summary] A: Meta and OpenAI differ in their approach and applications of artificial intelligence (AI) based on the mentioned facts. OpenAI primarily presents its products as productivity tools, focusing on simple utilities for getting things done, such as the ChatGPT AI that can now provide voice responses and offer pep talks. On the other hand, Meta, which is in the entertainment business, is building its own uses for generative AI and voices, creating personality-driven chatbots for its messaging apps. These chatbots are designed to mimic celebrities and offer unique interactions, such as AI Taylor Swift or MrBeast. While OpenAI's ChatGPT is more focused on productivity and utility, Meta's AI characters aim to provide entertainment and novelty, potentially transforming social networking into a partially synthetic experience.

Final Response:

Meta 参与了大型语言模型和生成式人工智能的创建,与 OpenAI 类似,但它采取了独特的方法,为其消息应用程序开发个性驱动的聊天机器人。 这些聊天机器人具有名人的声音,旨在提供独特的互动,例如流行人物的人工智能版本。 相比之下,OpenAI 的重点是生产力工具,其 ChatGPT AI 提供语音响应和基于实用程序的交互。 Meta 的努力更倾向于娱乐和合成社交网络的潜力,而 OpenAI 则强调生产力和效率的实际应用。

SQL查询引擎

import locale

locale.getpreferredencoding = lambda: "UTF-8"
!curl "https://www.sqlitetutorial.net/wp-content/uploads/2018/03/chinook.zip" -O "./chinook.zip"
!unzip "./chinook.zip"
from sqlalchemy import (
    create_engine,
    MetaData,
    Table,
    Column,
    String,
    Integer,
    select,
    column,
)

engine = create_engine("sqlite:///chinook.db")
from llama_index.core import SQLDatabase

sql_database = SQLDatabase(engine)
from llama_index.core.indices.struct_store import NLSQLTableQueryEngine

query_engine = NLSQLTableQueryEngine(
    sql_database=sql_database,
    tables=["albums", "tracks", "artists"],
)
response = query_engine.query("What are some albums? Limit to 5.")

display_response(response)
INFO:llama_index.core.indices.struct_store.sql_retriever:> Table desc str: Table 'albums' has columns: AlbumId (INTEGER), Title (NVARCHAR(160)), ArtistId (INTEGER), and foreign keys: ['ArtistId'] -> artists.['ArtistId'].

Table 'tracks' has columns: TrackId (INTEGER), Name (NVARCHAR(200)), AlbumId (INTEGER), MediaTypeId (INTEGER), GenreId (INTEGER), Composer (NVARCHAR(220)), Milliseconds (INTEGER), Bytes (INTEGER), UnitPrice (NUMERIC(10, 2)), and foreign keys: ['MediaTypeId'] -> media_types.['MediaTypeId'], ['GenreId'] -> genres.['GenreId'], ['AlbumId'] -> albums.['AlbumId'].

Table 'artists' has columns: ArtistId (INTEGER), Name (NVARCHAR(120)), and foreign keys: .
> Table desc str: Table 'albums' has columns: AlbumId (INTEGER), Title (NVARCHAR(160)), ArtistId (INTEGER), and foreign keys: ['ArtistId'] -> artists.['ArtistId'].

Table 'tracks' has columns: TrackId (INTEGER), Name (NVARCHAR(200)), AlbumId (INTEGER), MediaTypeId (INTEGER), GenreId (INTEGER), Composer (NVARCHAR(220)), Milliseconds (INTEGER), Bytes (INTEGER), UnitPrice (NUMERIC(10, 2)), and foreign keys: ['MediaTypeId'] -> media_types.['MediaTypeId'], ['GenreId'] -> genres.['GenreId'], ['AlbumId'] -> albums.['AlbumId'].

Table 'artists' has columns: ArtistId (INTEGER), Name (NVARCHAR(120)), and foreign keys: .

Final Response:

以下是五张热门专辑:

  1. “对于那些即将摇滚的人,我们向你们致敬”
  2. “竭尽全力”
  3. “不安和狂野”
  4. “让这里有摇滚”
  5. 《大人物》

这些专辑在音乐界产生了重大影响,并受到歌迷和评论家的高度评价。

response = query_engine.query("What are some artists? Limit it to 5.")

display_response(response)

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1633475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运营版游戏陪玩平台源码/tt语音聊天/声优服务/陪玩系统源码开黑/约玩源码

简述 一个人的游戏叫孤独&#xff0c;一群人的游戏才是乐趣&#xff0c;随着电竞产业在国内的快速发展&#xff0c;游戏陪练行业也迅速成长&#xff0c;现在很多游戏玩家为了追求更高质量的游戏体验感&#xff0c;往往会在玩游戏的过程中找陪练&#xff0c;通过陪玩系统进行预…

MySQL随便聊----之MySQL的调控按钮-启动选项和系统变量

-------MySQL是怎么运行的 基本介绍 如果你用过手机&#xff0c;你的手机上一定有一个设置的功能&#xff0c;你可以选择设置手机的来电铃声、设置音量大小、设置解锁密码等等。假如没有这些设置功能&#xff0c;我们的生活将置于尴尬的境地&#xff0c;比如在图书馆里无法把手…

react项目发布后,浏览器源码泄露的解决方案

在使用create-react-app时&#xff0c;打包生产环境npm run build&#xff0c;浏览器打开后仍然是可以看到源码的。源码都没上传&#xff0c;为啥线上能看到源码 。 例&#xff1a;线上与服务器 线上与源码 react-scripts build和npm run build 有什么不同 react-scripts bui…

spring高级篇(五)

1、参数解析器 前篇提到过&#xff0c;参数解析器是HandlerAdapters中的组件&#xff0c;用于解析controller层方法中加了注解的参数信息。 有一个controller&#xff0c;方法的参数加上了各种注解&#xff1a; public class Controller {public void test(RequestParam("…

Redux Toolkit 中持久化路由配置数组的实践指南

要将路由配置数组保存到 Redux Toolkit 中并持久化,你可以按照以下步骤进行操作: 创建一个 Slice 来管理路由配置 在 Redux Toolkit 中,我们使用 createSlice 来创建一个 slice,用于管理路由配置的状态。 import { createSlice } from reduxjs/toolkit;const routesSlice c…

【重磅】史上最全企业数字化转型项目流程管理资料大合集下载(2.5G,1429份)

重磅分享&#xff0c;史上最全企业数字化转型项目流程管理资料大合集&#xff0c;共1429份。 一、项目管理实战工具大全&#xff08;甘特图、表格、项目阶段文档等527份&#xff09; 二、项目管理流程规范制度&#xff08;各类流程制度共86份&#xff09; 三、项目管理模板&…

编译Qt6.5.3LTS版本(Mac/Windows)的mysql驱动(附带编译后的全部文件)

文章目录 0 背景1 编译过程2 福利参考 0 背景 因为项目要用到对MYSQL数据库操作&#xff0c;所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动&#xff0c;但是Qt本身不自带MYSQL驱动&#xff0c;需要自行编译。网上有很多qt之前版本的mysql驱动&#xff0c;但是没有找到qt6…

Python数据结构与算法(1):将序列分解为单独的变量

问题 现在有一个包含 N 个元素的元组或者是序列&#xff0c;怎样将它里面的值解压后同时赋值给 N 个变量&#xff1f; 解决方案 任何的序列&#xff08;或者是可迭代对象&#xff09;可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构必须与序…

【数据结构7-1-查找-线性-二分法-二叉树-哈希表】

目录 1 查找基本概念2 线性表的查找2.1 顺序查找2.2 二分法查找2.3 分块查找 3 树表的查询3.1 二叉排序树3.1.1 定义3.1.2 二叉树的建立、遍历、查找、增加、删除&#xff1a;3.1.3 代码实现&#xff1a; 3.2 平衡二叉树3.2.1 平横因子3.2.2 不平横树的调整-左旋3.2.3 不平横树…

Unity 数字字符串逗号千分位

使用InputField时处理输入的数字型字符串千分位自动添加逗号&#xff0c;且自动保留两位有效数字 输入&#xff1a;123 输出&#xff1a;123.00 输入&#xff1a;12345 输出&#xff1a;12,345.00 代码非常简单 using UnityEngine; using TMPro;public class …

[机器学习系列]深入解析K-Means聚类算法:理论、实践与优化

目录 一、KMeans (一)Kmeans简介 (二)Kmeans作用和优点 (三)Kmeans局限和缺点 (四)Kmeans步骤 (五)如何选取最佳的K值的三种方法 (六)手肘法和目标函数的变化两种确定K值方法的区别 (七)如何选取第一次迭代的K个类中心------KMeans方法 (八)KMeans的常用参数介绍 二、…

【C语言刷题系列】对数字添加逗号

目录 一、问题描述 二、解题思路 三、源代码 拓展&#xff1a; 个人主页&#xff1a; 倔强的石头的博客 系列专栏 &#xff1a;C语言指南 C语言刷题系列 一、问题描述 二、解题思路 题目的要求&#xff0c;即对于一个较大的整数&#xff0c;每三位数字之间添加…

【go项目01_学习记录day01】

博客系统 1 vscode开发go项目插件推荐1.1 CtrlShiftP&#xff08;俗称万能键&#xff09; &#xff1a;打开命令面板。在打开的输入框内&#xff0c;可以输入任何命令。1.2 开发时&#xff0c;我们需要经常查阅 Go 语言官方文档&#xff0c;可惜因国内访问外网不稳定&#xff0…

自己手写了一个大模型RAG项目-05.基于知识库的大模型问答

大家好&#xff0c;我是程序锅。 github上的代码封装程度高&#xff0c;不利于小白学习入门。 常规的大模型RAG框架有langchain等&#xff0c;但是langchain等框架源码理解困难&#xff0c;debug源码上手难度大。 因此&#xff0c;我写了一个人人都能看懂、人人都能修改的大…

03-JAVA设计模式-解析器模式

解释器模式 什么是解析器模式 在Java中&#xff0c;解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子…

unity3d使用3D WebView播放网页中的视频

Unity2021.3.35f1&#xff0c;硬件ESP32-Cam&#xff0c;3D WebView插件 1.新建工程&#xff0c;导入3D WebView for Winfows和3D WebView for Android 2.打开场景Assets\Vuplex\WebView\Demos\Scenes\2_CanvasWebViewDemo 3.修改Canvas的Render Mode为Screen Space-Camera&am…

30秒出服装设计稿,森马用Serverless+AIGC 整“新活”!

“创新项目如何去赋能我们的业务&#xff0c;这件事情在森马很重要。阿里云函数计算帮我们屏蔽掉了想把AI落地到实际业务场景中 GPU 算力资源储备、采购成本、技术门槛等很多难题&#xff0c;从而迅速做出决策&#xff0c;快人一步站在正确的起点&#xff0c;体验新技术对整个服…

『春招实习』2023年3月春招实习求职经历

『春招实习』2023年3月春招实习求职经历 简介货拉拉一面杭州吉里一面传墨科技一面 简介 3月初我便开始陆续投递简历&#xff0c;直观的感受就是【投递的太晚了】&#xff0c;很多公司很早就开始招聘实习生了。 但是自己一直在担心没准备好&#xff0c;所以就想着再准备一天就投…

数据结构单链表”质检员“*2

1.随机链表的逻辑结构复制 原题链接&#xff1a; . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode-cn.com/problems/copy-list-with…

机器学习:深入解析SVM的核心概念(问题与解答篇)【三、核函数】

核函数 **问题一&#xff1a;为什么说是有限维就一定存在高维空间可分呢&#xff1f;**原始空间与特征空间为什么映射到高维空间可以实现可分核函数的作用 **问题二&#xff1a;最终怎么得到函数**从对偶问题到决策函数的步骤&#xff1a;结论 **问题三&#xff1a;为什么说特征…