Datawhale 2024 年 AI 夏令营第四期——Task1笔记

一、项目简介

Tast1项目旨在通过iFlytek Spark大模型API生成高考模拟题。具体来说,该项目利用Spark大模型根据输入的阅读材料生成多项选择题(包括题目、选项及正确答案)。这种技术可以用于教育领域,通过微调大模型实现个性化的题库构建,提高教学和测试的效率。

二、项目内容
1. 项目背景

本项目的核心任务是通过iFlytek Spark大模型,基于给定的阅读材料,自动生成高考英语阅读理解的选择题。这些生成的选择题包含一个问题和四个选项,并且只有一个正确答案。

2. 项目目标
  • 生成符合高考标准的英语阅读理解题目。
  • 探索和测试如何通过大模型API实现自动化的题库构建。
  • 为教育工作者提供工具,提升试卷命题的效率和质量。
三、代码解读

Test1的代码是一个简单的Python脚本,主要通过调用iFlytek Spark大模型API来实现选择题的生成。以下是代码的主要组成部分及其功能介绍:

from sparkai.core.messages import ChatMessage
from sparkai.llm.llm import ChatSparkLLM

prompt = {
    "input": "\n    你是⼀个⾼考选择题出题专家,你出的题有⼀定深度,你将根据阅读文本,出4道单项选择题,包含题目选项,以及对应的答案,注意:不⽤给出原文,每道题由1个问题和4个选项组成,仅存在1个正确答案,请严格按照要求执行。\nThe reading text is mainly in English. The questions and answers you raised need to be completed in English for at least the following points:\n    \n    ### 回答要求\n    (1)Understanding the main idea of the main idea.\n    (2)Understand the specific information in the text.\n    (3)infering the meaning of words and phrases from the context\n    \n    \n    ### 阅读文本\n    Bike Rental & Guided Tours Welcome to Amsterdam, welcome to MacBike. You see much more from the seat of a bike! Cycling is the most\neconomical, sustainable and fun way to explore the city, with its beautiful canals, parks, squares and countless lights.\nYou can also bike along lovely landscapes outside of Amsterdam.\nWhy MacBike MacBike has been around for almost 30 years and is the biggest bicycle rental company in Amsterdam. With over 2,500 bikes stored in our five rental shops at strategic locations, we make sure there is always a bike available for you. We offer the newest bicycles in a wide variety, including basic bikes with foot brake (AU 4), bikes with hand\nbrake and gears (HI-I'4), bikes with child seats, and children's bikes.                                                                       Price: 1 hour, 3 hours, 1 day(24hours), Each additional day                                                                                          Hand Brake, Three Gears: €7.50, €11.00, €14.75, €8.00                                                       Foot Brake, No Gears: €5.00, €7.50, €9.75, €6.00                     The 2.5-hour tour covers the Gooyer Windmill, the Skinny Bridge, the Rijksmuseum, Heineken Brewery and much more. The tour departs from D.m Square every hour on the hour, starting at 1:00 pm every day. You can buy\nyour ticket in a MacBike shop or book online.\n    ",
    "output": "\n                1. What is an advantage of MacBike?\n                A. It gives children a discount.\n                B. It of offers many types of bikes.\n                C. It organizes free cycle tours.\n                D. It has over 2,500 rental shops.\n                answer:B\n                \n\n                2. How much do you pay for renting a bike with hand brake and three gears for two days?\n                A. €15.75.\n                B. €19.50.\n                C. €22.75.\n                D. €29.50.\n                answer:D\n                \n\n                3. Where does the guided city tour start?\n                A. The Gooyer, Windmill.\n                B. The Skinny Bridge.\n                C. Heineken Brewery.\n                D. D.m Square.\n                answer:D\n                \n"
}
prompt = prompt['input']
3. 核心函数与配置
  • SPARKAI_URL: 这是固定不变的Spark大模型API调用地址。
  • SPARKAI_APP_ID, SPARKAI_API_SECRET, SPARKAI_API_KEY: 这些是调用API的关键凭证信息,需从讯飞微调控制台获取。
  • serviceId, resourceId: 代表具体调用的服务和模型资源,需要在微调控制台配置并获取。
SPARKAI_URL = 'wss://xingchen-api.cn-huabei-1.xf-yun.com/v1.1/chat'  # 固定不动
SPARKAI_APP_ID = '10291189'  # 示例ID,实际使用中需替换为真实ID
SPARKAI_API_SECRET = 'NWU1MzNjYmVkOGU3YWNAMjJjyzRlNWNm'  # 示例Secret,实际使用中需替换
SPARKAI_API_KEY = '72cd17d07e9f41f3F67d8779a32ba4f6'  # 示例API Key,实际使用中需替换
serviceId = 'xspark13b6k'  # 示例Service ID,实际使用中需替换
resourceId = '2223531297298944'  # 示例Resource ID,实际使用中需替换
4. 主函数

主函数main()中,通过ChatSparkLLM类实例化大模型,并将用户的输入消息(即前文中的阅读材料和生成题目的要求)发送给模型,然后通过流式输出的方式逐步获取并打印模型的响应。

def main():
    spark = ChatSparkLLM(
        spark_api_url=SPARKAI_URL,
        spark_app_id=SPARKAI_APP_ID,
        spark_api_key=SPARKAI_API_KEY,
        spark_api_secret=SPARKAI_API_SECRET,
        spark_llm_domain=serviceId,
        model_kwargs={"patch_id": resourceId},
        request_timeout=30,
        streaming=True,
    )
    messages = [ChatMessage(
        role="user",
        content=prompt
    )]
    a = spark.stream(messages)
    for message in a:
        print(message.content, end="")


if __name__ == "__main__":
    main()
四、项目讨论与思考

在Test1项目中,利用大模型生成高考模拟题这一技术展示了人工智能在教育领域中的广阔应用前景。通过自动化题库生成,教育工作者可以节省大量时间,并能创建更加多样化和个性化的试题。

1. 大模型微调的潜力

通过微调模型,我们可以针对特定领域进行模型优化,使其在特定任务(如生成高考题)中表现更为出色。这种方法不仅提升了模型的应用效果,也为未来更广泛的教育应用场景打下了基础。

2. 技术应用场景的扩展性

虽然Test1项目专注于高考英语题目的生成,但类似的技术同样可以应用于其他学科、考试形式以及不同语言的题库生成。这种扩展性使得大模型微调成为一个具有巨大潜力的技术方向。

3. 数据质量的重要性

在这一项目中,输入给大模型的数据质量直接影响了最终生成的题目质量。因此,如何选择和处理训练数据,以确保其准确性和代表性,是后续研究和应用中需要关注的重点。

五、未来工作展望

未来,Test1项目可以进一步扩展,通过结合更多的教育数据和优化微调模型,生成更高质量的题目。同时,探索模型在实际教学场景中的应用,评估其对学生学习效果的影响,也将是一个有意义的研究方向。

这种基于大模型的自动化试卷生成技术,将可能改变未来教育工作者的工作方式,并为学生提供更有针对性和个性化的学习资源。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值