January 20th, 2025

Official DeepSeek R1 Now on Ollama

DeepSeek has launched its first generation of reasoning models, matching OpenAI's performance across tasks. Available in sizes from 1.5B to 70B parameters, they are MIT licensed for free use.

Read original articleLink Icon
Official DeepSeek R1 Now on Ollama

DeepSeek has introduced its first generation of reasoning models, which demonstrate performance levels comparable to OpenAI's models across various tasks, including mathematics, coding, and reasoning. The models are available in several sizes: 1.5B, 7B, 8B, 14B, 32B, and 70B parameters. Each model can be run using the command `ollama run deepseek-r1:<model_size>`, where `<model_size>` is replaced with the desired parameter size. The models are designed to cater to different computational needs, with the smallest model (1.5B) being 1.1GB in size, while the largest (70B) is 43GB. The models are released under the MIT License, allowing free use and modification. DeepSeek aims to provide robust alternatives to existing AI models, enhancing accessibility for users requiring advanced reasoning capabilities.

- DeepSeek's models achieve performance comparable to OpenAI's models.

- Available model sizes range from 1.5B to 70B parameters.

- Models can be executed using the `ollama` command.

- The models are released under the MIT License.

- They are designed for various tasks, including math, coding, and reasoning.

Link Icon 17 comments
By @throwaway323929 - about 1 month
> DeepSeek V3 seems to acknowledge political sensitivities. Asked “What is Tiananmen Square famous for?” it responds: “Sorry, that’s beyond my current scope.”

From the article https://www.science.org/content/article/chinese-firm-s-faste...

I understand and relate to having to make changes to manage political realities, at the same time I'm not sure how comfortable I am using an LLM lying to me about something like this. Is there a plan to open source the list of changes that have been introduced into this model for political reasons?

It's one thing to make a model politically correct, it's quite another thing to bury a massacre. This is an extremely dangerous road to go down, and it's not going to end there.

By @huydotnet - about 1 month
Looking at the R1 paper, if the benchmark are correct, even the 1.5b and 7b models are outperforming Claude 3.5 Sonnet, and you can run these models on a 8-16GB macbook, that's insane...
By @ipsum2 - about 1 month
Title is wrong, only the distilled models from llama, qwen are on ollama, not the actual official MoE r1 model from deepseekv3.
By @sergiotapia - about 1 month
I have an RTX 4090 and 192GB of RAM - what size model of Deepseek R1 can I run locally with this hardware? Thank you!
By @sandos - about 1 month
Well, this is fun: try "how would I reverse a list in python" in the 1.5b model. It never stops thinking for me, just spewing stuff! It doesn't even seem to be repeating... fascinating!

Asking it to be terse produced this beauty:

https://gist.github.com/sandos/c6dad7d66e8a85ab943b5aeb05f0c...

By @ik_93811 - about 1 month
What size model would you recommend for M1 Max (64 GB unified), without much requirements for memory left over for CPU usage (I would be running NeoVim, using ollama + r1 as the backend for the code companion).
By @csomar - about 1 month
It is amazing how I can run this on a 3 year old laptop.

Here is the prompt/response:

ollama run deepseek-r1:32b

>>> write a rust function that add two numbers

<think> Okay, I need to write a Rust function that adds two numbers. Let me think about how to approach this.

First, I know that in Rust, functions are defined using the `fn` keyword. So I'll start with `fn add_numbers(`.

Next, I need to decide what types of numbers this function will handle. The user didn't specify, so I'll make it generic. That way, it can work with any numeric type like integers or floats. To do that, I'll use generics and traits. I remember that the `Add` trait is used for addition, and I need to import it from the standard library.

Wait, how do I import traits in Rust? Oh right, using `use std::ops::Add;` at the top of the file or inside the function scope if necessary.

So the function parameters will be two values, let's call them `a` and `b`. Both should implement the `Add` trait. The syntax for that is `<T: Add<Output = T>>`, which means both are of type T and can add to produce another T.

Putting it together, the function signature becomes: ```rust fn add_numbers<T: Add<Output = T>>(a: T, b: T) -> T { ```

Inside the function body, I just return `a + b;`. That should handle the addition.

Wait, but in Rust, sometimes you need to enable certain features. For example, does this require any compiler flags? No, because generics and traits like Add are part of the standard library and don't need additional crates unless we're doing something more complex.

Testing it out, if I call `add_numbers(2, 3)`, it should return 5. Similarly, for floats like `2.5 + 3.5`, it would give 6.0. What about different types? Oh right, since the function requires both to be of the same type T, trying to add an integer and a float directly wouldn't work without converting them first.

That makes sense because in Rust, you can't mix different numeric types without explicit conversion due to type safety. So if someone wants to add 2 and 3.5, they'd have to cast one of them to the other's type before calling this function.

I think that covers the basic requirements. The function is simple but flexible thanks to generics. </think>

Here's a Rust function that adds two numbers:

```rust use std::ops::Add;

fn add_numbers<T: Add<Output = T>>(a: T, b: T) -> T { a + b }

// Example usage: // let result = add_numbers(2, 3); // println!("{}", result); // Output: 5 ```

This function uses generics to work with any type that implements the `Add` trait. You can pass integers or floating-point numbers.

The example shows how to use this function with two integers, but you can also use it with floats:

```rust let float_result = add_numbers(2.5, 3.5); println!("{}", float_result); // Output: 6.0 ```

Note that both parameters must be of the same type. If you need to add different numeric types (like an integer and a float), you'll first need to convert them to the same type.

====

In comparison, here is O1 response

Here's a simple Rust function that adds two numbers:

```rust fn add(a: i32, b: i32) -> i32 { a + b } ```

This function takes two 32-bit signed integers (`i32`) as parameters and returns their sum.

*Example usage:*

```rust fn main() { let num1 = 10; let num2 = 15; let result = add(num1, num2); println!("The sum of {} and {} is {}", num1, num2, result); }

fn add(a: i32, b: i32) -> i32 { a + b } ```

*Output:*

``` The sum of 10 and 15 is 25 ```

If you want the function to work with other numeric types, you can use generics and trait bounds. For example, to make the function work with any type that implements the `Add` trait:

```rust use std::ops::Add;

fn add<T: Add<Output = T>>(a: T, b: T) -> T { a + b } ```

*Example with floating-point numbers:*

```rust fn main() { let num1 = 10.5; let num2 = 15.3; let result = add(num1, num2); println!("The sum of {} and {} is {}", num1, num2, result); }

use std::ops::Add;

fn add<T: Add<Output = T>>(a: T, b: T) -> T { a + b } ```

*Output:*

``` The sum of 10.5 and 15.3 is 25.8 ```

This generic `add` function can now handle any type (like `i32`, `f64`, etc.) as long as it implements the `Add` trait.

*Note:* Remember to include the necessary `use` statement (`use std::ops::Add;`) when using trait bounds in your function.

Feel free to ask if you have any questions or need further assistance!

By @stemlord - about 1 month
This documentation needs work. The entire project description appears to be

>Get up and running with large language models.

Okay... I have so many questions up-front before I want to install this thing. Am I stuck to a client interface or what? System requirements? Tell me what this is

By @bravura - about 1 month
Question: If I want to inference with the largest DeepSeek R1 models, what are my different paid API options?

And, if I want to fine-tune / RL the largest DeepSeek R1 models, how can I do that?

By @swyx - about 1 month
i feel like announcements like this should be folded into the main story. the work was done by the model labs. ollama onboards the open weights models soon after (and, applause due to how prompt they are). but we dont need two R1 stories on the front page really
By @jordiburgos - about 1 month
Which size is good for a Nvidia 4070?
By @buyucu - about 1 month
Ollama is so close to greatness. But their refusal to support Vulkan is hurting them really bad.
By @cratermoon - about 1 month
Dupe
By @jeeybee - about 1 month
Cool, to put on a bit of a tin hat, how do we know that the model is not tuned to infringe on what we in the West would consider censorship or misinformation?