Language 중에 하나인 Verilog language (하드웨어 설계시 사용하는 언어) 가 학습되어 있는 LLM 모델을 사용해보았다.
Verilog language는 다른 programming language 에 비해, source가 부족하여, GPT 만으로 의존하기 아쉬어 huggingface 에 어떤 모델들이 있나 확인해보았다.
허깅페이스에 등록되어 있는 50만개 모델중 9개 나온다.
shailja/fine-tuned-codegen-*B-Verilog. Baseline LLM SalesForce/CodeGen
silverliiningeda llama2 7b 모델
ahmedallam 는 base가 starcoder2 15b
emilgoh 는 base가 Mistral 7b
yangwooko는 base가 santacoder 라고 제목에 있는데 모델 사이즈 명시되어 있지 않다.
각각 어떤 base model + finetune에 사용된 dataset에 따라 성능이 갈릴거 같은데,
위에 있는 모델 살펴보기 전에 코딩 관련 model 벤치마크부터 보자
https://evalplus.github.io/leaderboard.html
대형 모델 빼고, Deepseek, opencoderInterpreter, MagicCoder. 근데 opencoderI, magiccoder전부 deepseek 이 base. Deepseek은 기존 여러 코딩용 llm을 조합해서 2T tokens 학습한 친구.
33B 모델만 해도, 아주 높은 사양의 인프라를 요구하므로, 7B 이하급 한개 골랐다.
허깅페이스 에 있는 모델로 돌아와 설명을 살펴보면 아래와 같다.
shailja/fine-tuned-codegen-16B-Verilog
The model was trained on Verilog from GitHub and textbooks.
The final Verilog corpus of textbook-extracted and GitHub code had a size of 400 MB.
Dataset 도 허깅페이스에 있는데 shailja/Verilog_GitHub. 109k rows.
10만줄 이상의 셋으로 A100 4개 15일 트레이닝 함.
논문에 base model & Pretrained or Finetuned 실험 결과가 나와 있다.
대략 CodeGen-16B 가 젤 좋아서, 저렇게 공유한것.
근데 16B 도 GPU 메모리 40GB 이상 필요해서, google colab 유료로도 실패.
6B 선택. shailja/fine-tuned-codegen-6B-Verilog
silverliningeda/llama-2-7b-silverliningeda-verilog-codegen
정보 기입이 없다. llama2 7b 모델에 무엇을 트레이닝 했는지 모르니 패스.
ahmedallam/VerilogCoder
구체적인 training dataset 이 안나와 있다.
emilgoh/mistral-verilog
This model is a fine-tuned version of mistralai/Mistral-7B-v0.1 on an unknown dataset.