< 返回版块

Mike Tang 发表于 2023-05-11 23:47

llm - 使用Rust在CPU上运行大模型

这是一套工具。目前支持这些模型:

  • GPT-2
  • GPT-J
  • LLaMA: LLaMA, Alpaca, Vicuna, Koala, GPT4All v1, GPT4-X, Wizard
  • GPT-NeoX: GPT-NeoX, StableLM, Dolly v2 (partial, not the same tensor names?)
  • BLOOM: BLOOMZ

https://github.com/rustformers/llm

从Rust 1.71开始,musl编译目标依赖的musl版本升级了。

Beginning with Rust 1.71 (slated for stable release on 2023-07-13),

从 musl 1.1.24 升级到了musl 1.2.3.

https://blog.rust-lang.org/2023/05/09/Updating-musl-targets.html

Salvo 0.41.0 发布,初步支持 openapi

use salvo::oapi::extract::*;
use salvo::oapi::swagger_ui::SwaggerUi;
use salvo::oapi::{ToSchema, Info, OpenApi};
use salvo::prelude::*;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, ToSchema, Debug)]
struct MyObject<T: ToSchema + std::fmt::Debug> {
    value: T,
}

#[endpoint]
async fn use_string(body: JsonBody<MyObject<String>>, res: &mut Response) {
    res.render(format!("{:?}", body))
}
#[endpoint]
async fn use_i32(body: JsonBody<MyObject<i32>>, res: &mut Response) {
    res.render(format!("{:?}", body))
}
#[endpoint]
async fn use_u64(body: JsonBody<MyObject<u64>>, res: &mut Response) {
    res.render(format!("{:?}", body))
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();

    let router = Router::new()
        .push(Router::with_path("i32").post(use_i32))
        .push(Router::with_path("u64").post(use_u64))
        .push(Router::with_path("string").post(use_string));

    let doc = OpenApi::new(Info::new("test api", "0.0.1")).merge_router(&router);

    let router = router
        .push(doc.into_router("/api-doc/openapi.json"))
        .push(SwaggerUi::new("/api-doc/openapi.json").into_router("swagger-ui"));

    let acceptor = TcpListener::new("127.0.0.1:5800").bind().await;
    Server::new(acceptor).serve(router).await;
}

https://github.com/salvo-rs/salvo/blob/main/examples/oapi-generics/src/main.rs

Coherence in Rust

这是一篇讲解Rust中的类型 Coherence 的文章,非常细致,推荐阅读:

https://ohadravid.github.io/posts/2023-05-coherence-and-errors/

我们如何用Rust构建自己的时间跟踪算法

其实并不复杂,但是作者对工作善于记录,善于表达的方式,值得一学。

https://michellelim.dev/writing/measure-time-spent-in-app/


From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区

评论区

写评论

还没有评论

1 共 0 条评论, 1 页