five

MG-Verilog

收藏
arXiv2024-07-03 更新2024-07-04 收录
下载链接:
https://github.com/luke-avionics/mg-verilog
下载链接
链接失效反馈
资源简介:
MG-Verilog数据集由佐治亚理工学院创建,包含超过11,000个Verilog代码样本及其相应的自然语言描述。该数据集旨在通过提供多粒度的描述,从高层次到详细注释,增强大型语言模型在硬件设计任务中的性能。数据集的构建过程包括数据收集、预处理、描述生成和多粒度结构设计,确保了数据的质量和多样性。MG-Verilog数据集主要应用于LLM辅助的硬件设计,旨在通过提供丰富的上下文信息,提高代码生成的准确性和复杂设计的处理能力。

The MG-Verilog dataset was developed by the Georgia Institute of Technology, containing over 11,000 Verilog code samples paired with their corresponding natural language descriptions. This dataset is designed to boost the performance of Large Language Models (LLMs) in hardware design tasks by offering multi-granularity descriptions spanning from high-level overviews to detailed annotations. The dataset's construction workflow encompasses data collection, preprocessing, description generation, and multi-granularity structure design, ensuring both the quality and diversity of the collected data. Primarily applied to LLM-aided hardware design, the MG-Verilog dataset aims to improve the accuracy of code generation and the capacity to handle complex hardware designs by providing abundant contextual information.
提供机构:
佐治亚理工学院
创建时间:
2024-07-02
原始信息汇总

MG-Verilog 数据集概述

数据集生成

原始数据集预处理

数据集划分

  • 目的:为了更灵活的描述生成和组织元数据(如模块依赖),将数据集划分为不同的部分。
  • 步骤: bash $ python utils.py --src_code_dir ./preprocess_data/process_data/raw_dataset_output_path/ --src_code_metadata_file ./preprocess_data/process_data/module_inst.json --output_dir ./partitioned_dataset_output_path/ --shared_lib_dir ./directory_to_store_common_modules/ --output_code_metadata_dir ./output_dir_for_code_metadata/ --output_code_metadata_file codes.json --module_to_task_id_map_file ./preprocess_data/process_data/module_name_to_task_id_mapping.json

PoT 数据集生成

  • 主要模型LLAMA2-70B-Chat,备用模型 openai-gpt3.5-turbo/4
  • 步骤
    • 逐行注释生成: bash $ python line_by_line_comments_gen.py --total_parts 10 --output_dir ./documented_code --src_code_dir ./partitioned_dataset_output_path/ --code_metadata_dir ./output_dir_for_code_metadata/ --code_lib_path ./directory_to_store_common_modules/ --code_vec_store ../code_vec_store/test/ --discard_original_comment

    • 块摘要生成: bash $ python gen_block_summaries.py 0 10 --code_metadata_dir ./output_dir_for_code_metadata/ --documented_code_dir ./documented_code --block_line_length 10 --model gpt-3.5-turbo-1106

    • 全局摘要生成: bash $ python gen_global_summary.py 0 10 --documented_code_dir ./documented_code --model gpt-3.5-turbo-1106 --detailed $ python gen_global_summary.py 0 10 --documented_code_dir ./documented_code --model gpt-3.5-turbo-1106

    • 数据集打包: bash $ python dataset_utils.py --doced_dataset_dir ./documented_code --total_part 10 --packaged_dir ./packaged_dataset --package_detailed_description --package_simple_description --package_llm2_block_summary_to_pure_code_one_shot_dataset --package_merged_dataset

基准准备

  • 来源HDLBits
  • 步骤: bash $ python verilog_eval_to_part_data.py --eval_file ../verilog_eval/data/VerilogEval_Machine.jsonl --data_dir ./benchmark_code_files/ --meta_data_dir ./benchmark_metadata_files/ $ python line_by_line_comments_gen.py --total_parts 1 --output_dir ./benchmark_documented_code --src_code_dir ./benchmark_code_files/ --code_metadata_dir ./benchmark_metadata_files/ --code_lib_path ./benchmark_code_files/ --code_vec_store ../benchmark_code_vec_store/test/ --skip_supplement_summary --discard_original_comment $ python gen_block_summaries.py 0 1 --documented_code_dir ./benchmark_documented_code --block_line_length 10 --model gpt-3.5-turbo-1106 $ python gen_global_summaries.py 0 1 --documented_code_dir ./benchmark_documented_code --model gpt-3.5-turbo-1106 --detailed $ python gen_global_summaries.py 0 1 --documented_code_dir ./benchmark_documented_code --model gpt-3.5-turbo-1106 $ python dataset_utils.py --doced_dataset_dir ./benchmark_documented_code --total_part 1 --packaged_dir ./benchmark_packaged_dataset --package_hdlbits_global_summary_description_file --package_hdlbits_block_summary_description_file

数据集验证

  • 工具:Icarus Verilog (iverilog) 和 GPT-4
  • 步骤: bash $ python code_validate.py --dataset_dir ./packaged_dataset/detailed_description_dataset --output_dir ./packaged_dataset/detailed_description_dataset_val

监督微调

  • 目的:使用 PoT 数据集进行模型微调和性能评估。

  • 步骤: bash cd .. cd sft_code ./train.sh

  • 评估: bash cd .. cd model_eval_qlora ./gen.sh

收集的数据集和微调模型检查点

搜集汇总
数据集介绍
main_image_url
构建方式
MG-Verilog数据集的构建过程严格遵循一系列高质量硬件数据集的创建标准,旨在提升大型语言模型(LLMs)在硬件设计任务中的表现。首先,通过从开源代码库中收集原始Verilog代码,并使用Pyverilog工具进行预处理,确保代码的正确性和无冗余。随后,利用LLMs的自然语言生成能力,为每个代码样本生成多层次的自然语言描述,包括高层次概述、详细描述、块级总结和逐行注释。这种多粒度的描述结构不仅丰富了数据集的细节层次,还确保了数据集在推理和微调阶段的适用性。
使用方法
MG-Verilog数据集的使用方法灵活多样,适用于LLMs的推理、微调和预训练阶段。在推理阶段,用户可以通过提供高层次的设计描述,利用数据集中的多层次描述进行上下文学习,生成高质量的硬件代码。在微调阶段,数据集的多粒度描述结构支持模型在不同细节层次上的训练,通过平衡微调方案,提升LLMs在复杂硬件设计任务中的表现。此外,数据集的开放源代码格式和详细的统计信息,为研究人员提供了便捷的访问和扩展途径,支持定制化的硬件设计研究和应用。
背景与挑战
背景概述
随着大型语言模型(LLMs)在硬件设计流程中的应用日益增多,如何有效利用这些模型进行硬件设计成为一个关键问题。现有的硬件设计数据集在规模、复杂性和细节上存在局限,这限制了LLMs在硬件设计任务中的表现。为此,张永安等人于2024年在佐治亚理工学院提出了MG-Verilog数据集,旨在通过提供多粒度的Verilog代码样本及其相应的自然语言描述,来增强LLMs在硬件设计中的应用。该数据集不仅涵盖了不同层次的细节描述,还提供了开源的基础设施,便于用户访问、集成和扩展,从而推动硬件设计社区的进一步研究和发展。
当前挑战
MG-Verilog数据集面临的挑战主要集中在两个方面。首先,构建高质量的硬件设计数据集需要克服现有数据集在规模、复杂性和细节上的不足,确保数据集能够支持LLMs在硬件设计任务中的有效训练和推理。其次,数据集的多粒度结构虽然旨在平衡设计生成准确性和用户友好性,但在实际应用中,如何有效利用这些不同层次的描述进行模型训练和优化,仍是一个需要解决的问题。此外,数据集的扩展性和集成性也需要进一步优化,以适应硬件设计领域的快速变化和多样化需求。
常用场景
经典使用场景
MG-Verilog数据集的经典使用场景主要集中在利用大型语言模型(LLMs)进行硬件设计的过程中。该数据集通过提供多层次的Verilog代码描述及其对应的自然语言解释,支持LLMs在硬件设计任务中的推理和微调阶段。具体应用包括生成高质量的Verilog代码、优化硬件设计流程,以及通过自然语言指令与硬件设计过程的交互,从而提升设计效率和准确性。
解决学术问题
MG-Verilog数据集解决了现有硬件设计数据集在规模、复杂性和细节粒度上的不足,这些问题限制了LLMs在硬件设计任务中的表现。通过提供多层次的描述和代码样本,该数据集显著提升了LLMs在生成硬件代码时的准确性和复杂性处理能力。此外,MG-Verilog还促进了硬件设计领域的创新和研究,为学术界提供了高质量的数据资源,推动了LLM辅助硬件设计技术的发展。
实际应用
在实际应用中,MG-Verilog数据集被广泛用于各种硬件设计项目,特别是在需要自动化和优化设计流程的场景中。例如,工程师可以利用该数据集训练LLMs,生成符合特定需求的Verilog代码,从而加速硬件开发周期。此外,该数据集还支持硬件设计的验证和调试,通过提供详细的代码描述,帮助开发者快速定位和解决问题,提高设计质量和可靠性。
数据集最近研究
最新研究方向
在硬件设计领域,大型语言模型(LLMs)的应用日益受到关注,但其性能提升依赖于高质量的领域特定数据集。MG-Verilog数据集的最新研究方向聚焦于通过多粒度描述和相应的Verilog代码样本,增强LLMs在硬件设计任务中的表现。该数据集不仅提供了丰富的代码和描述对,还引入了平衡微调方案,以充分利用数据集的多层次细节。实验结果表明,使用MG-Verilog数据集进行微调的LLMs在硬件设计任务中的表现显著优于其他数据集。这一研究不仅推动了LLMs在硬件设计中的应用,也为未来硬件设计数据集的开发提供了新的标准和方法。
相关研究论文
  • 1
    MG-Verilog: Multi-grained Dataset Towards Enhanced LLM-assisted Verilog Generation佐治亚理工学院 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作