A specialized language model fine-tuned on medical terminology to provide accurate and contextual explanations of medical terms. Built on Llama 3.1 8B using LoRA (Low-Rank Adaptation) for efficient training.
Project Overview
This project fine-tunes Meta's Llama 3.1 8B model to understand and explain medical terminology from the Wiki Medical Terms dataset. The model is trained to take a medical term as input and generate a comprehensive explanation of its meaning.
Example:
Input: "The medical term is: Urodynia\nThe meaning of the term is:"
Output: "Urodynia is a painful condition that affects the urinary system..."
Evaluation: Using reference vs. fine-tuned accuracy scores
Evaluation
The project uses LLM-as-a-Judge evaluation methodology:
Metrics Assessed:
Reference accuracy (1-10 scale)
Fine-tuned accuracy (1-10 scale)
Factual errors identification
Hallucination detection
Judge Model: OpenAI GPT (gpt-5-nano-2025-08-07)
Evaluation Set: Random sample of 0.8% of the dataset
Usage Example
python
1from tinker import types
2import tinker
34# Initialize client5service_client = tinker.ServiceClient()6training_client = service_client.create_lora_training_client(7 base_model="meta-llama/Llama-3.1-8B"8)910# Get sampling client11sample_client = training_client.save_weights_and_get_sampling_client(12 name="medical-001-8B"13)1415# Run inference16tokenizer = training_client.get_tokenizer()17prompt = types.ModelInput.from_ints(18 tokenizer.encode("The medical term is: Urodynia\nThe meaning of the term is:")19)20params = types.SamplingParams(max_tokens=200, temperature=0.8)21results = sample_client.sample(prompt=prompt, sampling_params=params, num_samples=1).result()2223print(tokenizer.decode(results.sequences[0].tokens))