๐Ÿƒ Lilypad Project Report: July 24, 2023

Lilypad v1 Testnet Live! We Sent a Corgi into Compute Space ;)

ยท

5 min read

๐Ÿƒ Lilypad Project Report: July 24, 2023

โฏ lilypad run sdxl:v0.9-lilypad1 "a corgi shot into space"

๐ŸŒ Overview

Hello Friends! You might have noticed we missed a week in our Project Report.
This report is worth the wait though, because we are excited to announce that....

๐Ÿš€ The Lilypad v1 Testnet is now live!!! ๐Ÿš€

We announced this minimal testnet at Filecoin Unleashed in Paris. You can watch the replay here

You can also access the slides for this presentation in the docs here

The current Lilypad Testnet runs on a geth devmode network, however, in future, the contracts will run on the IPC network (which targets 1s tx finality time on subnets!)

We also spent time the last week supporting AugmentHack and the ETHGlobal Paris hack.

โš’๏ธ Lilypad Engineering Update

We had a tremendous push to get the first Lilypad testnet live, and got it running just hours before the first hackathon started ๐Ÿ˜… Conference-driven development at its finest!

๐Ÿ‘ฉโ€๐Ÿ’ป Simple developer experience

We have got installing Lilypad down to a simple one-liner:

curl -sSL -O https://bit.ly/get-lilypad && sudo install get-lilypad /usr/local/bin/lilypad

From there, you need to export a PRIVATE_KEY environment variable for a wallet which has funds on our testnet (metamask instructions, faucet).

Then it's as simple as running:

lilypad run sdxl:v0.9-lilypad1 "a corgi shot into space"

And you'll see our cool animated job status as the job gets submitted to the smart contract, matched with a resource offer on the network, run and then the results made available through IPFS:

And then you can see the image on IPFS, inside the "outputs" folder of the resulting CID:

You can also fix the seed by passing a yaml value instead of a simple string, specifically:

lilypad run sdxl:v0.9-lilypad1 "{prompt: a corgi shot into space, seed: 42}"

(If you're paying close attention, the cover image for this blog post is actually the seed=42 version of the space corgi -- yes, we made SDXL deterministic!)

๐Ÿ“œ Triggering jobs from smart contracts

What's more, you can trigger Lilypad jobs from a smart contract (docs), as shown in this demo:

๐Ÿง  GPU support

Adding GPU support to Lilypad was one of the goals for this initial testnet release and, as you can see from the above AI examples, we got it working! This was despite some fairly nasty hacks needed to make GPU identification in Bacalhau work from inside a container, since lilypad packages bacalhau to run inside docker, with the docker socket mounted. For now, don't look too closely ๐Ÿ™ˆ

โœ… Determinism for GPU workloads

Being able to run the same job twice, with the same inputs, and get the same outputs is essential for our verification & incentive design to work. Therefore, all the modules that are published with Lilypad will need to be deterministic. We've done some work to ensure that the SDXL module is deterministic, and it's a bit fiddly but doable. Thanks to the excellent diffusers docs on the topic!

๐Ÿ“™ Examples you can try today

Releasing a testnet meant also releasing examples for folks to use!

So far there are 2 main examples you can run on Lilypad - on both the CLI & from a smart contract.

  • Cowsay - the "Hello, World!" of Lilypad

  • Stable Diffusion (SDXL 0.9) - a high quality text to image generative AI model

๐Ÿฆ‰
These are fully detailed in the docs! (Amazing right? :P)

We're also working on several other examples and will aim to regularly release new modules for folks - feel free to get in touch with us if there's something you would like to see on this list (or make your own module!):

  • LLM model - thanks to a community member from AugmentHack, a deterministic LLM model will also be added to the Lilypad Modules

  • Finetuning models with LoRA

  • Filecoin Data preparation

  • Arbitrary WASM jobs

โฉ What's next

  • Deploy a GPU verifier on the network

  • Merge GPU scheduling, to make sure that GPU jobs only land on GPU nodes

  • Make LoRA fine-tuning deterministic (giving it the same treatment we gave SDXL)

  • Test whether different GPU type give the same results - if not, we'll need to make GPU type part of the job spec & scheduling constraints

  • Lots more!

๐ŸŽ“ Lilypad Research Update

Excited to announce that the Lilypad Litepaper is now live! You can read it in our docs here:

In upcoming versions of the Litepaper, we will provide greater context for readers unfamiliar with distributed computing, comparisons with solutions commonly used in industry, as well as more analyses of prior distributed computing protocols.

On the topic of anti-cheating mechanisms and pricing models, in the upcoming weeks, we will be focusing on implementing our research in the code base. Initially, this will involve building out the two-sided marketplace, including the orderbook, structure of resource offers, bidding and matching mechanisms, and so on. Further down the line, we will build a simulator so that we can model and test these mechanisms in order to enable rapid iteration.

FYI - Catch up with Levi at Algovera's mini conference this week - where he'll be discussing Autonomous Agents in Distributed Computing!!

๐ŸŒŸ Lilypad "All the Things" Update

๐ŸŽ™๏ธ Event Talks at Filecoin Unleashed & Filecoin Builders Day.

Catch the replay for Filecoin Builders on the Filecoin Youtube here

Keep an eye out for the video on the Filecoin Foundation Youtube!

๐Ÿฆพ AugmentHack

๐Ÿ‘ฉโ€๐Ÿ’ป ETHGlobal Paris

๐Ÿ“บ Compute Over Data WG

Psst, the 2nd COD wg Live stream is also happening tomorrow!
We'll be talking to Pablo from DefiKicks & Cem from Decentralised Yield Collector about their recent experiences building on Lilypad and their future plans.

Tune in here at 7pm CEST 27th July!

๐Ÿ‡ฏ๐Ÿ‡ต WebX Japan DePIN Panel

Taka from Protocol Labs also spoke about Lilypad & Waterlily.ai at a Panel on DePIN at WebX Japan!

๐Ÿ”ฎ What's Next?

Now that we've launched a testnet, we're going to chill out... wait, no that's not right! We're moving full steam ahead to keep researching, building out modules and trustlessness and specifically, implementing a testnet on IPC.

We're also hoping to build in some time to upgrade some of Waterlily.ai features (specifically finetuning models on SDXL 0.9 or even 1.0)

โ˜Ž๏ธ Contact Us

๐Ÿ’ฌ Chat to us on Slack: bit.ly/bacalhau-project-slack #bacalhau-lilypad

Did you find this article valuable?

Support Lilypad Network by becoming a sponsor. Any amount is appreciated!

ย