onkanat/amateur-radio-qa-dataset
📻 Amateur Radio & Electronics QA Dataset (SFT / DPO / Chat) This dataset is a comprehensive, production-grade bilingual (English and Turkish) corpus dedicated to Amateur Radio (Ham Radio), RF Engineering, Software Defined Radio (SDR), Signal Processing (DSP), Antennas, and Telecommunications Electronics. Generated and verified using the Elektor Universal Dataset Generator Pipeline (Phase 1-4) with strict LLM-as-a-Judge 5D quality filtering and Google LangExtract… See the full description on the dataset page: https://huggingface.co/datasets/onkanat/amateur-radio-qa-dataset.
📻 Amateur Radio & Electronics QA Dataset (SFT / DPO / Chat)
   
This dataset is a comprehensive, production-grade bilingual (English and Turkish) corpus dedicated to Amateur Radio (Ham Radio), RF Engineering, Software Defined Radio (SDR), Signal Processing (DSP), Antennas, and Telecommunications Electronics.
Generated and verified using the Elektor Universal Dataset Generator Pipeline (Phase 1-4) with strict LLM-as-a-Judge 5D quality filtering and Google LangExtract source-grounded entity linking.
Bu veri seti, Amatör Radyo (Ham Radyo), RF Mühendisliği, Yazılım Tanımlı Radyo (SDR), Sinyal İşleme (DSP), Antenler ve Telekomünikasyon Elektroniği konularına adanmış kapsamlı, üretim kalitesinde iki dilli (İngilizce ve Türkçe) bir veri kümesidir. Elektor Evrensel Veri Seti Oluşturma Hattı (Faz 1-4) kullanılarak, sıkı LLM-as-a-Judge 5D kalite filtrelemesi ve Google LangExtract kaynak tabanlı varlık bağlantısı ile oluşturulmuş ve doğrulanmıştır.
Stack Exchange Q&A for amateur radio forumlarından yararlanılmıştır.
📊 Dataset Architecture & Splits
🎯 Domain & Topic Coverage
The dataset spans essential topics in amateur radio, communications, and electronics:
- Antenna Theory & Construction: Wire antennas, Dipoles, Yagi-Uda, Baluns, Ununs, Impedance Matching, Smith Charts, SWR minimization, Grounding & Lightning Safety.
- Software Defined Radio (SDR) & DSP: RTL-SDR, HackRF, GNU Radio, IQ sampling, FFT, Demodulation (AM/FM/SSB/Digital), Filters (FIR/IIR).
- Operating Modes & Protocols: CW (Morse Code), Single Sideband (SSB), FM, FT8, JS8Call, PSK31, APRS, Packet Radio, AX.25, DMR, D-STAR.
- Propagation & RF Physics: Ionospheric layers (D/E/F), Solar Flux Index (SFI), Sunspot Cycles, MUF/LUF, Tropospheric Ducting, Skip Zones, SNR calculations.
- Transceivers & Hardware DIY: Superheterodyne vs Direct Conversion, PA stages, LNA, BPF/LPF, Baofeng/Yaesu/Icom architectures, RFI/EMI suppression via Ferrite chokes.
- Licensing & Regulations: ARRL, FCC Part 97, CEPT, IARU band plans, operating ethics, repeaters, emergency telecommunications (ARES/RACES).
🚀 How to Load and Use in Python
Using the Hugging Face datasets library:
from datasets import load_dataset
# 1. Load English SFT (Supervised Fine-Tuning) Split
ds_sft = load_dataset("onkanat/amateur-radio-qa-dataset", data_files="sft_dataset.parquet")
print("English SFT Sample:", ds_sft['train'][0])
# 2. Load Turkish SFT Split (Türkçe Soru-Cevap)
ds_tr_sft = load_dataset("onkanat/amateur-radio-qa-dataset", data_files="tr_sft_dataset.parquet")
print("Turkish SFT Sample:", ds_tr_sft['train'][0])
# 3. Load DPO Preference Pairs (Chosen vs Rejected)
ds_dpo = load_dataset("onkanat/amateur-radio-qa-dataset", data_files="dpo_dataset.parquet")
print("DPO Pair:", ds_dpo['train'][0])
# 4. Load Multi-Turn Conversational Chat
ds_chat = load_dataset("onkanat/amateur-radio-qa-dataset", data_files="chat_dataset.parquet")
print("Chat Messages:", ds_chat['train'][0])
# 5. Load Grounded Entity Extractions (LangExtract with Character Offsets)
ds_grounded = load_dataset("onkanat/amateur-radio-qa-dataset", data_files="langextract_grounded_dataset.parquet")
print("Grounded Entity:", ds_grounded['train'][0])⚡ Quick Fine-Tuning Recipe (Unsloth / TRL)
You can fine-tune any modern LLM (Qwen 2.5, Llama 3.1, Gemma 2, Mistral) using Unsloth:
from unsloth import FastLanguageModel
from datasets import load_dataset
from trl import SFTTrainer
from transformers import TrainingArguments
# Load base model
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/Qwen2.5-3B-Instruct",
max_seq_length=2048,
load_in_4bit=True,
)
# Add LoRA adapters
model = FastLanguageModel.get_peft_model(
model,
r=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
lora_alpha=16,
lora_dropout=0,
bias="none",
)
# Load dataset
dataset = load_dataset("onkanat/amateur-radio-qa-dataset", data_files="sft_dataset.parquet", split="train")
# Train
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset,
dataset_text_field="output",
max_seq_length=2048,
args=TrainingArguments(
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
warmup_steps=10,
max_steps=100,
learning_rate=2e-4,
fp16=True,
logging_steps=10,
output_dir="outputs",
),
)
trainer.train()🛡️ Data Curation & Quality Assurance
- Source Attribution: Extracted from curated Amateur Radio Stack Exchange archive data dumps (
ham.stackexchange.com) and technical engineering publications. - LLM-as-a-Judge 5D Evaluation: Every question-answer and DPO pair was scored across 5 dimensions (Faithfulness, Clarity, Factual Correctness, Domain Relevance, Safety).
- Grounded Verification: All extractions are mapped back to character offsets and source articles using Google LangExtract.
- Direct Localization: Turkish pairs are verified and aligned for professional terminology (e.g. Empedans Uyumlama, Balun, Taşıyıcı Frekansı, İyonosferik Yayılım).
📜 License & Citation
This dataset is distributed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license in accordance with Stack Exchange network content terms.
Generated on 2026-09-05 11:19:03 UTC via Elektor Universal Pipeline.
