问题二那边

我要开发同款
匿名用户2024年07月31日
19阅读
所属分类aiPytorch
开源地址https://modelscope.cn/models/ffffffyz/problem2_xjtu
授权协议Apache License 2.0

作品详情

代码生成模型

模型简介

此文件夹主要包含微调qwen7bchat模型得到的参数。微调后的模型主要有以下功能:

  • 1. 给出⼀个询问, 例如: "使⽤python写快排.", 模型可以给出正确的示例代码(以及适当的代码注释). 需要⽀持python, C, C++等. 输出的代码需被```环绕。
  • 2. 具有⾃我认知. 询问它是谁, 它的开发者是谁, 可以正确的进⾏回答

Clone with HTTP

 git clone https://www.modelscope.cn/Marmeladov/Marmeladov_Coder_Test_St.git


实验环境

  • python>=3.8
  • pytorch>=2.0.0
  • transformers==4.32.0
  • swift==1.5.3
  • CUDA 11.4


训练方法

  • 数据集:
    codealpacaen: https://modelscope.cn/datasets/wyj123456/codealpacaen. leetcode-solutions-python: https://modelscope.cn/datasets/AI-ModelScope/leetcode-solutions-python. CodeExercise-Python-27k: https://modelscope.cn/datasets/codefuse-ai/CodeExercise-Python-27k. Evol-instruction-66k: https://modelscope.cn/datasets/codefuse-ai/Evol-instruction-66k.

  • 微调模型:ModelType.qwen17b_chat: https://modelscope.cn/models/qwen/Qwen-7B-Chat

  • 微调方法:swift

sft_args = SftArguments( model_type=ModelType.qwen_7b_chat, #微调qwen_7b_chat模型 sft_type='lora', #使用lora微调 train_dataset_sample=10000, #训练数据集采样10000条 dataset=[DatasetName.codefuse_python_en, DatasetName.leetcode_python_en, DatasetName.code-alpaca-en, DatasetName.codefuse-evol-instruction-zh], #使用的数据集 self_cognition_sample=500, #自我认知参数 model_name=['代码助⼿'], #微调后模型名 model_author=['Marme'], #微调作者 push_to_hub=True, #上传到modelscope社区 hub_model_id='Marmeladov/Marmeladov_Coder_Test_St', hub_token='...', output_dir='output') #checkpoint输出目录

示例代码

    import os
    os.environ['CUDA_VISIBLE_DEVICES'] = '0'
    import torch
    from swift.llm import (InferArguments, infer_main)

    torch.cuda.empty_cache()
    infer_args = InferArguments(
    ckpt_dir='../Marmeladov_Coder_Test_St',
    load_dataset_config=True,
    eval_human=True,
    do_sample=False)
    result = infer_main(infer_args)

    ...

    <<< 你好
    你好!有什么我可以帮助您的吗?
    --------------------------------------------------
    <<< 你这作者是谁?
    我是由Marme开发的语言模型,代码编写是由我的开发者团队完成的。
    --------------------------------------------------
    <<< 你的名字是?
    我叫代码助⼿。
    --------------------------------------------------
    <<< 使用python写一段快速排序算法
    ```python
    def quick_sort(arr):
        """
        快速排序算法

        参数:
        arr (list): 待排序的列表

        返回:
        list: 排序后的列表
        """

        if len(arr) <= 1:
            return arr

        pivot = arr[len(arr) // 2]
        left = [x for x in arr if x < pivot]
        middle = [x for x in arr if x == pivot]
        right = [x for x in arr if x > pivot]

        return quick_sort(left) + middle + quick_sort(right)

    # 示例
    arr = [3,6,8,10,1,2,1]
    sorted_arr = quick_sort(arr)
    print(sorted_arr)
    ```

    这个代码定义了一个名为`quick_sort`的函数,它接受一个列表作为参数。如果列表的长度小于或等于1,那么就直接返回该列表,因为长度为1或0的列表已经是有序的。
    否则,选择一个基准值(这里选择列表的中间元素),然后将列表分为三部分:小于基准值的元素、等于基准值的元素和大于基准值的元素。然后对小于和大于基准值的部分递归地调用`quick_sort`函数,最后将结果合并起来。

    在示例中,我们创建了一个列表`arr`,并使用`quick_sort`函数对其进行排序。最后打印出排序后的结果。
    --------------------------------------------------
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论