昇腾社区首页
中文
注册

类QAGenerationConfig

功能描述

生成QA的参数。

函数原型

from mx_rag.cache import QAGenerationConfig
QAGenerationConfig(titles, contents, tokenizer, llm, max_tokens, qas_num)

参数说明

参数名

数据类型

可选/必选

说明

titles

List[str]

必选

标题列表,标题和正文列表一一对应。列表长度范围[1, 10000],字符串长度范围[1, 100]。

contents

List[str]

必选

正文列表,标题和正文列表一一对应。列表长度范围[1, 10000],字符串长度范围[1, 1048576]。

tokenizer

transformers.PreTrainedTokenizerBase

必选

tokenizer实例,通过AutoTokenizer.from_pretrained加载。加载外部模型有安全风险,local_files_only设置为True。

llm

Text2TextLLM

必选

大模型对象实例,具体类型请参见Text2TextLLM类

max_tokens

int

可选

用于截断正文的最大token大小,超出部分丢弃,取值范围[500, 10000],默认值为“1000”

该参数实际有效取值依赖MindIE的配置,请参考《MindIE Motor开发指南》中的“MindIE Motor组件 > MindIE Server > 配置参数说明”章节中关于“maxSeqLen”的说明。

qas_num

int

可选

生成QA对数量,取值范围[1, 10],默认值为“5”

调用示例

from paddle.base import libpaddle
from transformers import AutoTokenizer
from mx_rag.cache import QAGenerationConfig, QAGenerate
from mx_rag.llm import Text2TextLLM
from mx_rag.utils import ClientParam
llm = Text2TextLLM(base_url="https://ip:port/v1/chat/completions", model_name="llama3-chinese-8b-chat",
                   client_param=ClientParam(ca_file="/path/to/ca.crt"))
# 使用模型的tokenizer, 传入模型存放路径
tokenizer = AutoTokenizer.from_pretrained("/home/model/Llama3-8B-Chinese-Chat/", local_files_only=True)
# 可以调用MarkDownParser生成titles和contents
titles = ["2024年高考语文作文题目"]
contents = ['2024年高考语文作文试题\n新课标I卷\n阅读下面的材料,根据要求写作。(60分)\n'
            '随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少?\n'
            '以上材料引发了你怎样的联想和思考?请写一篇文章。'
            '要求:选准角度,确定立意,明确文体,自拟标题;不要套作,不得抄袭;不得泄露个人信息;不少于800字。']
config = QAGenerationConfig(titles, contents, tokenizer, llm, qas_num=1)
qa_generate = QAGenerate(config)
qas = qa_generate.generate_qa()
print(qas)