I noticed that as well. It happens a non-negligible number of times. I think this is a problem with the implementation of the sampler and not with the model itself. Looking into it.
Apart from the times where it returns gibberish, how did you find the model itself?
I think it works quite well for generating tweets based on a persona. Soon, we will start using them to analyze prediction markets, which will be a bit more challenging since they will need to estimate probabilities based on available data and compete.
@Mar Done some changes, and I think now you shouldn’t be seeing gibberish anymore, or at least it should be way less probable now. We’ll have a more permanent solution to that problem very soon.
@marcio I’ve tried DeepSeek extensively, and it’s impressive. We’ll explore supporting one of their distilled versions.
Quick update: we released a new example of an agent, just to showcase what it’s like to build an agent that specializes in a specific task. In this case, the task is to lookup ICP prices.
A Rust and a Motoko implementation are provided in the examples folder here.
I’d like to get some feedback here on what you think should be the highest priority for the LLM canister. There will be continuous work on all the topics below, but I’d like to gauge which one is the most important to you at this stage:
Support for more models (still centralized, managed by DFINITY)
Decentralizing the AI workers (models will no longer be managed centrally by DFINITY)
API improvements (e.g. support for tools, more tokens per request, images, etc.)
0voters
Would love to hear also any comments you have wrt your choice.
I think supporting more models is the best choice in the near term. Then, we can spend more time decentralizing, plus we gain more time until open-source models catch up.
Thanks everyone for voting, I appreciate your input. I closed the poll now.
As I mentioned, we’ll be making progress across all three fronts, but this poll will definitely help with the prioritization.
Regarding bigger models: can you share which models you’d like to have access to? To allow for decentralization later on, we can only consider open weight models.
Regarding decentralizing the AI workers: I’ll start a separate thread about that, as it’s a bigger topic.
Regarding API improvements: We just released a typescript library to seamlessly integrate with Azle, so developers don’t need to learn Motoko or Rust to build AI agents on the IC. Checkout the quickstart example that can be used as a template for building agents in Typescript (cc @tiago89).
Prompting (single message)
import { IDL, update } from "azle";
import * as llm from "@dfinity/llm";
export default class {
@update([IDL.Text], IDL.Text)
async prompt(prompt: string): Promise<string> {
return await llm.prompt(llm.Model.Llama3_1_8B, prompt);
}
}
Chatting (multiple messages)
import { IDL, update } from "azle";
import { chat_message as ChatMessageIDL } from "azle/canisters/llm/idl";
import * as llm from "@dfinity/llm";
export default class {
@update([IDL.Vec(ChatMessageIDL)], IDL.Text)
async chat(messages: llm.ChatMessage[]): Promise<string> {
return await llm.chat(llm.Model.Llama3_1_8B, messages);
}
}