Skip to main content

OpenCoder - Open Cookbook for Code Large Language Models

The projec is very interesting and it's the first time that I see a model that makes all the research data available:

OpenCoder is an open and reproducible code LLM family which matches the performance of Top-Tier Code LLM. We provide not just the final models, but also the reproducible training data, the complete data processing pipeline, rigorous experimental ablation results, and detailed training protocols for open scientific research.

Making AI models open source is not easy, there is no real definition for it, but I thin kthis is as close as it can get for now.

The models is also avialalbe on ollama and I gave it a try on my Server using the 1.5b model. The results and the execution on the CPU are quite good:


Example 1

USER

A function to calculate the first 12 fibonacci numebers

ASSISTANT

Here is a Python function that calculates and returns the first 12 Fibonacci numbers:

def fibonacci_numbers(n=12):
    fib_sequence = [0, 1]
    for i in range(2, n):
        fib_sequence.append(fib_sequence[i-1] + fib_sequence[i-2])
    return fib_sequence

print(fibonacci_numbers())

This function starts by defining the first two Fibonacci numbers as 0 and 1. Then it enters a loop that generates the remaining Fibonacci numbers. For each iteration of the loop, it calculates the next Fibonacci number as the sum of the previous two numbers and appends it to the list. The loop ends when it has generated n-2 Fibonacci numbers. Finally, it returns the list of Fibonacci numbers.

USER

now in JS

ASSISTANT

Here is a function that calculates the first 12 Fibonacci numbers:

function fibonacciNumbers(n = 12) {
    let fibSequence = [0, 1];
    for (let i = 2; i < n; i++) {
        fibSequence.push(fibSequence[i - 1] + fibSequence[i - 2]);
    }
    return fibSequence;
}

console.log(fibonacciNumbers());

This function starts by defining the first two Fibonacci numbers as 0 and 1. Then it enters a loop that generates the remaining Fibonacci numbers. For each iteration of the loop, it calculates the next Fibonacci number as the sum of the previous two numbers and appends it to the array. The loop ends when it has generated n-2 Fibonacci numbers. Finally, it returns the array of Fibonacci numbers.

USER

now in rust

ASSISTANT

Here is a function that calculates the first 12 Fibonacci numbers:

fn fibonacci_numbers(n: usize) -> Vec<usize> {
    let mut fib_sequence = vec![0, 1];
    for i in 2..n {
        let next_fib_number = fib_sequence[i - 1] + fib_sequence[i - 2];
        fib_sequence.push(next_fib_number);
    }
    return fib_sequence;
}

fn main() {
    println!("{:?}", fibonacci_numbers(12));
}

This function starts by defining the first two Fibonacci numbers as 0 and 1. Then it enters a loop that generates the remaining Fibonacci numbers. For each iteration of the loop, it calculates the next Fibonacci number as the sum of the previous two numbers and appends it to the vector. The loop ends when it has generated n-2 Fibonacci numbers. Finally, it returns the vector of Fibonacci numbers.


Example 2

USER

Create me a function that helps me find the first 33 prime numbers

ASSISTANT

Here is a Python function to do this:

def first_33_primes():
    primes = []
    candidate = 2

    while len(primes) < 33:
        if all(candidate % p > 0 for p in primes):
            primes.append(candidate)
        candidate += 1

    return primes

print(first_33_primes())

This script works by starting with the smallest prime number, 2, and checking if it is divisible by any of the previously found prime numbers. If it isn't, we know it's a prime number and add it to our list of prime numbers. We then move on to the next candidate number (incremented by one for each iteration).

This function will print out the first 33 prime numbers:

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]

USER

The code should be in PHP

ASSISTANT

Here is the equivalent PHP code for finding the first 33 prime numbers:

function first_33_primes() {
     $primes = [];
     $candidate = 2;

     while (count($primes) < 33) {
         if (all_primes($candidate, $primes)) {
             array_push($primes, $candidate);
         }
         $candidate += 1;
     }

     return $primes;
}

function all_primes($n, $arr) {
    foreach ($arr as $num) {
        if ($n % $num == 0) return false; 
    }
    return true;
}

print_r(first_33_primes());

This PHP code does exactly what the Python function does. It continues generating prime numbers until it finds the first 33 primes.