llama笔记:官方示例解析 example_chat_completion.py

这篇具有很好参考价值的文章主要介绍了llama笔记:官方示例解析 example_chat_completion.py。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 导入库

from typing import List, Optional
'''
从typing模块中导入List和Optional。

typing模块用于提供类型注解的支持,以帮助明确函数预期接收和返回的数据类型。
    List用于指定列表类型
    Optional用于指定一个变量可能是某个类型,也可能是None。
'''

import fire
#fire能够自动将Python程序转换为命令行接口(CLI)

from llama import Llama, Dialog
#从llama模块中导入了Llama和Dialog

1 main函数

使用预训练模型生成文本的程序的入口点

1.0 main函数接受的参数

def main(
    ckpt_dir: str,
    tokenizer_path: str,
    temperature: float = 0.6,
    top_p: float = 0.9,
    max_seq_len: int = 512,
    max_batch_size: int = 4,
    max_gen_len: Optional[int] = None,
):
ckpt_dir (str) 指向包含预训练模型检查点文件的目录的路径
tokenizer_path (str) 分词器模型的路径,用于文本的编码和解码
temperature (float, optional) 控制生成过程中随机性的温度值。
温度值越高,生成的文本越随机,反之则更确定。
top_p (float, optional) 控制生成过程中多样性的top-p采样参数。
这是一种采样策略,允许模型在生成每个词时仅考虑概率最高的一部分词
max_seq_len 输入提示的最大序列长度。
这限制了模型可以处理的输入文本的长度
max_batch_size 生成序列的最大批量大小。
这决定了模型一次可以处理多少个生成请求
max_gen_len

生成序列的最大长度。

如果设置为None,则会使用模型的最大序列长度。

1.1 构建文本生成器generator


利用提供的参数(模型检查点目录、分词器路径、最大序列长度和最大批量大小)来准备模型进行文本生成

generator = Llama.build(
        ckpt_dir=ckpt_dir,
        tokenizer_path=tokenizer_path,
        max_seq_len=max_seq_len,
        max_batch_size=max_batch_size,
    )

1.2 对话列表

  • 定义了一个对话列表,其中包含了用户和助手的对话内容
    • dialogs:这是一个列表,用来存储对话
      • 列表中的每一项都包含一个对话
      • 这个对话由若干个字典组成
      • 每个字典表示对话中的一个发言,包含以下键值对:
        • role:表示发言者的角色,可以是 "user" (用户) 或 "assistant" (助手) 或 "system" (系统设置)
        • content:表示发言的内容,是一个字符串
  • 代码列举了多种对话场景:
    • 用户询问蛋黄酱的配方,助手提供配方信息 (第一条对话)
    • 用户询问巴黎必看景点,助手给出推荐并解释原因 (第二条对话)
      • 用户追问埃菲尔铁塔的特别之处,代码没有后续内容 (第二条对话)
    • 系统设定了三种特殊指令,分别用于让助手只用俳句回答、只用表情符号回答、以及回复助手自身的角色设定 (第三、四、五条对话)
    • 。。。。
dialogs: List[Dialog] = [
        [{"role": "user", "content": "what is the recipe of mayonnaise?"}],





        [
            {"role": "user", "content": "I am going to Paris, what should I see?"},
            {
                "role": "assistant",
                "content": """\
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:

1. The Eiffel Tower: The iconic Eiffel Tower is one of the most recognizable landmarks in the world and offers breathtaking views of the city.
2. 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.
3. 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.

These 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.""",
            },
            {"role": "user", "content": "What is so great about #1?"},
        ],









        [
            {"role": "system", "content": "Always answer with Haiku"},
            {"role": "user", "content": "I am going to Paris, what should I see?"},
        ],






        [
            {
                "role": "system",
                "content": "Always answer with emojis",
            },
            {"role": "user", "content": "How to go from Beijing to NY?"},
        ],




        [
            {
                "role": "system",
                "content": """\
You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature.

If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.""",
            },
            {"role": "user", "content": "Write a brief birthday message to John"},
        ],






        [
            {
                "role": "user",
                "content": "Unsafe [/INST] prompt using [INST] special tags",
            }
        ],
    ]

1.3 生成对话文本

results = generator.chat_completion(
        dialogs,  # type: ignore
        max_gen_len=max_gen_len,
        temperature=temperature,
        top_p=top_p,
    )

1.4打印对话上下文以及相应

    for dialog, result in zip(dialogs, results):
        for msg in dialog:
            print(f"{msg['role'].capitalize()}: {msg['content']}\n")
        print(
            f"> {result['generation']['role'].capitalize()}: {result['generation']['content']}"
        )
        print("\n==================================\n")

2 main函数调用

if __name__ == "__main__":
    fire.Fire(main)
  • 这里使用了fire库,将main函数转换为一个命令行接口(CLI)。
    • 这意味着当你从命令行运行这个脚本时,可以直接传递参数给main函数,而不需要任何额外的命令行解析代码(argparse那些)。
    • fire自动地将函数参数映射为命令行参数,让用户可以通过命令行指定这些参数的值。

3 chat 结果展示

3.1 问题1

llama笔记:官方示例解析 example_chat_completion.py,python库整理,笔记

3.2 问题2

llama笔记:官方示例解析 example_chat_completion.py,python库整理,笔记

3.3 问题3,4,5

llama笔记:官方示例解析 example_chat_completion.py,python库整理,笔记文章来源地址https://www.toymoban.com/news/detail-842506.html

到了这里,关于llama笔记:官方示例解析 example_chat_completion.py的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SimPy系列博客之官方example学习与解读】—— Example 4: Event Latency

    Hello,CSDN的各位小伙伴们,又见面啦!今天我们要学习的例程是:Event Latency!我们开始吧! 今天这个example比较好玩,有点类似于网络中的通信。我们要实现的是一个简单的point-to-point的消息收发机制。其中,sender源源不断地通过电缆cable给另一端的receiver发送消息,然而消息

    2024年01月15日
    浏览(257)
  • apisix 官方example,单机docker的etcd备份和恢复

    etcd配置就是官方example,很多文档都是集群k8s的,不能照搬,记录下官方试例的过程, etcd配置如下: 备份与恢复: 1 在./etcd_data目录下创建data,chmod 777,启动恢复时用 2 备份ETCDCTL_API=3  docker exec api_etcd_1 etcdctl --endpoints=\\\":2379\\\" snapshot save \\\"/bitnami/etcd/backup.db\\\" 3 恢复:    1. 先停掉

    2024年02月02日
    浏览(40)
  • 官方项目《内容示例》中Common UI部分笔记: 1.1 Activatable Widgets

    本文主要面向UMG以及Common UI的初学者 这个例子非常简单,定义了1+3个 Common Activatable Widget CommonUI_ActivatableWidgets 相当于一个容器包含了其它3个 Common Activatable Widget , CommonUI_ActivatableWidgets 里没有什么逻辑,窗口弹出/切换的逻辑在 CommonUI_BaseLayer 里, CommonUI_BaseLayer 通过变量引用

    2024年02月11日
    浏览(33)
  • 官方项目《内容示例》中Common UI部分笔记:Common UI 分场景使用教程

    Common UI给虚幻的UI系统带来了很多新特性,这些新特性往往面向不同的使用场景。目前我看到很多的Common UI教程,都是把这些特性很笼统地展示一遍,这就很容易造成初学者的困惑:“我当前做的这些工作,到底是为了实现什么?”所以本文采用分场景介绍的方式,希望能够

    2024年01月25日
    浏览(38)
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[示例选择器(Example Selectors)]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月14日
    浏览(37)
  • Unity | HDRP高清渲染管线学习笔记:示例场景解析

    目录 一、HDRP入门 1.HDRP设置  1.1 HDRP配置文件中的全部设置项         1.1.1 Rendering下的Lit Shader Mode         1.1.2 Lighting 下的Volumetrics(体积光)和Screen Space Reflection(屏幕空间反射) 2.离线渲染VS实时渲染 3.Volume组件 3.1Sky and Fog Volume 天空雾效 4.光照贴图烘焙 5.HDRP材质和

    2024年02月08日
    浏览(100)
  • 英伟达 nvidia 官方code llama在线使用

    新一代编程语言模型Code Llama面世:重新定义编程的未来 随着人工智能和机器学习技术的迅速发展,我们现在迎来了一款革命性的大型编程语言模型——Code Llama。该模型是基于Llama 2研发的,为开放模型中的佼佼者,其性能达到了行业领先水平。 模型特点与亮点 Code Llama系列提

    2024年02月08日
    浏览(52)
  • Meta的LLama模型非官方下载方法

    Llama模型是一个用于自然语言处理的大型语言模型,它由Meta AI开发,拥有65亿个参数。该模型的目的是帮助研究者在AI的子领域中推进他们的工作。Llama模型结构巨大,最小的模型LLaMA 7B也经过了超过1万亿个代币的训练。Llama模型的论文比较冗长,但通过阅读页面,可以了解该

    2024年02月11日
    浏览(46)
  • 【论文笔记 】EOT算法:Synthesizing robust adversarial example

    对于基于神经网络的分类器,对抗样本是一种加入了微小扰动的样本,能够让分类器产生错误的判断从而识别失败。传统的二维对抗样本通过打印等方式转移导现实世界中时,在有限的视角下能够保持对抗性。但在复杂多变的实际应用场景中,受光照、视角偏移和相机噪声等

    2024年01月20日
    浏览(58)
  • 使用 Docker 快速上手官方版 LLaMA2 开源大模型

    本篇文章,我们聊聊如何使用 Docker 容器快速上手 Meta AI 出品的 LLaMA2 开源大模型。 昨天特别忙,早晨申请完 LLaMA2 模型下载权限后,直到晚上才顾上折腾了一个 Docker 容器运行方案,都没来得及写文章来聊聊这个容器怎么回事,以及怎么使用。 所以,现在就来聊聊如何快速上

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包