|
Download README.md from BSAtlas/BSJCode-1-Stable: direct link, hf CLI and curl.
- Browser
- Download file 3.07 kB
-
https://huggingface.co/BSAtlas/BSJCode-1-Stable/resolve/main/README.md
- Command line
-
hf download hf://BSAtlas/BSJCode-1-Stable/README.md
-
curl -L -o README.md https://huggingface.co/BSAtlas/BSJCode-1-Stable/resolve/main/README.md
3.07 kB
| license: mit | |
| This is a stable version of BSJCode, a model capable of fixing as well as optimizing java code. | |
| ------------------ | |
| ```bash | |
| ## How to use it: | |
| from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig | |
| import torch | |
| # Load the model and tokenizer | |
| bnb_config = BitsAndBytesConfig( | |
| load_in_4bit=True, | |
| bnb_4bit_quant_type="nf4", | |
| bnb_4bit_compute_dtype=torch.float16, | |
| bnb_4bit_use_double_quant=True, | |
| llm_int8_enable_fp32_cpu_offload=True | |
| ) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| "BSAtlas/BSJCode-1-Stable", | |
| quantization_config=bnb_config, | |
| device_map="auto" | |
| ).to(device="cuda") | |
| tokenizer = AutoTokenizer.from_pretrained("BSAtlas/BSJCode-1-Stable") | |
| def detect_and_fix_bugs(code_snippet): | |
| # Prepare the prompt | |
| prompt = f"""You are an expert Java code optimizer and bug fixer. | |
| Analyze the following code, identify any bugs or inefficiencies, | |
| and provide an optimized and corrected version: | |
| ```java | |
| {code_snippet} | |
| ``` | |
| Optimized and Fixed Code:""" | |
| # Tokenize the input | |
| inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=1024) | |
| # Generate code | |
| with torch.no_grad(): | |
| outputs = model.generate( | |
| input_ids=inputs['input_ids'], | |
| attention_mask=inputs['attention_mask'], | |
| max_length=1024, # Adjust based on your model's training | |
| num_return_sequences=1, | |
| do_sample=True, | |
| temperature=0.7, | |
| top_k=50, | |
| top_p=0.95, | |
| repetition_penalty=1.2 | |
| ) | |
| # Decode the output | |
| generated_code = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| # Extract the code portion after the prompt | |
| code_start = generated_code.find("Optimized and Fixed Code:") | |
| if code_start != -1: | |
| fixed_code = generated_code[code_start + len("Optimized and Fixed Code:"):].strip() | |
| else: | |
| fixed_code = generated_code | |
| return fixed_code | |
| sample_code = """ | |
| public class ThreadSafetyExample { | |
| private int counter = 0; | |
| public void increment() { | |
| // Not thread-safe method | |
| counter++; | |
| } | |
| public int getCounter() { | |
| return counter; | |
| } | |
| public static void main(String[] args) { | |
| ThreadSafetyExample example = new ThreadSafetyExample(); | |
| Thread t1 = new Thread(() -> { | |
| for (int i = 0; i < 1000; i++) { | |
| example.increment(); | |
| } | |
| }); | |
| Thread t2 = new Thread(() -> { | |
| for (int i = 0; i < 1000; i++) { | |
| example.increment(); | |
| } | |
| }); | |
| t1.start(); | |
| t2.start(); | |
| try { | |
| t1.join(); | |
| t2.join(); | |
| } catch (InterruptedException e) { | |
| e.printStackTrace(); | |
| } | |
| System.out.println("Final Counter: " + example.getCounter()); | |
| } | |
| } | |
| """ | |
| fixed_code = detect_and_fix_bugs(sample_code) | |
| print(fixed_code) | |
| -------------------------------------------------------------------------- | |